Cryptography-week1

几个概念:

ciphertext-only attack(唯密文攻击):
攻击者仅知道密文情况下进行的攻击。
chosen-plaintext attack(选择明文攻击):
攻击者拥有加密机的访问权限,可以构造任意明文对应的密文。
known-plaintext attack(已知明文攻击):
攻击者掌握了某段明文 x 和对应的密文y
chosen-ciphertext attack(选择密文攻击):
攻击者掌握加密机的访问权限,可构造任意密文对应的明文。

Perfect Secrecy:
加密策略(Gen, Enc, Dec)和明文空间 M 和密文空间C是完全加密的,当明文空间 M 中任意的分布m,和任意的 cC Pr{C=c}>0 ,有:
Pr{M=m|C=c}=Pr{M=m}

异或XOR 性质
AB=BA
A(BC)=(AB)C
XX=0
X0=X


Lecture1

私钥加密:
定义在明文空间 M 和加密算法(Gen, Enc, Dec)上。
Gen生成密钥k (key)
cEnck(m)
m:=Deck(m)
”表示随机算法取得,即密文 c 是由随机的加密方式得到。”:=”表示确定性的算法取得,即明文 m 是由确定的解密方式得到
对于所有的明文mM和由Gen生成的 k ,有Deck(Enck(m))=m

mod运算
定义 [xmodN] x 除以N的余数。
shift cipher就是运用26个英文字母之一进行简单的移位求余运算。

Kerckhoffs’s principle
加密策略Enc不是秘密的,只有密钥key是秘密的。因此,密钥需要随机选择并保密。
支持这个principle的观点:
1.密钥比秘密的算法更容易保守
2.改变密钥比改变算法更容易
3.标准化

Sufficient key space principle
密钥空间要足够大来避免暴力破解,但足够大的密钥空间并不能保证安全。


Lecture2

Vigenere Cipher
key由字符变成了字符串
例如该算法使用的密钥是10个字符构成的字符串组成的,假设明文为英文,可以根据26个字母出现的频率来进行推测。因为每10个字符的偏移量是一定的,根据每10个字符得到的统计频率,可以猜出密钥。


Lecture3

Attack Vigenere cipher
1.确定密钥长度
2.确定密钥的每一位

1.确定密钥长度
假定明文是英文, pi 为明文中byte i的频率,ASCII中可打印的字符范围是 32i127 ,例如 p97 即为字符’a’的频率。
由于分布不均匀,因此可以根据英文各字母出现的统计频率进行估计。
假定密钥的长度是 N
1.明文每N个字符的移位是相同的。此时得到的 pi 应该是分布不均匀的。
2.统计明文每 M 个字符的频率,应当得到接近均匀的分布。
为了区分上述两种情况

2.确定密钥的每一位
当密钥长度N已知时,从第 i 个字符开始,每间隔N个字符的字符,称为第 i 个密文流,这些字符都是和密钥的同一位进行加密运算的。假定密钥的这一位是B
若密文与 B 的解密运算后得到的字符中含有ASCII字符在32和127之外的,表明B的选取错误,这样的 B 表明明文中含有无法打印的字符。
接下来统计解密后得到的字符中小写字母的频率qa,qb,...,qz,计算:
i=126qipii=126p2i0.065
实际操作中,我们找到使得 i=126qipi 最大的 B <script type="math/tex" id="MathJax-Element-47">B</script>即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值