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


