网络信息安全第二讲 信息加密技术基础 一 信息加密理论基础 1.信息熵基本知识 信息熵(information entropy)是对信息状态“无序”与“不确定”的度量(从本质上讲,熵不是对信息的度量,但信息的增加而使产生的熵减小,熵可以用来度量信息的增益)。
通常,a=2,则信息量的单位为bit。Shanon定义信息的数学期望为信息熵。
2.数论基本术语
3.算法复杂性基础知识
NP问题:在确定型图灵机上可用多项式时间求解的问题,称为易处理的问题。易处理的问题的全体称为确定性多项式时间可解类 ,记为P 类。在非确定性图灵机上可用多项式时间求解的问题,称为非确定性多项式时间可解问题 ,记为NP 问题。NP 问题的全体称为非确定性多项式时间可解类,记为NP类。显然,P⊆NP,因为在确定型图灵机上多项式时间可解的任何问题在非确定型图灵机上也是多项式时间可解的。 NPC问题:NP类中还有一类问题称为NP完全类,记为NPC。所有的NP问题都可以通过多项式时间转换为NPC中的问题 。NPC是NP类中困难程度最大的一类问题,但NPC中的问题困难程度相当,都可以多项式时间转化为称为可满足性问题的NPC问题,此类NPC具有如下性质,若其中的任何一个问题属于P,则所有的NP问题都属于P,且P=NP。现在的密码算法的安全性都是基于NPC问题的,破译一个密码相当于求解一个NPC问题 ,如果 P=NP ,则破译密码就是一件很容易的事情。 密钥 是用户按照一种密码体制随机选取,它通常是一随机字符串,是控制明文变换(加密)和密文变换(解密)的唯一参数。密钥全体称为密钥空间。一般来说,密钥越大,加密就越健壮 。4.加密系统的组成部分 一个加密系统实际上是某种加密算法在密钥控制下实现的从明文到密文的映射,它至少包括下面四个组成部分:
(1)加密的报文,也称明文;
(2)加密后的报文,也称密文;
(3)加密解密设备或算法;
(4)加密解密的密钥;
一般情况下,密钥由K表示,明文由m表示,加密算法由 EK1表示,解密算法由 DK2表示;
则,DK2(EK1(m)) = m
任何一个加密系统必须基本具备四个安全规则
机密性 (confidentiality):加密系统在信息的传送中提供一个或一系列密钥来把信息通过密码运算译成密文,使信息不会被非预期的人员所读取****,只有发送者和接收者应该知晓此信息的内容。完整性 (integrity):数据在传送过程中不应被破坏,收到的信宿数据与信源数据是一致的。应该选取健壮的密码和加密密钥,以确保入侵者无法攻破密钥或找出一个相同的加密算法,阻止入侵者会改变数据后对其重新加密。有时,数据完整性可以通过适当的方法在信息还未被完全修改时检测到,如:密码散列函数是单向密码,它为明文产生惟一的“指纹”,当明文被拦截和读取,要修改它将改变散列,致使有意向的接收者很容易看出散列之间的差异。认证性 (authentication) :加密系统应该提供数字签名技术来使接收信息用户 验证是谁发送的信息,确定信息是否被第三者篡改。只要密钥还未泄露或与别人共享,发送者就不能否认他发送的数据。实际应用中,假如发送者和接收者都使用一个对称密钥,对于整体信息加密或计算机网络上的链路级加密,在两个路由器之间建立一个加密会话,以通过因特网发送加密信息。连接到网络的计算机发送明文给路由器,明文被转换为密文,然后通过因特网发送到另一端的路由器。在整个加密数据形成和传递过程中,加密方网络内部和非加密方的任一节点都能插入信息,并在这一层次分析,但对于接收者这一节点来说你只能判定信息是否来自某个特定的网络,而要确认信息的发送节点,这将使验证机制变得很复杂。非否定 (non-repudiation):加密系统除了应该验证是谁发送的信息外,还要进一步验证收到的信息是否来自可信的源端,实际上是通过必要的认证确认信息发送者是否可信。现代健壮的验证方法用加密算法来比较一些已知的信息段,如PIN(个人识别号)判断源端是否可信。二 信息加密方式 1.信息加密方式分类 对称式加密 :收发双方使用相同密钥。加密和解密使用同一密钥。加密算法和解密算法在对称式加密中是相同的,加密和解密使用同一密钥K表示。非对称式加密 :也称公用密钥加密,加密和解密使用不同密钥。它通常有两个密钥,称为“公钥”和“私钥”。它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不对外公布,只有持有人知道。加密算法和解密算法在非对称式加密中是不相同的;K1是加密密钥,是公开的,称为公钥,K2是解密密钥,称为私钥,则须保密。理论上保密的加密 :无论获取多少密文和有多大的计算能力,对于明文始终不能得到唯一解的加密方法。如:采用客观随机一次出来的密码就属于这种加密方式。实际上保密的加密 :从理论的角度是可以破解的,但在现有客观条件下,无法通过计算来确定唯一解。模拟信息加密 :用来加密模拟信息。如:动态范围之内,连续变化的语音信号的加密。数字信息加密 :用来加密数字信息。如:两个离散电平构成0、1二进制关系的电报信息的加密。2.数字签名 定义 :数字签名是对原信息附上加密信息的过程,是一种身份认证 技术,支持加密系统认证性和非否定;签名者对发布的原信息的内容负责,不可否认。过程 :发送报文时,发送方用一个哈希函数 从报文文本中生成报文摘要 ,然后用自己的私人密钥 对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文 一起发送给接收方,接收方首先用与发送方一样的哈希函数 从接收到的原始报文中计算出报文摘要 ,接着再用发送方的公用密钥 来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。三 网络信息加密 网络信息加密的目的是保护网内的数据、文件、口令和控制信息,保护网上传输的数据。网络加密常用的方式有链路加密 和端点加密 。 1. 链路加密 链路加密对链路层数据单元 进行加密保护,其目的是保护网络节点之间的链路信息安全。这种加密不但对节点之间之间传输的数据报文 加密,还要把路由信息、校验和控制信息 包括数据链路层的帧头、位填充和控制序列等都进行加密;当密文传输到某一节点时,全部解密获得链信息和明文 ,然后全部加密后发送往下一个节点 ;对于这种加密,加密设备的设计相对复杂,必须理解链路层协议和必要的协议转换。 优缺点 优点: 链路加密非常有效,是因为几乎任何有用消息都被加密保护。加密范围包括用户数据、路由信息和协议信息等。因此,攻击者将不知道通信的发送和接受者的身份 、不知道信息的内容 、甚至不知道信息的长度 以及通信持续的时间 。而且,系统的安全性将不依赖任何传输管理技术。密钥管理也相对简单,仅仅是线路的两端需要共同的密钥。线路两端可以独立于网络的其他部分更换密钥。
缺点: 整个连接中的每段连接都需要加密保护 。对于包含不同体系机构子网络的较大型网络,加密设备、策略管理、密钥量等方面的开销都是巨大的 。另外,在每个加密节点,都存在加密的空白段:明文信息,这是及其危险的,特别是对于跨越不同安全域的网络。后来,为解决节点中数据是明文的缺点,在节点内增加了加密装置,避免了节点明文,这种加密方式称为节点加密;但和链-链加密一样,同样依靠公共网络节点资源的配合,开销依然很大。
2.端点加密 端点加密的是对源端用户到目的端用户的数据提供加密保护。既将加密模块置于网络以上的加密方式。端点加密中,数据从加密的端节点,一直到对应的解密节点,数据在整个传输过程中都保持密文形式 ,从而克服了链路加密出现加密空白段(中间节点明文信息)的问题。由于加密和解密只发生在两个端节点,因此对中间节点是透明的。这样大大减少了安装设备的开销(特别是中间节点设备开销),以及复杂的策略管理和密钥管理所引起的麻烦。由于加密范围往往集中在高层协议数据,还极易为不同流量提供QoS服务,实现按特定流量进行加密和不同强度的加密。从而有利于提高系统的效能,优化系统的性能。
端点加密的缺点是:由于通信环境往往比较复杂,要在跨越网络的两个端用户 之间成功地完成密钥的建立 是需要付出性能代价的。其次,端点加密不能保护数据传输过程中的某些信息,如路由信息、协议信息等,一个训练有素的攻击者可以借助这些信息发动某些流量分析攻击 。另外,端点加密设备(模块)的实现十分复杂,要求设备必须理解服务的提供层的协议,并且成功调用这些服务,然后在设备中对对应的数据进行密码处理,并且将处理后的数据传送给上层协议。如果加密设备不能为上层协议提供良好的服务接口,则将对通信的性能产生较大的影响。
四 数据加密标准 1.对称密钥加密DES DES 主要采用替换 和移位 的加密方法用56位密钥对64位二进制数据块进行加密 (密钥长度为64比特,其中8比特为奇偶校验位,所以实际长度为56比特 ),加密每次可对64位的输入数据进行16轮编码 ,经过一系列替换和移位后,原始的64位输入数据转换成了完全不同的64位输出数据。DES算法运算速度快,生成密钥容易 ,适合于在当前大多数计算机上用软件方法和专用芯片上实现。但DES密钥太短(56位),密钥健壮性不够好 ,降低保密强度;同时,DES安全性完全依赖于对密钥的保护,在网络环境下使用,分发密钥 的信道必须具备有力的可靠性才能保证机密性和完整性。DES 算法还有一些变形,如:三重DES和广义DES等。目前,DES应用领域主要包括:计算机网络通信中的数据保护(只限于民用敏感信息);电子资金加密传送 ;保护用户存储文件,防止了未授权用户窃密 ;计算机用户识别等。2.Clipper加密芯片标准 这种数据加密标准对用户只提供加密芯片 (Clipper)和硬件设备 ,它的密码算法不公开 ,密钥量比DES多1000多万倍,是美国国家保密局(NSA)在1993年正式使用的新的商用数据加密标准,目的是取代DES,提高密码算法的安全性,主要用于通信交换系统中电话、传真和计算机通信信息 的安全保护。为确保更可靠的安全性,加密设备的制作方法按照*Clipper芯片由一个公司制造裸片,再由另一公司编程严格规定来实施。 Clipper芯片主要特点是充分利用高的运算能力的设备资源加大密钥量,从而用于计算机通信网上的信息加密,如:政府和军事通信网中数据加密芯片的研究不断换代使它还实现了数字签名标准和保密的哈希函数标准以及用纯噪声源产生随机数据的算法等。 3.国际数据加密标准 这种算法是在DES 算法的基础上发展的。与DES 相同,国际数据加密算法IDEA (international data encryption algorithm )也是针对数据块加密;它采用128位 密钥,设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥 ,基于这种算法,采用软件实现和采用硬件实现同样快速,非常适合于对大量的明文信息的快速加密。它在1990年正式公布并在以后得到了增强。 4.传统加密方法的缺点 在网络通信中,传统的对称加密方法是发送者加密、接收者解密使用同样的密钥,这种方法虽然有运算快的特点,随着用户的增加,大量密钥的分配是一个难以解决的问题 。例如,若系统中有n个用户,其中每两个用户之间需要建立密码通信,则系统中每个用户须掌握(n-1)个密钥,而系统中所需的密钥总数为n(n-1)/2个。对10个用户,每个用户必须有9个密钥,系统中密钥的总数为45个。对100个用户,每个用户必须有99个密钥,系统中密钥的总数为4950个。这还仅考虑用户之间的通信只使用一种会话密钥的情况。如此庞大数量的密钥生成、管理、分发确实是一个难处理的问题。因此,对称加密方法所带来的密钥的弱的健壮性和密钥管理的复杂性 局限了它的发展。
5.Deffie-Hellman算法描述 6.RSA算法 著名的RSA 正是基于这种理论,算法以发明者的名字命名:Ron Rivest, Adi Shamir和Leonard Adleman.这种算法为公用网络上信息的加密和鉴别提供了一种基本的方法。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位 ,这就使加密的计算量很大。同时,为减少计算量,在传送信息时,常采用传统对称加密方法与RSA公开密钥加密方法相结合 的方式,信息明文加密采用改进的DES或IDEA加密方法 ,使用RSA用于加密密钥和信息摘要 。对方收到信息后,用各自相关的密钥解密并可核对信息。但是RSA并不能替代DES等对称算法,RSA的密钥长,加密速度慢,而采用DES等对称算法加密速度快,适合加密较长的报文,弥补了RSA的缺点。美国的保密增强邮件系统(PEM )就是采用了RSA和DES结合的方法,目前已成为E-MAIL保密通信标准。
RSA 是一种分组密码算法 ,它的安全是基于数论中大的整数n分解为两个素数之积的难解性 。
RSA共模攻击解决办法只有一个,那就是不要共享模数n。
RSA 算法进行的都是大数计算,使得其最快的情况也比DES慢上100倍,无论是软件实现还是硬件实现。速度一直是RSA算法的缺陷。一般来说RSA算法只用于少量数据加密。
7.EIGamal加密算法 8.椭圆曲线加密算法 1985年,Koblitz和Miller相互独立地开发提出了在密码学中应用椭圆曲线(Eliptical Curve)构造公开密钥密码体制的思想。这一算法一出现便受到关注,由于基于椭圆曲线的公开密钥密码体制开销小 (所需的计算量小)、安全性高 等优点,随着椭圆曲线的公开密钥密码体制极大的发展,它将替代RSA成为通用的公钥密码算法。实践表明,在32位的PC机上和16位微处理器上运行椭圆曲线密码算法,其中16位微处理器上的数字签名不足500ms。因此,应用椭圆曲线的数字签名可以很容易地在小的有限资源的设备中使用。 9.量子加密方法 量子加密与公钥加密标准同期出现,适用于网络上加密普通宽带数据信道所传送的信息,工作原理是两端用户各自产生一个私有的随机数字符串 ,两个用户向对方的接受装置发送代表数字字符串的单个量子序列 (光脉冲),接受装置从两个字符串中取出相匹配的比特值组成了密钥。实现了会话或交换密钥的传递。由于这种方法依赖的是量子力学定律,传输的光量子是无法被窃听 的;如果有人进行窃听,就会对通信系统造成干扰,对通信系统的量子状态造成不可挽回的变化,通信双方就会得知有人进行窃听,从而结束通信,重新生成密钥。这种加密技术不久的将来应该有应用和发展,但是如何实现数字签名有待于研究。 五 信息加密产品简介 1.PGP加密软件简介 PGP(pretty good privacy)是一个对邮件和传输的文档 进行加密的软件。 2.PGP采用的加密标准 PGP用的是公钥加密和传统加密的杂合算法。
PGP每次加密都可以随机生成密钥用IDEA 算法对明文加密,然后在用密钥的传递中用公钥加密算法。一般是使用不适合加密大量数据的RSA或Diffie-Hellman 算法对该密钥加密来保证传递渠道的安全性(实施密钥分配),这样收件人同样是用RSA或Diffie-Hellman解密出这个随机密钥,再用IDEA解密出明文。
3.PGP的安全性管理特点 4.CryptoAPI加密软件简介 Microsoft CryptoAPI(Cryptography API,加密API)是微软开发的一系列API标准加密接口功能函数,主要提供在Win32环境下加解密、数字签名验证等安全服务应用,供给应用程序使用这些API函数生成和交换密钥、加密和解密数据、实现密钥管理和认证、验证数字签名及散列计算 等操作,增强应用程序的安全性和可控性。 5.CryptoAPI的加密系统结构 Microsoft提供CryptoAPI接口和CSP(cryptographic service provider),CSP是真正实行实现所有加密操作的独立模块,由两部分组成:一个DLL (dynamic linkable library,动态链接库)文件和一个签名文件 。Microsoft安装会将该CSP的各个的文件安放到相应的目录下,并在注册表中为其注册。 6.CrytoAPI函数 base cryptography functions 基本的加密服务函数这类函数是用CSP提供的函数直接编制的API函数,它主要完成数据加/解密、计算Hash、产生密钥 等操作。le library,动态链接库)文件和一个签名文件 。Microsoft安装会将该CSP的各个的文件安放到相应的目录下,并在注册表中为其注册。
6.CrytoAPI函数 base cryptography functions 基本的加密服务函数这类函数是用CSP提供的函数直接编制的API函数,它主要完成数据加/解密、计算Hash、产生密钥 等操作。
certificate and certificate store functions 签名证书存储函数 。通常情况下,时间长了计算机上的签名证书数量会增加,用户有必要管理证书。certificate store functions让用户存储、检索、删除、列出和验证证书,但并不生成证书(生成证书是CA的任务)和证书请求 。Certificate Store Functions提供将证书和要发送的信息附加的功能。