密码学基本理论
密码学概况
密码学基本概念
密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下,识别出明文的科学。所谓明文是指需要采用密码技术进行保护的消息,而密文则是指用密码技术处理过的明文的结果,通常称为加密消息,将明文转换为密文的过程称作加密,其逆过程,即由密文恢复出原明文的过程称为解密,加密过程所使用的一组操作运算规则称作加密算法,而解密过程所使用的一组操作运算规则称为解密算法。加密算法和解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥。
密码分析攻击类型
唯密文攻击
密码分析者只拥有一个或多个同一密钥加密的密文,没有其他可利用的信息
已知明文攻击
密码分析者仅知道当前密钥下的一些明文及所对应的密文
选择明文攻击
密码分析者能够得到当前密钥下自己选定的明文所对应的密文
密文验证攻击
密码分析者对于任何选定的密文能够得到该密文是否合法的判断
选择密文攻击
除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文
密码体制分类
私钥密码体制
私钥密码体制又称为对称密码体制,该体制的特点是加密和解密所使用的密钥相同。
私钥密码体制的缺陷
密钥分配问题
发送者和接受者必须事先通过安全通道交换密钥,以便在发送和接受时能够提供使用的密钥
密钥的管理问题
假设有那个使用者,使用者之间互相共享一个密钥,则共有n(n-1)/2个密钥,如果n很大,密钥将多到无法处理。
无法认证源
在私钥体制中,A和B拥有相同的加解密能力,因此使用者B无法证实收到的A发来的消息是否确实来自A。
公钥密码体制
公钥密码体制又称为非对称密码体制,其基本原理是在加密和解密过程中使用不同的密钥处理方式,其中加密密钥可以公开,只需要安全存放解密密钥,在安全性方面,即使公开加密算法,通过加密密钥推知解密密钥也是计算不可行的。
公钥密码体制的优点
- 密钥分发方便,能以公开的方式分配密钥
- 密钥保管量少,网络中的消息发送方可以公用一个公开加密密钥,从而减少密钥数量,只要接收方的解密密钥保密,就能实现消息的安全性。
- 支持数字签名。
三种公钥密码体制
目前,有三种公钥密码体制类型被证明是安全和有效的,即RSA体制、RLGamal体制及椭圆曲线密码体制。
混合密码体制
混合密码体制利用公钥密码体制分配私钥密码体制的密钥,消息的收发方共用这个密钥,然后按照私钥密码体制的方式,进行加解密运算。
常见密码算法
#DES#
- DES(Data Encryption Standard)数据加密标准的简称。
- 支持64 bit明文块加密
- 密钥长度为56 bit
#3DES#(Triple DES)
- 3DES采用TDEA(Triple Data Rncryption Algorithm)
- TDEA的工作机制是使用DES对明文进行“加密-->解密-->加密”操作
- 64 bit明文块加密
- 密钥长度56*3 bit
- Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,Input代表明文输入,Output代表密文输出,加密过程如下:
-
解密过程:
#IDEA#
- IDEA(International Data Encryption Algorithm)是国际数据加密算法的简记
- 分组加密处理算法
- 明文和密文分组都是64 bit
- 密钥长度为 128 bit
- 既可以用于加密又可以用于解密
- 算法思路是“混合使用来自不同代数群中的运算”
#AES#
- AES(Advanced Encryption Standard)高级加密标准
- 对称算法
- 至少支持128 bit长的分组
- 密钥长度至少为128、192和256 比特
- 选择Rijindael作为AES
#S盒置换#
S盒是将48比特压缩成32比特,S盒接受特定数量的输入48比特,经过8个盒将其转换为32比特输出
s8盒为例,输入110011,第一位和第六位(最高位和最低位)组合为11(二进制),转换为十进制为3,则在s8盒中行号为3。接下来我们计算列,原始数据第二位到第五位为1001(二进制),转换为十进制为9,则在s8盒中列号为9。s盒8的03行09列的数字为12,转换为二进制为1100,因此用二进制1100来代替110011
#RSA#
RSA是非对称算法,公钥和私钥都可用于加密消息,用于加密消息的密钥和解密消息的密钥相反,RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。
目前,SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名功能。
RSA算法基于大整数因子分解的困难性
- 第一步,生成两个大素数p和q
- 第二步,计算这两个大素数的乘积 n=pq
- 第三步,计算小于n且与n互素的整数的个数,即欧拉函数φ(n)=(p-1)(q-1)
- 第四步,选取一个随机数e,且满足1<e<φ(n),并且e和φ(n)互素,即gcd(e,φ(n))=1
- 第五步,计算d=e^(-1) mod φ(n)
- 第六步,保密d,p和q,而公开n和e,即n和e作为公钥,d作为私钥
国产密码算法
#SM1# 分组密码算法
- 对称加密算法
- 分组长度和密钥长度都为128 bit
#SM2# 椭圆曲线公钥密码算法
- 非对称加密
- 用于公钥加密算法、密钥交换协议、数字签名算法
- 国家标准推荐使用素数域256位椭圆曲线
#SM3# 密码杂凑算法
- 消息m长度l<2^64
- 经过填充、迭代压缩、生成杂凑值,杂凑值输出长度为256比特
- SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等
#SM4# 分组算法
- 分组长度为128bit
- 密钥长度为128bit
- 加密算法与密钥扩展算法采用32轮非线性迭代结构
- 数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序
#SM9 # 标识密码算法
- 在标识密码系统中,用户的私钥有密钥生成中心(KGC)根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,因而用户不需要通过第三方保证其公钥的真实性。
- 可支持实现公钥加密、密钥交换、数字签名等安全功能
Hash函数与数字签名
#Hash#函数
杂凑函数简称Hash函数,它能够将任意长度的信息转换成固定长度的哈希值(又称摘要和消息摘要),并且任意不同消息或文件所生成的哈希值是不一样的。
主要用于保护消息或文件的完整性和密码信息的安全存储
Hash算法
Hash算法又称杂凑算法、散列算法、数据摘要算法或哈希算法。
#MD5#算法
- MD5(Message Digest Algorithm-5)
- 以512位数据块为单位来处理输入,产生128位的消息摘要
- 用于文件和消息的完整性校验,密码信息的安全存储
#SHA#算法
- SHA(Secure Hash Algorithm)
- SHA-1以512位数据块为单位来处理输入,产生160位的哈希值
- 已发布的版本有SHA-2、SHA-3
- 哈希值长度有:SHA-224、SHA-256、SHA-384、SHA-512
#SM3#国产算法
- 该算法消息分组长度为512比特,杂凑值为256比特
- 采用Merkle-Damgard结构
#数字签名#
数字签名(Digital Signature)是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。
数字签名具有与手写签名一样的特点:
- 可信的
- 不可抵赖
- 不可伪造
- 不可重用
- 不可修改
数字签名至少满足三个条件:
- 非否认。签名者事后不能否认自己的签名
- 真实性。接受者能验证签名,而任何其他人都不能伪造签名
- 可鉴别姓。当双方关于签名的真伪发生争执时,第三方能够解决双方之间发生的争执
- 数字签名方案
- 签名算法(密钥保密)
- 验证算法(密钥公开)
- 典型数字签名方案
- RSA签名体制
- Rabin签名体制
- ELGamal签名体制
- DSS(Data Signature Standard)
签名基本流程
验证过程
密码管理与数字证书
密码管理
- 密码管理
- 密钥管理
- 密钥生成
- 密钥存储
- 密钥分发
- 密钥使用
- 密钥更新
- 密钥撤销
- 密钥备份
- 密钥恢复
- 密钥销毁
- 密钥审计
- 密码管理政策
- 密码
- 核心密码
- 普通密码
- 商用密码
- 密码测评
- 安全性
- 合规性
- 商用密码检测中心
- 商用密码产品密码检测
- 信息安全产品认证密码检测
- 含有密码技术的产品密码检测
- 信息安全等级保护商用密码测评
- 商用密码行政执法密码鉴定
- 国家电子认证根CA建设和运行维护
- 密码技术服务
- 商用密码检测标准规范制定
#数字证书#
数字证书(Digital Certificate)也称公钥证书,是由证书认证机构(CA)签名的包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构。
数字证书基本信息域:
序号 项目名称 描述 1 version 版本号 2 serialNumber 序列号 3 signature 签名算法 4 issuer 颁发者 5 validity 有效日期 6 subject 主体 7 subjectPublickeyinfo 主体公钥信息 8 issuerUniqueID 颁发者唯一标识符 9 subjectUniqueID 主体唯一标识符 10 extensions 扩展项
用户证书实例
CA
CA数字证书认证系统的简称,一般基于PKI技术建立
#CA#提供的服务
- CA提供的服务
- 申请
- 审核
- 签发
- 查询
- 发布
- 吊销
数字证书认证系统的构成及部署
数字证书认证系统逻辑上可分为核心区、服务区、管理区
安全协议
#Diffie-Hellman#密钥交换协议
DH密钥交换协议基于求解离散对数问题的困难性,即对于下述等式:
#SSH#
Secure Shell,即安全外壳
密码学网络安全应用
主要用于以下五方面:
- 身份鉴别
- 访问控制
- 加密传输
- 加密存储
- 完整性校验
分类:
密码学
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效