當前位置:成語大全網 - 漢語詞典 - 密碼技術

密碼技術

密碼算法的特征

1.需要提前分發私鑰嗎?需要考慮對稱密碼。

2.會不會被中間人攻擊?分發公鑰時需要考慮非對稱密碼。

3.不可否認性(可由雙方和第三方證明):分發公鑰時需要考慮非對稱加密。

4.消息的保密性能得到保證嗎?也就是無法破譯。

5.能否保證消息的完整性(壹致性)?也就是說,它不能被篡改。

6.不要冒充(偽造)

總結:對稱密碼(解決方案456)-非對稱密碼的單向通信->;混合密碼(求解1)-非對稱密碼數字簽名-& gt;公鑰證書(解決方案23)

概念

密碼算法:加密算法+密鑰+解密算法,縮寫為密碼。

鍵空間:鍵的所有值。

隱蔽的安全性:加密算法是未知的,這壹事實保證了秘密性。

分組密碼:分組密碼用於加密明文,而不是以全文作為輸入。

流密碼:不分組,全加密。

解密密文的方法

1,竊聽+解碼

2.社會工程

破解密鑰的方法

1.暴力破解(窮舉密鑰),比如破解凱撒密碼。

2.頻率分析,比如破譯簡單的替換密碼。

3.選擇明文攻擊(明文窮舉用於分組)

加密系統的可選技術

隱寫術:在更大的數據中隱藏信息,例如藏文詩歌。

偽隨機數發生器

哈希值(digest,Hash value,fingerprint):哈希函數(digest function,hash function,hash function,單向加密)計算出的原文的值。

對稱密碼(* * *帶密鑰的密碼):加密和解密使用相同的私鑰。

非對稱加密(公鑰加密):公鑰加密和私鑰解密。

消息認證代碼

數字簽名

公鑰證書

沖突:兩條消息的哈希值相同。

抗碰撞能力弱:給定壹條消息,很難找到另壹條具有相同哈希值的消息。為了防止以下情況,Bob持有消息A並計算其摘要;Alice找到另壹個和A哈希值相同的消息B,用B切換A;因為摘要不變,所以不會被Bob發現。

抗碰撞能力強:很難找到兩個哈希值相同的消息。為了防止以下情況,Alice用相同的摘要獲取兩條消息A和B,並將A發送給Bob。鮑勃計算他的總結;愛麗絲把A和B調換了;因為摘要不變,所以不會被Bob發現。

MD5(消息摘要5)

歷史:1991年Ronald Rivest設計的MD5。

現狀:2004年,王小雲提出了MD5碰撞攻擊算法。

恒星時角

歷史:NIST於1993年釋放了沙,於1995年釋放了沙-1,並於2002年釋放了SHA-2。

現狀:2004年,王小雲提出了SHA-0的碰撞攻擊算法;2005年,王小雲提出了SHA-1碰撞攻擊算法。

沙-3

歷史:2007年NIST發起選擇SHA-3,2012年瓊·代蒙等人設計的Keccak算法被選為SHA-3。

弱偽隨機數:隨機性

強偽隨機數:不可預測性

真隨機數:不可再現性

隨機數發生器:硬件可以通過熱噪聲實現真隨機數。

偽隨機數生成器:軟件只能生成偽隨機數,需要壹個種子來初始化。

偽隨機數算法:線性同余法、哈希法、密碼法等。

良好的對稱加密解決方案:不可破譯

缺點:需要提前分發密鑰。

吉米·金·朱姆

加密算法:字母翻譯

關鍵:翻譯數字

解密算法:反向翻譯

破解密鑰:耗盡可能的密鑰

簡單替換密碼

加密算法:壹個字母被另壹個字母代替。

關鍵字:替換表

解密算法:反向替換

破解密鑰:分析密文的字母和字母組合的頻率,並與通用頻率表進行比較;使用解密的明文字母,將它們代入密文,並執行循環分析。

英格瑪密碼

發明者:德國人亞瑟·謝爾比烏斯

加密算法:雙重加密,每日密鑰為key 1,想到壹個key 2;用密鑰1加密密鑰2,得到密鑰2的密文;用密鑰2加密消息;將密鑰2的密文和消息的密文壹起發送。

鑰匙:鑰匙本每天記錄不同的鑰匙。

解密算法:用日密鑰解密密鑰2的密文,得到密鑰2;用密鑰2解密消息密文

解密:艾倫·圖靈圖靈

DES密碼(數據加密標準)

歷史:IBM的Horst Feistel於1974年開發出路西法密碼,並於1977年被美國國家標準協會(ANSI)確認為DES標準。

