编码密码学

编码密码学知识点回顾

距离学完编码密码学已经有一段时间了,当时只是将一些笔记和知识点记录在了纸质的本子上面,今天做一个回顾,也是做一个总结。

  1. 公钥密码 RSA
    加密密钥与解密密钥不相同:(核心思想)
    简化了密钥管理。
    对公钥密码的管理要求:
    1)接受方产生密钥容易
    2)发送方用公钥对消息m产生密文c, c = E p k B [ m ] c= E_{pk_B}[m] c=EpkB[m]
    计算容易。
    3)B用自己的密码对C解密,即: m = D s k B m=D_{sk_B} m=DskB在计算上容易。
    4)敌手对公钥pk_B求私钥SK_b在计算上不可行。
    5)敌手有公钥PK_B和C恢复明文m在计算上不可行。
    RSA算法
    1. 选两个大素数
    2. 计算 n = p ∗ q n=p*q n=pq, ϕ ( n ) = ( p − 1 ) ∗ ( q − 1 ) \phi(n)=(p-1)*(q-1) ϕ(n)=(p1)(q1), ϕ \phi ϕ保密,n公开
    3. 随机选一整数 e ∈ ( 1 , ϕ ( n ) ) e\in(1,\phi(n)) e(1,ϕ(n))满足: g c d ( ϕ ( n ) , e ) = 1 : g c d gcd(\phi(n),e)=1:gcd gcd(ϕ(n),e)=1:gcd标识最大公约数。
    4. 计算 d d d,满足: d ∗ e ≡ 1 ( m o d ϕ ( n ) ) d*e\equiv1(mod\phi(n)) de1(modϕ(n))(私钥d), d ∗ e − k ϕ ( n ) = 1 d*e-k\phi(n)=1 dekϕ(n)=1通过辗转相除可以求出 d d d
      公开公钥 ( e , n ) (e,n) (e,n)
      保密私钥 ( d , n ) (d,n) (d,n)
      加密: C = m e m o d ( n ) C= m^emod(n) C=memod(n)
      解密: m = C d m o d ( n ) m=C^dmod(n) m=Cdmod(n)
  2. 哈希函数(单向哈希函数:MD5,MD4,SHA-1,SHA-256)
    MD5
    1)填充,最后一组的大小为512-64Bit,第一位填充1。其余后各位皆填充为0,填充为数1-512Bit
    2)附加上消息的长度值。留出的64bit用来表示消息被填充前的长度值
    3)缓冲区初始化。对4个寄存器A,B,C,D初始化
    4)压缩函数处理。压缩函数有四轮处理过程。每一轮由16步迭代组成
    5)输出消息摘要,产生128bit消息摘要。
    消息M被分为512bit长的快,每个快又划分为十六个32bit的字块。
    FF(A,B,C,D,M[K],S,T[I]):
    B ← B + ( ( A + F ( B , C , D ) + M [ k ] + T [ i ] ) < < S ) B\leftarrow B+((A+F(B,C,D)+M[k]+T[i])<<S) BB+((A+F(B,C,D)+M[k]+T[i])<<S)
    GG,HH,II也都是类似的。使用Little-endian方式存储。
    SHS-1:(输入消息长度为M)
    1)压缩函数 : { A , B , C , D , E } ← { ( E + f t ( B , C , D ) + ( A < < 5 ) + W t , A , ( B < < 30 ) , C , D ) } :\{A,B,C,D,E\}\leftarrow\{(E+f_t(B,C,D)+(A<<5)+W_t,A,(B<<30),C,D)\} :{A,B,C,D,E}{(E+ft(B,C,D)+(A<<5)+Wt,A,(B<<30),C,D)},t是迭代步数 ( 0 ≤ t ≤ 79 ) (0\leq t\leq 79) (0t79)
    2)将输入消息块的16个字扩展成80个字以供压缩函数使用。
    W t = M t , 0 ≤ t ≤ 15 W_t = M_t,0\leq t\leq 15 Wt=Mt,0t15
    W t = ( W t − 3 ⨁ W t − 8 ⨁ W t − 14 ⨁ W t − 16 ) < < 1 , 16 ≤ t ≤ 79 W_t=(W_{t-3}\bigoplus W_{t-8}\bigoplus W_{t-14}\bigoplus W_{t-16})<<1,16\leq t \leq79 Wt=(Wt3Wt8Wt14Wt16)<<1,16t79
    使用Big-endian方式存储。
    SHA产生160比特的消息摘要。
  3. 数字签名
    Hash函数的安全要求。
    1)单向性
    2)抗弱碰撞
    3)抗强碰撞
    签名的特征:
    1)能验证签名者的签名的日期和时间
    2)能认证被签名的消息内容
    3)能由第三方仲裁,以解决争执
    数字签名标准(DSS),其核心是数字签名算法(DSA)
    在这里插入图片描述
  4. DSA算法:ECDSA算法、RSA-PSS数字签名算法
    ELGamal密码体制。
    在这里插入图片描述
    在这里插入图片描述
  5. 认证
    双向:Denning协议[为了防止重放攻击,2,3中加入了时间戳]
    在这里插入图片描述
    NEUM93协议[为了防止时钟不同步,同时加入随机数和时间戳]
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    单向认证:
    在这里插入图片描述
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值