公钥密码学与RSA
来源:互联网 发布:云计算logo 编辑:程序博客网 时间:2024/05/17 23:02
公钥密码学与RSA
公钥密码学的发展的是整个密码学发展历史中最伟大的革命,也可以说是唯一一次的革命。
公钥密码出现前,几乎所有的密码体制都是基于替换和置换这些初等方法,轮转机和DES是密码学发展的重要标志,但是还是基于替换和置换。
公钥密码学与其前的密码学完全不同。首先,公钥算法是基于数学函数而不是基于替换和置换,更重要的是公钥密码是非对称的,它使用两个独立的密钥,使用两个密钥在消息的保密性、密钥分配和认证领域有着重要的意义。
传统密码存在的问题:
- 密钥分配问题(加密之后,我怎么把密钥告诉你才是安全的?)
- 数字签名问题:抵赖;伪造。
对公钥密码的几种误解:
- 公钥密码比传统密码更加安全。(事实上,任何加密方法都依赖于密钥的长度和破译密文所需要的计算量)
- 公钥密码是一种通用密码,传统密码已经过时了。(其实正相反,由于现在公钥密码的计算量大,所以取缔传统密码似乎不太可能,公钥密码的发明者也说“公钥密码学仅限用在密钥管理和签名这类应用上”)
- 传统密码中密钥分配中心的会话是一件异常麻烦的事情,公钥密码实现密钥分配则非常简单。(事实上是不简单,也不见得有效)
公钥密码体制的基本原理
公钥加密
- Alice将明文用Bob的私钥加密传送
- 只有用Bob的私钥才能解锁
作用:加密
私钥加密
- 用Alice的私钥加密明文
- 所有人都可以用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,正确)
阅读全文
0 0
- 公钥密码学与RSA
- 第九章 公钥密码学与RSA
- 密码学复习笔记4【公钥密码技术、RSA 、ElGamal】
- 公钥密码学、数字签名与数字证书
- 公钥密码学、数字签名与数字证书
- 信息安全与密码学5-RSA算法的介绍
- 密码学之RSA加密
- 密码学:RSA加密算法详解
- 密码学-RSA算法
- 【密码学:RSA加密算法详解】
- 公钥密码学
- [密码学--RSA的加解密]
- 公钥与私钥,公钥密码学
- 密码学——公钥与私钥
- 密码学——公钥与私钥
- 5.1 公钥密码学简介
- [密码学]公开密钥体系之RSA算法
- 密码学:基于python的rsa算法
- 技术大牛养成指南,一篇不鸡汤的成功学实践
- 解析URL参数为对象
- C++11 学习笔记 lambda表达式
- servlet中的两个init方法
- Java设计模式--调停者模式Mediator
- 公钥密码学与RSA
- index by 在Oracle中的应用
- Android Studio3.0使用Gradle可能遇见的问题
- Android Audio音量设置流程
- Git与Github建立密钥
- java 使用jdbc连接Greenplum数据库
- 正则表达式入门
- chapter21 Java多线程编程在Netty中的应用
- Python 流程控制