查看“︁公开密钥加密”︁的源代码
←
公开密钥加密
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{noteTA |G1=IT |1=zh-hant:網路銀行;zh-hans:网上银行; zh-hk:網上銀行 }} [[File:Asymmetric_encryption_(colored).png|lang=zh|thumb|250px|right|此流桯圖顯示非對稱加密過程是單向的,其中一條密鑰加密後只能用相對應的另一條密鑰解密。]] '''公开密钥密码学'''({{Lang-en|'''Public-key cryptography'''}})也称'''非對稱式密碼學'''({{Lang-en|'''Asymmetric cryptography'''}})是[[密碼學]]的一種[[演算法]],它需要兩個[[密钥]],一個是公開密鑰,另一個是私有密鑰;公鑰用作加密,私鑰則用作解密。使用公钥把[[明文]]加密后所得的[[密文]],只能用相對應的[[私鑰]]才能解密並得到原本的明文,最初用來加密的公鑰不能用作解密。由於加密和解密需要兩個不同的密鑰,故被稱為非對稱加密;不同於加密和解密都使用同一個密鑰的[[對稱加密]]。公鑰可以公开,可任意向外發佈;私钥不可以公開,必須由用戶自行嚴格秘密保管,絕不透過任何途徑向任何人提供,也不會透露給被信任的要通訊的另一方。 基於公開密鑰加密的特性,它還能提供[[數位簽章]]的功能,使電子文件可以得到如同在紙本文件上親筆簽署的效果。 [[公開金鑰基礎建設]]透過信任[[数字证书认证机构]]的[[根证书]]、及其使用公开密钥加密作數位簽章核發的[[公開金鑰認證]],形成[[信任鏈]]架構,已在[[傳輸層安全協議|TLS]]實現並在[[万维网]]的[[超文本传输协议|HTTP]]以[[超文本传输安全协议|HTTPS]]、在[[电子邮件]]的[[简单邮件传输协议|SMTP]]以SMTPS或[[STARTTLS]]引入。 另一方面,[[信任網絡]]則採用[[去中心化]]的概念,取代了依賴數字證書認證機構的公鑰基礎設施,因為每一張電子證書在信任鏈中最終只由一個根證書授權信任,信任網絡的公鑰則可以累積多個用戶的信任。[[PGP]]就是其中一個例子。 ==概述== ===加密=== [[File:Public-key-crypto-bob.svg|lang=zh|thumb|250px|right|非对称加密往往需要[[密码学安全伪随机数生成器]]的協助來產生一對[[密钥]],其中一個可以隨便公開,称为公钥;另一個不公开,稱为私钥,必須由用戶自行嚴格秘密保管,絕不透過任何途徑向任何人提供。]] 如果任何人使用公鑰加密明文,得到的密文可以透過不安全的途徑(如[[網路]])傳送,只有對應的私钥持有者才可以解密得到明文;其他人即使從網路上竊取到密文及加密公鑰,也無法(在數以年計的合理時間內)解密得出明文。典型例子是在网络银行或購物網站上,因為客户需要輸入敏感訊息,瀏覽器連接時使用網站伺服器提供的公鑰加密並上传数据,可保證只有信任的網站伺服器才能解密得知訊息,不必擔心敏感个人信息因為在網路上傳送而被竊取。 在現實世界上可作比擬的例子是,一個傳統保管箱,開門和關門都是使用同一條钥匙,這是对称加密;而一個公開的郵箱,投遞口是任何人都可以寄信進去的,這可視為公钥;而只有信箱主人擁有钥匙可以打開信箱,這就視為私钥。 ====加密过程==== [[File:Public key encryption alice to bob.svg|lang=zh|thumb|250px|right|在非对称加密中,愛麗絲使用鮑伯的公钥加密明文,得到密文,而只有鮑伯因為持有私钥才可以解密,得到明文。]] 在數學上,<math>d(c(x))=x</math>,使用典型的[[愛麗絲與鮑伯]]假设來解釋: # 愛麗絲與鮑伯事先互不認識,也沒有可靠安全的溝通渠道,但愛麗絲現在卻要透過不安全的互聯網向鮑伯发送信息 # 愛麗絲撰寫好原文,原文在未加密的狀態下稱之为明文 <math>x</math> # 鮑伯使用[[密码学安全伪随机数生成器]]產生一對密鑰,其中一個作為公钥为 <math>c</math>,另一個作为私钥 <math>d</math> # 鮑伯可以用任何方法傳送公钥 <math>c</math> 給愛麗絲,即使伊夫(窃听者)在中間竊聽到 <math>c</math> 也沒問題 # 愛麗絲用公钥 <math>c</math> 把明文 <math>x</math> 进行加密,得到密文 <math>c(x)</math> # 愛麗絲可以用任何方法传输密文 <math>c(x)</math> 給鮑伯,即使伊夫在中間竊聽到密文 <math>c(x)</math> 也沒問題 # 鮑伯收到密文,用私钥 <math>d</math> 对密文进行解密 <math>d(c(x))</math>,得到愛麗絲撰寫的明文 <math>x</math> # 由於伊夫沒有得到鮑伯的私钥 <math>d</math>,所以無法得知明文 <math>x</math> # 如果愛麗絲遺失了她自己撰寫的原文 <math>x</math>,在沒有得到鮑伯的私钥 <math>d</math> 的情況下,她的處境將等同伊夫,即無法透過鮑伯的公钥 <math>c</math> 和密文 <math>c(x)</math>重新得到原文 <math>x</math> ===數位簽章=== 相反,如果某一用戶使用他的私钥加密明文,任何人都可以用該用戶的公钥解密密文;由於私鑰只由該用戶自己持有,故可以肯定該文件必定出自於該用戶;公眾可以验证該用戶发布的数据或文件是否完整、中途有否曾被篡改,接收者可信賴這些數據、檔案确实来自于該用戶,这被称作[[數位簽章]],大部份國家已經立法承認數位簽章擁有等同傳統親筆[[签名]]的法律效力。公钥可以透過[[数字证书认证机构]]簽授的[[電子證書]]形式公佈,接收者透過[[信任链]]形成一套完整的[[公開金鑰基礎建設]]。例如,从网上下载的安装程序,大部分都带有程序制作者的数字签名,可以证明该程序的确是该作者(公司)发布的而不是第三方伪造的且未被篡改过(身份认证/验证)。而現時的[[网上银行]]或[[購物網站]]都會使用[[超文本传输安全协议|HTTPS]],避免沟通过程中的信息泄露。 ==与对称密码学的比较== 对称密码是指在加密和解密时使用同一个密钥的方式,公钥密码则是指在加密和解密时使用不同密钥的方式。<ref name="key">{{cite book|author=结城浩|title=图解密码技术(第3版)|url=https://archive.org/details/isbn_9787115424914|publisher=人民邮电出版社|year=2016|pages=[https://archive.org/details/isbn_9787115424914/page/n31 8]-9页|isbn=978-7-115-42491-4}}</ref> [[对称密钥加密]]牽涉到[[密钥管理]]的問題,尤其是[[密钥交换]],它需要通訊雙方在通訊之前先透過另一個安全的渠道交換共用的密钥,才可以安全地把密文透過不安全的渠道傳送;對稱密钥一旦被竊,其所作的加密將即時失效;而在[[互联网]],如果通訊雙方分隔異地而素未謀面,則对称加密事先所需要的「安全渠道」變得不可行;非對稱加密則容許加密公钥隨便散佈,解密的私钥不发往任何用户,只在單方保管;如此,即使公钥在网上被截获,如果没有与其匹配的私钥,也无法解密,極為適合在互联网上使用。 另一方面,公钥解密的特性可以形成[[數位簽章]],使數據和文件受到保護並可信賴;如果公鑰透過數位憑證認證機構簽授成為電子憑證,更可作為数字身份的認證,這都是[[对称密钥加密]]无法实现的。 不過,公钥加密在[[計算複雜性理論|在計算上相當複雜]],效能欠佳、遠遠不比对称加密;因此,在一般實際情況下,往往通过公钥加密来[[密码学安全伪随机数生成器|隨機]][[迪菲-赫爾曼密鑰交換|建立臨時的對稱秘钥]],亦即[[對話鍵]],然后才通过对称加密來傳輸大量、主體的数据。 ==歷史== 该思想最早由[[瑞夫·墨克]]在1974年提出<ref>{{cite web |url = http://www.merkle.com/1974/ |title = Publishing a new idea |publisher = Merkle個人網站 |accessdate = 2010-12-08 |archive-date = 2010-12-12 |archive-url = https://web.archive.org/web/20101212014305/http://www.merkle.com/1974/ |dead-url = no }}</ref>,之后在1976年。[[惠特菲爾德·迪菲]]與[[馬丁·赫爾曼]]兩位學者以[[單向函數]]與單向暗門函數為基礎,為發訊與收訊的兩方建立金鑰。 常见的公钥加密算法有:[[RSA加密演算法|RSA]]、[[ElGamal]]、Rabin(RSA的特例)、[[数字签名算法|DSA]]、[[ECDSA]]。使用最广泛的是[[RSA算法]](由发明者Rivest、Shmir和Adleman姓氏首字母缩写而来)是著名的公开秘钥加密算法。 <!--==公钥密码学== 在[[密码学]]中,'''公开钥匙密码学''',简称'''公钥密码学''',又称'''非对称密码学''',是使用一对公钥和私钥的密码学,与只用一个钥匙的[[密钥密码学]]相对应。通常提到的公钥密码学包括[[公钥加密算法]]和[[数字签名]]算法。有些公钥加密算法可以很容易被改造成一个数字签名算法(如[[RSA加密演算法|RSA]]),而有些则需要经过较大改动。--> == 参见 == * [[密碼學]] * [[公開金鑰基礎建設]] * [[公开密钥指纹]] * [[數位簽章]] * [[对称密钥加密]] * [[密钥管理]] * [[密码学安全伪随机数生成器]] * [[迪菲-赫爾曼密鑰交換]] * [[明文]] * [[密文]] * [[加密]] == 参考文献 == {{Portal|密码学}} {{Reflist}} {{Commonscat|Public-key_cryptography}} {{-}} {{密碼學|public-key}} {{TLS和SSL}} {{Authority control}} [[Category:密码学|G]] [[Category:网络安全]] [[Category:信息技术]] [[Category:公钥密码学]]
该页面使用的模板:
Template:-
(
查看源代码
)
Template:Authority control
(
查看源代码
)
Template:Cite book
(
查看源代码
)
Template:Cite web
(
查看源代码
)
Template:Commonscat
(
查看源代码
)
Template:Lang-en
(
查看源代码
)
Template:NoteTA
(
查看源代码
)
Template:Portal
(
查看源代码
)
Template:Reflist
(
查看源代码
)
Template:TLS和SSL
(
查看源代码
)
Template:密碼學
(
查看源代码
)
返回
公开密钥加密
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息