公钥密码学与RSA

来源:互联网 发布:云计算logo 编辑:程序博客网 时间:2024/05/17 23:02

公钥密码学与RSA

公钥密码学的发展的是整个密码学发展历史中最伟大的革命,也可以说是唯一一次的革命。

公钥密码出现前,几乎所有的密码体制都是基于替换和置换这些初等方法,轮转机和DES是密码学发展的重要标志,但是还是基于替换和置换。
公钥密码学与其前的密码学完全不同。首先,公钥算法是基于数学函数而不是基于替换和置换,更重要的是公钥密码是非对称的,它使用两个独立的密钥,使用两个密钥在消息的保密性、密钥分配和认证领域有着重要的意义。

传统密码存在的问题:

  • 密钥分配问题(加密之后,我怎么把密钥告诉你才是安全的?)
  • 数字签名问题:抵赖;伪造。

对公钥密码的几种误解:

  • 公钥密码比传统密码更加安全。(事实上,任何加密方法都依赖于密钥的长度和破译密文所需要的计算量)
  • 公钥密码是一种通用密码,传统密码已经过时了。(其实正相反,由于现在公钥密码的计算量大,所以取缔传统密码似乎不太可能,公钥密码的发明者也说“公钥密码学仅限用在密钥管理和签名这类应用上”)
  • 传统密码中密钥分配中心的会话是一件异常麻烦的事情,公钥密码实现密钥分配则非常简单。(事实上是不简单,也不见得有效)

公钥密码体制的基本原理

  • 公钥加密
    这里写图片描述

    1. Alice将明文用Bob的私钥加密传送
    2. 只有用Bob的私钥才能解锁
      作用:加密
  • 私钥加密
    这里写图片描述

    1. 用Alice的私钥加密明文
    2. 所有人都可以用Alice的公钥进行解密
      作用:数字签名,认证源

RSA算法实例

  • 算法使用到的元素
    两个素数p,q (保密的,选定的)
    n=pq (公开的,计算得出的)
    e满足gcd(Φ(n),e)=1;(1< e< Φ(n) ),gcd表示最大公约数 (公开的,选定的)
    d≡e^(-1)*(mod Φ(n)),即de之积模 Φ(n)余1 (保密的,计算得出的)
    私钥为{d,n},公钥为{e,n}

  • 加密:
    密文C=M^(e) (mod n),明文M=C^(d) (mod n)

  • 计算题:
    p=3,q=11,e=7,明文M=5,求密文?
    解:
    n=p*q=3X11=33
    Φ(n)=(3-1)*(11-1)=20
    7*d=1(mod 20),所以d可以为3
    私钥={3,20},公钥={7,20}
    密文C=5^7(mod 33)=14
    (转换为明文验证:M=14^3 (mod 33)=5,正确)

原创粉丝点击