应用密码学(学习整理、一)

如果你的新的密码系统的强度依赖于攻击者不知道算法的内部机理,你注定会失败。

最好的算法是那些已经公开的,并经过世界上最好的密码分析家们多年的攻击,但还是不能破译的算法;

第一章:基础知识

明文用 M(消息)或 P(明文)表示,它可能是比特流(文本文件、位图、数字化的语 音流或数字化的视频图像)。

加密函数E 作用于 M 得到 密文 C,用数学表示为:
E(M)=C.
相反地,解密函数D 作用于 C 产生 M
D(C)=M.
先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立:D(E(M))=M

密钥用 K 表示。K 可以是很多数值里的任意值。 密钥 K 的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥(即运算都依赖于 密钥,并用 K 作为下标表示),这样,加/解密函数现在变成:
EK(M)=C DK(C)=M.

基于密钥的算法通常有两类:对称算法和公开密钥算法。
对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加/解密密钥是相同的。
公开密钥算法(也叫非对称算法)是这样设计的:用作加密的密钥不同于用作解密的密 钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)。加密密钥叫做公开密钥(简称公钥),解密密钥 叫做私人密钥(简称私钥)。

常用的密码分析攻击有四类:
(1)唯密文攻击。密码分析者有一些消息的密文,密码分析者的任务是恢复尽可能多的明文,或者最好是能推算出加密消息的密钥来;
(2)已知明文攻击。密码分析者不仅可得到一些消息的密文,而且也知道这些消息的明文;
3)选择明文攻击。分析者不仅可得到一些消息的密文和相应的明文,而且密码分析者能选择特定的明文块去加密, 那些块可能产生更多关于密钥的信息;
4)自适应选择明文攻击。在自适应选择密文攻击中,他可选取较小的明文块, 然后再基于第一块的结果选择另一明文块,以此类推;

隐写术是将秘密消息隐藏在其它消息中,这样,真正存在的秘密被隐藏了。
最近,人们在图象中隐藏秘密消息,用图象的每个字节的最不重要的比特代替消息比特。

代替密码就是明文中每一个字符被替换成密文中的另外一个字符:凯撒密码:每一个明文字符都由其右边第3 个字符代替(A 由 D 代替,B 由 E 代替);ROT13 中,A 被N 代替,B 被 O 代替等等,每一个字母是环移13 所对应的字母。

换位密码在换位密码中,明文的字母保持相同,但顺序被打乱了。距离间隔固定组合;

计算机密码算法有多种,最通用的有三种:
——DES(数据加密标准)是最通用的计算机加密算法。DES 是美国和国际标准,它是对称 算法,加密和解密的密钥是相同的。
——RSA(根据它的发明者命名的,即 Rivest,Shamir 和 Adleman)是最流行的公开密钥 算法,它能用作加密和数字签名。
——DSA(数字签名算法,用作数字签名标准的一部分)是另一种公开密钥算法,它不能用 作加密,只用作数字签名。

你可能感兴趣的:(algorithm,Encryption,and,decryption)