假設使用一種加密演算法
⑴ 幫忙說一種加密方法實際應用的案例
md5的全稱是message-digest algorithm 5(信息-摘要演算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest開發出來,經md2、md3和md4發展而來。它的作用是讓大容量信息在用數字簽名軟體簽署私人密匙前被"壓縮"成一種保密的格式(就是把一個任意長度的位元組串變換成一定長的大整數)。不管是md2、md4還是md5,它們都需要獲得一個隨機長度的信息並產生一個128位的信息摘要。雖然這些演算法的結構或多或少有些相似,但md2的設計與md4和md5完全不同,那是因為md2是為8位機器做過設計優化的,而md4和md5卻是面向32位的電腦。這三個演算法的描述和c語言源代碼在internet rfcs 1321中有詳細的描述(h++p://www.ietf.org/rfc/rfc1321.txt),這是一份最權威的文檔,由ronald l. rivest在1992年8月向ieft提交。
rivest在1989年開發出md2演算法。在這個演算法中,首先對信息進行數據補位,使信息的位元組長度是16的倍數。然後,以一個16位的檢驗和追加到信息末尾。並且根據這個新產生的信息計算出散列值。後來,rogier和chauvaud發現如果忽略了檢驗和將產生md2沖突。md2演算法的加密後結果是唯一的--既沒有重復。
為了加強演算法的安全性,rivest在1990年又開發出md4演算法。md4演算法同樣需要填補信息以確保信息的位元組長度加上448後能被512整除(信息位元組長度mod 512 = 448)。然後,一個以64位二進製表示的信息的最初長度被添加進來。信息被處理成512位damg?rd/merkle迭代結構的區塊,而且每個區塊要通過三個不同步驟的處理。den boer和bosselaers以及其他人很快的發現了攻擊md4版本中第一步和第三步的漏洞。dobbertin向大家演示了如何利用一部普通的個人電腦在幾分鍾內找到md4完整版本中的沖突(這個沖突實際上是一種漏洞,它將導致對不同的內容進行加密卻可能得到相同的加密後結果)。毫無疑問,md4就此被淘汰掉了。
盡管md4演算法在安全上有個這么大的漏洞,但它對在其後才被開發出來的好幾種信息安全加密演算法的出現卻有著不可忽視的引導作用。除了md5以外,其中比較有名的還有sha-1、ripe-md以及haval等。
一年以後,即1991年,rivest開發出技術上更為趨近成熟的md5演算法。它在md4的基礎上增加了"安全-帶子"(safety-belts)的概念。雖然md5比md4稍微慢一些,但卻更為安全。這個演算法很明顯的由四個和md4設計有少許不同的步驟組成。在md5演算法中,信息-摘要的大小和填充的必要條件與md4完全相同。den boer和bosselaers曾發現md5演算法中的假沖突(pseudo-collisions),但除此之外就沒有其他被發現的加密後結果了。
van oorschot和wiener曾經考慮過一個在散列中暴力搜尋沖突的函數(brute-force hash function),而且他們猜測一個被設計專門用來搜索md5沖突的機器(這台機器在1994年的製造成本大約是一百萬美元)可以平均每24天就找到一個沖突。但單從1991年到2001年這10年間,竟沒有出現替代md5演算法的md6或被叫做其他什麼名字的新演算法這一點,我們就可以看出這個瑕疵並沒有太多的影響md5的安全性。上面所有這些都不足以成為md5的在實際應用中的問題。並且,由於md5演算法的使用不需要支付任何版權費用的,所以在一般的情況下(非絕密應用領域。但即便是應用在絕密領域內,md5也不失為一種非常優秀的中間技術),md5怎麼都應該算得上是非常安全的了。
演算法的應用
md5的典型應用是對一段信息(message)產生信息摘要(message-digest),以防止被篡改。比如,在unix下有很多軟體在下載的時候都有一個文件名相同,文件擴展名為.md5的文件,在這個文件中通常只有一行文本,大致結構如:
md5 (tanajiya.tar.gz) =
這就是tanajiya.tar.gz文件的數字簽名。md5將整個文件當作一個大文本信息,通過其不可逆的字元串變換演算法,產生了這個唯一的md5信息摘要。如果在以後傳播這個文件的過程中,無論文件的內容發生了任何形式的改變(包括人為修改或者下載過程中線路不穩定引起的傳輸錯誤等),只要你對這個文件重新計算md5時就會發現信息摘要不相同,由此可以確定你得到的只是一個不正確的文件。如果再有一個第三方的認證機構,用md5還可以防止文件作者的"抵賴",這就是所謂的數字簽名應用。
md5還廣泛用於加密和解密技術上。比如在unix系統中用戶的密碼就是以md5(或其它類似的演算法)經加密後存儲在文件系統中。當用戶登錄的時候,系統把用戶輸入的密碼計算成md5值,然後再去和保存在文件系統中的md5值進行比較,進而確定輸入的密碼是否正確。通過這樣的步驟,系統在並不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統的合法性。這不但可以避免用戶的密碼被具有系統管理員許可權的用戶知道,而且還在一定程度上增加了密碼被破解的難度。
正是因為這個原因,現在被黑客使用最多的一種破譯密碼的方法就是一種被稱為"跑字典"的方法。有兩種方法得到字典,一種是日常搜集的用做密碼的字元串表,另一種是用排列組合方法生成的,先用md5程序計算出這些字典項的md5值,然後再用目標的md5值在這個字典中檢索。我們假設密碼的最大長度為8位位元組(8 bytes),同時密碼只能是字母和數字,共26+26+10=62個字元,排列組合出的字典的項數則是p(62,1)+p(62,2)….+p(62,8),那也已經是一個很天文的數字了,存儲這個字典就需要tb級的磁碟陣列,而且這種方法還有一個前提,就是能獲得目標賬戶的密碼md5值的情況下才可以。這種加密技術被廣泛的應用於unix系統中,這也是為什麼unix系統比一般操作系統更為堅固一個重要原因。
演算法描述
對md5演算法簡要的敘述可以為:md5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。
在md5演算法中,首先需要對信息進行填充,使其位元組長度對512求余的結果等於448。因此,信息的位元組長度(bits length)將被擴展至n*512+448,即n*64+56個位元組(bytes),n為一個正整數。填充的方法如下,在信息的後面填充一個1和無數個0,直到滿足上面的條件時才停止用0對信息的填充。然後,在在這個結果後面附加一個以64位二進製表示的填充前信息長度。經過這兩步的處理,現在的信息位元組長度=n*512+448+64=(n+1)*512,即長度恰好是512的整數倍。這樣做的原因是為滿足後面處理中對信息長度的要求。
md5中有四個32位被稱作鏈接變數(chaining variable)的整數參數,他們分別為:a=0x01234567,b=0x89abcdef,c=0xfedcba98,d=0x76543210。
當設置好這四個鏈接變數後,就開始進入演算法的四輪循環運算。循環的次數是信息中512位信息分組的數目。
將上面四個鏈接變數復制到另外四個變數中:a到a,b到b,c到c,d到d。
主循環有四輪(md4隻有三輪),每輪循環都很相似。第一輪進行16次操作。每次操作對a、b、c和d中的其中三個作一次非線性函數運算,然後將所得結果加上第四個變數,文本的一個子分組和一個常數。再將所得結果向右環移一個不定的數,並加上a、b、c或d中之一。最後用該結果取代a、b、c或d中之一。
以一下是每次操作中用到的四個非線性函數(每輪一個)。
f(x,y,z) =(x&y)|((~x)&z)
g(x,y,z) =(x&z)|(y&(~z))
h(x,y,z) =x^y^z
i(x,y,z)=y^(x|(~z))
(&是與,|是或,~是非,^是異或)
這四個函數的說明:如果x、y和z的對應位是獨立和均勻的,那麼結果的每一位也應是獨立和均勻的。
f是一個逐位運算的函數。即,如果x,那麼y,否則z。函數h是逐位奇偶操作符。
假設mj表示消息的第j個子分組(從0到15),<<
ff(a,b,c,d,mj,s,ti)表示a=b+((a+(f(b,c,d)+mj+ti)<< gg(a,b,c,d,mj,s,ti)表示a=b+((a+(g(b,c,d)+mj+ti)<< hh(a,b,c,d,mj,s,ti)表示a=b+((a+(h(b,c,d)+mj+ti)<< ii(a,b,c,d,mj,s,ti)表示a=b+((a+(i(b,c,d)+mj+ti)<<
這四輪(64步)是:
第一輪
ff(a,b,c,d,m0,7,0xd76aa478)
ff(d,a,b,c,m1,12,0xe8c7b756)
ff(c,d,a,b,m2,17,0x242070db)
ff(b,c,d,a,m3,22,0xc1bdceee)
ff(a,b,c,d,m4,7,0xf57c0faf)
ff(d,a,b,c,m5,12,0x4787c62a)
ff(c,d,a,b,m6,17,0xa8304613)
ff(b,c,d,a,m7,22,0xfd469501)
ff(a,b,c,d,m8,7,0x698098d8)
ff(d,a,b,c,m9,12,0x8b44f7af)
ff(c,d,a,b,m10,17,0xffff5bb1)
ff(b,c,d,a,m11,22,0x895cd7be)
ff(a,b,c,d,m12,7,0x6b901122)
ff(d,a,b,c,m13,12,0xfd987193)
ff(c,d,a,b,m14,17,0xa679438e)
ff(b,c,d,a,m15,22,0x49b40821)
第二輪
gg(a,b,c,d,m1,5,0xf61e2562)
gg(d,a,b,c,m6,9,0xc040b340)
gg(c,d,a,b,m11,14,0x265e5a51)
gg(b,c,d,a,m0,20,0xe9b6c7aa)
gg(a,b,c,d,m5,5,0xd62f105d)
gg(d,a,b,c,m10,9,0x02441453)
gg(c,d,a,b,m15,14,0xd8a1e681)
gg(b,c,d,a,m4,20,0xe7d3fbc8)
gg(a,b,c,d,m9,5,0x21e1cde6)
gg(d,a,b,c,m14,9,0xc33707d6)
gg(c,d,a,b,m3,14,0xf4d50d87)
gg(b,c,d,a,m8,20,0x455a14ed)
gg(a,b,c,d,m13,5,0xa9e3e905)
gg(d,a,b,c,m2,9,0xfcefa3f8)
gg(c,d,a,b,m7,14,0x676f02d9)
gg(b,c,d,a,m12,20,0x8d2a4c8a)
第三輪
hh(a,b,c,d,m5,4,0xfffa3942)
hh(d,a,b,c,m8,11,0x8771f681)
hh(c,d,a,b,m11,16,0x6d9d6122)
hh(b,c,d,a,m14,23,0xfde5380c)
hh(a,b,c,d,m1,4,0xa4beea44)
hh(d,a,b,c,m4,11,0x4bdecfa9)
hh(c,d,a,b,m7,16,0xf6bb4b60)
hh(b,c,d,a,m10,23,0xbebfbc70)
hh(a,b,c,d,m13,4,0x289b7ec6)
hh(d,a,b,c,m0,11,0xeaa127fa)
hh(c,d,a,b,m3,16,0xd4ef3085)
hh(b,c,d,a,m6,23,0x04881d05)
hh(a,b,c,d,m9,4,0xd9d4d039)
hh(d,a,b,c,m12,11,0xe6db99e5)
hh(c,d,a,b,m15,16,0x1fa27cf8)
hh(b,c,d,a,m2,23,0xc4ac5665)
第四輪
ii(a,b,c,d,m0,6,0xf4292244)
ii(d,a,b,c,m7,10,0x432aff97)
ii(c,d,a,b,m14,15,0xab9423a7)
ii(b,c,d,a,m5,21,0xfc93a039)
ii(a,b,c,d,m12,6,0x655b59c3)
ii(d,a,b,c,m3,10,0x8f0ccc92)
ii(c,d,a,b,m10,15,0xffeff47d)
ii(b,c,d,a,m1,21,0x85845dd1)
ii(a,b,c,d,m8,6,0x6fa87e4f)
ii(d,a,b,c,m15,10,0xfe2ce6e0)
ii(c,d,a,b,m6,15,0xa3014314)
ii(b,c,d,a,m13,21,0x4e0811a1)
ii(a,b,c,d,m4,6,0xf7537e82)
ii(d,a,b,c,m11,10,0xbd3af235)
ii(c,d,a,b,m2,15,0x2ad7d2bb)
ii(b,c,d,a,m9,21,0xeb86d391)
常數ti可以如下選擇:
在第i步中,ti是4294967296*abs(sin(i))的整數部分,i的單位是弧度。(4294967296等於2的32次方)
所有這些完成之後,將a、b、c、d分別加上a、b、c、d。然後用下一分組數據繼續運行演算法,最後的輸出是a、b、c和d的級聯。
當你按照我上面所說的方法實現md5演算法以後,你可以用以下幾個信息對你做出來的程序作一個簡單的測試,看看程序有沒有錯誤。
md5 ("") =
md5 ("a") =
md5 ("abc") =
md5 ("message digest") =
md5 ("abcdefghijklmnopqrstuvwxyz") =
md5 ("") =
md5 ("
01234567890") =
如果你用上面的信息分別對你做的md5演算法實例做測試,最後得出的結論和標准答案完全一樣,那我就要在這里象你道一聲祝賀了。要知道,我的程序在第一次編譯成功的時候是沒有得出和上面相同的結果的。
md5的安全性
md5相對md4所作的改進:
1. 增加了第四輪;
2. 每一步均有唯一的加法常數;
3. 為減弱第二輪中函數g的對稱性從(x&y)|(x&z)|(y&z)變為(x&z)|(y&(~z));
4. 第一步加上了上一步的結果,這將引起更快的雪崩效應;
5. 改變了第二輪和第三輪中訪問消息子分組的次序,使其更不相似;
6. 近似優化了每一輪中的循環左移位移量以實現更快的雪崩效應。各輪的位移量互不相同。
[color=red]簡單的說:
MD5叫信息-摘要演算法,是一種密碼的演算法,它可以對任何文件產生一個唯一的MD5驗證碼,每個文件的MD5碼就如同每個人的指紋一樣,都是不同的,這樣,一旦這個文件在傳輸過程中,其內容被損壞或者被修改的話,那麼這個文件的MD5碼就會發生變化,通過對文件MD5的驗證,可以得知獲得的文件是否完整。
⑵ 用c語言設計一個簡單地加密算,解密演算法,並說明其中的原理
恰巧這兩天剛看的一種思路,很簡單的加密解密演算法,我說一下吧。
演算法原理很簡單,假設你的原密碼是A,用A與數B按位異或後得到C,C就是加密後的密碼,用C再與數B按位異或後能得回A。即(A異或B)異或B=A。用C實現很簡單的。
這就相當於,你用原密碼A和特定數字B產生加密密碼C,別人拿到這個加密的密碼C,如果不知道特定的數字B,他是無法解密得到原密碼A的。
對於密碼是數字的情況可以用下面的代碼:
#include <stdio.h>
#define BIRTHDAY 19880314
int main()
{
long a, b;
scanf("%ld", &a);
printf("原密碼:%ld\n", a);
b = BIRTHDAY;
a ^= b;
printf("加密密碼:%ld\n", a);
a ^= b; printf("解密密碼:%ld\n", a);
return 0;
}
如果密碼是字元串的話,最簡單的加密演算法就是對每個字元重新映射,只要加密解密雙方共同遵守同一個映射規則就行啦。
⑶ 假設使用一種加密演算法
,它的加密方法很簡單:將每一個字母加5,即a加密為f,b加密為g.這種演算法的密鑰就是5,那麼它屬於() A對稱密碼術 B分組密碼術 C公鑰密碼術 D單項函數密碼術
⑷ 網路安全知識競賽測試題2017(3)
47. (中等)王同學喜歡在不同的購物和社交網站進行登錄和注冊,但他習慣於在不同的網站使用相同的用戶名和密碼進行注冊登錄,某天,他突然發現,自己在微博和很多網站的賬號同時都不能登錄了,這些網站使用了同樣的用戶名和密碼,請問,王同學可能遭遇了以下哪類行為攻擊:( )。
A、 拖庫
B、 撞庫
C、 建庫
D、 洗庫
48. (容易)在連接互聯網的計算機上( )處理、存儲涉及國家秘密和企業秘密信息。
A、 可以
B、 嚴禁
C、 不確定
D、 只要網路環境是安全的,就可以
49. (容易)重要數據要及時進行( ),以防出現意外情況導致數據丟失。
A、 殺毒
B、 加密
C、 備份
D、 格式化
50. (容易)下面哪個口令的安全性最高( )
A、 integrity1234567890
B、 !@7es6RFE,,,d195ds@@SDa
C、 passW@odassW@odassW@od
D、 ichunqiuadmin123456
51. (容易)主要用於通信加密機制的協議是( )
A、 HTTP
B、 FTP
C、 TELNET
D、 SSL
52. (容易)在網路訪問過程中,為了防禦網路監聽,最常用的方法是 ( )
A、 採用物理傳輸(非網路)
B、 對信息傳輸進行加密
C、 進行網路偽裝
D、 進行網路壓制
53. (中等)屬於操作系統自身的安全漏洞的是:( )。
A、 操作系統自身存在的「後門」
B、 QQ木馬病毒
C、 管理員賬戶設置弱口令
D、 電腦中防火牆未作任何訪問限制
54. (中等)Windows 操作系統提供的完成注冊表操作的工具是:()。
A、 syskey
B、 msconfig
C、 ipconfig
D、 regedit
55. (中等)使用不同的密鑰進地加解密,這樣的加密演算法叫( )。
A、 對稱式加密演算法
B、 非對稱式加密演算法
C、 MD5
D、 HASH演算法
56. (容易)有一類木馬程序,它們主要記錄用戶在操作計算機時敲擊鍵盤的按鍵情況,並通過郵件發送到控制者的郵箱。這類木馬程序屬於:( )。
A、 破壞型
B、 密碼發送型
C、 遠程訪問型
D、 鍵盤記錄型
57. (容易)關於暴力破解密碼,以下表述正確的是?( )
A、 就是使用計算機不斷嘗試密碼的所有排列組合,直到找出正確的密碼
B、 指通過木馬等侵入用戶系統,然後盜取用戶密碼
C、 指入侵者通過電子郵件哄騙等方法,使得被攻擊者提供密碼
D、 通過暴力威脅,讓用戶主動透露密碼
58. (中等)關於黑客的主要攻擊手段,以下描述不正確的是?( )
A、 包括社會工程學攻擊
B、 包括暴力破解攻擊
C、 直接滲透攻擊
D、 不盜竊系統資料
59. (中等)假設使用一種加密演算法,它的加密方法很簡單:將每一個字母加5,即a加密成f。這種演算法的密鑰就是5,那麼它屬於()
A、 對稱加密技術
B、 分組密碼技術
C、 公鑰加密技術
D、 單向函數密碼技術
60. (容易)在使用網路和計算機時,我們最常用的認證方式是:
A、 用戶名/口令認證
B、 指紋認證
C、 CA認證
D、 動態口令認證
61. (中等)許多黑客都利用系統和軟體中的漏洞進行攻擊,對此,以下最有效的解決方案是什麼?( )
A、 安裝防火牆
B、 安裝入侵檢測系統
C、 給系統和軟體更新安裝最新的補丁
D、 安裝防病毒軟體
62. (中等)郵件炸彈攻擊主要是( )
A、 破壞被攻擊者郵件伺服器
B、 惡意利用垃圾數據塞滿被攻擊者郵箱
C、 破壞被攻擊者郵件客戶端
D、 猜解受害者的郵箱口令
63. (容易)網路掃描工具( )
A、 只能作為攻擊工具
B、 只能作為防範工具
C、 既可作為攻擊工具也可以作為防範工具
D、 不能用於網路攻擊
64. (中等)操作系統中____文件系統支持加密功能( )
A、 NTFS
B、 FAT32
C、 FAT
D、 EFS
65. (容易)某網站的用戶登錄需要輸入4位數字的驗證碼,假設該網站不設置對驗證碼輸入錯誤次數的限制,如果對驗證簡訊進行暴力破解,最多嘗試多少次就可以完成破解?
A、 1000次
B、 10000次
C、 1000000次
D、 20000次
66. (容易)一般來說,個人計算機中的防病毒軟體無法防禦以下哪類威脅?
A、 Word病毒
B、 DDoS攻擊
C、 電子郵件病毒
D、 木馬
67. (中等)IPv6是由互聯網工程任務組(Internet Engineering Task Force,IETF)設計的下一代IP協議,IPv6採用的地址長度是:_________
A、 256位
B、 128位
C、 64位
D、 512位
68. (容易)近年來,電子郵件用戶和公司面臨的安全性風險日益嚴重,以下不屬於電子郵件安全威脅的是:_________
A、 SMTP的安全漏洞
B、 電子郵件群發
C、 郵件炸彈
D、 垃圾郵件
69. (中等)宏病毒是一種寄存在文檔或模板宏中的計算機病毒,以下那種類型的文件不會被宏病毒感染:_________
A、 doc
B、 xls
C、 exe
D、 ppt
70. (中等)《保守國家秘密法》中規定,機密級國家秘密保密期限一般不超過_________年:
A、 五十年
B、 二十年
C、 十年
D、 三十年
71. (中等)釋放計算機當前獲得的IP地址,使用的命令是:_________
A、 ipconfig
B、 ipconfig /all
C、 ipconfig /renew
D、 ipconfig /release
72. (中等)以下關於Windows服務描述說法錯誤的是:_________
A、 Windows服務通常是以管理員身份運行
B、 可以作為獨立的進程運行或通過DLL的形式依附在svchost進程
C、 為提升系統的安全性,管理員應盡量關閉不需要的系統服務
D、 Windows服務需要用戶交互登錄才能運行
73. (中等) 以下關於風險,說法錯誤的是:_________
A、 風險是客觀存在的
B、 任何措施都無法完全清除風險
C、 可以採取適當措施,徹底清除風險
D、 風險是指一種可能性
74. (中等)如果希望通過防火牆禁止QQ工具聯網,應該修改Windows防火牆以下哪項設置:_________
A、 入站規則
B、 出站規則
C、 連接安全規則
D、 監視
75. (中等)Windows server來賓用戶登錄主機時,用戶名為:_________
A、 anonymous
B、 admin
C、 root
D、 guest
76. (容易)DHCP可以用來為每台設備自動分配_________
A、 IP地址
B、 MAC地址
C、 URL
D、 伺服器名稱
77. (中等)網頁病毒(又稱網頁惡意代碼)是利用網頁來進行破壞的病毒,它是使用一些SCRIPT語言編寫的惡意代碼。攻擊者通常利用什麼植入網頁病毒:_________
A、 拒絕服務攻擊
B、 口令攻擊
C、 平台漏洞
D、 U盤工具
78. (中等)可以被數據完整性機制防止的攻擊方式是______
A、 假冒源地址或用戶的地址欺騙攻擊;
B、 抵賴做過信息的遞交行為;
C、 數據中途被攻擊者探聽獲取;
D、 數據在途中被攻擊者篡改或破壞
79. (中等)「進不來」 「拿不走」 「看不懂」 「改不了」 「走不脫」是網路信息安全建設的目的。其中,「看不懂」是指下面那種安全服務:
A、 數據加密
B、 身份認證
C、 數據完整性
D、 訪問控制
80. (困難)DES演算法密鑰是 64 位,因為其中一些位是用作校驗的,密鑰的實際有效位是________位。
A、 60
B、 56
C、 54
D、 48
81. (容易)下面哪一是基於一個大的整數很難分解成兩個素數因數?
A、 ECC
B、 RSA
C、 DES
D、 Diffie-Hellman
二、多選題
82.(中等 ) 為了防治垃圾郵件,常用的方法有:( )。
A、 避免隨意泄露郵件地址。
B、 定期對郵件進行備份。
C、 藉助反垃圾郵件的專門軟體。
D、 使用郵件管理、過濾功能。
83.(容易)不要打開來歷不明的網頁、電子郵件鏈接或附件是因為______。
A、 互聯網上充斥著各種釣魚網站、病毒、木馬程序
B、 不明來歷的網頁、電子郵件鏈接、附件中,很可能隱藏著大量的病毒、木馬
C、 可能含有的病毒、木馬會自動進入電腦並隱藏在電腦中,會造成文件丟失損壞
D、 可能含有的病毒、木馬會自動進入電腦並隱藏在電腦中,會導致系統癱瘓
⑸ 有沒有一種加密簡單,解密難的演算法如果有請說說原理
原本的加解密都要保證效率的否則沒啥太多意義,你說的這種加密快,解密慢的比較常見的就是壓縮文件加密,加密很快,解密的時候你不給出密碼,只給一個范圍,比如密碼由大小寫字母、數字,多少位,任何人拿到這個都只能用暴力破解的方法,破解的時間隨你的密碼的長度和復雜度而定。
⑹ 一個關於加密演算法的問題
這是凱撒秘密
屬於對稱加密
--------------------
樓下回答很搞笑
古典密碼全部都是對稱加密
⑺ 假設需要加密的明文信息為m=14,選擇:e=3,p=5,q=11,試說明使用RSA演算法的加密和解密過程及結果
RSA:
1.n=p*q=5*11=55,設m=(q-1)*(p-1)=40
2.求d, ed=1 mod m. 所以d=27
3.加密:Y=m^e mod n=14^3 mod 55=49
4.解密:X=Y^d mod n=49^27 mod 55=14=m
解密得到了明文m,證明了計算是正確性。
說明:
1.算d.原理就不講了,想知道可以看我回答過類似的問題。
比如可以使用估值法:3d=k(q-1)(p-1)+1,k=0,1,2...代入求可以整除3的k。此題k=2,很快得到d=27。
2.關於mod,49^27mod55很難計算,一定要將49分成若干次方,然後分別mod55來降低難度。當然,還可以使用有mod功能的計算器。
雖然沒分,我答了,有分的話就意思一下吧。
PS.樓上的,這道題沒你做的那麼簡單,要求d的(難點)。那道題目公鑰,私鑰都給了直接加密解密就行,太簡單了。
還有,這只是到練習吧,用不著考慮n很小的問題。
⑻ Rsa是什麼意思
RSA加密演算法是一種非對稱加密演算法。在公開密鑰加密和電子商業中RSA被廣泛使用。RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。
1973年,在英國政府通訊總部工作的數學家克利福德·柯克斯(Clifford Cocks)在一個內部文件中提出了一個相同的演算法,但他的發現被列入機密,一直到1997年才被發表。
(8)假設使用一種加密演算法擴展閱讀
RSA的安全性依賴於大數分解,但是否等同於大數分解一直未能得到理論上的證明,因為沒有證明破解RSA就一定需要作大數分解。
假設存在一種無須分解大數的演算法,那它肯定可以修改成為大數分解演算法。 RSA 的一些變種演算法已被證明等價於大數分解。不管怎樣,分解n是最顯然的攻擊方法。人們已能分解多個十進制位的大素數。因此,模數n必須選大一些,因具體適用情況而定。
⑼ 典型現在加密演算法
1.
對稱型加密演算法
也稱私用密鑰演算法.對稱型加密演算法是從傳統的簡單換位代替密碼發展而來的,自1977年美國頒布DES密碼演算法作為美國數據加密標准以來,對稱密鑰密碼體制迅猛發展,得到了世界各國關注和普遍使用.對稱密鑰密碼體制從加密模式上可分為序列密碼和分組密碼兩大類.序列密碼一直是軍事和外交場合使用的主要密碼技術之一,它的主要原理是通過有限狀態機產生性能優良的偽隨機序列,使用該序列加密信息流,得到密文序列.分組密碼的工作方式是將明文分成固定長度的組,如64比特一組,用同一密鑰和演算法對每一組加密,輸出也是固定長度的密文.對稱性的加密演算法包括美國標准56位密鑰的DES,Triple-DES,3DES,變長度密鑰的RC2和RC4,瑞士人發明的128位密鑰的IDEA等.DES(Data Encryption Standard)是由IBM公司開發的最著名的數據加密演算法,它的核心是乘積變換.美國於1997年將其定為非機密數據的正式加密標准.在過去20多年中,DES加密演算法得到了廣泛的研究,比其他任何密鑰方案在硬體和軟體中都得到了更多的應用.DES對64位二進制數據加密,產生64位密文數據,實際密鑰長度為56位(有8位用於奇偶校驗,解密時的過程和加密時相似,但密鑰的順序正好相反),其可能的密鑰有256種,很難被破譯.在銀行業中的電子資金轉賬(EFT)領域中DES的應用獲得成功.現在DES也可由硬體實現,AT&T首先用LSI晶元實現了DES的全部工作模式,該產品稱為數據加密處理機DEP.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.
RC4演算法
RC4加密演算法
RC4加密演算法是大名鼎鼎的RSA三人組中的頭號人物Ron Rivest在1987年設計的密鑰長度可變的流加密演算法簇。之所以稱其為簇,是由於其核心部分的S-box長度可為任意,但一般為256位元組。該演算法的速度可以達到DES加密的10倍左右。
RC4演算法的原理很簡單,包括初始化演算法和偽隨機子密碼生成演算法兩大部分。假設S-box長度和密鑰長度均為為n。先來看看演算法的初始化部分(用類C偽代碼表示):
for (i=0; i<n; i++)
s[i]=i;
j=0;
for (i=0; i<n; i++)
{
j=(j+s[i]+k[i])%256;
swap(s[i], s[j]);
}
在初始化的過程中,密鑰的主要功能是將S-box攪亂,i確保S-box的每個元素都得到處理,j保證S-box的攪亂是隨機的。而不同的S-box在經過偽隨機子密碼生成演算法的處理後可以得到不同的子密鑰序列,並且,該序列是隨機的:
i=j=0;
while (明文未結束)
{
++i%=n;
j=(j+s[i])%n;
swap(s[i], s[j]);
sub_k=s((s[i]+s[j])%n);
}
得到的子密碼sub_k用以和明文進行xor運算,得到密文,解密過程也完全相同。
由於RC4演算法加密是採用的xor,所以,一旦子密鑰序列出現了重復,密文就有可能被破解。關於如何破解xor加密,請參看Bruce Schneier的Applied Cryptography一書的1.4節Simple XOR,在此我就不細說了。那麼,RC4演算法生成的子密鑰序列是否會出現重復呢?經過我的測試,存在部分弱密鑰,使得子密鑰序列在不到100萬位元組內就發生了完全的重復,如果是部分重復,則可能在不到10萬位元組內就能發生重復,因此,推薦在使用RC4演算法時,必須對加密密鑰進行測試,判斷其是否為弱密鑰。
但在2001年就有以色列科學家指出RC4加密演算法存在著漏洞,這可能對無線通信網路的安全構成威脅。
以色列魏茨曼研究所和美國思科公司的研究者發現,在使用「有線等效保密規則」(WEP)的無線網路中,在特定情況下,人們可以逆轉RC4演算法的加密過程,獲取密鑰,從而將己加密的信息解密。實現這一過程並不復雜,只需要使用一台個人電腦對加密的數據進行分析,經過幾個小時的時間就可以破譯出信息的全部內容。
專家說,這並不表示所有使用RC4演算法的軟體都容易泄密,但它意味著RC4演算法並不像人們原先認為的那樣安全。這一發現可能促使人們重新設計無線通信網路,並且使用新的加密演算法。
⑽ 加密基礎知識二 非對稱加密RSA演算法和對稱加密
上述過程中,出現了公鑰(3233,17)和私鑰(3233,2753),這兩組數字是怎麼找出來的呢?參考 RSA演算法原理(二)
首字母縮寫說明:E是加密(Encryption)D是解密(Decryption)N是數字(Number)。
1.隨機選擇兩個不相等的質數p和q。
alice選擇了61和53。(實際應用中,這兩個質數越大,就越難破解。)
2.計算p和q的乘積n。
n = 61×53 = 3233
n的長度就是密鑰長度。3233寫成二進制是110010100001,一共有12位,所以這個密鑰就是12位。實際應用中,RSA密鑰一般是1024位,重要場合則為2048位。
3.計算n的歐拉函數φ(n)。稱作L
根據公式φ(n) = (p-1)(q-1)
alice算出φ(3233)等於60×52,即3120。
4.隨機選擇一個整數e,也就是公鑰當中用來加密的那個數字
條件是1< e < φ(n),且e與φ(n) 互質。
alice就在1到3120之間,隨機選擇了17。(實際應用中,常常選擇65537。)
5.計算e對於φ(n)的模反元素d。也就是密鑰當中用來解密的那個數字
所謂"模反元素"就是指有一個整數d,可以使得ed被φ(n)除的余數為1。ed ≡ 1 (mod φ(n))
alice找到了2753,即17*2753 mode 3120 = 1
6.將n和e封裝成公鑰,n和d封裝成私鑰。
在alice的例子中,n=3233,e=17,d=2753,所以公鑰就是 (3233,17),私鑰就是(3233, 2753)。
上述故事中,blob為了偷偷地傳輸移動位數6,使用了公鑰做加密,即6^17 mode 3233 = 824。alice收到824之後,進行解密,即824^2753 mod 3233 = 6。也就是說,alice成功收到了blob使用的移動位數。
再來復習一下整個流程:
p=17,q=19
n = 17 19 = 323
L = 16 18 = 144
E = 5(E需要滿足以下兩個條件:1<E<144,E和144互質)
D = 29(D要滿足兩個條件,1<D<144,D mode 144 = 1)
假設某個需要傳遞123,則加密後:123^5 mode 323 = 225
接收者收到225後,進行解密,225^ 29 mode 323 = 123
回顧上面的密鑰生成步驟,一共出現六個數字:
p
q
n
L即φ(n)
e
d
這六個數字之中,公鑰用到了兩個(n和e),其餘四個數字都是不公開的。其中最關鍵的是d,因為n和d組成了私鑰,一旦d泄漏,就等於私鑰泄漏。那麼,有無可能在已知n和e的情況下,推導出d?
(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。
(2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。
(3)n=pq。只有將n因數分解,才能算出p和q。
結論:如果n可以被因數分解,d就可以算出,也就意味著私鑰被破解。
可是,大整數的因數分解,是一件非常困難的事情。目前,除了暴力破解,還沒有發現別的有效方法。維基網路這樣寫道:"對極大整數做因數分解的難度決定了RSA演算法的可靠性。換言之,對一極大整數做因數分解愈困難,RSA演算法愈可靠。假如有人找到一種快速因數分解的演算法,那麼RSA的可靠性就會極度下降。但找到這樣的演算法的可能性是非常小的。今天只有短的RSA密鑰才可能被暴力破解。到2008年為止,世界上還沒有任何可靠的攻擊RSA演算法的方式。只要密鑰長度足夠長,用RSA加密的信息實際上是不能被解破的。"
然而,雖然RSA的安全性依賴於大數的因子分解,但並沒有從理論上證明破譯RSA的難度與大數分解難度等價。即RSA的重大缺陷是無法從理論上把握它的保密性能如何。此外,RSA的缺點還有:
A)產生密鑰很麻煩,受到素數產生技術的限制,因而難以做到一次一密。
B)分組長度太大,為保證安全性,n 至少也要 600bits以上,使運算代價很高,尤其是速度較慢,較對稱密碼演算法慢幾個數量級;且隨著大數分解技術的發展,這個長度還在增加,不利於數據格式的標准化。因此, 使用RSA只能加密少量數據,大量的數據加密還要靠對稱密碼演算法 。
加密和解密是自古就有技術了。經常看到偵探電影的橋段,勇敢又機智的主角,拿著一長串毫無意義的數字苦惱,忽然靈光一閃,翻出一本厚書,將第一個數字對應頁碼數,第二個數字對應行數,第三個數字對應那一行的某個詞。數字變成了一串非常有意義的話:
Eat the beancurd with the peanut. Taste like the ham.
這種加密方法是將原來的某種信息按照某個規律打亂。某種打亂的方式就叫做密鑰(cipher code)。發出信息的人根據密鑰來給信息加密,而接收信息的人利用相同的密鑰,來給信息解密。 就好像一個帶鎖的盒子。發送信息的人將信息放到盒子里,用鑰匙鎖上。而接受信息的人則用相同的鑰匙打開。加密和解密用的是同一個密鑰,這種加密稱為對稱加密(symmetric encryption)。
如果一對一的話,那麼兩人需要交換一個密鑰。一對多的話,比如總部和多個特工的通信,依然可以使用同一套密鑰。 但這種情況下,對手偷到一個密鑰的話,就知道所有交流的信息了。 二戰中盟軍的情報戰成果,很多都來自於破獲這種對稱加密的密鑰。
為了更安全,總部需要給每個特工都設計一個不同的密鑰。如果是FBI這樣龐大的機構,恐怕很難維護這么多的密鑰。在現代社會,每個人的信用卡信息都需要加密。一一設計密鑰的話,銀行怕是要跪了。
對稱加密的薄弱之處在於給了太多人的鑰匙。如果只給特工鎖,而總部保有鑰匙,那就容易了。特工將信息用鎖鎖到盒子里,誰也打不開,除非到總部用唯一的一把鑰匙打開。只是這樣的話,特工每次出門都要帶上許多鎖,太容易被識破身份了。總部老大想了想,乾脆就把造鎖的技術公開了。特工,或者任何其它人,可以就地取材,按照圖紙造鎖,但無法根據圖紙造出鑰匙。鑰匙只有總部的那一把。
上面的關鍵是鎖和鑰匙工藝不同。知道了鎖,並不能知道鑰匙。這樣,銀行可以將「造鎖」的方法公布給所有用戶。 每個用戶可以用鎖來加密自己的信用卡信息。即使被別人竊聽到,也不用擔心:只有銀行才有鑰匙呢!這樣一種加密演算法叫做非對稱加密(asymmetric encryption)。非對稱加密的經典演算法是RSA演算法。它來自於數論與計算機計數的奇妙結合。
1976年,兩位美國計算機學家Whitfield Diffie 和 Martin Hellman,提出了一種嶄新構思,可以在不直接傳遞密鑰的情況下,完成解密。這被稱為"Diffie-Hellman密鑰交換演算法"。這個演算法啟發了其他科學家。人們認識到,加密和解密可以使用不同的規則,只要這兩種規則之間存在某種對應關系即可,這樣就避免了直接傳遞密鑰。這種新的加密模式被稱為"非對稱加密演算法"。
1977年,三位數學家Rivest、Shamir 和 Adleman 設計了一種演算法,可以實現非對稱加密。這種演算法用他們三個人的名字命名,叫做RSA演算法。從那時直到現在,RSA演算法一直是最廣為使用的"非對稱加密演算法"。毫不誇張地說,只要有計算機網路的地方,就有RSA演算法。
1.能「撞」上的保險箱(非對稱/公鑰加密體制,Asymmetric / Public Key Encryption)
數據加密解密和門鎖很像。最開始的時候,人們只想到了那種只能用鑰匙「鎖」數據的鎖。如果在自己的電腦上自己加密數據,當然可以用最開始這種門鎖的形式啦,方便快捷,簡單易用有木有。
但是我們現在是通信時代啊,雙方都想做安全的通信怎麼辦呢?如果也用這種方法,通信就好像互相發送密碼保險箱一樣…而且雙方必須都有鑰匙才能進行加密和解密。也就是說,兩個人都拿著保險箱的鑰匙,你把數據放進去,用鑰匙鎖上發給我。我用同樣的鑰匙把保險箱打開,再把我的數據鎖進保險箱,發送給你。
這樣看起來好像沒什麼問題。但是,這裡面 最大的問題是:我們兩個怎麼弄到同一個保險箱的同一個鑰匙呢? 好像僅有的辦法就是我們兩個一起去買個保險箱,然後一人拿一把鑰匙,以後就用這個保險箱了。可是,現代通信社會,絕大多數情況下別說一起去買保險箱了,連見個面都難,這怎麼辦啊?
於是,人們想到了「撞門」的方法。我這有個可以「撞上」的保險箱,你那裡自己也買一個這樣的保險箱。通信最開始,我把保險箱打開,就這么開著把保險箱發給你。你把數據放進去以後,把保險箱「撞」上發給我。撞上以後,除了我以外,誰都打不開保險箱了。這就是RSA了,公開的保險箱就是公鑰,但是我有私鑰,我才能打開。
2.數字簽名
這種鎖看起來好像很不錯,但是鎖在運輸的過程中有這么一個嚴重的問題:你怎麼確定你收到的開著的保險箱就是我發來的呢?對於一個聰明人,他完全可以這么干:
(a)裝作運輸工人。我現在把我開著的保險箱運給對方。運輸工人自己也弄這么一個保險箱,運輸的時候把保險箱換成他做的。
(b)對方收到保險箱後,沒法知道這個保險箱是我最初發過去的,還是運輸工人替換的。對方把數據放進去,把保險箱撞上。
(c)運輸工人往回運的時候,用自己的鑰匙打開自己的保險箱,把數據拿走。然後復印也好,偽造也好,弄出一份數據,把這份數據放進我的保險箱,撞上,然後發給我。
從我的角度,從對方的角度,都會覺得這數據傳輸過程沒問題。但是,運輸工人成功拿到了數據,整個過程還是不安全的,大概的過程是這樣:
這怎麼辦啊?這個問題的本質原因是,人們沒辦法獲知,保險箱到底是「我」做的,還是運輸工人做的。那乾脆,我們都別做保險箱了,讓權威機構做保險箱,然後在每個保險箱上用特殊的工具刻上一個編號。對方收到保險箱的時候,在權威機構的「公告欄」上查一下編號,要是和保險箱上的編號一樣,我就知道這個保險箱是「我」的,就安心把數據放進去。大概過程是這樣的:
如何做出刻上編號,而且編號沒法修改的保險箱呢?這涉及到了公鑰體制中的另一個問題:數字簽名。
要知道,刻字這種事情吧,誰都能幹,所以想做出只能自己刻字,還沒法讓別人修改的保險箱確實有點難度。那麼怎麼辦呢?這其實困擾了人們很長的時間。直到有一天,人們發現:我們不一定非要在保險箱上刻規規矩矩的字,我們乾脆在保險箱上刻手寫名字好了。而且,刻字有點麻煩,乾脆我們在上面弄張紙,讓人直接在上面寫,簡單不費事。具體做法是,我們在保險箱上嵌進去一張紙,然後每個出產的保險箱都讓權威機構的CEO簽上自己的名字。然後,CEO把自己的簽名公開在權威機構的「公告欄」上面。比如這個CEO就叫「學酥」,那麼整個流程差不多是這個樣子:
這個方法的本質原理是,每個人都能夠通過筆跡看出保險箱上的字是不是學酥CEO簽的。但是呢,這個字體是學酥CEO唯一的字體。別人很難模仿。如果模仿我們就能自己分辨出來了。要是實在分辨不出來呢,我們就請一個筆跡專家來分辨。這不是很好嘛。這個在密碼學上就是數字簽名。
上面這個簽字的方法雖然好,但是還有一個比較蛋疼的問題。因為簽字的樣子是公開的,一個聰明人可以把公開的簽字影印一份,自己造個保險箱,然後把這個影印的字也嵌進去。這樣一來,這個聰明人也可以造一個相同簽字的保險箱了。解決這個問題一個非常簡單的方法就是在看保險箱上的簽名時,不光看字體本身,還要看字體是不是和公開的字體完全一樣。要是完全一樣,就可以考慮這個簽名可能是影印出來的。甚至,還要考察字體是不是和其他保險櫃上的字體一模一樣。因為聰明人為了欺騙大家,可能不影印公開的簽名,而影印其他保險箱上的簽名。這種解決方法雖然簡單,但是驗證簽名的時候麻煩了一些。麻煩的地方在於我不僅需要對比保險箱上的簽名是否與公開的筆跡一樣,還需要對比得到的簽名是否與公開的筆跡完全一樣,乃至是否和所有發布的保險箱上的簽名完全一樣。有沒有什麼更好的方法呢?
當然有,人們想到了一個比較好的方法。那就是,學酥CEO簽字的時候吧,不光把名字簽上,還得帶上簽字得日期,或者帶上這個保險箱的編號。這樣一來,每一個保險箱上的簽字就唯一了,這個簽字是學酥CEO的簽名+學酥CEO寫上的時間或者編號。這樣一來,就算有人偽造,也只能偽造用過的保險箱。這個問題就徹底解決了。這個過程大概是這么個樣子:
3 造價問題(密鑰封裝機制,Key Encapsulation Mechanism)
解決了上面的各種問題,我們要考慮考慮成本了… 這種能「撞」門的保險箱雖然好,但是這種鎖造價一般來說要比普通的鎖要高,而且鎖生產時間也會變長。在密碼學中,對於同樣「結實」的鎖,能「撞」門的鎖的造價一般來說是普通鎖的上千倍。同時,能「撞」門的鎖一般來說只能安裝在小的保險櫃裡面。畢竟,這么復雜的鎖,裝起來很費事啊!而普通鎖安裝在多大的保險櫃上面都可以呢。如果兩個人想傳輸大量數據的話,用一個大的保險櫃比用一堆小的保險櫃慢慢傳要好的多呀。怎麼解決這個問題呢?人們又想出了一個非常棒的方法:我們把兩種鎖結合起來。能「撞」上的保險櫃裡面放一個普通鎖的鑰匙。然後造一個用普通的保險櫃來鎖大量的數據。這樣一來,我們相當於用能「撞」上的保險櫃發一個鑰匙過去。對方收到兩個保險櫃後,先用自己的鑰匙把小保險櫃打開,取出鑰匙。然後在用這個鑰匙開大的保險櫃。這樣做更棒的一個地方在於,既然對方得到了一個鑰匙,後續再通信的時候,我們就不再需要能「撞」上的保險櫃了啊,在以後一定時間內就用普通保險櫃就好了,方便快捷嘛。
以下參考 數字簽名、數字證書、SSL、https是什麼關系?
4.數字簽名(Digital Signature)
數據在瀏覽器和伺服器之間傳輸時,有可能在傳輸過程中被冒充的盜賊把內容替換了,那麼如何保證數據是真實伺服器發送的而不被調包呢,同時如何保證傳輸的數據沒有被人篡改呢,要解決這兩個問題就必須用到數字簽名,數字簽名就如同日常生活的中的簽名一樣,一旦在合同書上落下了你的大名,從法律意義上就確定是你本人簽的字兒,這是任何人都沒法仿造的,因為這是你專有的手跡,任何人是造不出來的。那麼在計算機中的數字簽名怎麼回事呢?數字簽名就是用於驗證傳輸的內容是不是真實伺服器發送的數據,發送的數據有沒有被篡改過,它就干這兩件事,是非對稱加密的一種應用場景。不過他是反過來用私鑰來加密,通過與之配對的公鑰來解密。
第一步:服務端把報文經過Hash處理後生成摘要信息Digest,摘要信息使用私鑰private-key加密之後就生成簽名,伺服器把簽名連同報文一起發送給客戶端。
第二步:客戶端接收到數據後,把簽名提取出來用public-key解密,如果能正常的解密出來Digest2,那麼就能確認是對方發的。
第三步:客戶端把報文Text提取出來做同樣的Hash處理,得到的摘要信息Digest1,再與之前解密出來的Digist2對比,如果兩者相等,就表示內容沒有被篡改,否則內容就是被人改過了。因為只要文本內容哪怕有任何一點點改動都會Hash出一個完全不一樣的摘要信息出來。
5.數字證書(Certificate Authority)
數字證書簡稱CA,它由權威機構給某網站頒發的一種認可憑證,這個憑證是被大家(瀏覽器)所認可的,為什麼需要用數字證書呢,難道有了數字簽名還不夠安全嗎?有這樣一種情況,就是瀏覽器無法確定所有的真實伺服器是不是真的是真實的,舉一個簡單的例子:A廠家給你們家安裝鎖,同時把鑰匙也交給你,只要鑰匙能打開鎖,你就可以確定鑰匙和鎖是配對的,如果有人把鑰匙換了或者把鎖換了,你是打不開門的,你就知道肯定被竊取了,但是如果有人把鎖和鑰匙替換成另一套表面看起來差不多的,但質量差很多的,雖然鑰匙和鎖配套,但是你卻不能確定這是否真的是A廠家給你的,那麼這時候,你可以找質檢部門來檢驗一下,這套鎖是不是真的來自於A廠家,質檢部門是權威機構,他說的話是可以被公眾認可的(呵呵)。
同樣的, 因為如果有人(張三)用自己的公鑰把真實伺服器發送給瀏覽器的公鑰替換了,於是張三用自己的私鑰執行相同的步驟對文本Hash、數字簽名,最後得到的結果都沒什麼問題,但事實上瀏覽器看到的東西卻不是真實伺服器給的,而是被張三從里到外(公鑰到私鑰)換了一通。那麼如何保證你現在使用的公鑰就是真實伺服器發給你的呢?我們就用數字證書來解決這個問題。數字證書一般由數字證書認證機構(Certificate Authority)頒發,證書裡麵包含了真實伺服器的公鑰和網站的一些其他信息,數字證書機構用自己的私鑰加密後發給瀏覽器,瀏覽器使用數字證書機構的公鑰解密後得到真實伺服器的公鑰。這個過程是建立在被大家所認可的證書機構之上得到的公鑰,所以這是一種安全的方式。
常見的對稱加密演算法有DES、3DES、AES、RC5、RC6。非對稱加密演算法應用非常廣泛,如SSH,
HTTPS, TLS,電子證書,電子簽名,電子身份證等等。
參考 DES/3DES/AES區別