论文部分内容阅读
当你在用手机与他人进行通信时,你是否担心手机里的隐私数据被其他人知道?曾经有这样一则报道:一名黑客来到一家咖啡馆,在20分钟之内,他获取了所有人的出生地、就读学校以及他们最近在Google搜索过的关键词等信息。无独有偶,2016年3月15日,央视“3·15晚会”曝光了公共WIFI存在的严重安全隐患。在晚会现场,设有免费的公共网络信号,参加试验的观众在连上无线网络之后,打开自己常用的一两个消费类软件,比如打车、订餐、购物类软件,浏览一下过去的订单和消费记录。令人惊讶的一幕出现了—现场的大屏幕上显示出了各种地址、姓名、身份证号、银行卡号。看到此类报道,你是否有一种想赶快删除手机里敏感的数据、图片、聊天记录等信息的冲动呢?
其实,除了将数据删除掉,我们还有更聪明的方式来保护它,那就是数据加密!也许你已经听说过很多数据加密方式,比如恺撒密码和二战时期的恩尼格玛密码等古典密码,然而在破译技术飞速发展的今天,这些古典密码技术已经不再安全并使用了。那当今又流行什么样的数据加密技术呢?
数据加密是信息安全的核心技术之一,它主要用于保障数据在不安全环境中的安全存储和通信。通过数据加密,我们手机里的敏感信息将变成一堆乱码。即使公布这堆乱码,也只有你的那个TA才能读懂它的真正含义。在这一过程中,敏感信息就是待加密的数据,专业术语称为明文(Plaintext),被公布的乱码称为密文(Ciphertext),从明文到密文的变换过程称为加密(Encryption),而从密文恢复出明文的过程称为解密(Decryption)。显然,加密过程必须是可逆的,即从密文一定能够正确地恢复出明文。
从数学角度讲,加密的本质是一种数学变换函数。它的定义域和值域则分别为数据加密中的明文集合和密文集合。无论我们要加密的信息是各种符号还是图片,都可以用一串数字来表达这些信息。例如,变换函数f将每个大写英文字母往后平移3位,即A替换为D,B替换为F,以此类推。假如你要传递信息“ILOVEYOU”,那么变换后的密文则为“LORYHBRX”。如果TA知道该函数的变换技巧,那么TA就很容易从密文中恢复出明文。如果用整数0~25分别表示26个大写英文字母,这种变换函数可以简单地写成y=x 3。除了你,也许还有别人和TA通信,选择的变换函数也大同小异,比如y=x 5。那么,这类函数可以统一写成y=f(k,x)=x k的形式,区别在于你们选择的k不同。在专业术语里,k称为密钥。
总之,我们的密码系统就是由这些明文、密文、加密算法、解密算法和密钥五种元素组成的。那么,密码系统的安全性依赖哪些元素呢?一种观点是依赖加密/解密算法的保密性。一旦算法泄漏,就要重新设计算法,但这种成本是很高的。另一种观点是依赖密钥的保密性。一旦密钥泄漏,仅需要更新一个密钥。相比之下,在泄漏事件发生后,依赖密钥保密性的系统付出的代价非常低。
依赖密钥保密性的观点称为密码学的柯克霍夫原则,它由奥古斯特·柯克霍夫在19世纪提出:即使密码系统的任何细节已为人悉知,只要密钥未泄漏,它也应是安全的。依据柯克霍夫原则,大多数民用加密系统都使用公开的算法。但相对地,用于政府或军事机密的算法还是保密的。
根据加密算法和解密算法所使用的密钥是否相同、加密过程和解密过程能否相互推出,数据加密算法可以分为对称加密和非对称加密两类。
对称加密,又称私钥加密,是指数据发送方和接收方使用同一个密钥去加密数据。一个对称加密系统就好比一个保险柜。相同的保险柜在市场上到处都有,但是只有你拥有这个柜子的钥匙。这里的保险柜(类似密码算法)是公开的,而保险柜的钥匙(类似密钥)是保密的。要将你的money(类似明文)存入保险柜,你必须用钥匙打开保险柜,将money放进去,然后锁上保险柜(类似加密过程)。如果要取出你的money,你必须再次用同一把钥匙打开保险柜(类似解密过程)。
非对称加密,又称公钥加密,使用两种不同的密钥分别完成加密和解密操作并且加密所使用的密钥是公开的。生活中投递信件的邮筒就可以看作是一种非对称加密系统。任何人想邮寄一封信,都可以通过邮筒预留的小窗口将信投入,但是只有邮递员(TA有邮筒的钥匙)可以打开邮筒看到邮件。
与非对称加密相比,对称加密的最大优势是加密/解密速度非常快,适合对大数据量进行加密。例如,Windows 7操作系统的硬盘数据加密保护工具BitLocker就是使用一种对称加密算法对数据进行直接加密。
我们知道的古典加密算法都可以看作是一种对称加密系统。使用它给你的TA传递悄悄话也是非常有意思的。但是,用它来保护你的重要数据,比如银行卡密码,却是非常危险的。那么,什么样的密码系统才是安全的呢?一般来说,当破译密钥的代价远远超出密文信息的价值或生命周期时,该密码系统是安全的。当前,设计对称加密系统通常遵循香农提出的两种基本方法:混淆和扩散。
香农认为,在一个理想的密码系统中,密文的所有统计特性都应与使用的密钥独立。混淆俗称扰乱,好比数学题老师总是喜欢出一些带有陷阱的题目,使得粗心的你很容易得出错误的结果。在密码学中,混淆是指让密文和密钥之间的关系变得非常复杂,以至于敌手无法推测出密钥。扩散就好比一种液体融入到另一种液体中一样,目的是让明文的每一比特(注:比特是一种计算机信息量的度量单位,由0和1组成,为信息量的最小单位)能够影响到密文的许多比特的取值。当今的对称加密算法就是通过反复利用混淆和扩散这两种方法设计出来的,从而使得算法的安全性坚不可破。
在计算机中,无论是明文还是密文都是以二进制即比特形式存储的。由于计算机一次仅能处理有限长度的数据,设计一个能够接受固定长度的明文进行加密的密码算法更具有实际价值。由此,便有了分组密码的概念。分组密码的思想是将明文按指定长度分割成多个块,对每一块分别进行加密,然后再把密文连起来。如果分割过程中最后一块达不到指定长度,就要对其按照一定的规则进行填充。
目前,多数对称加密算法都是分组加密的,并且分组加密的明文和密文长度是一致的。数据加密的分组长度要足够大,否则由于从明文到密文变换的方式有限,很容易被破解。例如,假设长度为1比特,那么对于任意固定的密钥,明文0和1变换后的结果要么分别是0和1,要么分别是1和0。
2012年3月21日,国家密码管理局发布了一种自主设计的商用分組密码算法—SM4算法。商用密码算法主要用于对不涉及国家秘密但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。对于SM4算法而言,它主要用于无线局域网络和可信计算系统的网络数据加密保护,同时也可用于其他环境下的存储数据或文件的加密保护,是中国制定WAP标准的组成部分。
要知道,在国际上存在着多种分组密码算法标准,包括DES算法、AES算法、IDEA算法等。而此次中国自主设计密码算法标准对于摆脱国外技术和产品的过度依赖、建设行业网络安全环境、增强中国行业信息系统的“安全自主可控”具有重要的意义和价值。
在实际应用中,对称密码算法要具有足够安全强度,基本条件是要具备足够的密钥长度。SM4算法的密钥长度为128比特,在安全性上要高于密钥长度仅有56比特的DES算法。经过理论分析和实践检验,SM4算法能够抵抗针对分组密码算法的各种攻击方法,包括穷举搜索攻击等,为中国核心金融领域的数据存储和信息通信提供强有力的安全保障。
其实,除了将数据删除掉,我们还有更聪明的方式来保护它,那就是数据加密!也许你已经听说过很多数据加密方式,比如恺撒密码和二战时期的恩尼格玛密码等古典密码,然而在破译技术飞速发展的今天,这些古典密码技术已经不再安全并使用了。那当今又流行什么样的数据加密技术呢?
掀开数据加密的一角
数据加密是信息安全的核心技术之一,它主要用于保障数据在不安全环境中的安全存储和通信。通过数据加密,我们手机里的敏感信息将变成一堆乱码。即使公布这堆乱码,也只有你的那个TA才能读懂它的真正含义。在这一过程中,敏感信息就是待加密的数据,专业术语称为明文(Plaintext),被公布的乱码称为密文(Ciphertext),从明文到密文的变换过程称为加密(Encryption),而从密文恢复出明文的过程称为解密(Decryption)。显然,加密过程必须是可逆的,即从密文一定能够正确地恢复出明文。
![](http://pic.soolun.com/d/file/20211021/zsll20181015-1-l.jpg)
从数学角度讲,加密的本质是一种数学变换函数。它的定义域和值域则分别为数据加密中的明文集合和密文集合。无论我们要加密的信息是各种符号还是图片,都可以用一串数字来表达这些信息。例如,变换函数f将每个大写英文字母往后平移3位,即A替换为D,B替换为F,以此类推。假如你要传递信息“ILOVEYOU”,那么变换后的密文则为“LORYHBRX”。如果TA知道该函数的变换技巧,那么TA就很容易从密文中恢复出明文。如果用整数0~25分别表示26个大写英文字母,这种变换函数可以简单地写成y=x 3。除了你,也许还有别人和TA通信,选择的变换函数也大同小异,比如y=x 5。那么,这类函数可以统一写成y=f(k,x)=x k的形式,区别在于你们选择的k不同。在专业术语里,k称为密钥。
总之,我们的密码系统就是由这些明文、密文、加密算法、解密算法和密钥五种元素组成的。那么,密码系统的安全性依赖哪些元素呢?一种观点是依赖加密/解密算法的保密性。一旦算法泄漏,就要重新设计算法,但这种成本是很高的。另一种观点是依赖密钥的保密性。一旦密钥泄漏,仅需要更新一个密钥。相比之下,在泄漏事件发生后,依赖密钥保密性的系统付出的代价非常低。
依赖密钥保密性的观点称为密码学的柯克霍夫原则,它由奥古斯特·柯克霍夫在19世纪提出:即使密码系统的任何细节已为人悉知,只要密钥未泄漏,它也应是安全的。依据柯克霍夫原则,大多数民用加密系统都使用公开的算法。但相对地,用于政府或军事机密的算法还是保密的。
数据加密算法
根据加密算法和解密算法所使用的密钥是否相同、加密过程和解密过程能否相互推出,数据加密算法可以分为对称加密和非对称加密两类。
对称加密,又称私钥加密,是指数据发送方和接收方使用同一个密钥去加密数据。一个对称加密系统就好比一个保险柜。相同的保险柜在市场上到处都有,但是只有你拥有这个柜子的钥匙。这里的保险柜(类似密码算法)是公开的,而保险柜的钥匙(类似密钥)是保密的。要将你的money(类似明文)存入保险柜,你必须用钥匙打开保险柜,将money放进去,然后锁上保险柜(类似加密过程)。如果要取出你的money,你必须再次用同一把钥匙打开保险柜(类似解密过程)。
非对称加密,又称公钥加密,使用两种不同的密钥分别完成加密和解密操作并且加密所使用的密钥是公开的。生活中投递信件的邮筒就可以看作是一种非对称加密系统。任何人想邮寄一封信,都可以通过邮筒预留的小窗口将信投入,但是只有邮递员(TA有邮筒的钥匙)可以打开邮筒看到邮件。
与非对称加密相比,对称加密的最大优势是加密/解密速度非常快,适合对大数据量进行加密。例如,Windows 7操作系统的硬盘数据加密保护工具BitLocker就是使用一种对称加密算法对数据进行直接加密。
安全的密码系统
我们知道的古典加密算法都可以看作是一种对称加密系统。使用它给你的TA传递悄悄话也是非常有意思的。但是,用它来保护你的重要数据,比如银行卡密码,却是非常危险的。那么,什么样的密码系统才是安全的呢?一般来说,当破译密钥的代价远远超出密文信息的价值或生命周期时,该密码系统是安全的。当前,设计对称加密系统通常遵循香农提出的两种基本方法:混淆和扩散。
![](http://pic.soolun.com/d/file/20211021/zsll20181015-2-l.jpg)
香农认为,在一个理想的密码系统中,密文的所有统计特性都应与使用的密钥独立。混淆俗称扰乱,好比数学题老师总是喜欢出一些带有陷阱的题目,使得粗心的你很容易得出错误的结果。在密码学中,混淆是指让密文和密钥之间的关系变得非常复杂,以至于敌手无法推测出密钥。扩散就好比一种液体融入到另一种液体中一样,目的是让明文的每一比特(注:比特是一种计算机信息量的度量单位,由0和1组成,为信息量的最小单位)能够影响到密文的许多比特的取值。当今的对称加密算法就是通过反复利用混淆和扩散这两种方法设计出来的,从而使得算法的安全性坚不可破。
在计算机中,无论是明文还是密文都是以二进制即比特形式存储的。由于计算机一次仅能处理有限长度的数据,设计一个能够接受固定长度的明文进行加密的密码算法更具有实际价值。由此,便有了分组密码的概念。分组密码的思想是将明文按指定长度分割成多个块,对每一块分别进行加密,然后再把密文连起来。如果分割过程中最后一块达不到指定长度,就要对其按照一定的规则进行填充。
目前,多数对称加密算法都是分组加密的,并且分组加密的明文和密文长度是一致的。数据加密的分组长度要足够大,否则由于从明文到密文变换的方式有限,很容易被破解。例如,假设长度为1比特,那么对于任意固定的密钥,明文0和1变换后的结果要么分别是0和1,要么分别是1和0。
国家密码标准SM4算法
2012年3月21日,国家密码管理局发布了一种自主设计的商用分組密码算法—SM4算法。商用密码算法主要用于对不涉及国家秘密但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。对于SM4算法而言,它主要用于无线局域网络和可信计算系统的网络数据加密保护,同时也可用于其他环境下的存储数据或文件的加密保护,是中国制定WAP标准的组成部分。
要知道,在国际上存在着多种分组密码算法标准,包括DES算法、AES算法、IDEA算法等。而此次中国自主设计密码算法标准对于摆脱国外技术和产品的过度依赖、建设行业网络安全环境、增强中国行业信息系统的“安全自主可控”具有重要的意义和价值。
在实际应用中,对称密码算法要具有足够安全强度,基本条件是要具备足够的密钥长度。SM4算法的密钥长度为128比特,在安全性上要高于密钥长度仅有56比特的DES算法。经过理论分析和实践检验,SM4算法能够抵抗针对分组密码算法的各种攻击方法,包括穷举搜索攻击等,为中国核心金融领域的数据存储和信息通信提供强有力的安全保障。