关于加密
来源:互联网 发布:2016最新癌症数据统计 编辑:程序博客网 时间:2024/06/05 16:00
对称密钥:发送方和接收方使用的是相同的密码,秘钥管理困难
注重讲解非对称秘钥:
A在加密的时候生成私钥和公钥,A保留私钥,公布公钥。当B向A发送消息的时候,会用 A的公钥对消息进行加密,A收到信息后用私钥进行解密。
如果A要给B发送消息呢???--涉及到数字证书的问题
什么是数字证书?
A给B发送消息的时候用MD5算法对报文产生一个摘要,再用自己的私钥对这一摘要进行 加密形成数字证书,将数字证书和报文一起发送给B,然后B用A的公钥把数字证书进行解密,得到一个摘要,然后用MD5算法对报文产生另一个摘要,当两个摘要相等,就证明消息是A发送的,并且没有被改动过!数字证书是发送者身份的一种证明,用于确保数据的真实性和完整性!
介绍一种算法:
影响力最大的一种算法:
RSA算法:1.RSA分别对应三为提出者的姓氏开头
2.是一种公钥加密算法,即非对称加密算法
3.理论事实:将两个大素数的成绩作为公钥。原因是对于大素数的成绩进行因 式分解十分困难
截止至2013年发现的最大素数:(2^57885161)-1(17425170位)
RSA算法涉及的三个参数:n, e1, e2
n为大质数p,q的乘积,其二进制表示的长度即为秘钥的长度
e1任取,但满足:e1与(p-1)*(q-1)互质(公因数为1)
e2满足:(e2*e1)mod((p-1)*(q-1))=1 (mod为除法取余)
然后(n,e1) 和(n,e2)就是密钥对,前者为公钥,后者为私钥
设A为明文,B为密文:
则: A=B^e2 mod n;(解密)
B=A^e1 mod n;(加密)
实例:
下面用两个小素数7和17来建立一个简单的RSA算法:
(1)选择两个素数p=7和q=17;
(2)计算n=pq=7 *17=119,计算Φ(n)=(p-1)(q-1)=6 *16=96;
(3)选择一个随机整数e=5,它小于Φ(n)=96并且于96互素;
(4)求出d,使得de=1mod96且d<96,此处求出d=77,因为
77 5=385=4 96+1;
(5)输入明文M=19,计算19模119的5次幂,Me=195=66mod119,传出密文C=66;
(6)接收密文66,计算66模119的77次幂;Cd=6677≡19mod119得到明文19。
例子中将(119,5)作为公钥,(119,77)作为私钥,当p.q足够大的时候,对于n的分解会异常困难,难于破解也在于此!!
MD5:Message Digest Algorithm 5消息摘要算法
MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯 一的MD5信息摘要,就是一定长的十六进制数字串。
应用:数字签名,防止消息被篡改
各种操作系统的登陆认证。对用户的密码进行加密后存储到数据库。
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的(长度为32)。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
- 关于加密
- 关于加密
- 关于加密
- 关于加密
- 关于加密:二,加密处理
- 关于URL加密技术
- 关于.NET加密技术
- 关于.NET加密技术
- 关于加密和安全
- 关于base64加密
- 关于MD5加密技术
- 关于文件的加密
- 关于加密存储过程
- 关于加密问题。
- 关于加密技术
- 关于流加密
- 关于MD5加密
- 关于DES加密
- 一世英名的科比算不算是晚景凄凉?
- 匿名对象
- 二分查找
- libpcap的安装与使用
- Linux下C++的编程——开发环境搭建与第一个程序
- 关于加密
- poj--2391--Ombrophobic Bovines(floyd+二分+最大流拆点)
- JS直接调用java后台中的函数——DWR
- 操作系统---基础题目汇总七
- 一个小白对auth的理解
- C-054.学习OC之前,需要掌握和理解的C语言的基础部分基本写完了
- PAT乙级 德才论 (25)
- Nginx的负载均衡 - 加权轮询 (Weighted Round Robin) 下篇
- oracle DG搭建(使用DGbroker)