楊元原博士國密課堂 · 第一期 | 商用密碼應(yīng)用安全性評估:Part1. 密碼算法概述
本期主講人
楊元原 博士,國家網(wǎng)絡(luò)與信息系統(tǒng)安全產(chǎn)品質(zhì)量監(jiān)督檢驗中心(公安部第三研究所)商用密碼應(yīng)用安全性評估負(fù)責(zé)人
什么是密碼算法?
密碼學(xué)(Cryptology)是研究密碼編制、密碼破譯和密碼系統(tǒng)設(shè)計的的一門綜合性科學(xué),其包括密碼編碼學(xué)和密碼分析學(xué)。密碼編碼學(xué)(Cryptography)主要研究對信息進行編碼,實現(xiàn)對信息的隱蔽。密碼分析學(xué)(Cryptanalytics)主要研究加密消息的破譯或消息的偽造。
在密碼編碼學(xué)理論中,密碼算法是研究的核心。常見的密碼算法包括對稱密碼算法、公鑰密碼算法和密碼雜湊算法三個類別。習(xí)慣上,對稱密碼算法簡稱為“對稱密碼”,公鑰密碼算法簡稱為“公鑰密碼”,密碼雜湊算法簡稱為“雜湊算法”。
商用密碼是經(jīng)我國密碼管理機構(gòu)認(rèn)可的、用于對不涉及國家秘密內(nèi)容的信息進行加密保護或者安全認(rèn)證所使用的密碼技術(shù)和密碼產(chǎn)品。目前發(fā)布的商用密碼算法涵蓋了對稱密碼算法、公鑰密碼算法和密碼雜湊算法三大類。
(1)對稱密碼算法
對稱密碼算法加密過程與解密過程使用相同的或容易相互推導(dǎo)得出的密鑰,即加密和解密兩方的密鑰是“對稱”的。對稱密碼算法還可以細(xì)分為分組密碼算法和流密碼算法。
分組密碼算法(block cipher):分組密碼首先對明文消息根據(jù)分組大小進行分組,再將明文分組、密鑰和初始向量(如果有)一起作為輸入,通過分組加密算法直接輸出密文分組(摘自《商用密碼應(yīng)用與安全性評估》)。
流密碼算法(stream cipher):又稱序列密碼。序列密碼將密鑰和初始向量作為輸入,通過密鑰流生成算法輸出密鑰流(也稱擴展密鑰序列),然后將明文序列和密鑰流進行異或,得到密文序列(摘自《商用密碼應(yīng)用與安全性評估》)。
常用的對稱密碼算法包括:
(2)公鑰密碼算法
公鑰密碼算法又稱非對稱密碼算法,既可用于加密和解密,也可用于數(shù)字簽名,打破了對稱密碼算法加密和解密必須使用相同密鑰的限制,很好地解決了對稱密碼算法中存在的密鑰管理難題。公鑰密碼算法包括公鑰加密和私鑰簽名(數(shù)字簽名)兩種主要用途。
常用的公鑰密碼算法包括:
(3)雜湊算法
密碼雜湊算法也稱作“散列算法”或“哈希算法”,現(xiàn)在的密碼行業(yè)標(biāo)準(zhǔn)統(tǒng)稱其為密碼雜湊算法,簡稱“雜湊算法”或“雜湊函數(shù)”。密碼雜湊算法對任意長度的消息進行壓縮,輸出定長的消息摘要或雜湊值。
常用的雜湊算法包括:
哪些是密碼學(xué)常用術(shù)語?
密碼學(xué)中經(jīng)常用到以下幾個術(shù)語:
明文:被隱蔽的消息稱作明文,通常用m表示。其英文為Message和Plaintext。明文就是沒有被加密的消息。
密文:將明文隱蔽后的結(jié)果稱作密文或密報,通常用c表示。其英文為Ciphertext。密文就是加密后的結(jié)果。
加密(Encryption):將明文變換成密文的過程稱作加密,該過程表示為。
解密(Decryption):由密文恢復(fù)出明文的過程稱作脫密,該過程表示為。
密鑰(key) :控制或參與密碼變換的可變參數(shù)稱為密鑰。密鑰又分為加密密鑰和解密密鑰。
加密密鑰是加密時用的密鑰。
解密密鑰是解密時用的密鑰。加、解密密鑰與成對使用。
加密函數(shù)與解密函數(shù)互為逆函數(shù),即對所有明文,都有
一個密文只能有一個解密結(jié)果。
如何設(shè)計密碼算法?
(1)密碼算法即使達(dá)不到理論上是不可破的,也應(yīng)當(dāng)是實際上不可破的;
(2)密碼算法的安全性不依賴于對加密體制或算法的保密,而依賴于密鑰,即滿足柯克霍夫斯(Kerckhoff)假設(shè);
(3)加密算法和解密算法適用于密鑰空間中的所有元素,弱密鑰除外;
(4)密碼算法應(yīng)易于實現(xiàn)和使用。
關(guān)注下期:《商用密碼應(yīng)用安全性評估:Part2. 商用密碼算法》
(來源:國家網(wǎng)安檢測中心)


