zoukankan      html  css  js  c++  java
  • 【密码学】公钥密码体制概述

    大体组成

    与传统密码体制加密和解密使用相同密钥不同,公钥密码体制有两个密钥:

    公钥密码体制的数学模型如5-1所示
    情景:Alice要发送信息m给Bob
      1. Alice用Bob的公钥PU(b)加密m并发送
      2. Bob接受加密后的信息,用只有自己知道的私钥PR(b)进行解密,得到m
    由于算法的严谨性,任何不知道Bob的私钥的人,都无法对加密的信息进行解密,也无法从公钥PU(b)推导出私钥PR(b)。

    主要用途(局限性)
    由于速度比对称密码算法要慢几个数量级,因此公钥密码算法至今主要用于数据安全,或用于短数据和密钥的加密。

    实用的公钥密码体制应该满足以下的要求:
    (1) 参与方B容易通过计算产生一对密钥 公开密钥PU(b)和私有密钥PR(b)。
    (2)发送方A容易通过计算产生密文:c=ePUb(m)
    (3)接收方B容易通过计算解密密文:m=dPRb(c)=dPRb(ePUb(m))
    (4)他人即使知道公开密钥PUb,要确定私有密钥PRb在计算上是不可行的。
    (5)他人即使知道公开密钥PUb和密文c,要想恢复报文m在计算上也是不可行的。
    (6)加密和解密函数可以以两个次序中的任何一个来使用:
    m=dPRb(ePUb(m)) m=ePUb(dPRb(m))

    本质上是设计一种陷门单向函数。
    陷门单向函数是密码学的核心。

    陷门单向函数的定义:
    • 正向计算容易。即如果知道x,计算y=f(x)相对容易。
    • 反向计算极其困难。即如果知道y =f(x), 反向计算x=f^(−1) (y)非常困难
    • 存在陷门δ,已知δ 时,对给定的任何y,若相应的x存在,则计算x使y=f(x)是容易的

    至少三种攻击方式进行破解:
    • 强力攻击(对密钥)
    密钥穷举法搜索可能的私钥。
    解决方法:密钥长度要足够长(但同时也增加了解密加密的速度)
    • 公开密钥算法本身可能被攻破
    从数学上对陷门单向函数寻求突破,从公钥PU推导出私钥PR。
    目前没有严格证明该方法无效
    • 可能报文攻击(对报文本身的强力攻击)
    因为知道公钥PU,攻击者完全可以穷举所有可能的明文,用公钥来逐一加密这些明文,必有一个加密加过与截获的密文相同。
    解决方法:明文也要足够长

  • 相关阅读:
    消息中间件(一)MQ详解及四大MQ比较
    SIP协议
    PAT (Basic Level) Practice 1008 数组元素循环右移问题
    LeetCode-Algorithms 1. 两数之和
    PAT (Basic Level) Practice 1040 有几个PAT
    PAT (Basic Level) Practice 1023 组个最小数
    PAT (Basic Level) Practice 1021 个位数统计
    PAT (Basic Level) Practice 1007 素数对猜想
    PAT (Basic Level) Practice 1006 换个格式输出整数
    PAT (Basic Level) Practice 1004 成绩排名
  • 原文地址:https://www.cnblogs.com/robotpaul/p/9997134.html
Copyright © 2011-2022 走看看