加密算法:以64位為壹組,進行16輪運算。壹輪中,壹組分為左右兩邊,從鍵中抽取子鍵;wheel函數使用壹側和子密鑰生成壹個位序列,並使用該位序列對另壹側進行XOR運算。

密鑰:長度56位

解碼:可以實時暴力破解。

三重DES密碼(三重DES,TDEA,3DES)

加密算法:重復DES三次。

鑰匙:長度56 * 3

AES密碼(高級加密標準)

歷史:1997年,美國國家標準與技術研究院(NIST)公開提出了AES。2000年,比利時密碼學家瓊·代蒙和文森特·裏門提交的Rijndael方案被選為標準。

加密算法:以128位為壹組,進行多輪替換、平移、矩陣運算。

關鍵:有三種長度:128,192,256。

分組密碼的叠代模式

ECB模式:電子碼本模式;明文分組和密文分組按順序對應。主動攻擊者可以改變密文分組的順序,復制或刪除密文分組,使接收者解密後得到錯誤的明文。

CBC模式:密碼塊鏈接模式,密碼塊鏈接模式;經過異或運算後,這組明文和上面壹組密文被加密;如果被篡改,就無法正常解密。

CFB模式:密碼反饋模式、密文反饋模式;這組明文與上壹組密文進行異或運算後,得到這組密文。

OFB模式:輸出反饋模式,輸出反饋模式;使用隨機比特序列作為初始化組(初始化向量);對初始化組的密文和明文組進行異或運算,得到密文組;再次加密初始化組的密文,得到新的初始化組密文,與下壹組明文進行異或,以此類推。

CTR模式:計數器模式,計數器模式;將隨機比特序列作為計數器的初始值,加密後與明文分組進行異或運算,得到密文分組;計數器加1來加密下壹組明文。

在對稱密碼中,發送方發送密文時,攜帶消息的MAC值a;接收機使用相同的方法計算MAC值b;比較A和B,確保消息沒有被篡改。

encrypt-then-MAC:MAC值是消息密文的哈希值。

encrypt-and-MAC:MAC值是消息明文的哈希值。

MAC-then-encrypt:MAC值是明文哈希值的密文。

重放攻擊:攻擊者竊聽到愛麗絲發給鮑勃的消息後,反復發給鮑勃,鮑勃認為都是愛麗絲發的。

防止重放攻擊:消息有壹個id。

對稱加密:不能被篡改或偽造。

缺點:需要實現私鑰的分發。

基於密碼的密碼:基於密碼的加密,PBE。

解決方案:密鑰(會話密鑰)存儲問題

CEK:會話密鑰

KEK:用於加密CEK的密鑰

計劃

1,隨機數為salt,密碼+salt的哈希值為KEK。

2.用KEK加密CEK得到CEK密文。

3.只有鹽和CEK密文被保存,而人腦記住了密碼並丟棄了KEK。

字典攻擊:如果KEK的生成沒有鹽參與,那麽密碼決定了KEK,常用的密碼對應壹個常用的KEK字典,攻擊者直接用常用的KEK解密CEK密文。

鹽的作用:KEK是由鹽形成的,KEK詞典不可能收錄這樣壹個KEK。

非對稱密碼單向通信不能單獨用於通信,只能在混合密碼中使用。

方案:Alice將加密密鑰(公鑰)分發給BobBob用公鑰加密消息,並發送給Alice;Alice用解密密鑰(私鑰)解密。

摘要:消息接收者是密鑰對的所有者,即私鑰持有者;公鑰用於加密,私鑰用於解密。

RSA密碼

歷史:1978,羅恩·裏維斯特,阿迪·薩莫爾和雷納德·阿德曼***壹起發表了RSA。

加密算法:密文=明文E模式N

公鑰:e和n的組合。

解密算法:明文=密文D模式N

私鑰:d和n的組合。

生成密鑰對

生成素數:用偽隨機數生成隨機數,用米勒-拉賓檢驗法檢驗是否是素數,直到得到壹個素數。

求最大公約數:歐幾裏德的輪流除法

1,求n

用512位生成兩個素數p和q,n = p * q。

2.找到l

l是p-1和q-1的最小公倍數。

3.找到e

用偽隨機數生成(1,L)範圍內的隨機數,直到E和L的最大公約數為1。

4.找到d

用偽隨機數生成(1,L)範圍內的隨機數,直到滿足(E * D) mod L = 1。

破解:將n分解成質因數得到p和q,然後求d,但是大數的質因數分解沒有快速有效的方法。

第壹次通信是混合密碼,隨後的通信是對稱密碼。

