3.1 密码学概况
3.1.1 密码学发展简况
密码学是一 门研究信息安全保护的科学,以实现信息的保密性、完整性、可用性及抗抵赖性。密码学主要由密码编码和密码分析两个部分组成。
密码编码学研究信息的变换处理以实现信息的安全保护,而密码分析学则研究通过密文获取对应的明文信息。
目前,密码成为网络与信息安全的核心技术和基础支撑,2005 年 4 月1 日起国家施行《中华人民共和国电子签名法》。2006 年我国政府公布了自己的商用密码算法,成为我国密码发展史上的一件大事。2019 年《中华人民共和国密码法》草案已经发布。
3.1.2 密码学基本概念
密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下,识别出明文的科学。
明文:是指需要采用密码技术进行保护的消息。
密文:是指用密码技术处理过明文的结果,通常称为加密消息。
加密:将明文变换成密文的过程称作加密,
解密:其逆过程,即由密文恢复出原明文的过程称作解密。
加密算法:加密过程所使用的一组操作运算规则称作加密算法,
解密算法:而解密过程所使用的一组操作运算规则称作解密算法。
加密和解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥。
3.1.3 密码安全性分析
根据密码分析者在破译时已具备的前提条件,人们通常将密码分析攻击类型分为五种,分别叙述如下。
(1) 唯密文攻击(ciphertext-only attack) 。密码分析者只拥有一个或多个用同一个密钥加密的密文,没有其他可利用的信息。
(2) 已知明文攻击(known-plaintext attack) 。密码分析者仅知道当前密钥下的一些明文及所对应的密文。
(3) 选择明文攻击(chosen-plaintext attack) 。密码分析者能够得到当前密钥下自己选定的明文所对应的密文
(4) 密文验证攻击(ciphertext verification attack) 。密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断。
(5) 选择密文攻击(chosen-ciphertext attack) 。除了挑战密文外,密码分析者能够得到
任何选定的密文所对应的明文。
---------------
3.2 密码体制分类
3.2.1 私钥密码体制
私钥密码体制又称为对称密码体制
目前,私钥密码典型算法有 DES 、IDEA 、AES 等 ,其中 DES 是美国早期数据加密标准,现在已经被 AES 取代。
3.2.2 公钥密码休制
公钥密码体制又称为非对称密码体制
公钥密码体制有以下优点。
(1) 密钥分发方便,能以公开方式分配加密密钥。例如,因特网中个人安全通信常将自己的公钥公布在网页中,方便其他人用它进行安全加密。
(2) 密钥保管量少。网络中的消息发送方可以共用 一个公开加密密钥,从而减少密钥数量。只要接收方的解密密钥保密,就能实现消息的安全性 。
(3) 支持数字签名。
目前,有三种公钥密码体制类型被证明是安全和有效的,即 RSA 体制、ELGamal 体制及椭圆曲线密码体制。
3.2.3 混合密码体制
混合密码体制利用公钥密码体制分配私钥密码体制的密钥,消息的收发双方共用这个密钥,然后按照私钥密码体制的方式,进行加密和解密运算。
第一步,消息发送者 Alice 用对称密钥把需要发送的消息加密 。 第二步,Alice 用 Bob 的公开密钥将对称密钥加密,形成数字信封。然后,一起把加密消息和数字信封传送给 Bob 。第三步,Bob 收到 Alice 的加密消息和数字信封后,用自己的私钥将数字信封解密,获取 Alice 加密消息时的对称密钥。第四步,Bob 使用 Alice 加密的对称密钥把收到的加密消息解开。
3.3 常见密码算法
3.3.1 DES
DES (Data Encryption Standard) 是数据加密标准的简称,由 IBM 公司研制 。
TDEA 算法的工作机制是使用 DES 对明文进行“加密一解密一加密”操作,即对 DES 加密后的密文进行解密再加密,而解密则相反。
3.3.2 IDEA
IDEA (International Data EncryptionAlgorithm) 是国际数据加密算法的简记,是一个分组加密处理绑法,其明文和密文分组都是 64 比特,密钥长度为128 比特。
3.3.3 AES (Advanced Encryption Standard)
算法没有密级;算法必须公开披露;算法必须可以在世界范围内免费使用;密码系统支持至少128比特长的分组;密码支持的密钥长度至少128/192和256比特。
3.3.4 RSA
RSA 算法是非对称算法
真题:公钥为(e,n)=(7,55),则私钥d=(?)
根据 e*d = 1 mod ρ(n) 已知n=55,则可推断ρ(n) = (5-1)*(11-1) = 40
则d*7 = 1 mod 40
(d*7-1)/40能整除。算出d = 23
真题:数字信封技术能够保证数据在传输过程中的安全性。
真题:利用公开密钥算法进行加密时,采用的方式是:发送方用公开密钥加密,接收方用私钥解密。
3.3.5 国产密码算法
国产密码算法:是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法,目前已经公布的国产密码算法如下:
SM1 对称加密,分组长度和密钥长度都为128比特。
SM2 非对称加密,用于公钥加密交换协议、数字签名算法。 注:国家标准推荐使用素数域256位椭圆曲线。
SM3 杂凑算法,杂凑值长度为256比特
SM4 对称加密,分组长度和密钥长度都为128比特
SM9 标识密码
---------------
3.4 Hash 函数与数字签名
3.4.1 Hash 函数
hash函数,又称为杂凑函数、散列函数、哈希算法或数据摘要算法,其能够将一个任意长的比特串映射到一个固定长的比特串 。常见的 Hash 算法有 MD5 、SHA 和 SM3 。
3.4.2 Hash 算法
1.MDS 算法:以512 位数据块为单位来处理输入,产生128位的消息摘要,即MD5能产生128比特长度的哈希值。
2.SHA 算法:以512 位数据块为单位来处理输入,产生160位的哈希值,具有比 MD5 更强的安全性 。
3.SM3 国产算法:该算法消息分组长度为512 比特,输出杂凑值长度为 256 比特,采用 Merkle-Damgard(M-D结构)结构。
3.4.3 数字签名
数字签名 (Digital Signature) 是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。
数字签名 至少应满足以下三个条件:
(1) 非否认。签名者事后不能否认自己的签名。
(2) 真实性。接收者能验证签名,而任何其他人都不能伪造签名。
(3) 可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。
一个数字签名方案一般由签名算法和验证算法组成。签名算法密钥是秘密的,只有签名的人掌握;而验证算法则是公开的,以便他人验证。典型的数字签名方案有 RSA 签名体制、 Rabin签名体制、ElGamal 签名体制和 DSS (Data Signature Standard) 标准。
---------------
3.5 密码管理与数字证书
3.5.1 密码管理
密码系统的安全性依赖于密码管理。密码管理主要可以分成三个方面的内容,即密钥管理、密码管理政策、密码测评。
1. 密钥管理
密钥管理主要围绕密钥的生命周期进行,包括密钥生成、密钥存储、密钥分发、密钥使用、密钥更新、密钥撤销、密钥备份、密钥恢复、密钥销毁、密钥审计。
2. 密码管理政策
《商用密码管理条例》,内容主要有商用密码的科研生产管理、销售管理、使用管理、安全保密管理。《中华人民共和国密码法》密码分为核心密码、普通密码和商用密码。
3. 密码测评
密码测评是指对相关密码产品及系统进行安全性、合规性评估,以确保相关对象的密码安全有效,保障密码系统的安全运行。目前,国家设立了商用密码检测中心。
3.5.2 数字证书
数字证书(Digtal Certificate) 也称公钥证书,是由证书认证机构(CA) 签名的包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构。
数字证书基本信息域:
1 version 版本号
2 seria!Number 序列号
3 signature 签名算法
4 issuer 颁发者
5 validity 有效日期
6 subject 主体
7 subjectPublicKeylnfo 主体公钥信息
8 issuerUniqueID 颁发者唯一标识符
9 subjectUniqueID 主体唯一标识符
10 extensions 扩展项
数字证书按类别可分为个人证书、机构证书和设备证书,按用途可分为签名证书和加密证书。
为更好地管理数字证书, 一般是基千 PK.I 技术建立数字证书认证系统(简称为 CA) 。CA 提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务。
数字证书认证系统的构成:主要有目录服务器、OCSP 服务器、注册服务器、签发服务器等。
---------------
3.6 安全协议
3.6.1 Diffie-Hellman 密钥交换协议
3.6.2 SSH
SSH 是 Secure Shell 的缩写,即“安全外壳”,是基于公钥的安全应用协议。
目前,用户为了认证服务器的公钥真实性,有三种方法来实现:
第一种,用户直接随身携带含有服务器公钥的拷贝,在进行密钥交换协议前,读入客户计算机;
第二种,从公开信道下载服务器的公钥和它对应的指纹后,先通过电话验证服务器的公钥指纹的真实性,然后用 HASH 软件生成服务器的公钥新指纹,比较下载的指纹和新生成的指纹,若比较结果相同,则表明服务器的公钥是真实的,否则服务器的公钥是虚假的;
第三种,通过 PKI 技术来验证服务器。
标签:公钥,加密,信息安全,软考,密码,算法,密钥,密文,密码学 From: https://www.cnblogs.com/R-bear/p/17840497.html