目录
一、密码学需要实现的功能与目标
二、从发展历史角度
三、古典密码学
四、现代密码学
五、密码体制分类
六、密码技术基础
七、非对称密码体制
八、基于证书的公钥分发机制
九、对称与非对称加密体制特性对比
十、RSA算法
十一、数字签名
十二、ECDSA签名算法
十三、EDDSA签名算法
十四、哈希函数附加特点
十五、MD5算法
1、MD5与SHA1的比较
2、SHA-256算法
十六、《密码法》对密码分类
十七、国密算法在区块链中的应用和挑战
十八、商用密码的未来发展
十九、当前场景
二十、期末考试题型
一、密码学需要实现的功能与目标
1、机密性
2、认证
3、完整性
1、完整性是网络信息未经授权不能被改变的特性。
2、完整性可以防止主动攻击。即在通信过程中,即使发送方和接收方可以互相鉴别对方,但他们还需要确保其通信的内容在传输过程中未被改变。
4、不可否认性
1、用于防止通信双方中的某一方对所传输消息的否认,即一个消息发出后,接收者能够证明这一消息的确是由通信的另一方发出的。
2、类似地,当一个消息被接收后,发出者能够证明这一消息的确已经被通信的另一方接收了。
5、可用性(访问控制)
访问控制的目标是防止对网络资源的非授权访问,控制的实现方式是认证,即检查欲访问某一资源的用户是否具有访问权,其目的是保证信息的可用性。
二、从发展历史角度
密码学可以大致分为古典密码学、近代密码学和现代密码学三个阶段。
三、古典密码学
古典密码中的密码体制——代替密码
首先构造一个或多个密文字母表,然后用密文字母表中的字母或字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身内容改变了。这样的编码称为代替密码。代替密码通常可分为单表代替密码和多表代替密码。
1.单表代替密码
只使用一个密文字母表,并且用密文字母表中的一个字母来代替明文字母表中的一个字母。 典型:凯撒密码、棋盘密码、乘法密码 、仿射密码 等
①单表代替—凯撒密码
凯撒(Caesar)密码是公元前一世纪在高卢战争时被使用的,它是将英文字母向前移动k位,从而生成字母替代的密表。
k是文字密钥。
K=5时,
密文:bjqhtrj
明文:welcome
凯撒密码明密文对应表
2.多表代替密码
构造多个密文字母表,在密钥控制下用相应密文字母表中的一个字母来代替明文字母表中的一个字母,一个明文字母有多种代替。最著名的多表代替算法是法国人1858年提出的vigenere密码,该密码在随后的时间里被称为不可破译的密码。
若代替表为vigenere方阵
明文: a b c d e f g h i j k l m n o p q r s t u v w x y z
密钥:
a a b c d e f g h i j k l m n o p q r s t u v w x y z
b b c d e f g h i j k l m n o p q r s t u v w x y z a
c c d e f g h i j k l m n o p q r s t u v w x y z a b
d d e f g h i j k l m n o p q r s t u v w x y z a b c
e e f g h i j k l m n o p q r s t u v w x y z a b c d
f f g h i j k l m n o p q r s t u v w x y z a b c d e
………
z z a b c d e f g h i j k l m n o p q r s t u v w x y
举例:
基本密钥: face(5024)
明文:internet(50245024)
密文:nnviwngx
解说:
1、Vigenere密码的代替规则是用明文字母在Vigenere方阵中的列,和密钥字母在Vigenere方阵中的行的交点处的字母来代替该明文字母。
2、转轮机是vigenere密码的一个实现。20世纪20年代出现了转轮密码,机械转轮用线连起来完成通常的密码代替。
四、现代密码学
哈希函数
Hash函数在密码学中有广泛的应用,可以验证信息的完整性、不可篡改性,在区块链系统中也获得了广泛使用。
密码学分支–密码分析学
- 唯密文分析法
- 已知明文分析法
- 选择明文分析法
- 选择密文分析法
五、密码体制分类
按操作方式分类
按照对明文的处理方法分类
按照使用密钥的数量分类
六、密码技术基础
密钥长度
公钥密码基本是基于单向陷门函数而设计的。当前主流的公钥加密算法RSA就是基于分解一个大数的难度,这个大数一般是两个大素数的乘积。
七、非对称密码体制
非对称密码理论基础
1.非对称密码方案组成
八、基于证书的公钥分发机制
什么是CA” />由于证书上有权威机构的签字,所以大家都认为证书上的内容是可信任的;又由于证书上有拥有者的身份信息,别人就很容易地知道公钥的主人是谁。
权威机构就是电子签证机关,即CA。CA(Certificate Authority)也拥有一个证书(内含公钥),也有自己的私钥,所以它有签字的能力。网上用户通过验证CA的签字从而信任CA,任何人都应该可以得到CA的公钥,用以验证它所签发的证书。
九、对称与非对称加密体制特性对比
十、RSA算法
十一、数字签名
数字签名是用于验证数字和数据真实性和完整性的加密机制。数字签名使用非对称密码术,意味着可以通过使用公钥与任何人共享信息。
十二、ECDSA签名算法
一、ECDSA概述
椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟。与普通的离散对数问题(DLP)和大数分解问题(IFP)不同,椭圆曲线离散对数问题没有亚指数时间的解决方法。因此椭圆曲线密码的单位比特强度要高于其他公钥体制。
数字签名算法(DSA)在联邦信息处理标准FIPS中有详细论述,称为数字签名标准。它的安全性基于素域上的离散对数问题。可以看作是椭圆曲线对先前离散对数问题(DLP)的密码系统的模拟,只是群元素由素域中的元素数换为有限域上的椭圆曲线上的点。椭圆曲线离散对数问题远难于离散对数问题,单位比特强度要远高于传统的离散对数系统。因此在使用较短的密钥的情况下,ECC可以达到于DL系统相同的安全级别。这带来的好处就是计算参数更小,密钥更短,运算速度更快,签名也更加短小。
二、ECDSA原理
ECDSA是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC,最后签名出来的值也是分为r,s。
签名过程如下:
1、选择一条椭圆曲线Ep(a,b),和基点G;
2、选择私有密钥k(k<n,n为G的阶),利用基点G计算公开密钥K=kG;
3、产生一个随机整数r(r<n),计算点R=rG;
4、将原数据和点R的坐标值x,y作为参数,计算SHA1做为hash,即Hash=SHA1(原数据,x,y);
5、计算s≡r – Hash * k (mod n)
6、r和s做为签名值,如果r和s其中一个为0,重新从第3步开始执行
验证过程如下:
1、接受方在收到消息(m)和签名值(r,s)后,进行以下运算
2、计算:sG+H(m)P=(x1,y1), r1≡ x1 mod p。
3、验证等式:r1 ≡ r mod p。
4、如果等式成立,接受签名,否则签名无效。
十三、EDDSA签名算法
EDDSA(Elliptic Curve Digital Signature Algorithm)是一种基于椭圆曲线的数字签名算法,用于生成和验证数字签名。它是基于Edwards曲线的变种Ed25519的签名算法。
EDDSA的签名过程如下:
1. 选择一个Edwards曲线和相关的参数。常用的是Ed25519曲线,它使用的是255位的素数字段。
2. 生成一个私钥(private key),通常是一个随机数。私钥是一个大整数,用于计算公钥和生成签名。
3. 通过私钥计算对应的公钥(public key)。公钥是曲线上的一个点,用于验证签名的有效性。
4. 要签名的消息首先需要进行哈希处理,得到一个固定长度的摘要。
5. 使用私钥和摘要作为输入,通过一系列的计算步骤生成签名。
6. 签名包括两个部分:R(曲线上的一个点)和s(一个整数)。R是通过私钥和摘要计算得到的,s是根据R、私钥和摘要计算得到的。
7. 将摘要、R和s组合成最终的签名。
验证签名的过程如下:
1. 使用公钥、摘要和签名作为输入,通过一系列的计算步骤验证签名的有效性。
2. 验证过程包括检查R是否为曲线上的有效点,以及根据R、公钥和摘要计算得到的s是否等于签名中的s。
如果验证成功,表示签名是有效的,否则表示签名无效。
EDDSA算法具有高效性、安全性和抗侧信道攻击的特点,被广泛应用于密码学和安全领域。
十四、哈希函数附加特点
- 碰撞阻力大
- 隐秘性(Hiding)强
- 解题友好
十五、MD5算法
输入任意长度的信息,经过处理,输出为128位的信息(数字指纹);
不同的输入得到不同的输出(唯一性);
根据128位的输出结果不可能反推出输入的信息(不可逆)。
1、MD5与SHA1的比较
差异处 | MD5 | SHA1 |
摘要长度 | 128位 | 160位 |
运算步骤数 | 64 | 80 |
基本逻辑函数数目 | 4 | 4 |
常数数目 | 64 | 4 |
2、SHA-256算法
SHA-256算法的输入是最大长度小于2的64次方位的消息,输出是256位的消息摘要,输入消息以512位的分组为单位进行处理。
十六、《密码法》对密码分类
十七、国密算法在区块链中的应用和挑战
十八、商用密码的未来发展
密码的作用,已经从传统的通信密码保障拓展到了信息化密码保障,正在逐步拓展到网络空间密码保障;已经从最初的战争工具,拓展为生产、生活工具;已经从维护国家安全,延伸到了推动经济社会发展、保护人民群众利益的层面。
密码作为保障网络空间安全的核心技术和基础支撑,应加强与物联网、云计算、大数据、人工智能、区块链等新兴信息技术的融合发展,肩负起助力我国在新兴信息技术领域实现“换道超车”,改变网络空间争夺格局,构建可信可管可控数字世界的历史使命,助力数字经济安全和发展、助力国家治理体系和治理能力现代化。
十九、当前场景
商用密码管理体制尚不健全
密码算法基础研究薄弱
产业链支撑不足
产业环境角度
产业环境角度
二十、期末考试题型
一、选择20个30分,
二、判断题10个10分,
三、填空题10个10分,
四、简答题:3个30分(简答题:哈希函数和ecdsa算法。),
1、哈希函数:
Hash函数在密码学中有广泛的应用,可以验证信息的完整性、不可篡改性,在区块链系统中也获得了广泛使用。
2、ecdsa算法:
假设:
以下是一些关于 ECDSA 签名算法的期末考试简答题示例:
1. 请简要解释 ECDSA 签名算法的工作原理。
2. 讨论 ECDSA 算法的安全性,特别是与椭圆曲线离散对数问题的关系。
3. 请列举 ECDSA 在实际应用中的一些场景,并解释为什么 ECDSA 是适用的选择。
4. 讨论 ECDSA 算法的一些缺点和挑战,例如参数选择、实现安全性和计算复杂性等方面的考虑。
请根据你对 ECDSA 签名算法的理解,分别回答上述问题。确保你的回答准确、简明扼要,并且能够清晰地表达你的观点。
以下是对上述问题的标准答案:
1. ECDSA 签名算法的工作原理是基于椭圆曲线离散对数问题。在签名生成过程中,使用私钥对消息进行哈希,并生成一个数字签名。然后,使用相应的公钥来验证签名的有效性。签名生成和验证过程涉及到多个数学运算,包括点的加法、标量乘法和哈希函数的应用。
2. ECDSA 算法的安全性建立在椭圆曲线离散对数问题的难解性上。该问题指的是在椭圆曲线上找到满足给定条件的离散对数值的困难性。由于该问题的难解性,攻击者无法通过已知的公钥和签名来推导出相应的私钥,从而保证了签名的安全性。
3. ECDSA 在实际应用中具有广泛的场景,包括数字货币的交易验证、安全通信中的身份认证和数据完整性保护等。由于 ECDSA 算法具有较短的签名长度、高效的计算性能和较小的密钥尺寸要求,使其成为许多应用领域的理想选择。
4. ECDSA 算法也存在一些缺点和挑战。其中之一是参数选择的重要性,不当的参数选择可能导致安全性降低。此外,实现 ECDSA 算法时需要注意侧信道攻击和实现安全性方面的考虑。另外,ECDSA 算法的计算复杂性较高,特别是在较大的椭圆曲线上进行运算时,需要更多的计算资源。
五、计算题2个20分(计算题:rsa和古典密码学。)
一、rsa
二、古典密码学