第三章 密码学(笔记)

1. 密码学基本概述
  • 将明文变换成密文的过程叫加密,将密文变换成明文的工程叫解密。
  • 加密过程中使用一组操作运算规则称作加密算法,而解密过程中使用一组操作运算规则称作解密算法。
  • 加密和解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥
  • 中国人民共和国密码法于:2020.1.1起实施
2. 密码安全性分析
  • 唯密钥攻击:只有密文其他的啥都不知道,一般用穷举攻击
  • 已知明文攻击:已知部分的明文和密文对,推出密钥和加密算法
  • 选择明文攻击:密码分析者能够选择明文并获得对应的密文,对密码攻击者十分有利,适用于攻击计算机文件系统和数据库系统
  • 密文验证攻击:主要时验证是否合法的判断
  • 选择密文攻击:密码分析者能够选择密文并获得对应的明文,主要攻击公开密码体制,特别时数字证书
3. 密码体制
3.1. 私钥密码体制
  • 私钥密码体制又称为对称密码体制,特点时加密和解密使用相同的密钥
    • 优点:加密速度快,密文紧凑,使用长密钥时难以破解
    • 缺点:密钥分配问题、密钥管理问题,无法认证源
  • 常见的对称算法:DES、3DES、AES、RC4/5、IDEA
  • 对称加密算法的特征:
    • DES:分组加密算法,采用移位+替换方式,速度快,密钥容易产出。分组和密钥长度为64为,有效密钥长度为56位
    • 3DES:使用3DES对文明加密的方式,加密k1-解密k2-加密k3,其中K1和K3是相同的,有效密钥长度位112
    • IDEA:国际数据加密算法,分组加密算法,一般用于PGP,明文和密文分组都是64位,密钥长度为128位
    • AES:高级加密算法,可以通过硬件实现,加密速度快,和3DES一样安全,分组长度为128位,密钥长度支持128,192,256位
3.2. 公钥密码体制
  • 又称非对称密码体制,特点是加密和解密过程中使用不同的密钥处理,其中加密密钥可以公开,而只需要把解密密钥安全保管存放即可。
  • 在安全性上,密码算法即使公开,由加密密钥推知解密密钥也是计算不可行的。
    • 优点:密钥分发方便,密钥保管量少,支持数字签名
    • 缺点:加密速度慢,数据膨胀性高
  • 常见的非对称算法:RSA、Elgamal、ECC
  • RSA算法
  • rsa密码公开密钥(公钥)Ke=<e,n>,保密的解密私钥(私钥)Kd=<p、q、d、φ(n)>
    • 第一步:随机选择2个大素数p和q,p和q是保密的
    • 第二步:计算2个素数的乘机,n = pxq , n是公开的
    • 第三步:计算小于n并且于n互素的整数即 φ(n) =(p-1)(q-1) , φ(n)是保密的
    • 第四步:选取一个随机数e且满足 1<e<φ(n),并且e和φ(n)互素,即gcd(e,φ(n)) =1
    • 第五步:计算d = e⁻¹ mod φ(n)
    • 第六步:加密运算C=M∊ mod n ,解密运算M=Cd mod n

例: n = 33 , e =3 M=20

s1:计算出p、q

p= 3,q = 11

s2:已知 n = 33

s3:φ(n) = (p-1)(q-1)

(3-1)(11-1)=20

s4:已知 e = 3

s5:求d,d=exd-1 mod φ(n)或d = (φ(n) x k+1) /e

方式1:d = exd -1 mod φ(n)

d = 3xd -1 mod 20 #减去1去为了方便整除

d = 3x7 mod 20 #3x7 mod 20 刚好余1

d = 7 #所以d是7

方式2:d = (φ(n) x n+1) /e

d = (20xn+1) / 3 #带入n的正整数除以e得出

d = (20x1+1) /3 #若k为1,那么20的1次方+1除以3得出的就是d

d = 7

s6: 加密数据M,C=M∊ mod n

C= 20,3次方 mod 33

C = 8000 mod 33

C = 14 # 因为(8000-14)/33 = 242

s7:解密数据C, M= Cd mod n

M = 14 ,7次方 mod 33

M = 105413504 mod 33

M = 20 # 因为(105413504-20)/ 33 = 3194348

3.3. 混合密码体制
  • 混合密码体制利用公钥密码体制分配私钥密码体制的私钥,消息的收发共用这个密钥,然后按照私钥密码体制的方式,进行加密和解密运算。
  • 具体工作原理步骤
    • 第一步:用户A用对称密钥加密需要发送的数据。
    • 第二步:用户A用用户B 的公开密钥将对称密钥加密形成数字信封。
    • 第三步:用户B收到用户A的加密消息和数字信封后,用自己的私钥将数字信封解开,获得用户A加密消息时的对称密钥。
    • 第四步:用户B用用户A加密的对称密钥把收到的加密信息解开。