與消息認證碼相比,不需要預先分發私鑰

大意:Bob用會話密鑰加密消息,用Alice的公鑰加密會話密鑰,壹起發給Alice;Alice用私鑰解密會話密鑰,並用會話密鑰解密消息。

會話密鑰:用於加密消息的對稱密碼的密鑰。

1.Alice將公鑰發送給Bob。

2.Bob隨機生成壹個會話密鑰,並用該會話密鑰加密消息以獲得消息密文。

3.Bob用公鑰加密會話密鑰,以獲得會話密鑰的密文。

4.Bob將會話密鑰密文和消息密文發送給Alice。

5.Alice用私鑰解密會話密鑰,然後用會話密鑰解密消息。

6.雙方都有壹個會話密鑰。從現在開始,他們可以使用對稱密碼進行通信,並攜帶消息認證碼。

缺點:分發公鑰時,可能會被中間人攻擊;Alice可能否認向Bob發送了公鑰。

中間人攻擊(Man-in-the-middle attack):中間人從Alice向Bob發布公鑰的壹開始就截獲了消息並得到了Alice的公鑰。然後偽裝成愛麗絲,把自己的公鑰發給鮑勃。以便Bob打算發送給Alice的消息可以被中間人解密。

不能單獨用於通信,只能在公鑰證書中使用。

明文簽名:Alice用簽名密鑰(私鑰)加密消息的摘要,並將摘要密文和消息明文發送給Bob;Bob解密抽象密文得到抽象A;計算明文抽象B,比較A和B。

總結:私鑰用於加密,公鑰用於解密,非對稱加密的單向通信正好相反。

公鑰證書:公鑰證書,PKC,簡稱certificate。

ca證書頒發機構

證書標準:ITU和ISO規定的X.509標準。

流程:

1,愛麗絲在CA註冊。

2.CA生成Alice的證書明文,包括Alice的註冊信息、Alice的公鑰和CA信息。

3.CA用自己的私鑰加密證書的明文部分,以獲得數字簽名。

4.證書的明文部分和數字簽名構成了頒發給Alice的PKC。

5.Bob從Alice處獲得該PKC,並用本地CA公鑰驗證該證書,從而獲得可信的Alice公鑰。

6.從此,愛麗絲和鮑勃可以用混合密碼相互交流了。

第壹次通信是從CA獲取PKC,後續通信是混合密碼。

與混合密碼相比,防止中間人攻擊;CA不能拒絕自己的證書。

歷史:網景在1994年設計SSL,SSL 3.0在2014年被發現,IEIF在1999年發布TLS。

TLS(傳輸層安全性)是SSL(安全套接字層)的後續版本。tcp和http之間加了壹層TLS,就是https。

OpenSSL:OpenSSL是壹個實現SSL/TLS協議的工具包。

以https為例。

0.安裝瀏覽器時,有幾個CA公鑰;服務器在CA中註冊並獲得證書。

1.瀏覽器訪問https地址,服務器返回自己的證書。

2.根據證書上的CA信息,瀏覽器用相應的CA公鑰對證書進行驗證,得到可信的服務器公鑰。

3.瀏覽器生成對稱密碼的密鑰(會話密鑰),用服務器公鑰加密並發送給服務器。

4.服務器解密並獲得會話密鑰。從那時起,它使用對稱密碼進行通信,並攜帶消息認證碼。

1.生成JKS證書:keytool-genkey pair-alias " alias "-keyalg " RSA "-keystore " d:\ app . jks "

2.將JKS轉換為PKCS 12:keytool-import keystore-src keystore d:\ app . jks-dest keystore d:\ app . p 12-dest storetype PKCS 12。

3.將PKCS12轉換為PEM: OpenSSL PKCS 12-in。/app.p12-outapp.pem。

4.提取加密的私鑰:將pem中“—開始加密的私鑰—”到“—結束加密的私鑰—”的內容復制並保存為密文。key

5.將密文私鑰轉換為明文私鑰:OpenSSL RSA-encryptive text . key-outplaintext . key。

。jks(Java密鑰存儲):二進制格式,包括證書和私鑰,受密碼保護。

。pfx或. p 12(PKCs # 12的預測值):二進制格式,包括證書和私鑰,受密碼保護。

。pem(隱私增強郵件):文本格式,包括證書和私鑰,受密碼保護。

。der or。cer:二進制格式,僅包含證書。

。crt(Certificate):可以是der格式,也可以是pem格式,只包含證書。

SSL證書:SSL證書必須綁定到域名,而不是IP。

加密服務、密鑰管理服務