0371-63319761
您的当前位置:主页 > 安全研究 > 安全研究 >

物联网安全:密码学概述

时间:2020-12-09

 
密码是一种用来进行信息混淆的技术,它希望将正常的、可识别的信息转变为无法识别的信息。密码学是一个既古老又新兴的学科。密码学(Cryptology)源自希腊文“krypto's”及“logos”,直译即为“隐藏”及“讯息”之意。
 
戴维·卡尔(David Kahn)在其著作《密码学圣经》中是这样定义密码学的:“密码学就是保护。通信对于现代人来说,就好比甲壳对于海龟、墨汁对于乌贼、伪装对于变色龙一样重要。”密码学虽已有好几百年的历史,但仍是年轻、新颖和令人兴奋的学科。密码学是一个不断变化且总会出现新挑战的领域。
 
1、密码学的发展历史
 
密码学的发展大致可以分为3个阶段。
 
1)1949年之前是密码发展的第一阶段——古典密码体制。古典密码体制是通过某种方式的文字置换进行的,这种置换一般是通过某种手工或机械变换方式进行的,同时简单地使用了数学运算。虽然在古代的加密方法中已体现了密码学的若干要素,但它只是一门艺术,而不是一门学科。
 
2)1949—1975年是密码学发展的第二阶段。1948年,克劳德·艾尔伍德·香农(Claude Elwood Shannon)发表了题为A Mathematical Theory of Communication(通信的数学理论)的文章。香农理论的重要价值是关于熵(entropy)的概念,他证明熵与信息内容的不确定程度有等价关系。香农提出的信息熵为密码学的发展带来了新气象。借由信息熵可以定量地分析解密一个加密算法所需要的信息量,这标志着密码学进入了信息论时代。1949年,香农发表了题为《保密系统的通信理论》的著名论文,把密码学置于坚实的数学基础之上,标志着密码学作为一门学科的形成,这是密码学的第一次飞跃。然而在该时期,密码学主要用于政治、外交、军事等方面,其研究是被秘密进行的,密码学理论的研究工作进展不大,公开发表的密码学相关论文很少。
 
3)1976年至今是密码学发展的第三阶段——现代密码体制。1976年,惠特菲尔德·迪菲(Whitefield Diffie)和马丁·赫尔曼(Martin Hellman)在《密码编码学新方向》一文中提出了公开密钥的思想,这是密码学的第二次飞跃。1977年,美国数据加密标准(Data Encryption Standard,DES)的公布使密码学的研究得以公开,密码学得到了迅速发展。1994年,美国联邦政府颁布的密钥托管加密标准(Escrowed Encryption Standard,EES)和数字签名标准(Data Signature Standard,DSS)以及2001年颁布的高级数据加密标准(Advanced Encryption Standard,AES),都是密码学发展史上一个个重要的里程碑。
 
古典密码学包含两个相互对立的分支,即密码编码学(Cryptography)和密码分析学(Cryptanalytics)。前者编制密码以保护秘密信息,后者研究加密消息的破译以获取信息,二者相辅相成。现代密码学除了包括密码编码学和密码分析学外,还包括密钥管理、安全协议、Hash函数等内容。密钥管理包括密钥的产生、分配、存储、保护、销毁等环节,秘密寓于密钥之中,所以密钥管理在密码系统中至关重要。随着密码学的进一步发展,涌现出了大量的新技术和新概念,如零知识证明、盲签名、量子密码学等。
 
2、数据加密模型
 
在密码学中,伪装(变换)之前的信息是原始信息,称为明文(plain text);伪装之后的信息,看起来是一串无意义的乱码,称为密文(cipher text)。把明文伪装成密文的过程称为加密(encryption),该过程使用的数学变换方法就是加密算法;将密文还原为明文的过程称为解密(decryption),该过程使用的数学变换方法称为解密算法。
 
密码算法是用于加密和解密的数学函数。通常情况下,有两个相关的函数:一个用于加密,另一个用于解密。加密简单地说就是一组含有参数k的变换E。解密简单地说就是一组含有参数k的变换D。设已知消息m,通过变换E得到密文C,即C=E(m, k)。E为加密算法,k不同,则密文C不同。传统的保密通信机制的数据加密模型如图1所示。
 
 
图1 传统的保密通信机制的数据加密模型
 
由上可知,密码技术包含与加密和解密这两方面密切相关的内容。加密是研究、编写密码系统,把数据和信息转换为不可识别的密文的过程;解密是研究密码系统的加密途径,恢复数据和信息本来面目的过程。加密和解密过程共同组成了加密系统。图2给出了加密系统的基本构成。
 
 
图2 加密系统的基本构成
 
为了有效控制加密、解密算法的实现,在加密系统的实现过程中,需要某些只被通信双方所掌握的专门的、关键的信息参与,这些信息通常被称为密钥,有时也称为密码。其中,用作加密的密钥被称作加密密钥(Ke),用作解密的密钥被称作解密密钥(Kd)。加密和解密的密钥若相同,则称其为对称或单钥型密钥,若不同,则称其为不对称或双钥型密钥。
 
3、密码体制
 
加密系统采用的基本工作方式称为密码体制。密码体制的基本要素是密码算法和密钥。密码算法是一些公式、法则或程序,密钥是密码算法中的控制参数。
 
一个密码体制是满足以下条件的五元组(P,C,K,E,D)。
 
1)P表示所有可能的明文组成的有限集(明文空间)。
 
