当前位置 博文首页 > kbtx的博客:网络与信息安全-第四章-非对称密钥密码体系

    kbtx的博客:网络与信息安全-第四章-非对称密钥密码体系

    作者:[db:作者] 时间:2021-07-09 09:49

    非对称密钥密码体系

    对称密钥密码体系存在的问题:能实现加密,但不能完成密钥分配和数字签名

    公钥密码体制

    每个用户都有一对选定的密钥(公钥k1;私钥k2),公开的密钥后可以像电话号码一样进行注册公布。

    主要特点:

    • 加密和解密能力分开
    • 公钥加密私钥解密:多个用户加密的消息只能由一个用户(用私钥)解读(用于公共网络中实现保密通信)
    • 私钥加密公钥解密:只能由一个用户加密消息而使多个用户可以解读(可用于认证条统中对消息进行数字签字——抗抵赖)。
    • 无需事先分配密钥

    公钥密码应满足的要求

    • 接收B产生密钥对在计算上是容易的
    • 发送方A用收方的公开钥对消息m加密以产生密文c在计算上是容易的。
    • 收方B用自己的秘密钥对密文c解密在计算上是容易的。
    • 敌手由密文c和B的公开密钥恢复明文在计算上是不可行的。
    • 敌手由密文c和B的公开密钥恢复秘密密钥在计算上是不可行的
    • 加解密次序可换,即EPKB[DSKB(m)]=DSKB[EPKB(m)],不是对任何算法都做此要求。

    以上要求本质就是找出合适的单向陷门函数

    陷门单向函数

    • 单向函数是求逆困难的函数,而单向陷门函数(Trapdoor one-way function),是在不知陷门信息下求逆困难的函数,当知道陷门信息后,求逆是易于实现的。
    • 陷门单句函数是一族可逆函数fk,满足
      1.Y=fk(X)易于计算(当k和X已知)
      2.X=fk-1(Y)易于计算(当k和Y已知)
      3.X=fk-1(Y)计算上不可行(Y已知但k未知)

    RSA算法

    • MIT三位年青教学家R.L.Rivest,A.Shamir和LAdleman等[1978,1979]发现了一种用数论构造双钥的方法,称作MIT体制,后来被广泛称之为RSA体制。
    • 它既可用于加密、又可用于数字签字。
    • RSA算法的安全性基于数论中大整数分解的困难性

    算法描述——密钥产生

    1. 独立地选取两大素数p和q(各100~200位十进制数字)
    2. 计算n=p×q,其欧拉函数值φ(n)=(p-1)(q-1)
    3. 随机选一整数e,1≤e<φ(n),gcd(φ(n),e)=1
    4. 在模φ(n)下,计算e的有逆元d=e-1 mod φ(n)
    5. 以n,e为公钥。秘密钥为d(p, q不再需要,可以销毁。)
    6. 加密:将明文分组,各组对应的十进制数小于n
      c = me mod n
    7. 解密: m = cd mod n
    • 例题:
      设 p = 7, q = 17
      可求得 n = p×q = 119, φ(n)=(p-1)(q-1) = 96
      取 e = 5, 满足 1≤e<φ(n),gcd(φ(n),e)=1
      确定满足d·e = 1 mod 96 且小于96的d,因为 77×5 = 385 = 4×96 + 1, 所以 d为77
      公开密钥为 {5,119} 秘密钥为 {77}
      设明文 m=19,由加密过程得到的密文为 c ≡ 195 mod 119 ≡ 2476099 mod 119 ≡ 66
      解密为 6677 mod 119 ≡ 19
    • 加密文本:
      p=47, q=61,φ(n)=2760时,d=167
      n=2867 e=1223
      用RSA算法加密与解密的过程:
      例:明文=“RSA ALGORITHM”
      明文用数字表示 空白=00,A=01, B=02,…, Z=26 (两位十进制数表示)
      181901 00 0112 0715 1809 2008 1300
      利用加密变换公式C=memod r,
      即C = 18 19 12 23 mod 2867
      =27562756 2001 0542 0669 2347 0408 1815

    应用

    公钥体制加密

    在这里插入图片描述
    公钥体制加、解密 m=D(c)= DSKB(EPKB(m))
    安全保障:

    • 从公开钥PKB和密文c要推出明文m或解密钥SKB在计算上是不可行的;
    • 由于任一用户都可用用户B的公开钥PKB向他发送机密消息,因而密文c不具有认证性。

    公钥密码认证体制

    在这里插入图片描述

    • 用户A以自己的秘密钥SKA对消息m进行A的专用变换DSKA,A计算密文:c=DSKA(m)送给用户B,B验证c:
      m=E PKA(c)=E PKA(D SKA(m))
    • 安全性
      由于SKA是保密的,其他人都不可能伪造密文c,可用A的公开钥解密时得到有意义的消息m。因此可以验证消息m来自A而不是其他人,而实现了对A所发消息的认证。

    RSA一般应用过程

    在这里插入图片描述

    • 可以同时实现数字签名和消息认证

    公钥保密和认证体制

    在这里插入图片描述
    为了同时提供认证功能和保密性,可使用双重加、解密
    加密c=EPKB[ESKA[m]]
    解密m=DPKA[DSKB[c]]

    小结

    RSA密码算法

    cs