3.4. 国产密码算法
  • SM1:对称加密,分组和密钥长度为128比特
  • SM2:非对称加密,用于公钥加密算法、密钥交换协议、数字签名算法,(椭圆曲线)
  • SM3:杂凑算法,消息分组长度是512比特,输出杂凑值长度为256比特
  • SM4:对称加密,分组和密钥长度为128比特
  • SM9:标识算法。
3.5. (Hash)哈希函数
  • Hash算法又称杂凑算法、散列算法,它能够将任意长度的信息转换成固定长度的哈希(又称数字摘要或消息摘要),且任意不同消息或文件所产生的哈希值不一样。
  • 令h表示哈希函数,则h需要满足以下条件
    • h的输入可以时任意长度的消息或文件M
    • h的输入长度时固定的
    • 给定h和m,计算h(m)时容易的
    • 两个不同的消息M1和M2,使得h(M1)=h(M2)是计算上不可行的。
  • Hash函数的特征:单向性,抗强碰撞性,抗弱碰撞性
  • 常见的Hash算法
    • MD5:以512位数据块来处理,产生128位的信息摘要,常用于文件校验
    • SHA:以512位数据块来处理,产生160位的哈希值,比MD5更加安全
    • SM3:消息和分组长度位512比特,输出256位的摘要
  • Hash、MAC、HMAC对比
    • Hash:能够验证数据的完整性,无法进行用户身份认证,计算过程无密钥参与
    • MAC:能保证数据完整性,同时可以进行用户身份验证,有KEY参与。可以采用Hash或对称加密算法两种技术产生MAC值。
    • HMAC:是MAC的一种,可以验证完整性和身份验证,使用hash函数来构造,HMAC输出长度与Hash长度一样。
4. 数字签名
  • 签名者使用私钥对待签名数据的哈希做密码运算得到的结果,该结果只能用签名者的公钥进行验证,即私钥签名,公钥验证。
  • 数字签名的特点:
    • 不可否认性:签名者事后不能抵赖自己的签名
    • 真实性:接收者能验证签名,而任何其他人不能伪造签名。 (可以解决冒充问题)
    • 可鉴别性:如果当事的双方关于签名的真伪发送争执,能够在公正的仲裁者面前通过验证签名来确认真伪。
    • 不可篡改:私钥不公开,所以无法篡改签名。
  • 典型的数字签名算法:RSA、Rabin 、ELGamal、DSS
5. PKI与数字证书
5.1. PKI(公钥基础设施)
  • 通过PKI证书认证技术,可以验证接入设备的合法性
  • 通过PKI的加密技术,可以保证网络中传输数据的机密性
  • 通过PKI的签名技术,保证数据的完整性、真实性、不可否认性

PKI的体系与架构

  • 用户/终端实体:申请数字证书的客户,可以是个人、团体、机构等
  • RA:负责受理申请、对申请人的合法性进行认证并决定是否批准或拒绝
  • CA:负责证书颁发、管理、撤销,对于小机构CA可以兼并RA的工作
  • 证书/CRL存储库:证书吊销列表,存放过期或者无效证书
5.2. 数字证书
  • 数字证书是由CA创建并颁发,其主要内容包含证书拥有者身份信息及其公钥,由CA使用CA自身的私钥对证书主体进行签名的。
  • 数字证书的具体结构:
    • 版本信息(Version) :证书结构版本信息,目前普遍用的是X.509 V3版本
    • 证书序列号(Serial Number):颁发者分配证书的一个整数,可与颁发者名称一起作为证书唯一标识
    • 签名算法(Signature Algorithm):颁发者颁发证书使用的签名算法
    • 颁发者(Issuer):颁发该证书的设备名称,通常为CA服务器名称
    • 有效期(Validity):包含起始、终止日期,不在有效期内无效
    • 主体名(Subject):证书拥有者的名称,如果和颁发者相同说明是自签
    • 公钥信息(Pubilc key info):用户对外公开的公钥以及公钥算法信息
    • 扩展信息(Extensions):包含证书的用法、CRL发布地址等可选字段
    • 证书签名(Signature) :是由颁发者的私钥进行签名
6. 安全协议
6.1. Diffie-Hellman密钥交换协议
  • 基于求解离算对数问题的困难性,通过交换控制信息,保障通讯双方能生成相同的密钥K,避免密钥在互联网上传输,常用于IPSEC密钥交换。
6.2. SSH协议
  • (Secure Shell)即安全外壳,是基于公钥的安全应用协议,是基于TCP 22的端口。
  • SSH 的三个子协议,实现加密、认证、完整性检测等多种安全服务
    • SSH传输层协议:提供算法协商和密钥交换,并实现服务器的认证,最终形成一个安全的连接,该安全连接提供完整性、保密性和压缩性选项服务
    • SSH用户认证协议:利用传输层的服务来建立,使用传统的口令认证、公钥认证、主机认证等多种认证技术。
    • SSH连接协议:在前面的2个协议基础上,利用已建立的认证连接,并将其分解为多种不同的并发逻辑通道,支持注册会话隧道和tcp转发,而且能为这些通道提供流控服务以及通道参数协商机制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值