编码密码学

编码密码学知识点回顾

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

  1. 公钥密码 RSA
    加密密钥与解密密钥不相同:(核心思想)
    简化了密钥管理。
    对公钥密码的管理要求:
    1)接受方产生密钥容易
    2)发送方用公钥对消息m产生密文c, c = E p k B [ m ] c= E_{pk_B}[m]
    计算容易。
    3)B用自己的密码对C解密,即: m = D s k B m=D_{sk_B} 在计算上容易。
    4)敌手对公钥pk_B求私钥SK_b在计算上不可行。
    5)敌手有公钥PK_B和C恢复明文m在计算上不可行。
    RSA算法
    1. 选两个大素数
    2. 计算 n = p q n=p*q , ϕ ( n ) = ( p 1 ) ( q 1 ) \phi(n)=(p-1)*(q-1) , ϕ \phi 保密,n公开
    3. 随机选一整数 e ( 1 , ϕ ( n ) ) e\in(1,\phi(n)) 满足: g c d ( ϕ ( n ) , e ) = 1 : g c d gcd(\phi(n),e)=1:gcd 标识最大公约数。
    4. 计算 d d ,满足: d e 1 ( m o d ϕ ( n ) ) d*e\equiv1(mod\phi(n)) (私钥d), d e k ϕ ( n ) = 1 d*e-k\phi(n)=1 通过辗转相除可以求出 d d
      公开公钥 ( e , n ) (e,n)
      保密私钥 ( d , n ) (d,n)
      加密: C = m e m o d ( n ) C= m^emod(n)
      解密: m = C d m o d ( n ) m=C^dmod(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)
    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)\} ,t是迭代步数 ( 0 t 79 ) (0\leq t\leq 79)
    2)将输入消息块的16个字扩展成80个字以供压缩函数使用。
    W t = M t , 0 t 15 W_t = M_t,0\leq t\leq 15
    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
    使用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协议[为了防止时钟不同步,同时加入随机数和时间戳]
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    单向认证:
    在这里插入图片描述
发布了46 篇原创文章 · 获赞 19 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/li123_123_/article/details/102808513