分組密碼如何算
㈠ 請簡述什麼是序列密碼與分組密碼,它們的區別是什麼
序列密碼(Stream Cipher):
又稱流密碼,將明文消息按字元逐位進行加密。
分組密碼(Block Cipher):
在分組密碼中將明文消息分組(每組有多個字元),逐組進行加密。
㈡ 什麼是分組密碼和序列密碼
分組密碼是將明文消息編碼表示後的數字(簡稱明文數字)序列,劃分成長度為n的組(可看成長度為n的矢量),每組分別在密鑰的控制下變換成等長的輸出數字(簡稱密文數字)序列。
序列密碼也稱為流密碼(Stream Cipher),它是對稱密碼演算法的一種。序列密碼具有實現簡單、便於硬體實施、加解密處理速度快、沒有或只有有限的錯誤傳播等特點,因此在實際應用中,特別是專用或機密機構中保持著優勢,典型的應用領域包括無線通信、外交通信。 1949年Shannon證明了只有一次一密的密碼體制是絕對安全的,這給序列密碼技術的研究以強大的支持,序列密碼方案的發展是模仿一次一密系統的嘗試,或者說「一次一密」的密碼方案是序列密碼的雛形。如果序列密碼所使用的是真正隨機方式的、與消息流長度相同的密鑰流,則此時的序列密碼就是一次一密的密碼體制。若能以一種方式產生一隨機序列(密鑰流),這一序列由密鑰所確定,則利用這樣的序列就可以進行加密,即將密鑰、明文表示成連續的符號或二進制,對應地進行加密,加解密時一次處理明文中的一個或幾個比特。
㈢ 什麼是分組密碼及密碼分析啊
美國早在1977年就制定了自己的數據加密標准:DES。隨著DES的出現,人們對分組密碼展開了深入的研究和討論。出現了各種各樣的分組密碼。用抽象的觀點來看,分組密碼就是一種滿足下列條件的映射E:Fm2×SK→Fm2對每個k∈SK,E(.,k是從Fm2到Fm2的一個置換。可見,設計分組密碼的問題在於找到一種演算法,能在密鑰控制下從一個足夠大且足夠「好」的置換子集合中,簡單而迅速地選出一個置換。一個好的分組密碼應該是既難破譯又容易實現,即加密函數E(.,k)和解密函數D(.,k)都必須容易計算,但是至少要從方程y=E(x,k)或x=D(y,k)中求出密鑰k應該是一個困難問題。 在分組密碼設計技術發展的同時,分組密碼分析技術也得到了空前的發展。已有很多分組密碼分析技術,如強力攻擊(包括窮盡密鑰搜索攻擊、字典攻擊、查表攻擊、時間—存儲權衡攻擊)、差分密碼分析、差分密碼分析的推廣(包括截段差分密碼分析、高階差分密碼分析、不可能差分密碼分析)、線性密碼分析、線性密碼分析的推廣(包括多重線性密碼分析、非線性密碼分析、劃分密碼分析)、差分—線性密碼分析、插值攻擊、密鑰相關攻擊、能量分析、錯誤攻擊、定時攻擊等等。
㈣ 分組密碼的演算法要求
分組密碼演算法實際上就是密鑰控制下,通過某個置換來實現對明文分組的加密變換。為了保證密碼演算法的安全強度,對密碼演算法的要求如下。 加密速度慢,錯誤擴散和傳播。
分組密碼將定長的明文塊轉換成等長的密文,這一過程在秘鑰的控制之下。使用逆向變換和同一密鑰來實現解密。對於當前的許多分組密碼,分組大小是 64 位,但這很可能會增加。
明文消息通常要比特定的分組大小長得多,而且使用不同的技術或操作方式。這樣的方式示例有:電子編碼本(ECB)、密碼分組鏈接(CBC)或密碼反饋(CFB)。ECB 使用同一個密鑰簡單地將每個明文塊一個接一個地進行加密;在 CBC 方式中,每個明文塊在加密前先與前一密文塊進行「異或」運算,從而增加了復雜程度,可以使某些攻擊更難以實施。 「輸出反饋」方式(OFB)類似 CBC 方式,但是進行「異或」的量是獨立生成的。 CBC 受到廣泛使用,例如在 DES(qv)實現中,而且在有關密碼術的技術性方面的相應書籍中深入討論了各種方式。請注意:您自己建立的 密碼系統的普遍弱點就是以簡單的形式來使用某些公開的演算法,而不是以提供了額外保護的特定方式使用。
迭代的分組密碼是那些其加密過程有多次循環的密碼,因此提高了安全性。在每個循環中,可以通過使用特殊的函數從初始秘鑰派生出的子密鑰來應用適當的變換。該附加的計算需求必然會影響可以管理加密的速度,因此在安全性需要和執行速度之間存在著一種平衡。天下沒有免費的午餐,密碼術也是如此;與其它地方一樣,應用適當方法的技巧中有一部分是源於對需要進行的權衡以及它們與需求平衡的關系如何的理解。
分組密碼包括DES、IDEA、SAFER、Blowfish和 Skipjack — 最後一個是「美國國家安全局(US National Security Agency,NSA)」限制器晶元中使用的演算法。
㈤ 分組密碼的五種工作模式
常見的分組密碼工作模式有ECB、CBC、CFB、OFB、CTR五種,下面通過流程圖分別展示了5大模式的分組密碼工作加解密的流程。
ECB(Electronic Codebook, 電子密碼本)模式是最簡單的加密模式,明文消息被分成固定大小的塊(分組),並且每個塊被單獨加密。
每個塊的加密和解密都是獨立的,且使用相同的方法進行加密,所以可以進行並行計算,但是這種方法一旦有一個塊被破解,使用相同的方法可以解密所有的明文數據,安全性比較差。
適用於數據較少的情形,加密前需要把明文數據填充到塊大小的整倍數。
CBC(Cipher Block Chaining, 密碼塊鏈)模式中每一個分組要先和前一個分組加密後的數據進行XOR異或操作,然後再進行加密。
這樣每個密文塊依賴該塊之前的所有明文塊,為了保持每條消息都具有唯一性,第一個數據塊進行加密之前需要用初始化向量IV進行異或操作。
CBC模式是一種最常用的加密模式,它主要缺點是加密是連續的,不能並行處理,並且與ECB一樣消息塊必須填充到塊大小的整倍數。
CFB(Cipher Feedback, 密碼反饋)模式和CBC模式比較相似,前一個分組的密文加密後和當前分組的明文XOR異或操作生成當前分組的密文。CFB模式的解密和CBC模式的加密在流程上其實是非常相似的。
OFB(Output Feedback, 輸出反饋)模式將分組密碼轉換為同步流密碼,也就是說可以根據明文長度先獨立生成相應長度的流密碼。通過流程圖可以看出,OFB和CFB非常相似,CFB是前一個分組的密文加密後XOR當前分組明文,OFB是前一個分組與前一個明文塊異或之前的流密碼XOR當前分組明文。由於異或操作的對稱性,OFB模式的解密和加密完全一樣的流程。
CTR(Counter, 計數器)模式與OFB模式一樣,計數器模式將分組密碼轉換為流密碼。它通過加密「計數器」的連續值來產生下一個密鑰流塊,
轉自 https://blog.csdn.net/shaosunrise/article/details/80035297
㈥ 什麼是分組密碼和序列密碼
一般分組密碼是文件中的數字
序列密碼就是光碟的密碼
分組密碼與流密碼的不同之處在於輸出的每一位數字不是只與相應時刻輸入的明文數字有關,而是與一組長為m的明文數字
㈦ 密碼學筆記
別人用A的公鑰加密傳輸的信息,只有A的私鑰可以解密。保證了傳輸的信息的安全性。
A用A的私鑰加密的信息,別人用A的公鑰才可以解密。可以證明這個信息一定是A傳輸而來的。
共享秘鑰(對稱加密):速度快,但無法保證客戶端與伺服器之間傳輸時秘鑰的安全性。
和公開密鑰(非對稱加密):安全,速度慢。
一、客戶端請求SSL(安全套接層)通信,報文中包含自己支持的SSL版本、加密演算法等。
二、伺服器應答,附帶自己的公鑰證書,協商定好的SSL版本、加密組件。
三、客戶端根據自己本地的收信任的CA公鑰,解封伺服器公鑰證書,得到伺服器公鑰。客戶端生成一個隨機碼序列,用伺服器公鑰加密後,發回伺服器。
四、伺服器用私鑰解密後,再加密將字元串傳回客戶端。
五、客戶端確認伺服器身份後,生成對稱加密演算法和共享秘鑰,使用伺服器公鑰加密後,傳給伺服器。
六、此後,雙方使用對稱加密演算法加密數據,進行傳輸。
上面過程中,一二用於獲得合法的伺服器公鑰,三四用於確認伺服器是否為真正私鑰持有者(因為,伺服器公鑰誰都可以得到)。
使用與明文比特序列一樣長的,真正的隨機數序列,進行加密,絕對安全,因為窮舉破譯後能得到整個秘鑰空間,毫無意義。
以分組為單位進行處理的密碼演算法稱為 分組密碼。
採用 Feistel網路。
以 64 bit 為一個加密單位,首先分成兩部分,各32 bit 。
加密過程持續數輪,每輪中,使用子秘鑰與右側數據經過輪函數生成一個序列,然後與左側做 XOR 。
每輪結束後,左右兩側交換。
加解密結構相同,輪數任意,函數任意。
使用秘鑰1、2、3對明文進行加密、解密、加密三個過程,稱為三重DES。
解密過程是為了兼容老版DES,如果1、2、3秘鑰相同,則成為了普通DES。
1、3秘鑰相同,2不同時,稱為DES-EDE2 。
1、2、3秘鑰不同,稱為DES-EDE3 。
採用的是 Rijndael 演算法,SPN結構。
輸入分組為 128bit(16位元組),秘鑰長度可以以 32bit 為單位,在128~256bit之間選擇。
該演算法由多輪構成,10~14輪。
一輪中:
SubBytes,按位元組,將輸入分開,以每個位元組為索引,查表找值,替換。
ShiftRows(平移行),按位元組,打亂上面的輸出。
MixColumns (混合列),按4個位元組,比特運算。
與輪秘鑰進行 XOR 。
分組密碼:每次處理,特定長度的一塊數據。
流密碼:對數據流,連續處理,需要保持內部狀態,記錄進度。
明文分組加密後,直接成為,密文分組。
特點:攻擊者無需破譯,即可操縱明文。
明文分組,與前一個密文分組XOR,加密得到自己的密文分組。
第一個分組的前一個密文分組,由 初始化向量(隨機比特序列) 代替。
加密時,需要從頭開始。因為需要與密文分組做 XOR 。
解密時,對密文分組解密,直接與密文分組 XOR 即可。
同樣的明文分組,密文值可以不相等。
密文分組可以損壞,影響部分。
密文分組比特缺失,影響全部。
前一個密文分組,通過加密演算法得到一個比特序列,稱為 密鑰流 。
明文分組,與密鑰流 XOR,得到自己的密文分組。
解密時,加密演算法對密文分組進行加密,得到密鑰流,與密文 XOR 可得到明文。
重復攻擊:假設秘鑰相同。發送 4 個分組,攻擊者保存了後面3個。轉天,你又發送了 4 個分組,攻擊者將你後面三個替換,接收方解密後,只有 2 號分組有錯。
對於每個分組,初始化向量加密後,得到密鑰流。明文與密鑰流 XOR 後,得到密文。
速度快,密鑰流可以提前生成,或者,生成秘鑰過程可以和 XOR 運算並行。
對每個計數器加密得到密鑰流。密鑰流與明文分組 XOR ,得到密文分組。
計數器生成的數,由 一個隨機序列 nonce + 從1開始的遞增數字 組成。
對每個分組,計數器遞增後,加密,得到密鑰流。
能夠以任意順序處理分組,因為加密時需要的初始數字序列能夠計算出來。
為了確保安全,有地理局限,與不同的人通信需要不同密鑰,共享繁瑣。
每個員工有自己的密鑰,密鑰分配中心使用個人密鑰,包裹臨時會話密鑰,分配給各個員工使用。
密文=明文的E次方 MOD N
E 和 N 是RSA加密用的密鑰,也就是說,E 和 N 的組合就是公鑰。
明文=密文的D次方 MOD N
D 和 N 的組合就是私鑰。
尋兩個很大的質數 p 和 q,相乘得到 N
L為 p-1 和 q-1 的最小公倍數
隨機數生成器,不停地生成數字,直到滿足如下條件:
1 < E < L
E 和 L 的最大公約數為 1
根據 E ,計算 D
1 < E < L
E × D MOD L = 1
保證 E 與 L 互質,則 D 一定存在。
求對數很容易,求 離散對數 很困難
對一個大數字進行質因數分解,人類未找到高效演算法
利用了 MOD N下,求離散對數的困難度
加密後,密文長度翻倍
利用了 MOD N下,求平方根的困難度
密碼實現通過 對橢圓曲線上的特定點進行特殊乘法。
利用了該種乘法的逆運算非常困難這一特性
單向散列函數 又稱為,消息摘要函數、哈希函數、雜湊函數
輸入的消息 又稱為,原像
散列值 又稱為,消息摘要、指紋
完整性 又稱為,一致性
根據任意消息,計算出的散列值長度,固定
用時短
消息不同,散列值不同
具備單向性
MD是消息摘要的意思
可以產生 128bit 的散列值,但它們的抗碰撞性已被攻破
SHA-1散列值長度為 160bit,強碰撞性已被攻破
其餘的統稱為 SHA-2,散列值長度為各自後面的數字
歐盟版本
第三代 SHA
消息上限 2^64 bit。
消息長度需要是 512bit 的整數倍。這樣的 512比特 稱為一個輸入分組。
過程:
消息末尾添加 1
然後添加 0,直到最後一個分組的 448比特 的位置
最後 64比特 需要保存原是消息的長度
對每個分組計算 80 個 32bit 的值。
過程:
將 512bit 分成 32bit × 16組,稱為 W0~W15
從15組中按規律取4組,進行 XOR 運算,結果循環左移 1 位,得到另外一組。如此反復,得到總共 80 組。
ABCDE 五個 32bit 的緩沖區,保存了 160bit 的消息內部狀態。
內部狀態與每個 512bit 的輸入分組混合,一共 80 個步驟。
最終得到 160bit 的最終內部狀態。
暴力破解:暴力尋找與 1億元合同 散列值相同的文件
生日攻擊:准備兩份 散列值相同的 1億元合同
可以辨別 篡改,無法辨別 偽裝,因此還需要 認證技術
認證技術包括 消息驗證碼 和 數字簽名
消息驗證碼:可以向通信對象保證消息不被篡改
數字簽名:可以向任何人保證通信對象不被篡改
message authentication code,簡稱 MAC。
相當於 使用共享密鑰的單向散列函數
SWIFT:負責銀行間的交易,公鑰密碼使用前,都是人工配送密鑰的。
IPsec:對IP協議增加安全性,採用的是消息認證碼
SSL/TLS:網上購物等場景中所用協議。
過程:
密鑰填充 至單向散列函數要求的輸入分組大小
填充後的密鑰 與 ipad(16進制的36不斷循環)XOR,得到ipadkey
與 消息 組合,計算散列值
填充後的密鑰 與 opad(16進制的5C不斷循環)XOR,得到opadkey
與 上面得到的散列值 組合,計算新的散列值,為最終的MAC值
對第三方證明
防止否認
因為知曉密鑰的只有兩個當事人,第三者無法確定能拿到合法的密鑰,無法自己計算合法MAC值
RSA:利用質因數分解難度的那個
ElGamal:利用求離散對數的困難度的那個,數字簽名有漏洞,現僅用於公鑰密碼
DSA:Schnorr演算法與ElGamal方式的變體,只能用於數字簽名
Rabin:利用了求MOD N中平方根的困難度,可用於數字簽名和公鑰密碼
例如,verisign公司的認證業務分為三個等級,等級越高,越嚴格
ITU 國際電信聯盟和 ISO 國際標准化組織制定的 X.509 規范如下
大體包含以下內容:
簽名前的證書——簽名對象的各種消息
數字簽名演算法——簽名時所用的演算法
數字簽名——得到的數字簽名
PKI :為了能有效使用公鑰而制定的一系列規范和規格
PKI 的組成要素如下
兩種方法:一種是由認證機構生成,一種是由 PKI 用戶自行生成
認證機構有一個 CRL(認證作廢清單),具有數字簽名,記載了已經作廢的證書的編號。
認證時,從上(根證書)往下
對於密鑰,關鍵的是 密鑰空間的大小
DES 的密鑰 實質長度(即,除去校驗錯誤的比特後的長度)7位元組
DES-EDE2 的實質長度 14位元組,DES-EDE3 的實質長度 21位元組
AES 的密鑰長度可以從 128、192 和 256bit 當中選
會話密鑰:每次通信中,僅使用一次的密鑰
主密鑰:一直被重復使用的密鑰
CEK:Contents Encrypting Key
KEK: Key Encrypting Key
各個步驟中的密鑰管理方法
兩種方法:
用隨機數生成密鑰:使用具備不可預測性的偽隨機數生成器生成隨機數
用口令生成密鑰:一般使用,口令 + 一串稱為 salt 的隨機數,得到他們的散列值作為密鑰(這種方法稱為:基於口令的密碼)
事先共享
秘鑰分配中心
使用公鑰密鑰
Diffie-Hellman 密鑰交換
密鑰更新:一種提高通信機密性的技術
原理:
使用 共享密鑰 進行通信時,定期改變密鑰。
雙方使用同樣的方法,對當前密鑰求 散列值,並作為下一個密鑰
優點:
後向安全:防止破譯過去的內容
對密鑰進行加密,然後保存
意義:
同時對多個密鑰進行加密,可以減少保存密鑰的數量
步驟:
P 為非常大的質數,G 為 P 的 生成元
目的為,將 隨機數 A 的信息 含蓄地發給了 B
目的為,將 隨機數 B 的信息 含蓄地發給了 A
計算方法:密鑰 = (G ^ B MOD P) ^ A MOD P = G^(A × B) MOD P
計算方法:密鑰 = (G ^ A MOD P) ^ B MOD P = G^(A × B) MOD P
對於一個質數 P ,只有它的生成元在進行 G ^ x MOD P 時,結果能夠覆蓋 0 ~ P-1 的所有數字
用途:用於安全的保存密鑰
由來:
一 生成會話密鑰 CEK ,加密消息
二 需要保密 會話密鑰CEK,使用 密鑰加密密鑰KEK 對會話密鑰進行保密
三 現在需要保密 KEK 這個密鑰,選擇使用口令生成這個 KEK
保密的問題最終都歸結為了 安全保存密鑰,然而我們記不住密鑰。
於是,選擇單向散列函數對口令生成散列值,作為密鑰。
這個密鑰無需保存,我們可以通過口令隨時求得,口令也無法被反向推出,且口令方便記憶。
順帶,為了防止字典攻擊,生成口令散列值時,需要使用 口令 + salt(隨機數序列)
事先 已准備好 候選列表 的攻擊方法
隨機性
不可預測性
不可重見性
這三個性質,越往下越嚴格。分別稱為:
弱偽隨機數(不可用於密碼學)
強偽隨機數
真隨機數
偽隨機數生成器是公開的,種子是保密的。
確保種子的不可預測性,更加容易些。
種子是用來對偽隨機數生成器的 內部狀態進行初始化 的
R1 = (A × R0 + C) MOD M
數據有限,不能用於密碼學
單向散列函數的單向性是支撐偽隨機數序列不可預測性的基礎
利用 AES 等對稱密鑰對內部狀態進行加密
從當前時間開始,利用加密演算法 求得加密後的時間的掩碼 (因為密鑰未知,別人無法推測出掩碼信息)
與內部狀態 XOR,加密後輸出, 得到偽隨機數序列
對偽隨機數序列加密後,作為 下一個內部狀態
針對極端情況的密碼軟體,具有全部功能。
TLS 由 TLS 記錄協議 和 TLS 握手協議 疊加而成。
負責消息的 加密、壓縮 和 認證
商定 客戶端和伺服器 所用的加密演算法和密鑰
負責 傳遞 變更密碼的信號
發生錯誤時 通知對方
傳輸數據
㈧ 密碼技術的分組密碼
分組密碼取用明文的一個區塊和鑰匙,輸出相同大小的密文區塊。由於信息通常比單一區塊還長,因此有了各種方式將連續的區塊編織在一起。 DES和AES是美國聯邦政府核定的分組密碼標准(AES將取代DES)。盡管將從標准上廢除,DES依然很流行(triple-DES變形仍然相當安全),被使用在非常多的應用上,從自動交易機、電子郵件到遠端存取。也有許多其他的區塊加密被發明、釋出,品質與應用上各有不同,其中不乏被破解者。
㈨ 分組密碼DES
DES是分組密碼,分組密碼將消息進行等長分組,使用同一密鑰對每個分組進行加密。
1.給定一個明文m,首先通過一個固定的初始置換ip得到m0,然後將m0分為左右兩部分,即m0=L0+R0,分別為m0的左右兩部分,均為32位。ip置換的作用是使打亂原來的順序。
2.使用密鑰對R0和L0進行16輪迭代運算,運算規則:
3.DES的核心是非線性函數f,函數的輸入有兩個變數,一個是32bit的Ri-1,另一個是48bit的ki-1,輸出的結果為32bit。
5.將上步得到的8個6bit的串,分別作為S盒的輸入,每個S盒都將6bit的消息映射成一個4bit的消息,X1X6轉換成十進制,對應表中的行號,X2X3X4X5轉換成十進制,對應於表中的列號,通過對比S盒返回一個數字,將數字轉換為四個二進製表示的數。
6.運行完8個S盒後,返回32bit的串,再將這32bit使用P置換,即可得到f函數的輸出。
7.最後一輪迭代,左右兩個32bit並不叫喚,再對R16L16進行ip逆置換,即可得到密文c。
㈩ 科普:國產密碼演算法
密碼學(cryptography): 通過將信息編碼使其不可讀,從而達到安全性。
演算法 :取一個輸入文本,產生一個輸出文本。
加密演算法 :發送方進行加密的演算法。
解密演算法 :接收方進行解密的演算法。
對稱密鑰加密 (Symmetric Key Cryptography):加密與解密使用相同密鑰。
非對稱密鑰加密 (Asymmetric Key Cryptography):加密與解密使用不同密鑰。
密鑰對 :在非對稱加密技術中,有兩種密鑰,分為私鑰和公鑰,私鑰是密鑰對所有者持有,不可公布,公鑰是密鑰對持有者公布給他人的。
公鑰 :公鑰用來給數據加密,用公鑰加密的數據只能使用私鑰解密。
私鑰 :如上,用來解密公鑰加密的數據。
摘要 :對需要傳輸的文本,做一個HASH計算。
簽名 :使用私鑰對需要傳輸的文本的摘要進行加密,得到的密文即被稱為該次傳輸過程的簽名。
密碼協議是指兩個或兩個以上的參與者為了達到某種特定目的而採取的一系列步驟。規定了一系列有序執行的步驟,必須依次執行。必須有兩個或兩個以上的參與者,有明確的目的。參與者都必須了解、同意並遵循這些步驟。
常見的密碼協議包括IPSEC VPN 協議、SSL VPN 協議、密鑰交換協議等。
密碼是指描述密碼處理過程的一組運算規則或規程,一般是指基於復雜數學問題設計的一組運算,其基本原理基於數學難題、可證明計算、計算復雜度等。主要包括:對稱密碼、公鑰密碼、雜湊演算法、隨機數生成。
在對稱加密演算法中,加密使用的密鑰和解密使用的密鑰是相同的,加密和解密都是使用同一個密鑰,不區分公鑰和私鑰。
通信雙方採用相同的密鑰來加解密會話內容,即一段待加密內容,經過同一個密鑰的兩次對稱加密後,與原來的結果一樣,具有加解密速度快和安全強度高的優點。
國際演算法:DES、AES。
國產演算法:SM1、SM4、SM7。
非對稱加解密演算法又稱為 公鑰密碼 ,其密鑰是成對出現的。雙方通信時,首先要將密鑰對中的一個密鑰傳給對方,這個密鑰可以在不安全的信道中傳輸;傳輸數據時,先使用自己持有的密鑰做加密,對方用自己傳輸過去的密鑰解密。
國際演算法:RSA
國產演算法:SM2
優點:
密鑰分發數目與參與者數目相同,在有大量參與者的情況下易於密鑰管理。
支持數字簽名和不可否認性。
無需事先與對方建立關系,交換密鑰。
缺點:
速度相對較慢。
可能比同等強度的對稱密碼演算法慢10倍到100倍。
加密後,密文變長。
密碼雜湊演算法 :又稱為散列演算法或哈希函數,一種單向函數,要由散列函數輸出的結果,回推輸入的資料是什麼,是非常困難的。
散列函數的輸出結果,被稱為訊息摘要(message digest)或是 摘要(digest) ,也被稱為 數字指紋 。
雜湊函數用於驗證消息的完整性, 在數字簽名中,非對稱演算法對數據簽名的速度較慢,一般會先將消息進行雜湊運算,生成較短的固定長度的摘要值。然後對摘要值進行簽名,會大大提高計算效率 。
國際演算法:MD5、SHA1、SHA2、SHA3
國產演算法:SM3
2009年國家密碼管理局發布的《信息安全等級保護商用密碼技術實施要求》中明確規定,一、二、三、四級信息系統應使用商用密碼技術來實施等級保護的基本要求和應用要求,一到四級的密碼配用策略要求採用國家密碼管理部門批准使用的演算法。
2010年年底,國家密碼管理局公開了SM2、SM3等國產密碼演算法。
2011年2月28日,國家密碼管理局印發的【2011】145號文中明確指出,1024位RSA演算法正在面臨日益嚴重的安全威脅,並要求各相關企業在2012年6月30日前必須使用SM2密碼演算法
國家密碼管理局在《關於做好公鑰密碼演算法升級工作的函》中要求2011年7月1日以後建立並使用公鑰密碼的信息系統,應使用SM2演算法;已經建設完成的系統,應盡快進行系統升級,使用SM2演算法。
2014年底,國家密碼管理局啟動《重要信息系統密碼應用推進總體研究課題》,確定十三五密碼 科技 專項。
2017年11月底,國家密碼管理局下發了《政務雲密碼支撐方案及應用方案設計要點》。
2017年國家密碼管理局發布了42項金融和重要領域國產密碼應用試點任務。
2018年,中共中央辦公廳、國務院辦公廳印發《金融和重要領域密碼應用與創新發展工作規劃(2018-2022年)。
2018年,為指導當時即將啟動的商用密碼應用安全性評估試點工作,國家密碼管理局發布了密碼行業標准GM/T0054-2018《信息系統密碼應用 基本要求》。
2021年3月,國家市場監管總局、國家標准化管理委員會發布公告,正式發布國家標准GB/T39786-2021《信息安全技術信息系統密碼應用基本要求》,該標准於2021年10月1日起實施。
SM1 演算法是分組密碼演算法,分組長度為 128 位,密鑰長度都為 128 比特,演算法安全保密強度及相關軟硬體實現性能與AES相當,演算法不公開,僅以IP核的形式存在於晶元中。
演算法集成於加密晶元、智能 IC 卡、智能密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括政務通、警務通等重要領域)。
SM2橢圓曲線公鑰密碼演算法是我國自主設計的公鑰密碼演算法,是一種基於ECC演算法的 非對稱密鑰演算法, 其加密強度為256位,其安全性與目前使用的RSA1024相比具有明顯的優勢。
包括SM2-1橢圓曲線數字簽名演算法,SM2-2橢圓曲線密鑰交換協議,SM2-3橢圓曲線公鑰加密演算法,分別用於實現 數字簽名密鑰協商 和 數據加密 等功能。
SM3雜湊演算法是我國自主設計的密碼雜湊演算法,屬於哈希(摘要)演算法的一種,雜湊值為256位,安全性要遠高於MD5演算法和SHA-1演算法。
適用於商用密碼應用中的 數字簽名 和 驗證消息認證碼的生成與驗證 以及 隨機數 的生成,可滿足多種密碼應用的安全需求。
SM4 分組密碼演算法 是我國自主設計的分組對稱密碼演算法,SM4演算法與AES演算法具有相同的密鑰長度分組長度128比特,因此在安全性上高於3DES演算法。
用於實現數據的加密/解密運算,以保證數據和信息的機密性。軟體和硬體加密卡均可實現此演算法。
商用密碼技術框架包括 密碼資源、密碼支撐、密碼服務、密碼應用 等四個層次,以及提供管理服務的密碼管理基礎設施。
密碼資源層: 主要是提供基礎性的密碼演算法資源。
密碼支撐層: 主要提供密碼資源調用,由安全晶元、密碼模塊、智能IC卡、密碼卡、伺服器密碼機、簽名驗簽伺服器、IPSCE/SSL VPN 等商密產品組成。
密碼服務層: 提供密碼應用介面,分為對稱和公鑰密碼服務以及其他三大類。
密碼應用層: 調用密碼服務層提供的密碼應用程序介面,實現數據的加解密、數字簽名驗簽等服務。如應用 於 安全郵件、電子印章系統、安全公文傳輸、移動辦公平台、可信時間戳等系統。
密碼管理基礎設施: 獨立組件,為以上四層提供運維管理、信任管理、設備管理、密鑰管理等功能。
完整的PKI系統必須具有權威認證機構(CA)、數字證書庫、密鑰備份及恢復系統(KMC)、證書作廢系統(CRL)、應用介面(API)等基本構成部分,構建PKI也將圍繞著這五大系統來著手構建。
CA 系統:Ca系統整個PKI的核心,負責證書的簽發。CA首先產生自身的私鑰和公鑰(密鑰長度至少為1024位),然後生成數字證書,並且將數字證書傳輸給安全伺服器。、CA還負責為操作員、安全伺服器以及注冊機構伺服器生成數字證書。安全伺服器的數字證書和私鑰也需要傳輸給安全伺服器。
CA伺服器是整個結構中最為重要的部分,存有CA的私鑰以及發行證書的腳本文件,出於安全的考慮,應將CA伺服器與其他伺服器隔離,任何通信採用人工干預的方式,確保認證中心的安全。
(1)甲使用乙的公鑰對明文進行加密,生成密文信息。
(2)甲使用HASH演算法對明文進行HASH運算,生成數字指紋。
(3)甲使用自己的私鑰對數字指紋進行加密,生成數字簽名。
(4)甲將密文信息和數字簽名一起發送給乙。
(5)乙使用甲的公鑰對數字簽名進行解密,得到數字指紋。
(6)乙接收到甲的加密信息後,使用自己的私鑰對密文信息進行解密,得到最初的明文。
(7)乙使用HASH演算法對還原出的明文用與甲所使用的相同HASH演算法進行HASH運算,生成數字指紋。然後乙將生成的數字指紋與從甲得到的數字指紋進行比較,如果一致,乙接受明文;如果不一致,乙丟棄明文。
SSL 協議建立在可靠的傳輸協議(如 TCP)之上,為高層協議提供數據封裝,壓縮,加密等基本功能。
即可以協商加密演算法實現加密傳輸,防止數據防竊聽和修改,還可以實現對端設備身份驗證、在這個過程中,使用國密演算法進行加密、簽名證書進行身份驗證、加密證書用於密鑰交換
SSL協商過程:
(1)客戶端發出會話請求。
(2)服務端發送X.509證書(包含服務端的公鑰)。
(3)客戶端用已知Ca列表認證證書。
(4)客戶端生成隨機對稱密鑰,並利用服務端的公鑰進行加密。
(5)雙方協商完畢對稱密鑰,隨後用其加密會話期間的用戶最終數據。
利用SSL卸載技術及負載均衡機制,在保障通訊數據安全傳輸的同時,減少後台應用伺服器的性能消耗,並實現伺服器集群的冗餘高可用,大幅度提升整個業務應用系統的安全性和穩定性。此外,藉助多重性能優化技術更可縮短了業務訪問的響應等待時間,明顯提升用戶的業務體驗。
基於 數字證書 實現終端身份認證,給予密碼運算實現本地數據的加密存儲,數字證書硬體存儲和密碼運算由移動終端內置的密碼部件提供。
移動應用管理系統伺服器採用簽名證書對移動應用軟體安裝包進行簽名,移動應用管理系統客戶端對簽名信息進行驗簽,保障移動應用軟體安裝包的真實性和完整性。
移動辦公應用系統採用簽名證書對關鍵訪問請求進行簽名驗證。
採用加密證書對關鍵傳輸數據和業務操作指令,以及移動終端本地存儲的重要數據進行加密保護。
移動辦公系統使用商用密碼,基於數字證書認證系統,構建覆蓋移動終端、網路、移動政務應用的安全保障體系,實現政務移動終端安全、接入安全、傳輸安全和移動應用安全 。