dispatches中文是什么意思

非对称加密算法原理及应用&&
一、什么是非对称加密算法
加密和解密所用的密钥是不一样的,所以叫“非对称”。
非对称加密算法的这两个密钥,一个称为公钥,一个称为私钥。
所谓公钥和私钥不是绝对的,公钥和私钥只是经过算法运算得到的一对数值,公开的那一个值称为公钥,不公开的称为私钥。
用公钥加密的,可以用私钥解密,反过来也成立。
RSA就是典型的非对称加密算法。
关于RSA算法的解释,最经典的当然是阮一峰老师的博客了:
想当初我看懂之后还在纸上自己推导了一遍,可惜后来又忘记了,只记得一个欧拉定理。。
二、使用非对称加密算法通信的原理
由于非对称加密算法一般比较慢,因此他一般用于密钥交换。这个交换的密钥就是指对称密钥。
通常,发送方用公钥加密,接收方用私钥解密。假如你是接收方,你可以把公钥公开出去,那其他人想要与你通信时,先用你的公钥把对称密钥加密后传递给你,你再通过私钥解密得到对称密钥。从这以后,双方都有对称密钥了,双方的通信信息就通过这个密钥来加密解密。
知乎上的一个回答说明了同样的过程(
假设我们回到了那个只能寄信的时代,大家都需要和知乎通信,而且通信的内容必须要保密。于是负责接收大家消息的@顾惜朝 想出来一个办法,找了很多把上面说的那种锁(公钥),都用钥匙打开,挂在外面。需要和知乎通信的人,在通信之前,需要拥有另外一把有两个钥匙的锁(对称加密算法),然后把这把锁和其中一把钥匙(对称密钥),放进一个无法被破拆的铁盒子里面,用知乎提供的那把开着的锁把铁盒子锁上。
这时候,这个铁盒子就无法打开了,除了拥有钥匙的顾惜朝。这个装有一把锁和钥匙的铁盒子,可以放心地交到任何一个人手上,然后让他拿去给顾惜朝。顾惜朝拿到这个铁盒子之后,加密通信会话就建立了。她就会用钥匙打开铁盒子,取出锁和钥匙,写下“亲爱的知乎用户,你好,我是顾惜朝”小纸条,放进铁盒子里,然后用你提供的锁把铁盒子锁上,然后交回到你的手上。这个时候,铁盒子被你提供的锁锁上了,除了你和顾惜朝,没有别人有钥匙能够打开这个铁盒子,铁盒子也就可以安全地经过邮递送到你的手上;你收到铁盒子之后,用你自己的钥匙打◇◇,读铁盒子里面的消息,然后放进新的小纸条,再寄送回去。
以上就是加密通信的过程。
三、实际例子
3.1 https的通信建立就是用RSA:
第三步的crt public就是服务端的公钥(传说中的证书,当然证书还会包含其他信息),发给了客户端。
第五步的random key就是对称密钥。第五步完成后,对称密钥就交换成功了。
3.2 http接口远程调用参数的加密
以实际项目中,调用A公司的http接口为例:
假设params是可以在公网上安全传输的值,显然不能是明文,那它是怎么来的呢:
params=encrypt(merchantId=111&sences=222&productId=333&extParams=444)
其中的merchantId=111&sences=222&productId=333&extParams=444就是要传递的参数。
加密方法encrypt分三步:用A公司公钥(A公司的私钥在它们那里,不公开)加密再用base64编码再经过url-encode。
可以推知,A公司的解密过程就是先url-decode再base64解密,最后用它的私钥解密得到消息的明文。
那如何保证消息明文没有被篡改呢?
此时就需要我们调用传参时,同时传递数字签名:
假设上一步算得params=&555&,则最后在http报文体中传递的就是params=555&sign=888,而这个sign就是数字签名:
先hash再用我们的私钥(我们的公钥会直接给到A公司的开发人员,A公司的公钥也是直接给到我们)加密:
String digest = sha1(params);
String rawSign = encodeByPrivateKey(digest);
String sign = urlEncode(rawSign);
可以看到,数字签名不是一成不变的,它随着消息的改变而改变。它与我们现实中的个人签名不同,个人签名每次都是签同一个名字。
A公司接收到签名后,用我们的公钥解密得到消息摘要(假设为digestX),然后把之前解密得到的消息明文hash一下,得到digestY,比较这两个值是否相等,则可以知道消息有没有被篡改。
说到这里我们发现,我们需要提前与A公司协定好hash算法(例如sha1)。
那Hei客有没有可能同时篡改消息和签名呢?不可以,因为他没有我们的私钥,改不了签名。
在这http调用过程中,总结一句话:
用对方的公钥来加密消息,用我们自己的私钥来签名。
被转藏 : 1次
被转藏 : 1次 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
网路安全技术课后习题
下载积分:3000
内容提示:网路安全技术课后习题
文档格式:DOCX|
浏览次数:67|
上传日期: 12:57:03|
文档星级:
该用户还上传了这些文档
网路安全技术课后习题
官方公共微信密钥管理的对称与非对称算法比较_科普知识_中国百科网
密钥管理的对称与非对称算法比较
    密钥管理 -对称与非对称算法比较   以上综述了两种加密方法的原理,总体来说主要有下面几个方面的不同:   一、 在管理方面:公钥 密码算法只需要较少的资源就可以实现目的,在 密钥的分配上,两者之间相差一个指数级别(一个是n一个是n)。所以 私钥密码算法不适应 广域网的使用,而且更重要的一点是它不支持 数字签名。   二、 在安全方面:由于公钥密码算法基于未解决的数学难题,在破解上几乎不可能。对于 私钥 密码算法,到了AES虽说从理论来说是不可能破解的,但从 计算机的发展角度来看。 公钥更具有优越性。   三、 从速度上来看:AES的软件实现速度已经达到了每秒数兆或数十 兆比特。是 公钥的100倍,如果用硬件来实现的话这个比值将扩大到1000倍。    加密算法的选择 前面的章节已经介绍了对称解密算法和 非对称加密算法,有很多人疑惑:那我们在实际使用的过程中究竟该使用哪一种比较好呢?   我们应该根据自己的使用特点来确定,由于 非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。    对称加密算法不能实现签名,因此签名只能 非对称算法。   由于 对称加密算法的 密钥管理是一个复杂的过程, 密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用 非对称加密算法。   在实际的操作过程中,我们通常采用的方式是:采用 非对称加密算法管理 对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。   如果在选定了 加密算法后,那采用多少位的 密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。   密码学在现代的应用, 随着密码学商业应用的普及,公钥密码学受到前所未有的重视。除传统的密码应用系统外,PKI系统以公钥密码技术为主,提供加密、签名、认证、 密钥管理、分配等功能。   保密通信:保密通信是密码学产生的动因。使用公私钥密码体制进行保密通信时,信息接收者只有知道对应的密钥才可以解密该信息。    数字签名:数字签名技术可以代替传统的手写签名,而且从安全的角度考虑,数字签名具有很好的防伪造功能。在政府机关、军事领域、商业领域有广泛的应用环境。    秘密共享:秘密共享技术是指将一个秘密信息利用 密码技术 分拆成n个称为共享因子的信息,分发给n个成员,只有k(k≤n)个合法成员的共享因子才可以恢复该秘密信息,其中任何一个或m(m≤k)个成员合作都不知道该秘密信息。利用 秘密共享技术可以控制任何需要多个人共同控制的秘密信息、命令等。   认证功能:在公开的信道上进行敏感信息的传输,采用签名技术实现对消息的真实性、完整性进行验证,通过验证 公钥证书实现对通信主体的 身份验证。    密钥管理:密钥是保密系统中更为脆弱而重要的环节,公钥密码体制是解决密钥管理工作的有力工具;利用公钥密码体制进行 密钥协商和产生, 保密通信双方不需要事先共享秘密信息;利用公钥密码体制进行密钥分发、保护、 密钥托管、 密钥恢复等。   基于公钥密码体制可以实现以上通用功能以外,还可以设计实现以下的系统:安全 电子商务系统、电子现金系统、电子选举系统、 电子招投标系统、电子彩票系统等。   公钥密码体制的产生是密码学由传统的政府、军事等应用领域走向商用、民用的基础,同时互联网、电子商务的发展为密码学的发展开辟了更为广阔的前景。    加密算法的未来 随着计算方法的改进, 计算机运行速度的加快,网络的发展,越来越多的算法被破解。   在2004年国际密码学会议(Crypto’2004)上,来自中国 山东大学的 王小云教授做的破译MD5、HAVAL-128、MD4和 RIPEMD算法的报告,令在场的国际顶尖密码学专家都为之震惊,意味着这些算法将从应用中淘汰。随后,SHA-1也被宣告被破解。   历史上有三次对DES有影响的攻击实验。1997年,利用当时各国 7万台 计算机,历时96天破解了DES的 密钥。1998年,电子边境基金会(EFF)用25万美元制造的 专用计算机,用56小时破解了DES的 密钥。1999年,EFF用22小时15分完成了破解工作。因此。曾经有过卓越贡献的DES也不能满足我们日益增长的需求了。   最近,一组研究人员成功的把一个512位的整数分解因子,宣告了RSA的破解。   我们说数据的安全是相对的,可以说在一定时期一定条件下是安全的,随着硬件和网络的发展,或者是另一个王小云的出现,目前的常用 加密算法都有可能在短时间内被破解,那时我们不得不使用更长的 密钥或更加先进的算法,才能保证数据的安全,因此加密算法依然需要不断发展和完善,提供更高的加密安全强度和运算速度。   纵观这两种算法一个从DES到3DES再到AES,一个从RSA到ECC。其发展角度无不是从 密钥的简单性,成本的低廉性,管理的简易性, 算法的复杂性,保密的安全性以及计算的 快速性这几个方面去考虑。因此,未来算法的发展也必定是从这几个角度出发的,而且在实际操作中往往把这两种算法结合起来,也需将来一种集两种算法优点于一身的新型算法将会出现,到那个时候,电子商务的实现必将更加的快捷和安全。
收录时间:日 03:13:30 来源:百科网 作者:匿名
上一篇: &(&&)
创建分享人
喜欢此文章的还喜欢
Copyright by ;All rights reserved. 联系:QQ:

我要回帖

更多关于 dispatches 的文章

 

随机推荐