㈠ 對稱加密和非對稱加密
密碼學中的加密方式主要分為對稱加密與非對稱加密。
對稱加密與非對稱加密的基本概念與區別如下:
1. 對稱加密:使用相同的密鑰進行數據加密與解密。加密過程速度快,但密鑰管理復雜,存在密鑰泄露風險。
2. 非對稱加密:使用公鑰與私鑰進行加密與解密。公鑰公開,私鑰僅持有者知道,因此安全性更高。但加密解密速度較慢。
對稱加密與非對稱加密各有優缺點,以下將從理論與實踐角度進行分析。
對稱加密與非對稱加密是密碼學中兩種重要的加密技術。對稱加密使用相同的密鑰進行數據加密與解密,其主要優點在於演算法公開、計算量小、加密速度快,適用於數據量較大的場景。但其缺點在於密鑰管理復雜,一旦密鑰泄露,可能導致數據安全問題。常見的對稱加密演算法有DES、3DES、AES等。
非對稱加密則使用公鑰與私鑰進行加密與解密,其主要優點在於演算法強度高、安全性依賴於演算法與密鑰,無需在通信過程中傳輸密鑰,因此提高了安全性。但其加密解密速度相對較慢。常見的非對稱加密演算法有RSA、ECC等。
其中,對稱加密演算法包括但不限於:
DES:第一個公開的商用密碼演算法標准,適用於數據加密。
AES:分組密碼演算法,使用128、192或256位密鑰,具有編碼緊湊、設計簡單、可抵抗多種攻擊的特點。
而非對稱加密演算法則包括:
RSA:典型的公鑰密碼體制,廣泛應用於通信、數字簽名等場景。
ECC(橢圓曲線加密演算法):基於橢圓曲線數學的非對稱加密演算法,具有「短密鑰」優勢。
以下是兩種經典加密演算法的詳細描述:
DES加密演算法
AES加密演算法
在實際應用中,對稱加密與非對稱加密通常結合使用,以發揮各自優勢。例如,使用非對稱加密演算法進行密鑰交換,然後使用對稱加密演算法進行數據加密,以提高整體安全性與效率。混合加密方法在保護通信安全方面發揮了重要作用。
總結:對稱加密與非對稱加密是密碼學中兩種重要且互補的加密技術,它們在不同場景下展現出各自的優點與局限性。在實際應用中,通過合理結合這兩種技術,可以實現高效、安全的數據加密與保護。
㈡ 日本二戰的JN25b密碼體系,具體是什麼
恩尼格碼機1918年,德國發明家亞瑟·謝爾比烏斯Arthur Scherbius)和他的朋友理查德·里特(Richard Ritter)創辦了謝爾比烏斯和里特公司。這是一家專營把新技術轉化為應用方面的企業,很象現在的高新技術公司,利潤不小,可是風險也很大。謝爾比烏斯負責研究和開發方面,緊追當時的新潮流。他曾在漢諾威和慕尼黑研究過電氣應用,他的一個想法就是要用二十世紀的電氣技術來取代那種過時的鉛筆加紙的加密方法。 謝爾比烏斯發明的加密電子機械名叫ENIGMA,在以後的年代裡,它將被證明是有史以來最為可靠的加密系統之一,而對這種可靠性的盲目樂觀,又使它的使用者遭到了滅頂之災。這是後話,暫且不提。 ENIGMA看起來是一個裝滿了復雜而精緻的元件的盒子。不過要是我們把它打開來,就可以看到它可以被分解成相當簡單的幾部分。下面的圖是它的最基本部分的示意圖,我們可以看見它的三個部分:鍵盤、轉子和顯示器。在上面ENIGMA的照片上,我們看見水平面板的下面部分就是鍵盤,一共有26個鍵,鍵盤排列接近我們現在使用的計算機鍵盤。為了使消息盡量地短和更難以破譯,空格和標點符號都被省略。在示意圖中我們只畫了六個鍵。實物照片中,鍵盤上方就是顯示器,它由標示了同樣字母的26個小燈組成,當鍵盤上的某個鍵被按下時,和此字母被加密後的密文相對應的小燈就在顯示器上亮起來。同樣地,在示意圖上我們只畫了六個小燈。在顯示器的上方是三個轉子,它們的主要部分隱藏在面板之下,在示意圖中我們暫時只畫了一個轉子。 鍵盤、轉子和顯示器由電線相連,轉子本身也集成了6條線路(在實物中是26條),把鍵盤的信號對應到顯示器不同的小燈上去。在示意圖中我們可以看到,如果按下a鍵,那麼燈B就會亮,這意味著a被加密成了B。同樣地我們看到,b被加密成了A,c被加密成了D,d被加密成了F,e被加密成了E,f被加密成了C。於是如果我們在鍵盤上依次鍵入cafe(咖啡),顯示器上就會依次顯示DBCE。這是最簡單的加密方法之一,把每一個字母都按一一對應的方法替換為另一個字母,這樣的加密方式叫做「簡單替換密碼」。 一名業余愛好者藉助互聯網的力量最終破解了自二戰以來一直遺留至今的恩尼格碼密文。 雖然德國武裝力量和外交部的無線電通訊自1941年起就被盟軍逐漸掌握,但到1942年德國突然更換了新式恩尼格碼密碼機,這給盟軍造成了很大困擾,使得盟軍的反潛力量無法追蹤到德軍潛艇,被擊沉的貨船總噸位一度超過造船總噸位雖然駐在布萊奇利庄園的盟國密碼專家後來成功破譯了新式恩尼格碼密碼,但有若干密文始終未獲破解。現在,一名德國業余愛好者用上千台個人計算機通過互聯網組成了網格計算集群,解決了其中一條。 Stefan Krah是一名德國出生的小提琴手,他的業余愛好是鑽研密碼和開源軟體。1995年的《密碼月刊》雜志曾公開發表了三條密文,這激起他莫大的興趣,但他深知自己並非專業人員,孤軍奮戰顯然是不現實的,於是就編寫了一個破解程序,把它發到新聞組的帖子里,看看是否能吸引志同道合之士來助他一臂之力。 很快,他的周圍就聚集了45名有相同興趣的業余愛好者,他們願意把自己的計算機貢獻出來作破解之用,Krah利用這些個人計算機的計算能力組成了一個以互聯網為依託的網格計算集群,用它來破解已塵封半世紀之久的密文,Krah把這個項目命名為「M4」,那正是加密這些電文的恩尼格碼密碼機型號。 很快,按Krah自己的話來說就是:「參與M4項目的計算機台數呈指數性增長」,共有約2500台計算機參與了這個項目,而他所要做的就是在新聞組和郵件列表裡振臂高呼一聲。 終於,在過了一個月零幾天之後,其中一條密文被破譯了。未破解前的密文如下: 「NCZW VUSX PNYM INHZ XMQX SFWX WLKJ AHSH NMCO CCAK UQPM KCSM HKSE INJU SBLK IOSX CKUB HMLL XCSJ USRR DVKO HULX WCCB GVLI YXEO AHXR HKKF VDRE WEZL XOBA FGYU JQUK GRTV UKAM EURB VEKS UHHV OYHA BCJW MAKL FKLM YFVN RIZR VVRT KOFD ANJM OLBG FFLE OPRG TFLV RHOW OPBE KVWM UQFM PWPA RMFH AGKX IIBG」 破解後的明文如下: 「遭深水炸彈攻擊後緊急下潛,與敵接觸的最後方位為:0830h AJ 9863;(方向)220度,(速度)8節;(我)正在尾隨(敵人);(壓力讀數)14兆巴;(風向)北-北-偏東;(兵力)4;能見度10」 與戰時記錄相比對可知這是由德國海軍U264艇的Hartwig Looks上尉(總擊沉噸位14000噸)在1942年11月25日發來的電文。 Stefan Krah表示自己的破解程序結合了暴力破解和邏輯演算兩種途徑,能更好地模擬恩尼格碼密碼機轉子和接線板的排列組合。 布萊奇利庄園早已完成它的歷史使命,那些未破解的密文最後留給了像Stefan Krah這樣的業余愛好者,當年在《密碼月刊》上發表這些密文的Ralph Erskine在得知這個消息後說:「做到了當年布萊奇利庄園一直無法做到的事,我想他們應該為此感到特別驕傲。」
㈢ 對稱加密和非對稱加密的區別如何理解二者之間的密碼演算法
對稱加密和非對稱加密,最重要的的區別就是加密演算法的不同:對稱加密演算法在加密和解密時使用的是同一個秘鑰,而非對稱加密演算法需要兩個密鑰來進行加密和解密,這兩個秘鑰是公開密鑰(簡稱公鑰)和私有密鑰(簡稱私鑰)。
綜上所述,對稱加密和非對稱加密,區別關鍵是加密密鑰的不同。
㈣ 密碼學系統
本文分為7個部分,第1部分介紹密碼學的基本概念,第2部分講解常見的對稱加密演算法,第3部分講解常見的非對稱加密演算法,第4部分講解 數字簽名, 第5部分講解PKI(Public Key Infrastructure),第6部分講解哈希函數加密,第7部分講解密碼學在區塊鏈里的應用, 最後一部分會講解隨機數。
比較常見的對稱加密演算法有: Digital Encryption Standard(DES), Triple-DES, IDEA, BLOWFISH。
對稱加密的挑戰:
非對稱加密的挑戰:
比較常見的非對稱加密演算法有: RSA, ElGamal, ECC。
菲斯特爾結構的塊加密演算法是著名的一個分組密碼加密的設計模型。
1990年後對DES進行徹底的密鑰搜索的速度開始引起DES用戶的不適。 然而,用戶並不想取代DES,因為它需要花費大量的時間和金錢來改變廣泛採用並嵌入到大型安全架構中的加密演算法。
務實的做法不是完全放棄DES,而是改變DES的使用方式。 這導致了三重DES(3DES)的修改方案。
三重DES
在使用3TDES之前,用戶首先生成並分配一個3TDES密鑰K,它由三個不同的DES密鑰K1,K2和K3組成。
詳細可以看 Triple-DES
高級加密標准(Advanced Encryption Standard,AES)是目前比較流行和廣頌橋扮泛採用的對稱加密演算法。 發現至少比三重DES快6倍。
AES的功能如下:
對稱密鑰對稱分組密碼
128位數據,128/192/256位密鑰
比Triple-DES更強更快
提供完整的規格和設計細節
詳細可以看 AES
這個密碼系統是最初的系統之一。 即使在今天,它仍然是最多被使用的密碼系統。 該系統由三位學者Ron Rivest,Adi Shamir和Len Adleman發明,因此被稱為RSA密碼系統。
下面給出生成RSA密鑰對的一個例子(為了便於理解,這里採用的素數p&q值很小,實際上這些值非常高)。
設兩個素數為p = 7且q = 13。因此,模數n = pq = 7×13 = 91。
選擇 e = 5,這是一個有效的選擇,因為沒有數字是公因子5和(p - 1)(q - 1)= 6×12 = 72,除了1。
這對數字(n,e) = (91, 5)形成公鑰,可以讓任何我們希望能夠向我們發送加密消息的人使用。
向擴展歐幾里德演算法輸入p = 7,q = 13和e = 5。 輸出將是d = 29。
因此,公鑰是(91, 5),私鑰是(91, 29)。
假設發送者希望發送一些文本消息給公鑰為(n,e)的人。然後發件人將明文表示為一系列小於n的數字。
為了加密第一個明消茄文P,它是一個模n的數字。 加密過程是簡單的數學步驟:
C = Pe mod n
換句話說,密文C等於明文P乘以自己e次,然後減去模n。 這意味著C也是一個小於n的數字。
回到我們的密鑰生成例子,明文P = 10,我們得到密文C:
C = 105 mod 91
屬於ECC的一種變化。加密的核心理念與RSA相似,也是利用離散對數很難求解。
但與RSA不同的野灶是 公鑰的組成部分,EIGamal的公鑰有三部分組成, 質模數 p, 生成元素 g, 以及 公共的 Y = gx(g的x次方) mod p。
詳細可以看 ElGamal Crytosystem
橢圓曲線密碼術(ECC)是用來描述一套密碼工具和協議的術語,其安全性基於特殊版本的離散對數問題。它不使用數字模p。ECC基於與稱為橢圓曲線的數學對象相關聯的數字集合。有這些數字的加法和計算倍數的規則,就像數字模p一樣。
ECC包含許多最初為模塊化數字設計的密碼方案的變體,如ElGamal加密和數字簽名演算法。
相信當應用於橢圓曲線上的點時,離散對數問題更加困難。這會提示從數字模p切換到橢圓曲線上的點。如果我們使用基於橢圓曲線的變體,也可以用較短的密鑰獲得等效的安全級別。
較短的密鑰有兩個好處:
易於管理
高效的計算
這些優點使基於橢圓曲線的加密方案變體對計算資源受到限制的應用程序非常有吸引力。
詳細可以看 Elliptic Curve Cryptography
^符號表示為多少次方
簽名 = 消息^D mod N (D和N 為簽名者的私鑰,計算消息的D次方並求mod N,所得余數即為簽名)
消息 = 簽名^E mod N (E和N 為簽名者的公鑰,計算簽名的E次方並求mod N)
舉個例子:
私鑰: D = 29; N = 323
公鑰: E = 5; N = 323
消息: 123
由於 N 的值為 323, 因此消息需要為 0 ~ 322 這個范圍內的整數. 假設需要對 123 這個消息進行簽名.
用私鑰(D,N) = (29,323) 對消息 123 進行簽名.
消息^D mod N = 123^29 mod 323 = 157
因此 (消息, 簽名) = (123, 157)
用公鑰(E,N) = (5,323)對消息進行驗證
簽名^E mod N = 157^5 mod 323 = 123
得到消息 123 與發送者發送過來的消息 123 是一致的,因此簽名驗證成功.
https://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introction/
加法逆: a在集合中, -a在集合中的定義為使 a + (-a) = 0, 這就是加法逆元運算
乘法逆: a在集合中,且不為0, a^-1 在集合中定位為使 a* a^-1 = 1, 這就是乘法逆元運算
在聊橢圓曲線前,我們先打一些基礎然後再討論一下對數問題.
在一個集合上定義一個二元運算,這就是數學中的群。一個集合 G 要成為一個群,必須滿足下面 4 個條件:
從平常的加法概念來看, 整數集 Z 是一個群(而且是阿貝爾群). 自然數集 N 不是一個群.
我們可以在橢圓曲線上定義一個群:
https://andrea.corbellini.name/ecc/interactive/reals-add.html
如下圖: 點 A 的自我相加過程就是做 乘法的過程 這個過程叫 Point Doubling
計算 nP 需要做 n次加法 如果 n 為 k 位二進制 時間復雜度為 O(2^k)
倍加演算法 比如 n = 151 二進制為 10010111
用倍加演算法 時間復雜度有了很大的改進 O(logN) or O(k)
Q = nP
這只是 p = 211, 像 Secp256k1 這條橢圓曲線的 p = 34671663 一個78位的數字 要怎麼求出 n?
一個通俗的比喻: 假設這些點是有個人 A 在一個很大的房間里玩彈珠的游戲 玩了兩年 兩年後 A 的朋友 B來了 B看到了最後的點 以及 A 告訴B 起點 但是B怎麼能知道 A 是彈了多少次才從起點彈到終點?
上面這兩張圖是 橢圓曲線 - Secp256K1: y^2 = x^3 + 7
第一張圖: 定義在 實數域
第二張圖: 定義在 有限域Zp
是用下面的參數(p,a,b,G,n,h)形成的:
p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F = 2^256 - 2^32 - 997
a = 0
b = 7
G = [0x79BE667E_F9DCBBAC_55A06295_CE870B07_029BFCDB_2DCE28D9_59F2815B_16F81798,
0x483ADA77_26A3C465_5DA4FBFC_0E1108A8_FD17B448_A6855419_9C47D08F_FB10D4B8]
n = 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFE_BAAEDCE6_AF48A03B_BFD25E8C_D0364141
h = 1
如果橢圓曲線上一點P, 存在最小的正整數 n 使得數乘 nP=O∞, 則將 n 稱為 P 的階
計算可得 27P = -P = (3, 13) 所以 28P = 0∞ P的階為28
如何簽名?
Sig = F sig ( F keccak256 ( m ) , k )
如何計算 r
如何計算 s
s ≡ q^-1 (Keccak256(m) + r * k) (mod p)
如何驗證簽名?
P.S. 上述驗證簽名的過程中 沒有用到發送者的 私鑰
RSA 密鑰大小(bits) ECC 密鑰大小 (bits)
1024 160
2048 224
3072 256
7680 384
15360 521
有一個研究例子 同一台計算能力的計算機
為什麼 比特幣和以太坊要選擇 Secp256k1 這條橢圓曲線?
假如有人提供一條橢圓曲線比如 Secp256r1 如何驗證這條曲線的安全性?
因為公鑰是公開的,很容易被破壞或者篡改,因此需要建立和維持一種可信的基礎機制來管理公鑰。
PKI由5部分組成:
作為比喻,證書可以被視為發給該人的身份證。人們使用駕照,護照等身份證來證明自己的身份。數字證書在電子世界中具有相同的基本功能。
但有一點不同,數字證書不僅發給人,還可以發給電腦,軟體包或任何其他需要證明電子世界身份的東西。
數字證書基於ITU標准X.509,該標準定義了公鑰證書和認證驗證的標准證書格式。因此數字證書有時也被稱為X.509證書。
與用戶客戶端相關的公鑰與證書頒發機構(CA)一起存儲在數字證書中,以及其他相關信息,例如客戶信息,到期日期,使用情況,發行者等。
CA對此整個信息進行數字簽名並在證書中包含數字簽名。
任何需要對客戶的公共密鑰和相關信息進行保證的人,他都會使用CA的公鑰進行簽名驗證過程。成功的驗證可確保證書中給出的公鑰屬於在證書中給出詳細信息的人員。
下圖了展示了個人/實體獲取數字證書的過程:
如圖所示,CA接受來自客戶端的申請以證明其公鑰。 CA在適當驗證客戶身份後,向該客戶發出數字證書。
如上所述,CA向客戶頒發證書並協助其他用戶驗證證書。 CA負責正確識別要求頒發證書的客戶的身份,並確保證書中包含的信息是正確的並對其進行數字簽名。
CA的關鍵功能:
證書類別
有四種典型的證書類別:
第1類 - 通過提供電子郵件地址可輕松獲取這些證書。
第2類 - 這些證書要求提供額外的個人信息。
第3類 - 這些證書只有在對請求者的身份進行檢查後才能購買。
第4類 - 它們被需要高度信任的政府和金融機構使用。
CA可以使用第三方注冊機構(RA)對要求證書確認其身份的人或公司進行必要的檢查。 RA可能在客戶端看起來像一個CA,但它們實際上並不簽署發布的證書。
這是發布證書的管理系統,暫時或永久暫停,續訂或撤銷證書。 證書管理系統通常不會刪除證書,因為可能有必要在某個時間點證明其身份,這是出於法律原因。 CA和相關RA運行證書管理系統,以便能夠跟蹤他們的責任。
雖然客戶端的公鑰存儲在證書中,但關聯的私鑰可以存儲在密鑰所有者的計算機上。 這種方法一般不採用。 如果攻擊者能夠訪問計算機,他可以輕松訪問私鑰。 出於這個原因,私鑰存儲在通過密碼保護的安全可移動存儲令牌上。
不同的供應商經常使用不同的專有的存儲格式來存儲密鑰。 例如,Entrust使用專有的.epf格式,而Verisign,GlobalSign和Baltimore使用標準的.p12格式。
1.6 Hierarchy of CA:
由於擁有龐大的網路和全球通信的要求,所有用戶從唯一一個可信的CA獲得證書是不切實際的。其次,只有一個CA的可用性可能會導致大的阻礙,如果CA受到影響。
在這種情況下,層次認證模型很受關注,因為它允許在兩個通信方與相同CA沒有信任關系的環境中使用公鑰證書。
根CA位於CA層次結構的頂部,根CA的證書是自簽名證書。
直接隸屬於根CA(例如,CA1和CA2)的CA具有由根CA簽名的CA證書。
層次結構中下級CA(例如,CA5和CA6)下的CA具有由上級下級CA簽名的CA證書。
證書頒發機構(CA)層次體現在證書鏈中。證書鏈跟蹤從層次結構中的分支到層次結構根的證書路徑。
下圖顯示了具有從實體證書到兩個從屬CA證書(CA6和CA3)到根證書頒發機構CA證書的證書鏈的CA層次結構:
驗證證書鏈是確保特定證書鏈有效,正確簽署和可信的過程。 以下過程驗證證書鏈,從提供驗證的證書開始 -
一個正在驗證其真實性的客戶端提供他的證書,通常連同證書鏈一直到根CA.
驗證者獲取證書並使用發行者的公鑰進行驗證。 發行人的公鑰在發行人的證書中找到,該證書位於客戶證書旁邊的鏈中。
現在,如果已簽署發行人證書的較高的CA由驗證方信任,則驗證成功並在此停止。
否則,發行人證書的驗證方式與客戶在上述步驟中完成的相似。 此過程將繼續進行,直到在其中找到可信的CA,否則它將持續到根CA。
哈希函數非常有用,並且出現在幾乎所有信息安全應用程序中。
哈希函數是將數字輸入值轉換為另一個壓縮數值的 數學函數。 哈希函數的輸入具有任意長度,但輸出始終為固定長度。
哈希函數返回的值稱為消息摘要或簡單的散列值。 下面的圖片說明了哈希函數:
為了成為一個有效的加密工具,哈希函數具有以下屬性:
散列的核心是一個數學函數,該函數在兩個固定大小的數據塊上運行以創建散列碼。 這個哈希函數構成哈希演算法的一部分。
每個數據塊的大小因演算法而異。 通常塊大小從128位到512位。 下圖演示了哈希函數:
哈希演算法涉及上述哈希函數,如分組密碼。 每一輪都會輸入一個固定的大小,通常是最近消息塊和最後一輪輸出的組合。
這個過程重復進行多次,以散列整個消息。 哈希演算法的示意圖如下圖所示:
因為第一消息塊的散列值變成第二散列操作的輸入,其輸出改變第三操作的結果,等等。 這種效應被稱為散列的雪崩效應。雪崩效應對兩個即使是單個數據位也不相同的消息產生明顯不同的散列值。理解哈希函數和演算法之間的區別。 哈希函數通過對兩個固定長度的二進制數據塊進行操作來生成哈希碼。哈希演算法是一個使用哈希函數的過程,指定如何分解消息以及如何將先前消息塊的結果鏈接在一起。
後來在1995年,SHA-1被設計用於糾正SHA-0的所謂弱點。SHA-1是現有SHA哈希函數中使用最廣泛的。它被用於幾個廣泛使用的應用程序和協議,包括安全套接字層(SSL)安全。
2005年,發現了一種在實際時間框架內發現SHA-1沖突的方法,使SHA-1的長期可用性受到懷疑。
SHA-2系列具有四個更進一步的SHA變體,SHA-224,SHA-256,SHA-384和SHA-512,取決於其散列值中的位數。還沒有成功的攻擊報道過SHA-2哈希函數。
雖然SHA-2是一個強大的哈希函數。雖然有很大的不同,但其基本設計仍然遵循SHA-1的設計。因此,NIST要求提供新的競爭性散列函數設計。
2012年10月,NIST選擇Keccak演算法作為新的SHA-3標准。 Keccak提供了許多好處,例如高效的表現和良好的攻擊抵抗力。
該集包括RIPEND,RIPEMD-128和RIPEMD-160。此演算法還有256位和320位版本。
原始的RIPEMD(128位)基於MD4中使用的設計原則,並且發現提供可疑的安全性。 RIPEMD 128位版本是解決原始RIPEMD漏洞的快速修復替代品。
RIPEMD-160是一個改進版本,是使用最廣泛的版本。與RIPEMD-128和RIPEMD-160相比,256和320位版本分別減少了意外沖突的可能性,但沒有更高的安全等級。
Merkle Tree 默克爾樹
哈希演算法的一個重要應用是默克爾樹(Merkle tree),默克爾樹是一種數據結構,通常是一個二叉樹,也有可能是多叉樹,它以特定的方式逐層向上計算,直到頂部,最頂層叫做默克爾根(Merkle Root),默克爾樹最為常見和最簡單的是二叉默克爾樹。
㈤ 一篇文章搞定密碼學基礎
密碼技術是網路安全的基礎,也是核心。現在對隱私保護、敏感信息尤其重視,所以不論是系統開發還是App開發,只要有網路通信,很多信息都需要進行加密,以防止被截取篡改,雖然很多人每天都在用密碼學的知識,但並不是人人都知道,謹以此篇科普一下~~~
PS:2016.7.10 補充 散列函數與消息摘要
明文M:原始數據,待加密的數據
密文C:對明文進行某種偽裝或變換後的輸出
密鑰K:加密或解密中所使用的專門工具
加密E:用某種方法將明文變成密文的過程
解密D:將密文恢復成明文的過程
一個密碼系統由五元組(M、C、K、E、D)組成,如圖所示
對稱密碼體制 :對信息進行明/密文變換時,加解和解密使用相同密鑰的密碼體制
非對稱密碼體制 :對信息進行明/密文變換時,加密和解密密鑰不相同的密碼體制
在非對稱密碼體制中,每個用戶都具有一對密鑰,一個用於加密,一個用於解密,其中加密密鑰可以公開,稱之為公鑰,解密密鑰屬於秘密,稱之為私鑰,只有用戶一人知道。
混合加密體制 :同時使用對稱密碼和非對稱密碼的體制
對稱加密的一個很大問題就是通信雙方如何將密鑰傳輸給對方,為了安全,一般採取帶外傳輸,也就是說如果加密通信是在網路,那麼密鑰的傳輸需要通過其他途徑,如簡訊,即使如此,也很難保證密鑰傳輸的安全性。非對稱加密加解最大的優點是事先不需要傳輸密鑰,但速度慢,因此實際應用中,經常採取混合密碼體制。假設A與B要實現保密通信,工作過程如下:
Hash函則腔數也稱為 散列函數 ,它能夠對不同長度的輸入信息,產生固定長度的輸出。這種固定長度的輸出稱之為原消息的散列或者 消息摘要 ,消息摘要長度固定且比原始信息小得多,一般情況下,消息摘要是不可逆的,即從消息摘要無法還原原文,為什麼說一般情況下呢,中國出了個牛人王小雲,感興趣的自行Google~~~
散列演算法:散列演算法就是產生信息散列值的演算法,它有一個特性,就是在輸入信息中如果發生細微的改變,比如給變了二進制的一位,都可以改變散列值中每個比特的特性賀洞,導致最後的輸出結果大相徑庭,所以它對於檢測消息或者密鑰等信息對象中的任何微小的變化非常有用。
一個安全的散列演算法H需要滿足:
數字簽名是指發送方以電子形式簽名一個消息或文件,簽名後的消息或文件能在網路中傳輸,並表示簽名人對該消禪盯枯息或文件的內容負有責任。數字簽名綜合使用了消息摘要和非對稱加密技術,可以保證接受者能夠核實發送者對報文的簽名,發送者事後不抵賴報文的簽名,接受者不能篡改報文內容和偽造對報文的簽名。
數字簽名需要做到兩點:
數字簽名的過程與示意圖:
數字證書是一種權威的電子文檔,由權威公正的第三方認證機構(CA)簽發,廣泛用於涉及需要身份認證和數據安全的領域。
數字證書種類:
數字證書功能:
1、信息保密
2、身份確認
3、不可否認性
4、數據完整性
數字證書的格式:
最簡單的可以是:公鑰、名稱和證書授權中心的數字簽名,目前 X.509 是一種通用的證書格式,它的第三個版本目前使用廣泛,證書內容包括:版本、序列號、簽名演算法標識、簽發者、有效期、主體、主體公開密鑰、CA的數字簽名、可選型等等
㈥ 用圖示說明對稱加密技術和非對稱加密技術相結合(即數字信封技術)的工作過程。
數字信封技術用於保證資料在傳輸過程中的安全。對稱密鑰加密和公鑰加密技術各有其優缺點,對稱密鑰加密演算法效率高,但密鑰的憤發和管理都很困難;而公鑰加密演算法密鑰易於管理和傳遞,但運行效率太低,不適於加密大量的消息,而且它要求被加密的信息塊長度要小於密鑰的長度。數字信封技術結合了密鑰加密技術和公鑰加密技術各自的優點,克服了密鑰加密技術中密鑰分發和管理困難和公鑰加密技術中加解密效率低的缺點,充分利用了密鑰系統的高效性和公鑰系統的靈活性,保證信息在傳輸過程中的靈活性。
數字信封技術首先使用密鑰加密技術對要發送的消息進行加密;再利用公鑰加密技術對密鑰系統中使用的密鑰進行加密。然後把加密的消息和加密的密鑰一起傳送給接收方。其具體的實現方法和步驟如下:
說明:以上圖中的步驟可以解釋為:
①在需要發送信息時,發送方Alice先生成一個對稱密鑰K;
②Alice利用生成的對稱密鑰K和相應的對稱密鑰演算法E( • )對要發送的明文消息P進行加密,生成密文C=Ek(P);
③然後Alice再用接收方Bob提供的公鑰KpB 對剛才用到的加密明文P的密鑰K進行加密,得到加密後的密鑰Ck;
④Alice把加密後的消息C和加密後的對稱密鑰Ck作為密文一起傳送給Bob。
⑤Bob接收到密文後,先用自己的私鑰解密Ck還原出對稱密鑰K,然後再用得到的K,根據實現商定好的對稱密鑰演算法解密得到明文P。
數字信封技術實際上是使用雙層加密體制。在內層,利用對稱密鑰加密技術,每次傳送消息都可以重新生成新的對稱密鑰,實現了一次一密,保證了信息的安全性。在外層,使用公鑰加密技術對對稱密鑰進行加密,保證對稱密鑰傳輸的安全性。數字信封技術的應用,使資料信息在公共為了中的傳輸有了安全保障。
㈦ 我們公司是設計公司,公司的電腦有很多重要的文件,怎麼保護文件資料的安全,防止泄露
資料安全要從兩方面入手耐賀叢,
一是設備的安全,
二是人員的安全。昌櫻
設備的安全可以通過處處拍滑設置密碼解決,斷開公網,限制U盤等,但這一切,還需要從人員的安全上著手,才能得到真正的保障。
人員的安全,就是需要讓設計人員,把公司的資料,當成自己的資料一樣去保管。
這個要從管理機制上入手,比如,設計人員從經濟上在項目上參股份等。