密码学简介+古典密码学【单表代换】(5.04)

一、密码学的基础知识

1、古典密码和现代密码

古典密码: (1)单表替换加密        (2)多表密码学加密        (3)奇怪的加密方式

现代密码学:(1)对称加密:DES,AES,RC4【加密体制:分组密码(块密码);序列加密(流密码)】

                   (2)非对称加密:RSA,EIGamal,椭圆曲线加密

                   (3)哈希函数:MD5,SHA-1,SHA-512

                   (4)数字签名:RSA签名,DES签名,EIGamal签名

2、密码的目的

保证信息和信息系统的:机密性,完整性,可用性(CIA三性),认证性,不可否认性

3、攻击类型分类

唯密文攻击,已知明文攻击,选择明文攻击(拥有加密权限,能够对明文加密后获得相应密文),选择密文攻击(拥有解密权限,能够对密文解密后获得相应明文)

古典密码学

主要思想:替换或置换或二者结合

一、单表替换加密

通用特点:明密文一一对应

破解方式:暴力破解;词频分析

1、凯撒密码

密钥(偏移量),密文 移位后 明文

import random
print('请选择:1.加密     2.解密')
n=int(input())
if n==1:
    print('请输入明文')
    a=input()
    m=''
    num = random.randint(-9,9)
    for i in a:
        if i>='A' and i<='Z':
            m+=chr(((ord(i)-ord('A') + num) % 26) + ord('A'))
        elif i>='a' and i<='z':
            m += chr(((ord(i) - ord('a') + num) % 26) + ord('a'))
        else:
            m+=i
    print('密文为'+m)
    print('密钥为{0}'.format(num))
elif n==2:
    print('请输入密钥')
    key=int(input())
    print('请输入密文')
    a=input()
    x=''
    for i in a:
        if i >= 'A' and i <= 'Z':
            x += chr(((ord(i) - ord('A') - key) % 26) + ord('A'))
        elif i >= 'a' and i <= 'z':
            x += chr(((ord(i) - ord('a') - key) % 26) + ord('a'))
        else:
            x+=i
    print('密文为'+x)

移位密码与凯撒密码相似,对数字和特殊字符也根据ASCII码做处理

Atbash Cipher是用字母表第一个字母代表最后一个字母,以此类推

2.简单替换密码

每隔密文字母替换并不是唯一对应,而是混乱的,只有知道每一个字母对应规则才能解密,密钥个数为26!,所以暴力破解几乎不可能,一般采用词频分析。

3.仿射密码

加密函数:E(x)=(ax+b) (mod m)

解密函数:D(x)=a^-1(x-b) (mod m)

解释

x为明文中某编码方式得到的数字

a与m互质

m为编码系统中所有字母个数

破解

1.特别的,a=1时为凯撒密码

一般来讲,采用编码方式一般为26位字母表,所以与26互素且不大于26的个数共\phi \left ( 26 \right )= \phi \left ( 2 \right )*\phi \left ( 13 \right )=12

算上偏移b,密钥空间大概为12*26个,若已知一个参数则可枚举另一个参数得到答案。

2.假设采用字母集为26字母表,x1和x2加密后分别为y1和y2

可知,y1=(ax1+b) (mod 26)

           y2=(ax2+b) (mod 26)

相减得y1-y2=a(x1-x2) (mod 26),即可得到a,进而得到b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值