① 移動端與後端數據傳輸加密
對稱加密:對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由於需要將密鑰在網路傳輸,所以安全性不高
非對稱加密:非對稱加密使用了一對密鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。
方案:將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然後發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然後雙方可以使用對稱加密來進行溝通。
方案的流程介紹:
1、APP客戶端需要和伺服器進行數據交互,它的APP首先生成了一個隨機數作為對稱密鑰(比如AES加密的密鑰)。
2、APP客戶端向伺服器請求公鑰
3、伺服器將公鑰發送給APP客戶端
4、APP客戶端使用伺服器的公鑰將自己的對稱密鑰(比如AES加密的密鑰)加密
5、APP客戶端將加密後的對稱密鑰發送給伺服器
6、伺服器使用私鑰解密得到APP客戶端的對稱密鑰
7、APP客戶端與伺服器可以使用對稱密鑰來對溝通的內容進行加密與解密了
App端和後台數據加密分兩部分:
1.數據傳輸的時候加密 (一般採用Https協議在傳輸層加密)
2.數據本身的加密 (使用各種加密演算法)
RSA非對稱加密:公鑰加密,私鑰解密。公鑰私鑰由服務端生成,公鑰放在客戶端私密保存,私鑰放在服務端。安全性高,運算速度慢
AES對成加密:運算速度快切安全性高
上面網路通信過程是安全的,可以保證通信數據即使被截取了,也無法獲得任何有效信息;即使被篡改了,也無法被客戶端和服務端驗證通過。
具體可參考的博文:(記得後續實踐哦)
https://blog.csdn.net/wangjiang_qianmo/article/details/88073848?utm_medium=distribute.pc_relevant.none-task-blog--1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog--1.channel_param
② 在加密信息傳遞的同時發送方如何才能有效地將密鑰告訴接收者
用非對稱密碼演算法傳遞會話密鑰(對稱密碼的密鑰),用孝模會話密鑰加解密。
在加密信息傳遞的同時隱慎襲發送方應該用非對稱密碼演算法傳遞會話密鑰(對稱密碼灶兄的密鑰),用會話密鑰加解密,這樣才能有效地將密鑰告訴接收者。
③ 簡述對稱加密演算法的基本原理
對稱加密是計算機加密領域最古老也是最經典的加密標准。雖然對稱加密被認為不再是安全的加密方式,但是直到現在,還看不到它被淘汰的跡象。在很多非網路化的加密環境中,對稱加密足以滿足人們的需要。
對稱加密採用單密鑰加密方式,不論是加密還是解密都是用同一個密鑰,即「一把鑰匙開一把鎖」。對稱加密的好處在於操作簡單、管理方便、速度快。它的缺點在於密鑰在網路傳輸中容易被竊聽,每個密鑰只能應用一次,對密鑰管理造成了困難。對稱加密的實現形式和加密演算法的公開性使它依賴於密鑰的安全性,而不是演算法的安全性。
一個對稱加密系統由五個部分組成,可以表述為
S={M,C,K,E,D}
各字母的含義如下:
M:明文空間,所有明文的集合。
C:密文空間,全體密文的集合。
K:密鑰空間,全體密鑰的集合。
E:加密演算法。
D:解密演算法。
④ 簡要說說對稱加密和非對稱加密的原理以及區別是什麼
對稱加密的原理是數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。接收方收到密文後,若想解讀原文,則需要使用加密密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。
非對稱加密的原理是甲方首先生成一對密鑰同時將其中的一把作為公開密鑰;得到公開密鑰的乙方再使用該密鑰對需要加密的信息進行加密後再發送給甲方;甲方再使用另一把對應的私有密鑰對加密後的信息進行解密,這樣就實現了機密數據傳輸。
對稱加密和非對稱加密的區別為:密鑰不同、安全性不同、數字簽名不同。
一、密鑰不同
1、對稱加密:對稱加密加密和解密使用同一個密鑰。
2、非對稱加密:非對稱加密加密和解密所使用的不是同一個密鑰,需要兩個密鑰來進行加密和解密。
二、安全性不同
1、對稱加密:對稱加密如果用於通過網路傳輸加密文件,那麼不管使用任何方法將密鑰告訴對方,都有可能被竊聽。
2、非對稱加密:非對稱加密因為它包含有兩個密鑰,且僅有其中的「公鑰」是可以被公開的,接收方只需要使用自己已持有的私鑰進行解密,這樣就可以很好的避免密鑰在傳輸過程中產生的安全問題。
三、數字簽名不同
1、對稱加密:對稱加密不可以用於數字簽名和數字鑒別。
2、非對稱加密:非對稱加密可以用於數字簽名和數字鑒別。
⑤ 現在密碼傳輸中的對稱、非對稱加密,即對稱和非對稱密鑰指是怎麼運行使用的其工作原理是什麼呢
非對稱加密就是數據只能加密不能解密,通常用來加密密鑰用的,對稱加密就是加密了可以解密,通常情況下都會結合使用
⑥ 如何理解對稱加密
你好
先,讓我們先從一個情景開始講起,想當初我們在初中,高中,甚至於大學,每次考試都有人在試圖如何更加隱蔽的作弊!那大家都想了什麼方法呢?比如張三學習比李四好,李四就想在考試的時候讓張三「幫助」一下自己,當然,他們倆不可能像我們平常對話一樣說,第一題選A,第二題選B等等,為什麼?因為監考老師明白他倆在談論什麼,也就是說這種溝通交流方式屬於「明文」,所以李四就想:「我需要發明一種,只有我和張三明白的交流方式」,那李四做了什麼呢?恩,李四去找張三說:「當我連續咳嗽三聲的時候你看我,然後如果我摸了下左耳朵,說明你可以開始給我傳答案了,如果沒反應,那說明我真的是在咳嗽。。。。」, 然後,怎麼傳答案呢?很簡單,「你摸左耳朵代表A, 摸右耳朵代表B,左手放下代表C,右手放下代表D」,好了,這就是他們的「演算法(規則)」,將信息的一種形式(A,B,C,D),這里我們稱為「明文」,轉換成了另一種形式(摸左耳朵,摸右耳朵,放左手,放右手),這里稱為「密文」,經過這種轉換,很顯然監考老師不會明白這些「密文」,這樣,張三和李四就通過「密文」的形式實現了信息的交換。
其實,密碼學不就是為了人們更好的加密傳輸么?有很多學者,科學家成年累月的工作,為的就是改進或者發明更好的加密演算法,讓這些加密演算法加密的文本難以破解,達到數據安全傳輸的目的。
OK,回歸正題,上面這個「作弊」的例子,其實就是一種對稱加密演算法!好了,我們來看一下對稱加密演算法的定義(來源:wikipedia):
對稱密鑰加密(英語:Symmetric-key algorithm)又稱為對稱加密、私鑰加密、共享密鑰加密,是密碼學中的一類加密演算法。這類演算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。實務上,這組密鑰成為在兩個或多個成員間的共同秘密,以便維持專屬的通訊聯系。與公開密鑰加密相比,要求雙方取得相同的密鑰是對稱密鑰加密的主要缺點之一
這里我想說一點的是,wikipedia的把Symmetric-key algorithm中文翻譯是 對稱密鑰加密,我不想把這個key翻譯成密鑰,因為key僅僅是一個「鑰」,這里翻譯成密鑰會讓大家對後面所說的「公鑰」,「密鑰」,「私鑰」等等的概念弄混,好了,所以我還是比較喜歡稱之為「對稱加密演算法」,而後面說又稱「私鑰」加密,共享「密鑰」,這里,「私鑰」就等於「密鑰」,沒有任何區別,英文是「private key」。
ok,我們將定義結合我們前面的例子對應一下,「這類演算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰」,其實在我們例子中,密鑰就是「將(A,B,C,D)轉換成(摸左耳朵,摸右耳朵,放左手,放右手)」這么一個規則。「實務上,這組密鑰成為在兩個或多個成員間的共同秘密,以便維持專屬的通訊聯系。」 這句話很好理解了吧,密鑰是張三和李四間共同的秘密!只有他倆事先知道。
所以,為什麼叫對稱加密呢,你可以這么理解,一方通過密鑰將信息加密後,把密文傳給另一方,另一方通過這個相同的密鑰將密文解密,轉換成可以理解的明文。他們之間的關系如下:
明文 <-> 密鑰 <-> 密文
⑦ 常見加密演算法原理及概念
在安全領域,利用密鑰加密演算法來對通信的過程進行加密是一種常見的安全手段。利用該手段能夠保障數據安全通信的三個目標:
而常見的密鑰加密演算法類型大體可以分為三類:對稱加密、非對稱加密、單向加密。下面我們來了解下相關的演算法原理及其常見的演算法。
對稱加密演算法採用單密鑰加密,在通信過程中,數據發送方將原始數據分割成固定大小的塊,經過密鑰和加密演算法逐個加密後,發送給接收方;接收方收到加密後的報文後,結合密鑰和解密演算法解密組合後得出原始數據。由於加解密演算法是公開的,因此在這過程中,密鑰的安全傳遞就成為了至關重要的事了。而密鑰通常來說是通過雙方協商,以物理的方式傳遞給對方,或者利用第三方平台傳遞給對方,一旦這過程出現了密鑰泄露,不懷好意的人就能結合相應的演算法攔截解密出其加密傳輸的內容。
對稱加密演算法擁有著演算法公開、計算量小、加密速度和效率高得特定,但是也有著密鑰單一、密鑰管理困難等缺點。
常見的對稱加密演算法有:
DES:分組式加密演算法,以64位為分組對數據加密,加解密使用同一個演算法。
3DES:三重數據加密演算法,對每個數據塊應用三次DES加密演算法。
AES:高級加密標准演算法,是美國聯邦政府採用的一種區塊加密標准,用於替代原先的DES,目前已被廣泛應用。
Blowfish:Blowfish演算法是一個64位分組及可變密鑰長度的對稱密鑰分組密碼演算法,可用來加密64比特長度的字元串。
非對稱加密演算法採用公鑰和私鑰兩種不同的密碼來進行加解密。公鑰和私鑰是成對存在,公鑰是從私鑰中提取產生公開給所有人的,如果使用公鑰對數據進行加密,那麼只有對應的私鑰才能解密,反之亦然。
下圖為簡單非對稱加密演算法的常見流程:
發送方Bob從接收方Alice獲取其對應的公鑰,並結合相應的非對稱演算法將明文加密後發送給Alice;Alice接收到加密的密文後,結合自己的私鑰和非對稱演算法解密得到明文。這種簡單的非對稱加密演算法的應用其安全性比對稱加密演算法來說要高,但是其不足之處在於無法確認公鑰的來源合法性以及數據的完整性。
非對稱加密演算法具有安全性高、演算法強度負復雜的優點,其缺點為加解密耗時長、速度慢,只適合對少量數據進行加密,其常見演算法包括:
RSA :RSA演算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰,可用於加密,也能用於簽名。
DSA :數字簽名演算法,僅能用於簽名,不能用於加解密。
DSS :數字簽名標准,技能用於簽名,也可以用於加解密。
ELGamal :利用離散對數的原理對數據進行加解密或數據簽名,其速度是最慢的。
單向加密演算法常用於提取數據指紋,驗證數據的完整性。發送者將明文通過單向加密演算法加密生成定長的密文串,然後傳遞給接收方。接收方在收到加密的報文後進行解密,將解密獲取到的明文使用相同的單向加密演算法進行加密,得出加密後的密文串。隨後將之與發送者發送過來的密文串進行對比,若發送前和發送後的密文串相一致,則說明傳輸過程中數據沒有損壞;若不一致,說明傳輸過程中數據丟失了。單向加密演算法只能用於對數據的加密,無法被解密,其特點為定長輸出、雪崩效應。常見的演算法包括:MD5、sha1、sha224等等,其常見用途包括:數字摘要、數字簽名等等。
密鑰交換IKE(Internet Key Exchange)通常是指雙方通過交換密鑰來實現數據加密和解密,常見的密鑰交換方式有下面兩種:
1、公鑰加密,將公鑰加密後通過網路傳輸到對方進行解密,這種方式缺點在於具有很大的可能性被攔截破解,因此不常用;
2、Diffie-Hellman,DH演算法是一種密鑰交換演算法,其既不用於加密,也不產生數字簽名。DH演算法的巧妙在於需要安全通信的雙方可以用這個方法確定對稱密鑰。然後可以用這個密鑰進行加密和解密。但是注意,這個密鑰交換協議/演算法只能用於密鑰的交換,而不能進行消息的加密和解密。雙方確定要用的密鑰後,要使用其他對稱密鑰操作加密演算法實際加密和解密消息。DH演算法通過雙方共有的參數、私有參數和演算法信息來進行加密,然後雙方將計算後的結果進行交換,交換完成後再和屬於自己私有的參數進行特殊演算法,經過雙方計算後的結果是相同的,此結果即為密鑰。
如:
在整個過程中,第三方人員只能獲取p、g兩個值,AB雙方交換的是計算後的結果,因此這種方式是很安全的。
公鑰基礎設施是一個包括硬體、軟體、人員、策略和規程的集合,用於實現基於公鑰密碼機制的密鑰和證書的生成、管理、存儲、分發和撤銷的功能,其組成包括:簽證機構CA、注冊機構RA、證書吊銷列表CRL和證書存取庫CB。
PKI採用證書管理公鑰,通過第三方可信任CA中心,把用戶的公鑰和其他用戶信息組生成證書,用於驗證用戶的身份。
公鑰證書是以數字簽名的方式聲明,它將公鑰的值綁定到持有對應私鑰的個人、設備或服務身份。公鑰證書的生成遵循X.509協議的規定,其內容包括:證書名稱、證書版本、序列號、演算法標識、頒發者、有效期、有效起始日期、有效終止日期、公鑰 、證書簽名等等的內容。
CA證書認證的流程如下圖,Bob為了向Alice證明自己是Bob和某個公鑰是自己的,她便向一個Bob和Alice都信任的CA機構申請證書,Bob先自己生成了一對密鑰對(私鑰和公鑰),把自己的私鑰保存在自己電腦上,然後把公鑰給CA申請證書,CA接受申請於是給Bob頒發了一個數字證書,證書中包含了Bob的那個公鑰以及其它身份信息,當然,CA會計算這些信息的消息摘要並用自己的私鑰加密消息摘要(數字簽名)一並附在Bob的證書上,以此來證明這個證書就是CA自己頒發的。Alice得到Bob的證書後用CA的證書(自簽署的)中的公鑰來解密消息摘要,隨後將摘要和Bob的公鑰發送到CA伺服器上進行核對。CA在接收到Alice的核對請求後,會根據Alice提供的信息核對Bob的證書是否合法,如果確認合法則回復Alice證書合法。Alice收到CA的確認回復後,再去使用從證書中獲取的Bob的公鑰加密郵件然後發送給Bob,Bob接收後再以自己的私鑰進行解密。
⑧ 加密技術
對稱加密就是指,加密和解密使用同一個密鑰的加密方式。需要用到的有加密演算法和加密秘鑰。例如加密演算法可以類似這樣的加密規則(a ->b,b->w,c->a)
發送方使用密鑰將明文數據加密成密文,然後發送出去,接收方收到密文後,使用同一個密鑰將密文解密成明文讀取。
優點:加密計算量小、速度快,效率高,適合對大量數據進行加密的場景。
缺點:(1)密鑰不適合在網上傳輸(容易被截取),(2)密鑰維護麻煩
DES 、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES。
數據加密標准DES屬於常規密鑰密碼體制,是一種分組密碼。加密前,先對整個明文進行分組,每一組長為64位,然後對每一個64位二進制數據進行加密處理,產生一組64位密文數據。最後將各組密文串接起來,即得出整個的密文。使用的密鑰為64位(實際密鑰長度為56位,有8位用於奇偶檢驗)
DES的保密性取決於密鑰的保密,而演算法是公開的。盡管人們在破譯DES方面取得了許多進展,但至今仍未能找到比窮舉搜索密鑰更有效的方法。DES是世界上第一個公認的實用密碼演算法標准,它曾對密碼學的發展做出了重大貢獻。目前較為嚴重的問題是DES的密鑰長度,現在已經設計出搜索DES密鑰的專用晶元。
DES演算法安全性取決於密鑰長度,56位密鑰破解需要3.5到21分鍾,128位密鑰破解需要5.4 * 10^18次方年
注意的是:這里是沒有密鑰的情況下,直接窮舉密鑰嘗試破解。如果密鑰在傳送過程中被人截取了,就相當於直接知道加密規則了,根本不需要破解,因此密鑰在網路中傳送還是不安全。
與對稱加密演算法不同,非對稱加密演算法需要密鑰對,即兩個密鑰:公開密鑰(公鑰)和私有密鑰(私鑰)。
公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。
公鑰和私鑰是怎麼來的?
操作系統隨機生成一個隨機數,將這個隨機數通過某個函數進行運算,分成兩部分,公鑰和私鑰
優點:安全性高
缺點:加密與解密速度慢。
RSA、ECC(移動設備用)、Diffie-Hellman、El Gamal、DSA(數字簽名用)。
答案是不能
鑒於非對稱加密的機制,我們可能會有這種思路:伺服器先把公鑰直接明文傳輸給瀏覽器,之後瀏覽器向伺服器傳數據前都先用這個公鑰加密好再傳,這條數據的安全似乎可以保障了! 因為只有伺服器有相應的私鑰能解開這條數據 。
然而 由伺服器到瀏覽器的這條路怎麼保障安全? 如果伺服器用它的的私鑰加密數據傳給瀏覽器,那麼瀏覽器用公鑰可以解密它,而這個公鑰是一開始通過明文傳輸給瀏覽器的,這個公鑰被誰劫持到的話,他也能用該公鑰解密伺服器傳來的信息了。所以 目前似乎只能保證由瀏覽器向伺服器傳輸數據時的安全性 (其實仍有漏洞,下文會說)。
1、先通過非對稱加密技術,把對稱加密的密鑰X傳給對方,使得這個對稱加密的密鑰X是安全的
2、後面再通過對稱加密技術進行數據傳輸
詳細流程
(1)伺服器端擁有用於非對稱加密的 公鑰A 、 私鑰A』 。
(2)客戶端向網站伺服器請求,伺服器先把 公鑰A 明文給傳輸瀏客戶端
(3)客戶端隨機生成一個用於對稱加密的 密鑰X ,用 公鑰A 加密後傳給伺服器端。
(4)伺服器端拿到後用 私鑰A』 解密得到 密鑰X 。
(5)這樣雙方就都擁有 密鑰X 了,且別人無法知道它。之後雙方所有數據都用 密鑰X 加密解密。
數字簽名是基於公鑰密碼體制(非對稱密鑰密碼體制)的。
數字簽名必須保證以下三點:
上圖位用戶A使用數字簽名向用戶B傳輸一份文件的過程:
什麼時候使用這種不對文件加密,而對文件的摘要加密(對文件進行簽名)的技術呢?
注意: 這里強調的是只有「A公鑰」 上有認證機構CA的數字簽名,意思是CA用它的私鑰對「A公鑰」的內容進行單向散列函數得到的 加密摘要(數字簽名) ,該簽名放在「A公鑰」中(左上角那個),對於B用戶來說,它從可靠的路徑拿到CA的公鑰,使用CA的公鑰解密「A公鑰」的內容得到的128位的摘要 和 「A公鑰」的內容通過單向散列函數計算出來的是否一致,如果是表示認可這個「A公鑰」
當用戶A遺失或泄露了CA頒發的證書後,為了避免他人使用該證書冒充用戶A,用戶A向認證機構CA "掛失" 該證書。於是認證機構CA把該證書放入該認證機構的證書吊銷列表(CRL)中,並在網上公示。
用戶B在收到用戶A的公鑰時,除了要驗證該公鑰是否位認證機構頒發的,還要登錄認證機構的網站查看該公鑰是否已被認證機構吊銷變為無效證書。
認證機構CA的作用:
1、http連接很簡單,是無狀態的,明文傳輸。https協議 = http協議 + SSL,可以進行加密傳輸,身份認證
2、http連接的是80埠,https連接的是443埠
3、https協議需要伺服器端到CA申請SSL證書,即客戶端請求的時候,伺服器端發送SSL證書給客戶端,SSL證書內容包括公鑰、CA機構的數字簽名。驗證了伺服器端的身份以及公鑰的可靠性。 (注意:混合加密那裡「將公鑰A給客戶端」,嚴格的來說是把SSL證書給客戶端)
SSL提供以下三個功能
1、 SSL伺服器鑒別。允許用戶證實伺服器的身份。 具有SSL功能的瀏覽器維持一個表,上面有一些可信賴的認證中心CA和它們的公鑰
2、 SSL客戶鑒別。允許伺服器證實客戶的身份。
3、 加密的SSL會話,通過混合加密實現的 。客戶和伺服器交互的所有數據都是發送方加密,接受方解密
SSL的位置
(1)方法:get,post,head,put,delete,option,trace,connect
(2)URL欄位
(3)HTTP協議版本
User-Agent:產生請求的瀏覽器類型
Aceept:客戶端可識別的內容類型列表
Host:主機地址
200:請求被成功處理
301:永久性重定向
302:臨時性重定向
403:沒有訪問許可權
404:沒有對應資源
500:伺服器錯誤
503:伺服器停機
HTTP協議的底層使用TCP協議,所以HTTP協議的長連接和短連接在本質上是TCP層的長連接和短連接。由於TCP建立連接、維護連接、釋放連接都是要消耗一定的資源,浪費一定的時間。所對於伺服器來說,頻繁的請求釋放連接會浪費大量的時間,長時間維護太多的連接的話又需要消耗資源。所以長連接和短連接並不存在優劣之分,只是適用的場合不同而已。長連接和短連接分別有如下優點和缺點:
注意: 從HTTP/1.1版本起,默認使用長連接用以保持連接特性。 使用長連接的HTTP協議,會在響應消息報文段加入: Connection: keep-alive。TCP中也有keep alive,但是TCP中的keep alive只是探測TCP連接是否活著,而HTTP中的keep-alive是讓一個TCP連接獲得更久一點。
⑨ 對稱密鑰加密是如何進行的
對稱密鑰加密也叫秘密/專用密鑰加密(Secret Key Encryption),即發送和接收數據的雙方必須使用相同的/對稱的密鑰對明文進行加密和解密運算。
非對稱密鑰加密也叫公開密鑰加密(Public Key Encryption),是指每個人都有一對唯一對應的密鑰:公開密鑰和私有密鑰,公鑰對外公開,私鑰由個人秘密保存;用其中一把密鑰來加密,就只能用另一把密鑰來解密。發送數據的一方用另一方的公鑰對發送的信息進行加密,然後由接受者用自己的私鑰進行解密。公開密鑰加密技術解決了密鑰的發布和管理問題,是目前商業密碼的核心。使用公開密鑰技術,進行數據通信的雙方可以安全地確認對方身份和公開密鑰,提供通信的可鑒別性。
⑩ 名詞解釋:對稱加密和非對稱加密
1.需要對加密和解密使用相同密鑰的加密演算法。由於其速度,對稱性加密通常在消息發送方需要加密大量數據時使用。對稱性加密也稱為密鑰加密。
所謂對稱,就是採用這種加密方法的雙方使用方式用同樣的密鑰進行加密和解密。密鑰實際上是一種演算法,通信發送方使用這種演算法加密數據,接收方在意同樣的演算法解密數據。
因此對稱式加密本身不是安全的。
常用的對稱加密有:
DES、IDEA、RC2、RC4、SKIPJACK演算法等
2.非對稱加密演算法中,加密密鑰不同於解密密鑰,加密密鑰公之於眾,誰都可以使用。解密密鑰只有解密人自己知道,分別稱為公開密鑰 (Public key) 和秘密密鑰 (Private key)。