admin管理员组文章数量:1662626
写在前面:
结合最近的工作与学习,我决定把日常学习的内容进一步总结形成文档,放在这里方便时刻查看,也能分享帮到有需要的小伙伴,内容由我整理自各类书籍与互联网博文,未经允许禁止转载,如有侵权联系我删除,谢谢
上一期:商密学习(1.1): 密码基础知识-CSDN博客https://blog.csdn/m0_51744133/article/details/140498786?spm=1001.2014.3001.5502
目录
1.4 密码算法
对称密码算法
公钥密码算法
密码杂凑算法
密码算法分析概要
1.5 密钥管理
密钥生命周期管理(密钥管理的核心)
对称密钥管理
公钥基础设施
数字证书结构
1.4 密码算法
现代密码学理论中,算法是密码技术的核心。分为对称密码算法、公钥密码算法和密码杂凑算法三个类别。
图4 密码算法分类
对称密码算法
两种主要形式:序列密码(流密码)和分组密码(块密码)
序列密码:将密钥和初始向量(Initial Vector,IV)作为输入,通过密钥流生成算法输出密钥流(扩展密钥序列),然后将明文序列与密钥流进行异或,得到密文序列。特点在于密钥流可在明文序列到来前生成,加密操作只需一次异或,执行速度快,占用资源少。
分组密码:对明文信息进行分组,将明文分组、密钥、初始向量一同输入,通过分组加密算法输出密文分组。主要有七种工作模式
ECB模式将明文分组直接单独进行加密得到密文分组。 直接加密明文分组
CBC模式将明文分组先与前一个密文分组(或IV)异或后再加密得到密文分组。 对明文分组与前一个明文分组的异或结果加密
CFB模式将前一个密文(或 IV)进行加密后再与明文异或得到密文。 先加密前一个密文再与明文异或
OFB模式将 IV 进行加密得到密钥流,再将该密钥流与明文异或得到密文。 先生成密钥流再与明文异或CTR模式将计数器加密后再与明文分组异或得到密文分组。
其中,CFB、OFB、CTR三种模式属于流密码。
详见分组加密算法的几种工作模式 - 十一度 - 博客园 (cnblogs)https://wwwblogs/11sgXL/p/13607083.html
序列密码算法:
ZUC(祖冲之密码算法)——密钥长度128bit,由128bit种子密钥和128bit比特初始向量共同产生32bit位宽密钥流。算法结构三层逻辑,上层16级线性反馈移位寄存器(LFSR),中间层比特重组(BR),下层非线性函数F。
基于ZUC的两种算法包括机密性算法(128-EEA3)和完整性算法(128-EIA3)
GM/T 0001.1-2012:gmbz/main/viewfile/20180117202410524608.html
chacha20算法——国际算法,密钥长度256bit,安全强度256
分组密码算法:
SM4——128bits密钥,32轮运算,加密过程与解密过程完全一致,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。密钥长度和分组长度均为128bits、32轮非平衡Feistel网络结构。
GM/T 0002-2012:gmbz/main/viewfile/20180108015408199368.html
DES算法——分组长度为56bit密钥+8bit奇偶校验位,16圈迭代加密64bit明文的分组密码算法
AES算法——分组长度固定128bit,128bit、192bit、256bit秘钥,支持CBC模式。16字节(一字节8bit)密钥对应10轮,24字节密钥对应12轮,32字节对应14轮
SM1 算法——分组长度为128位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,仅以IP核的形式存在于芯片中
公钥密码算法
打破了加解密使用相同密钥的限制,解决密钥管理难题,包括公钥加密和私钥签名两种主要用途。一般建立在公认的计算困难问题之上。
公钥密码体制包括基于大整数因子分解问题困难性的RSA密码算法;基于离散对数(包括有限域的离散对数问题,如ElGamal;椭圆曲线上的离散对数问题,如SM2);后量子密码(如基于格的密码)
公钥加密算法:运算操作复杂度高,一般比对称密码算法加密速度慢,主要用于短数据的加密,如建立共享密钥。
数字签名算法:主要用于确认数据完整性、签名者身份真实性、签名行为不可否认性等。使用私钥签名,公钥进行验证。
SM2——基于椭圆曲线上的离散对数困难问题,包括:数字签名算法、密钥交换协议、公钥加密算法三部分,私钥256bits,公钥512bits,引入了随机数(需要保密),密文随机,密文比明文长96bytes,签名长度512bits(签名+密钥)
SM9——标识密码将用户的标识(如邮件地址、手机号码、QQ号码等)作为公钥,省略了交换数字证书和公钥过程,使得安全系统变得易于部署和管理,非常适合端对端离线安全通讯、云端数据加密、基于属性加密、基于策略加密的各种场合。
RSA——基于大整数因子分解难题,实际应用时确保两个素数随机产生,计算乘积n时用了相同的素数则通过计算公因子方法就可将n进行因子分解。
密码杂凑算法
密码杂凑算法也称作“散列算法”或“哈希算法”,现行业内统称密码杂凑算法,简称“杂凑算法”或“杂凑函数”。密码杂凑算法对任意长度的消息进行压缩,输出定长的消息摘要或杂凑值。
杂凑算法的性质
- 抗原像攻击(单向性):给定杂凑值h,找到消息M使得h=H(M)是困难的。杂凑函数是单向的。
- 抗第二原像攻击(弱抗碰撞性):为一个给定的消息M1找出一个输入M2使得H(M1)=H(M2)在计算上是困难的。输入的微小变化会使得输出的杂凑结果有很大不同。
- 强抗碰撞性:找到两个消息M1、M2使得H(M1)=H(M2)是困难的。
杂凑算法有多种构造方式,常见Merkle-Damgard(M-D)结构和海绵结构
M-D结构:MD5、SHA-1、SHA-2和SM3
海绵结构:SHA-3
若压缩函数抗碰撞,则杂凑算法抗碰撞(其逆不一定为真)
杂凑算法最直接应用:产生消息摘要,在不安全信道不能独立验证完整性,要与密钥配合使用,称为HMAC(Keyed-hash Message Authentication Code),此外也常与公钥密码算法一同使用产生数字签名。
MD5 不安全——512bits分组,生成128bits摘要值(16字节)
SHA-1 不安全——生成160bits摘要值(20字节),SHA-1的变体可以产生192bit和256bit的消息摘要。
SHA-2——(224bits、256bits(32字节)、384bits、512bits四种输出)
SHA-3 目前无有效攻击
SM3算法:分组长度是512bit,生成256bit杂凑值(32字节)。输出长度为256bits。对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,生成长度为256比特的杂凑值
HMAC(有密钥的杂凑)密码算法,HMAC计算时调用了2次完整的杂凑函数。
密码算法分析概要
柯克霍夫斯(Kerckhoffs)原则:评估一个算法安全性时,必须假定攻击者不知道密钥但知道算法所有细节。基于此,密码算法的安全性基于密钥的保密而不是所用算法的隐蔽性。
密码分析按照攻击者获取信息能力分为唯密文攻击、已知明文攻击、选择明文攻击和选择密文攻击四种方式。
唯密文攻击(Ciphtext Only Attack,COA)只知道密文,推出明文或密钥,一般用穷举攻击。
已知明文攻击(Known Plaintext Attack,KPA)知道部分的明文和密文对,推出密钥和加密算法。
选择明文攻击(Chosen Plaintext Attack,CPA)知道明文就知道密文,目标为推出密钥。
选择密文攻击(Chosen Ciphertext Attack,CCA)知道密文就知道明文,目标为推出密钥。
对称密码的分析:差分类攻击和线性类攻击
差分类攻击:特定区别的明文加密后的变化传播攻击算法
密码分析(一):差分密码分析-CSDN博客https://blog.csdn/weixin_43734797/article/details/124055427
线性类攻击:已知明文攻击,寻找明密文之间“有效“逼近表达式,恢复密钥
密码分析(二):线性密码分析-CSDN博客https://blog.csdn/weixin_43734797/article/details/124324247
公钥密码的分析
公钥密码的设计一般都做到可证明安全,即证明底层数学问题困难,上层公钥密码安全,因此针对公钥密码的分析集中于对底层困难问题的分析
杂凑函数的分析
与分组密码分析常相通,差分攻击、模差分攻击、中间相遇攻击等,围绕杂凑三个性质展开
侧信道分析
实际应用中的密码系统会通过物理装置泄露信息,如能量消耗、电磁辐射、运行时间,无需实施入侵和破解密码算法就能分析获取密钥等敏感数据,侧信道分析对密码算法实现的实际安全构成巨大威胁。
1.5 密钥管理
密钥生命周期管理(密钥管理的核心)
密钥生命周期——密钥从生成到销毁的时间跨度。一般而言使用频率越高要求生命周期尽量短,若密钥泄露其生命周期应立即终止并销毁密钥。
1.密钥生成:随机数直接生成、密钥派生函数(KDF),在KDF中①由共享秘密派生密钥。②从主密钥派生密钥(密钥分散)。
2.密钥储存:密码产品中/加密后存在通用储存器
3.密钥导入导出(备份归档、密钥分发):①加密传输,非对称加密密钥->数字信封,SM2加解密有完整性校验,可直接用于密钥加密传输。②知识拆分,将密钥拆分为分量导出,导入时进行合成。知识拆分不应降低密钥安全性,安全三/四级需要走可信信道。
4.密钥分发(产品间密钥共享):①人工分发:只适用少量,一般用于根密钥。②自动分发:数字信封,对称密钥加密。
5.密钥使用:①同一密钥不同用途会降低安全性。②不同用途的密钥安全要求也不同。③应限制密钥用途以降低泄露危害。
6.密钥备份与恢复:保护密钥可用性,备份密钥处于未激活状态,完成恢复后可激活。
7.密钥归档:出于解密和验证历史的需要对生命周期结束的密钥归档(签名私钥不归档)
8.密钥销毁:销毁所有(不包括归档)的副本。①正常销毁:达到使用截止时间。②应急销毁:已泄露或有泄露风险。(对于公钥体系,私钥销毁公钥撤销)
图5 密钥生命周期
详见:密钥管理——密钥生命周期管理-CSDN博客https://blog.csdn/fwy000305/article/details/125278123
对称密钥管理
相对于公钥管理,对称密钥管理最具特色的是对称密钥的分发,即通信双方建立相同的对称密钥进行安全通信。
点到点结构:通信双方共享一个人工分发的KEK(Key Encrypting Key,密钥加密密钥),双方需要通信时,通信发起方产生新的DK(Data Key, 数据密钥,有时也称会话密钥),用KEK加密DK,并将加密后的DK发送给另一方,实现DK的在线自动建立。
缺点:双方手动建立KEK,n个成员组网就有n(n-1)/2个KEK。大型网络中密钥分发存在问题。
基于密钥中心的结构:每个通信方和密钥中心共用一个KEK,通信双方之间无KEK,n个成员组网只有n个KEK。
两种密钥中心:密钥转换中心(Key Transfer Centre,KTC),DK 由发起方产生;密钥分发中心(Key Distribution Centre,KDC),DK由KDC产生。
GM/T 0051-2016 gmbz/main/viewfile/20180110030656385882.html
公钥基础设施
公钥基础设施(Public Key Infrastructure,PKI)是基于公钥密码技术用于提供信息保密性、信息来源真实性、数据完整性、行为不可否认性等安全服务。
PKI主要解决公钥属于谁的问题,谁拥有公钥配对的私钥。
PKI系统组件
基于由CA构建的信任,完成公私密钥的绑定
- 证书认证机构(Certification Authority,CA)具有自己公私钥对,为他人签发证书,用自己私钥证实用户公钥信息
- 证书持有者(Certification Holder)持有证书和证书中公钥对应的私钥。
- 依赖方(Relying Party)使用他人证书来实现安全功能的通信实体。
- 证书注册机构(Registration Authority,RA)作为CA与申请者的交互接口负责信息检查管理工作。审查通过后要求CA签发证书。
- 资料库(Repository)用于实现证书分发,储存,供依赖方下载。
- 证书撤销列表(Certificate Revocation List,CRL)包含所有被撤销证书标识,验证者根据最新CRL判断证书是否被撤销。
- 在线证书状态协议(Online Certificate Status Protocol,OCSP)请求-响应协议,实时检查证书撤销状态。
- 轻量目录访问协议(Lightweight Directory Access Protocol,LDAP)CA将新签发的证书与证书撤销链送到LDAP目录服务器供用户查询下载
- 密钥管理系统(Key Management System,KM)为其他实体提供生成、备份、恢复、托管等功能。
PKI(HTTPS)体系详解 - precedeforetime - 博客园 (cnblogs)https://wwwblogs/precedeforetime/p/13390761.html
数字证书结构
数字证书又称公钥证书,包含公钥持有者信息、公开密钥、有效期、扩展信息以及由CA对以上信息进行的数字签名。
数字证书由三个域组成
- 基本证书域(tbsCertificate)包含主体名称、颁发者名称、主题公钥、证书有效期等信息
- 签名算法域(signatureAlgorithm)包含证书签发机构签发该证书使用算法的标识符
- 签名值域(signatureValue)包含对签名算法域进行签名的结果
GM/T 0015-2023:gmbz/main/viewfile/20240611164502027717.html
数字证书——密码学笔记(六)_数字证书的域-CSDN博客https://blog.csdn/weixin_40397257/article/details/119137514
双证书体系:我国双证书体系中用户拥有两个私钥,签名私钥和加密私钥,签名私钥用户本地生成并专有掌握,对应“签名证书”,加密密钥用于解密和密钥交换,由可信密钥管理中心生成并和用户共同掌握。
下一篇:
商密学习(1.3): 密码协议和密码功能实现-CSDN博客SSL协议是网景公司推出Web浏览器时推出的,旨在保证web传输的重要或敏感数据的安全性的通用协议,采用B/S(浏览器/服务器)架构为典型实现方式,有数据加密、完整性保护、数据源鉴别、抗重放攻击等功能。实现信息来源真实性的核心是鉴别,使用密码技术可安全实现对实体的鉴别,常用方式有①基于对称密码、公钥密码等密码技术的鉴别 ②基于静态口令的鉴别 ③基于动态口令的鉴别 ④基于生物特征的鉴别。作为MQV的一个变种,具有鉴别通信双方真实性能力,通信双方经过两次(可选三次)信息传递过程,计算由双方确定的一个公钥。https://blog.csdn/m0_51744133/article/details/140585126
版权声明:本文标题:商密学习(1.2): 密码算法和密钥管理 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729967351a1217818.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论