codecamp

密码学 公匙密码思想

在公钥密码体制中的一个想法就是:也许能找到一个密码体制,使得由给定的ex 来求dx是计算上不可行的。如果这样的话,加密规则ex是一个公钥,可以在一一个 目录中公布(这也就是公钥体制名称的由来)。公钥体制的优点就是Alice (或者其他任何人)可以利用公钥加密规则ek发出一-条加密的消息给Bob(无须预先的共享秘密密钥的通信)。Bob 将是唯一能够利用解密规则dk (称为私钥)对密文进行解密的人。

考虑如下的类比: Alice 在一个金属盒子里放入1件东西,利用号码锁锁住留给Bob。由于只有Bob知道号码,他是唯一能打开盒 子的人。

公钥密码有的人叫他非对称密码(asymmetric crytography)。 私钥(private key)有时也被叫做个人密钥、私有密钥、非公开密钥。

历史

1976年Whitfield Diffie和Martin Helman发表了关于公钥密码的设计思想,尽管他们没有提出具体的公钥密码算法,但他们提出了应该将加密密钥和解密密钥分开,而且还描述了分钥密码应该具备的性质。

1977年Ralph Mekle和Martin Hellan共同设计了一种具体的公钥密码算法-Knapsack.该算法申请了专利,但后来被发现不安全。

1978年Ron Rivest Adi Shamir和Reonard Adleman共同发表了一种分钥官码算法-RSA。RSA 可以说是现在公钥客发码的事实标准。

20世纪60年代,英国电子通信安全局 CESG(communications electrionic security group)的James Elis就曾经提出了与公钥密码相同的思路。1973年 CESG 的 Clifford Cocks设计出了与 RSA相同的密码,并且在1974年,CESG 的malcolm williamson也设计出了与Deffie-Hellman算法类似的算法。

公钥密码的缺点

速度慢,公钥密码是对称密码的几百分之一。

密码学 SHA1哈希密码
密码学 欧几里得算法
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

第六章 公钥密码学和离散对数

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }