杨元原博士国密课堂 · 第一期 | 商用密码应用安全性评估:Part1. 密码算法概述
杨元原博士国密课堂 · 第一期 | 商用密码应用安全性评估:Part1. 密码算法概述
#国密课堂#
第一期
商用密码应用
安全性评估
Part 1. 密码算法概述
什么是密码算法?
密码学(Cryptology)是研究密码编制、密码破译和密码系统设计的的一门综合性科学,其包括密码编码学和密码分析学。密码编码学(Cryptography)主要研究对信息进行编码,实现对信息的隐蔽。密码分析学(Cryptanalytics)主要研究加密消息的破译或消息的伪造。
在密码编码学理论中,密码算法是研究的核心。常见的密码算法包括对称密码算法、公钥密码算法和密码杂凑算法三个类别。习惯上,对称密码算法简称为“对称密码”,公钥密码算法简称为“公钥密码”,密码杂凑算法简称为“杂凑算法”。
商用密码是经我国密码管理机构认可的、用于对不涉及国家秘密内容的信息进行加密保护或者安全认证所使用的密码技术和密码产品。目前发布的商用密码算法涵盖了对称密码算法、公钥密码算法和密码杂凑算法三大类。
(1)对称密码算法
对称密码算法加密过程与解密过程使用相同的或容易相互推导得出的密钥,即加密和解密两方的密钥是“对称”的。对称密码算法还可以细分为分组密码算法和流密码算法。
分组密码算法(block cipher):分组密码首先对明文消息根据分组大小进行分组,再将明文分组、密钥和初始向量(如果有)一起作为输入,通过分组加密算法直接输出密文分组(摘自《商用密码应用与安全性评估》)。
流密码算法(stream cipher):又称序列密码。序列密码将密钥和初始向量作为输入,通过密钥流生成算法输出密钥流(也称扩展密钥序列),然后将明文序列和密钥流进行异或,得到密文序列(摘自《商用密码应用与安全性评估》)。
常用的对称密码算法包括:
(2)公钥密码算法
公钥密码算法又称非对称密码算法,既可用于加密和解密,也可用于数字签名,打破了对称密码算法加密和解密必须使用相同密钥的限制,很好地解决了对称密码算法中存在的密钥管理难题。公钥密码算法包括公钥加密和私钥签名(数字签名)两种主要用途。
常用的公钥密码算法包括:
(3)杂凑算法
密码杂凑算法也称作“散列算法”或“哈希算法”,现在的密码行业标准统称其为密码杂凑算法,简称“杂凑算法”或“杂凑函数”。密码杂凑算法对任意长度的消息进行压缩,输出定长的消息摘要或杂凑值。
常用的杂凑算法包括:
哪些是密码学常用术语?
密码学中经常用到以下几个术语:
明文:被隐蔽的消息称作明文,通常用m表示。其英文为Message和Plaintext。明文就是没有被加密的消息。
密文:将明文隐蔽后的结果称作密文或密报,通常用c表示。其英文为Ciphertext。密文就是加密后的结果。
加密(Encryption):将明文变换成密文的过程称作加密,该过程表示为。
解密(Decryption):由密文恢复出明文的过程称作脱密,该过程表示为。
密钥(key) :控制或参与密码变换的可变参数称为密钥。密钥又分为加密密钥和解密密钥。
加密密钥是加密时用的密钥。
解密密钥是解密时用的密钥。加、解密密钥与成对使用。
加密函数与解密函数互为逆函数,即对所有明文,都有
一个密文只能有一个解密结果。
如何设计密码算法?
1
密码算法即使达不到理论上是不可破的,也应当是实际上不可破的;
2
密码算法的安全性不依赖于对加密体制或算法的保密,而依赖于密钥,即满足柯克霍夫斯(Kerckhoff)假设;
3
加密算法和解密算法适用于密钥空间中的所有元素,弱密钥除外;
4
密码算法应易于实现和使用。
啊,那商用密码算法
具体是怎样的呢?什么工作模式?
关注
下期
#网络安全微课堂# 第二期
《商用密码应用安全性评估:
Part2. 商用密码算法》