RSA加密算法

RSA加密算法

定义

RSA体制是一种分组密码,其明文和密文均是0值某n-之间的整数。RSA使用算法使用乘方运算,没耐高温以分组为单位进行加密。

数学基础:

大整数因子分解的困难性——任何大于1的整数总可以唯一分解成素因数乘积的形式。

算法描述

  • 生成密钥 KeyGen:
    选择一对不同的素数p和q,n=pq,φ(n)=φ(pq)=(p-1)(q-1)
    公钥:n,e; e<φ(n),(e, φ(n)) = 1       (e与φ(n)互素)
    私钥:d; d*e = 1 mod φ(n)
    即pk = (n, e), sk = d       (pk指代公钥,sk指代私钥)
  • 加密 Enc
    En(pk, m): m ∈ M = Zn, c = m^e mod n
  • 解密 Dec
    De(sk, c): m = c^d mod n

验证正确性

要验证正确性,则我们需要验证该等式:m = c^d mod n = (m^e mod n)^d mod n 成立即可。
c^d mod n = (m^e mod n)^d mod n
                 =m^(1 + kφ(n))mod n    (->ed = 1 mod φ(n))
                 =m(m^φ(n))^k mod n
                 =m mod n    (->gcd(m,n)=1->m^φ(n) = 1 mod n)

RSA的安全性

对RSA算法的攻击可能有以下5种方式:

  • 穷举攻击:试图穷举所有可能的私钥
  • 数学攻击:试图分解两个素数的乘积
  • 计时攻击:依赖于算法的运行时间
  • 基于硬件故障的攻击:应用在产生前面过程中处理器发生的故障
  • 选择密文攻击:利用RSA算法的性质

ElGamal密码体制

ElGamal密码体制是一种基于离散对数的公开密钥体制,常应用于数字签名标准(DSS)和S/MIME电子邮件标准中。

ElGamal密码体制算法描述

  • 生成密钥 KeyGen:
    选择一个素数p,q是p的素根,随机生成整数x
    y = g^x mod p
    pk = (p, g, y)
    sk = x
  • 加密 Enc
    En(pk, m): m ∈ M = Zp* , c = (c1, c2)
    c1 = g^r mod p(r为随机数)
    c2 = m*y^r mod p (密文消息不固定,因为r是随机数)
  • 解密 Dec
    De(sk, c): m = c2/(c1^x mod p)

RSA加密与ElGamal加密的区别

  • 对于一个确定的消息,RSA加密出来的密文是确定的,而ElGamal是不确定的,因为ElGamal引入了随机数
  • RSA加密出来的密文长度与明文长度一样,而ElGamal加密出来的密文是明文长度的两倍

公钥基础PKI

PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的网络环境。

  • PKI 主要包括四个部分:

    • X.509 格式的证书(X.509 V3)和证书废止列表CRL(X.509 V2)
    • CA 操作协议;
    • CA 管理协议
    • CA 政策制定
  • 一个典型、完整、有效的PKI 应用系统至少应具有以下五个部分:

    • 认证中心CA
      CA 是PKI 的核心,CA 负责管理PKI 结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份,CA 还要负责用户证书的黑名单登记和黑名单发布,后面有CA 的详细描述。
    • X.500 目录服务器
      X.500 目录服务器用于发布用户的证书和黑名单信息,用户可通过标准的LDAP 协议查询自己或其他人的证书和下载黑名单信息。
    • 具有高强度密码算法(SSL)的安全WWW服务器
      Secure socket layer(SSL)协议最初由Netscape 企业发展,现已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准。
    • Web(安全通信平台
      Web 有Web Client 端和Web Server 端两部分,分别安装在客户端和服务器端,通过具有高强度密码算法的SSL 协议保证客户端和服务器端数据的机密性、完整性、身份验证。
    • 自开发安全应用系统
      自开发安全应用系统是指各行业自开发的各种具体应用系统,例如银行、证券的应用系统等。完整的PKI 包括认证政策的制定(包括遵循的技术标准、各CA 之间的上下级或同级关系、安全策略、安全程度、服务对象、管理原则和框架等)、认证规则、运作制度的制定、所涉及的各方法律关系内容以及技术的实现等。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值