目录
一、密码学基础知识
1.密码的定义
2.密码算法
3.对称密码算法
4.非对称密码算法
5.摘要密码算法
二、历史上的密码
1.凯撒密码
2.简单替换密码
三、对称密码
1.ASCII
2.异或
编辑
四、试题
-
一、密码学基础知识
1.密码的定义
-
密码是一种用来混淆的技术,使用者希望将正常的(可识别的)信息转变为无法识别的信息。但这种无法识别的信息部分是可以再加工并恢复和破解的。
- 密码在中文里是“口令”的通称。
- 密码在英文里是“ password ”的通称。
-
密码算法是用于加密和解密的数学函数,密码算法是密码协议的基础。
2.密码算法
密码算法主要可以分为三大类:对称密码算法、公钥密码算法(非对称密码算法)、密码杂凑算法
3.对称密码算法
- 对称算法是指加密秘钥和解密秘钥相同的密码算法,又称为 秘密秘钥算法 或 单密钥算法 。
- 常见的分组密码算法包括 AES、SM1(国密)、SM4(国密)、DES、3DES、IDEA、RC2 等;常见的流密码算法包括 RC4 等。
- AES:目前安全强度较高、应用范围较广的对称加密算法
- SM1:国密,采用硬件实现
- SM4:国密,可使用软件实现
- DES/3DES:已被淘汰或逐步淘汰的常用对称加密算法
- 对称密码算法又分为分组密码算法和流密码算法。
①分组密码算法
又称块加密算法
- 加密步骤一:将明文拆分为 N 个固定长度的明文块
- 加密步骤二:用相同的秘钥和算法对每个明文块加密得到 N 个等长的密文块
- 加密步骤三:然后将 N 个密文块按照顺序组合起来得到密文
②流密码算法
- 又称序列密码算法
- 加密:每次只加密一位或一字节明文
- 解密:每次只解密一位或一字节密文
4.非对称密码算法
- 非对称算法是指加密秘钥和解密秘钥不同的密码算法,又称为 公开密码算法 或 公钥算法,该算法使用一个秘钥进行加密,用另外一个秘钥进行解密。
- 加密秘钥可以公开,又称为 公钥。
- 解密秘钥必须保密,又称为 私钥。
- 常见非对称算法包括 RSA、SM2(国密)、DH、DSA、ECDSA、ECC 等。
-
5.摘要密码算法
摘要算法是指把任意长度的输入消息数据转化为固定长度的输出数据的一种密码算法,又称为散列函数 、 哈希函数 、 杂凑函数 、单向函数 。
MD5加密(加密后长度一样)
摘要算法所产生的固定长度的输出数据称为 摘要值 、 散列值 或 哈希值 ,摘要算法无秘钥。
摘要算法 通常用来做数据完整性的判定,即对数据进行哈希计算然后比较 摘要值 是否一致。
摘要算法主要分为三大类:
MD(Message Digest,消息摘要算法)、SHA-1(Secure Hash Algorithm,安全散列算法)
MAC(Message Authentication Code,消息认证码算法);另国密标准 SM3 也属于摘要算法。
MD 系列:主要包括 MD2、MD4、MD5
- SHA 系列:主要包括 SHA-1、SHA-2 系列(SHA-1 的衍生算法,包含 SHA-224、SHA-256、SHA-384、SHA-512)
- MAC 系列:主要包括 HmacMD5、HmacSHA1、HmacSHA256、HmacSHA384 和 HmacSHA512 算法
-
二、历史上的密码
-
主要介绍历史上几种著名的密码。包括以下内容:
1.凯撒密码
在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。
偏移量为10:Avocat(A→K)
偏移量为13:ROT13(现代还在用)
偏移量为-5:Cassis (K 6)
偏移量为-6:Cassette (K 7)
2.简单替换密码
什么是简单替换密码:将字母表的26个字母,分别与这26个字母本身建立一对一的对应关系,那么无论哪一种对应关系就都可以作为密码来使用。这种将明文所使用的字母表替换为另一套字母表的密码称为简单替换密码。凯撒也可以说是简单替换密码的特例。
Hello → txggb
简单替换密码的密钥总数:26*25*24*...1=403291461126605635584000000
- 凯撒密码的密钥总数:26
3)Enigma(恩尼格玛密码机)
在密码学史中,恩尼格玛密码机(德语:Enigma,又译哑谜机,或“谜”式密码机)是一种用于加密与解密文件的密码机。确切地说,恩尼格玛是对二战时期纳粹德国使用的一系列相似的转子机械加解密机器的统称,它包括了许多不同的型号,为密码学对称加密算法的流加密。
当第一次键入A,灯泡B亮,转子转动一格,各字母所对应的密码就改变了。第二次再键入A时,它所对应的字母就可能变成了C;同样地,第三次键入A时,又可能是灯泡D亮了,但是如果连续键入26个字母,转子就会整整转一圈。
三个转子不同的方向组成了26x26x26=17576种可能性
三个转子间不同的相对位置为6种可能性
连接板上两两交换6对字母的可能性则是异常庞大,有100,391,791,500种
三、对称密码
1.ASCII
ASCII (American Standard Code for Information Interchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
2.异或
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。
将明文A用密钥B进行加密,得到(A⊕B)。
将密文(A⊕B)用密钥B进行解密,得到明文A。
1010进行加密→密钥1111 →加密为0101 →密钥1111解密→得出1010
四、试题
一、密码算法主要分为三大类: 对称密码算法 、 非对称算法 、 摘要算法 。
二、下面关于对称算法是( AFHI ),关于非对称算法是( BEG ),关于密码杂凑算法( CD )。
A、加密秘钥和解密秘钥相同的密码算法。
B、加密秘钥和解密秘钥不同的密码算法。
C、把任意长度的输入消息数据转化为固定长度的输出数据的一种密码算法
D、MD5加密方式。
E、SM2(国密)。
F、SM1(国密)。
G、加密秘钥是公开的,解密秘钥是私有的。
H、加密秘钥是私有的,解密秘钥是私有的。
I、SM4(国密)。
三、1 byte(比特) = 8 bit(字节),1 kb= 1024 byte(字节),1 MB= 1024 KB,1 GB = 1024 MB
四、密码技术主要分为六大类:对称密码、公钥密码、单向散列函数、消息认证码、数字签名、伪随机生成器。
五、对称密码存在秘钥需要配送的问题,公钥密码不存在秘钥需要配送的问题。 (√ )
六、对称密码处理速度比公钥密码处理速度快。 (√ )
七、混合密码是对称密码和公钥密码的优势相结合的方法。 (√ )
试题下载地址:
https://download.csdn.net/download/a350904150/87609465