2)C表示所有可能的密文组成的有限集(密文空间)。
 
3)K表示所有可能的密钥组成的有限集(密钥空间)。
 
4)对任意的k∈K,都存在一个加密算法Ek∈E和相应的解密算法Dk∈D;并且对每一个Ek:P→C,对每一个Dk:C→P,对任意明文x∈P:Dk(Ek(x)))=x。
 
密码体制可以分为对称密码体制(Symmetric System, One-key System, Secret-key System)和非对称密码体制(Asymmetric System, Two-key System, Public-key System)。在对称密码体制中,加密密钥和解密密钥相同,或者说一个密钥可以从另一个导出,即能加密就能解密,加密能力和解密能力是结合在一起的,开放性差。在非对称密码体制中,加密密钥和解密密钥不相同,从一个密钥导出另一个密钥在计算上不可行,加密能力和解密能力是分开的,开放性好。
 
除了上述两种密码体制外,还有下列密码体制。
 
1)确定型密码体制:当明文和密钥确定后,密文也就唯一地确定了。
 
2)概率型密码体制:当明文和密钥确定后,密文通过客观随机因素从一个密文集合中产生,密文形式不确定。
 
3)单向函数型密码体制:适用于不需要解密的场合,易将明文加密成密文,如Hash函数。
 
4)双向变换型密码体制:可以进行可逆的加密、解密变换。
 
不同的密码体制具有不同的安全强度,通常采用下列安全因素来评价密码体制。
 
1)保密强度:所需要的安全程度与数据的重要性有关;保密强度大的密码系统,计算开销往往也大。
 
2)密钥长度:密钥太短,会降低保密强度,密钥太长又不便于传送、保管和记忆。密钥必须经常变换,每次更换新密钥时,通信双方传送新密钥的通道必须保密和安全。
 
3)算法复杂度:在设计或选择加密和解密算法时,算法复杂度要有限度。通常算法复杂度越高,计算开销越大。
 
4)传播性:数据加密过程中,不应因一点差错致使整个通信失败。密文扩展度是指加密后密文信息长度相比于明文长度的增加量,增加量太大将会导致通信效率降低。
 
4、密码攻击方法
 
密码分析是接收者在不知道解密密钥及加密体制细节的情况下,对密文进行分析,试图获取可用信息的行为。密码分析除了依靠数学、工程背景、语言学等知识外,还要依靠经验、统计、测试、眼力、直觉甚至是运气来完成。
 
破译密码就是通过分析密文来推断该密文对应的明文或者所用密码的密钥的过程,也称为密码攻击。破译密码的方法有穷举法和分析法。
 
穷举法又称为强力法或暴力法,即用所有可能的密钥进行测试破译。只要有足够的时间和计算资源,穷举法在原则上总是可以成功的。但在实际应用中,任何一种安全的实际密码都会设计得使穷举法不可行。
 
分析法则有确定性和统计性两类。
 
1)确定性分析法是指利用一个或几个已知量(已知密文或者明文-密文对),通过数据关系表示出所求未知量。
 
2)统计性分析法是指利用明文的已知统计规律进行密码破译的方法。
 
密码分析学的主要目的是研究加密消息的破译和消息的伪造。通过分析密文来推断该密文对应的明文或者所用密码的密钥的过程也称作密码攻击。密码分析也可以发现密码体制的弱点,最终达到上述结果。荷兰人柯克霍夫斯(Kerckhoffs)在19世纪就阐明了密码分析的一个基本假设,即秘密必须全部寓于密钥当中。柯克霍夫斯假设密码分析者已经掌握密码算法及其实现的全部详细资料。当然,在实际的密码分析中密码分析者并不总是具有这些详细的信息。例如,在第二次世界大战时期,美国人就是在未知上述信息的情况下破译了日本人的外交密码。
 
在密码分析技术的发展过程中,产生了各种各样的攻击方法,其名称也是纷繁复杂。根据密码分析者具有的明文和密文条件,密码分析可分为以下4类。
 
(1)已知密文攻击
 
密码分析者有一些消息的密文,这些消息都是使用同一加密算法进行加密的。密码分析者的任务是根据已知密文恢复尽可能多的明文,或者通过上述分析,进一步推算出加密消息的加密密钥和解密密钥,以便采用相同的密钥解出其他被加密的消息。
 
(2)已知明文攻击
 
密码分析者不仅可以得到一些消息的密文,而且也知道这些消息的明文。分析者的任务是用加密的消息推算出加密消息的加密密钥和解密密钥,或者推导出一个算法,此算法可以对采用同一密钥加密的任何新消息进行解密。
 
(3)选择明文攻击
 
密码分析者不仅可以得到一些消息的密文和相应的明文,而且还可以选择被加密的明文。这比已知明文攻击更有效,因为密码分析者能选择特定的明文进行加密,这些明文可能会产生更多关于密钥的信息。分析者的任务是推导出用来加密消息的加密密钥和解密密钥,或者推导出一个算法,此算法可以对同一密钥加密的任何新消息进行解密。
 
(4)选择密文攻击
 
密码分析者能够选择不同的密文,并可以得到这些密文对应的明文。例如,密码分析者存取一个防篡改的自动解密盒,他们的任务是推算出加密密钥和解密密钥。
 
来源:计算机与网络安全
 

Copyright © 2017-2024 河南中瀚安全技术有限公司 版权所有 豫ICP备18011434号-1 豫公网安备 41019702002746号