zoukankan      html  css  js  c++  java
  • Atitit RSA非对称加密原理与解决方案

    Atitit RSA非对称加密原理与解决方案

    1.1. 一、一点历史 1

    1.2. 八、加密和解密 2

    1.3. 二、基于RSA的消息传递机制  3

    1.4. 基于rsa的授权验证机器码 4

    1.5. 为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式, 4

    1.6. RSA算法是第一个能同时用于加密和数字签名的算法 4

    1.1. 一、一点历史

    1976年以前,所有的加密方法都是同一种模式:

      (1)甲方选择某一种加密规则,对信息进行加密;

      (2)乙方使用同一种规则,对信息进行解密。

    由于加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法"Symmetric-key algorithm)。

    这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,就成了最头疼的问题。

    976年,两位美国计算机学家Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为"Diffie-Hellman密钥交换算法"。这个算法启发了其他科学家。人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。

    这种新的加密模式被称为"非对称加密算法"。

      (1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。

      (2)甲方获取乙方的公钥,然后用它对信息加密。

      (3)乙方得到加密后的信息,用私钥解密。

    1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。毫不夸张地说,只要有计算机网络的地方,就有RSA算法。

    1.2. 八、加密和解密

    有了公钥和密钥,就能进行加密和解密了

     私钥和公钥都可以加密和解密消息,且公钥加密的文本只有对应的私钥才能解密,私钥加密的文本也只有对应的公钥才能解密。

    1.3. 二、基于RSA的消息传递机制

    AB发送消息MSG
    发送方 A
    1. MSG使用周知的Hash函数计算出数字签名得到SIG
    2. 使用私钥对SIG进行加密得到CrypSIG
    3. 由于RSA加密算法复杂,因此使用简单的加密算法(密码为PWD)对MSG+CrypSIG进行加密得到CrypMSG
    4. 使用B的公钥对PWD加密得到CrypPWD
    5. CrypPWD, CrypMSG发送给B

    接收方 B
    1. 使用私钥解密CrypPWD,的搭配PWD1
    2. PWD1解密CrypMSG得到MSG1+CrypSIG1
    3. 计算MSG1的数字签名SIG1
    4. 用私钥解密CrypSIG1得到SIG2,若SIG1==SIG2则接受消息,否者丢弃消息

    三、使用方式:

    ①  假设A、B机器进行通信,已A机器为主;

    ②  A首先需要用自己的私钥为发送请求数据签名,并将公钥一同发送给B;

    ③  B收到数据后,需要用A发送的公钥进行验证,已确保收到的数据是未经篡改的;

    ④  B验签通过后,处理逻辑,并把处理结果返回,返回数据需要用A发送的公钥进行加密(公钥加密后,只能用配对的私钥解密);

    ⑤  A收到B返回的数据,使用私钥解密,至此,一次数据交互完成。

    1.4. 基于rsa的授权验证机器码

    服务端 A
    使用私钥对机器码加密。。

    客户端b

    使用a的公钥解密授权证书文件。得到里面的机器码,与本地对照。

    二、模型分析

    RSA算法构建密钥对简单的很,这里我们还是以甲乙双方发送数据为模型

    1、甲方在本地构建密钥对(公钥+私钥),并将公钥公布给乙方

    2、甲方将数据用私钥进行加密,发送给乙方

    3、乙方用甲方提供的公钥对数据进行解密

    1.5. 为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,

    即信息采用改进的DESIDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。

    1.6. RSA算法是第一个能同时用于加密和数字签名的算法

    ,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

    RSA数字签名机制 - bnufq的专栏 - 博客频道 - CSDN.NET.html

    作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 

    汉字名:艾提拉(艾龙)   EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.cnb.net/attilax

    Atiend

  • 相关阅读:
    C++中使用多线程
    hdu 4223 dp 求连续子序列的和的绝对值最小值
    hdu 1372 bfs 计算起点到终点的距离
    hdu 4217 线段树 依次取第几个最小值,求其sum
    心得
    hdu 1175 bfs 按要求进行搜索,是否能到达,抵消两个(相同)棋子
    hdu 4221 greed 注意范围 工作延期,使整个工作时间罚时最少的单个罚时最长的值
    hdu 2844 多重背包 多种硬币,每一种硬币有一点数量,看他能组成多少种钱
    uva LCDDisplay
    hdu 4218 模拟 根据一个圆点和半径画一个圆 注意半径要求
  • 原文地址:https://www.cnblogs.com/attilax/p/5957445.html
Copyright © 2011-2022 走看看