1、,加密是即希望相对容易地加密信息,但又希望让破译加密方法的敌手不得不非常辛苦地工作,辛苦到让敌手放弃对加密的破译。随着以Internet为基础的电子商务技术的迅猛发展,以公钥密码体制、数字签名等安全技术已成为研究热点。本章主要从两个方面进行阐述:一是加密算法,主要包括DES、IDEA、RSA和MD5等经典算法;二是认证技术,分为数字签名、身份认证和消息认证,并分析它们之间的异同。,引言,第5章 密码与认证技术,5.1 密码学概述 基本概念;密码体制分类;信息加密方式5.2 加密算法 DES算法;IDEA算法;RSA算法;MD5算法5.3 认证技术 基本概念;基本技术;数字签名; 身份认证;消息
2、认证,5.1 密码学概述,密码技术自古有之。公元前2000年,埃及人是最先使用特别的象形文字作为信息编码的人。随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。对信息进行编码曾被凯撒大帝使用,也曾用于历次战争中,包括美国独立战争、美国内战和两次世界大战。 今天,密码学已经从最初的军事和外交领域走向公开,它集数学、计算机科学、电子与通信等诸多学科于一身。长期以来,由于密码技术的隐密性,应用一般局限于政治、经济、军事、外交、情报等重要部门,密码学鲜为人知。进入20世纪80年代后,随着计算机网络,特别是因特网的普及,密码学得到了广泛的重视,如今密码技术不仅服务于信息
3、的加密和解密,还是身份认证、访问控制、数字签名等多种安全机制的基础。,5.1 密码学概述,一般来说,信息安全主要包括系统安全和数据安全两个方面。系统安全一般采用防火墙、防病毒及其他安全防范技术等措施,是属于被动型的安全措施;数据安全则主要采用现代密码技术对数据进行主动的安全保护,如数据保密、数据完整性、身份认证等技术。密码技术包括密码算法设计、密码分析、安全协议、身份认证、消息确认、数字签名、密钥管理、密钥托管等技术,是目前保护大型网络传输信息安全的唯一实现手段,是保障信息安全的核心技术。它以很小的代价,对信息提供一种强有力的安全保护。,5.1.1 密码学基本概念,为了实现信息的保密性,抗击密
4、码分析,保密系统应当满足下述要求: 1即使达不到理论上是不可破解的,也应当是实际上不可破解的。也就是说,从截获的密文或某些已知明文密文对,要确定密钥或任意明文在计算上是不可行的。 2保密系统的安全性应依赖于密钥,而不是依赖于密码体制或算法本身的细节上的安全性。 3加密解密算法适用于所有密钥空间中的元素。 4系统应该易于实现和使用方便。,密码学基本术语 TerminologiesCryptology(保密学),源自希腊语(Greek)Krypts: hidden; logos:word, 是密码学和密码处理过程的研究。Cryptography: The Science and Study of
5、Secret Writing,密码编码学Cryptanalysis: The Science and Study of Secret Breaking,密码破译学Cipher: A secret method of writing 加密方法Encipher (encipherment), encryption: 将明文转换成密文的过程Decipher (decipherment), decryption: 将密文还原成明文的过程Plaintext (cleartext): 原始的可读数据,明文Ciphertext (Cryptogram): 加密后的不可解读之文件,密文Key: 密钥,对加密与
6、解密过程进行控制的参数E(m): Encryption Transformation 加密变换D(c): Decryption Transformation 解密变换,5.1.1 密码学基本概念,简单加密系统模型什么是密码?简单地说它就是一组含有参数K的变换E。设已知消息m,通过变换Ek得密文C,即,这个过程称为加密,E为加密算法,k不同,密文C亦不同。传统的保密通信机制:,5.1.2 加密体制分类,密码体制 加密系统采用的基本工作方式称为密码体制。密码体制的基本要素是密码算法和密钥。密码算法是一些公式、法则或程序;密钥是密码算法中的控制参数。加密系统可以用数学符号来描述:SP, C, K,
7、E, DP:明文空间 C:密文空间K:密钥空间 E:加密变换 D:解密变换 kK,则有CEk(P),PDk(C)Dk(Ek(P), 或者DkEk1,且EkDk1。,5.1.2 加密体制分类,对称密码体制和非对称密码体制对称密码体制(Symmetric System, One-key System, Secret-key System) 加密密钥和解密密钥相同,或者一个密钥可以从另一个导出,能加密就能解密,加密能力和解密能力是结合在一起的,开放性差。非对称密码体制(Asymmetric System, Two-key System, Public-key System) 加密密钥和解密密钥不相同
8、,从一个密钥导出另一个密钥是计算上不可行的,加密能力和解密能力是分开的,开放性好。序列密码体制和分组密码体制如果经过加密所得到的密文仅与给定的密码算法和密钥有关,与被处理的明文数据在整个明文中的位置无关,则称为分组密码体制。通常以大于等于64位的数据块为单位,加密得相同长度的密文。如果密文不仅与最初给定的算法和密钥有关,同时也与明文位置有关(是所处位置的函数),则称为序列密码体制。加密以明文比特为单位,以伪随机序列与明文序列模2加后,作为密文序列。,5.1.2 加密体制分类,对称密码通常用两种基本技术来隐藏明文:混乱和扩散。 混乱(Confusion)用于掩盖明文与密文之间的关系,混乱通常通过
9、代换(Substitution)来实现,代换是明文符号被密文符号所代替。 扩散(Diffusion)通过将明文冗余度分散到密文中使之分散开来,即将单个明文或密钥位的影响尽可能扩大到更多的密文中去。这样就隐藏了统计关系同时也使密码分析者寻求明文冗余度将会更难。产生扩散最简单的方法是通过置换(Permutation),置换的特点是保持明文所有符号不变,只是利用置换打乱了明文的位置和次序。,5.1.2 加密体制分类,公钥密码体制 所谓公钥密钥密码技术就是加密和解密使用不同的密钥的密码技术,又称为非对称密钥密码技术。它使用一对密钥,一个归发送者,一个归接收者。密钥对中的一个是公开密钥(可以让所有通信的
10、人知道),简称公钥(public key),用于加密;另一个必须保持秘密状态,是私人密钥(一个专门为自己使用的密钥),用于解密,简称私钥(private key)。,5.1.2 加密体制分类,混合密码体制 对称密码体制与非对称密码体制的特点主要是由以下两点本质不同产生的: (1)对称密码体制是基于共享秘密的;公钥密码体制是基于个人秘密的。 (2)在对称密码体制中,符号被重新排序或替换;在公钥密码体制中,处理的对象是数字,即加解密过程就是把数学函数应用于数字以创建另外一些数字的过程。 混合密码体制既解决了对称加密中需要安全分发通信密钥的问题,也解决了非对称加密中运算速度慢的问题。混合加密受到各个
11、制定未来公钥加密标准的组织的高度重视,ISO要求所有公钥加密候选都应能够加密任意长度的消息,从而必须适用于混合加密。,5.1.2 加密体制分类,混合密码体制,5.1.2 加密体制分类,混合密码体制,5.1.3 信息加密方式,网络数据加密常见的方式有链路加密、节点加密和端到端加密三种。 (1) 链路加密 链路加密方式中,所有消息在被传输之前进行加密,不但对数据报文正文加密,而且把路由信息、校验和等控制信息也进行加密。在每一个节点接收到数据报文后,必须进行解密以获得路由信息和校验和,进行路由选择、差错检测,然后使用下一个链路的密钥对报文进行加密,再进行传输。在每一个网络节点中,消息以明文形式存在。
12、 (2) 节点加密 节点加密是指在信息传输路过的节点处进行解密和加密。尽管节点加密能给网络数据提供较高的安全性,但它在操作方式上与链路加密是类似的:两者均在通信链路上为传输的消息提供安全性,都在中间节点先对消息进行解密,然后进行加密。,混合密码体制,5.1.3 信息加密方式,网络数据加密常见的方式有链路加密、节点加密和端到端加密三种。 (3) 端到端加密 端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在。采用端到端加密,消息在被传输时到达终点之前不进行解密,因为消息在整个传输过程中均受到保护,所以即使有节点被损坏也不会使消息泄露。 端到端加密系统通常不允许对消息的目的地址进行加密
13、,这是因为每一个消息所经过的节点都要用此地址来确定如何传输消息。由于这种加密方法不能掩盖被传输消息的源点与终点,因此它对于防止攻击者分析通信业务是脆弱的。,5.2 加密算法,DES(Data Encryption Standard)于1977年得到美国政府的正式许可,它是一个对称算法:加密和解密用的是同一算法(除密钥编排不同以外),既可用于加密又可用于解密。它的核心技术是:在相信复杂函数可以通过简单函数迭代若干圈得到的原则下,利用F函数及置换等运算,充分利用非线性运算。DES以64位为分组对数据加密。每组64位,最后一组若不足64位,以“0”补齐。密钥通常表示为64位的数,但每个第8位都用作奇
14、偶校验,可以忽略,所以密钥的长度为56位,密钥可以是任意的56位的数,且可在任意的时候改变。其中极少量的数被认为是弱密钥,但能容易地避开它们,所有的保密性依赖于密钥。,5.2.1 DES算法,DES算法的基本思想 DES对64位的明文分组进行操作。通过一个初始置换,将明文分组分成左半部分(L0)和右半部分(R0),各32位长。R0与子密钥K1进行f函数的运算,输出32位的数,然后与L0执行异或操作得到R1,L1则是上一轮的R0,如此经过16轮后,左、右半部分合在一起,经过一个末置换(初始置换的逆置换),这样该算法就完成了。,5.2.1 DES算法,5.2.1 DES算法的一般描述,初始置换IP
15、 (Initial Permutation)和逆置换IP-1,扩展置换和置换函数,循环细节将明文分成左右两部分,如Feistel cipher:Li = Ri1Ri = Li1 xor F(Ri1, Ki)将32-bit右半部和48-bit子密钥做以下动作:expands R to 48-bits using permutation Eadds to subkeypasses through 8 S-boxes to get 32-bit resultfinally permutes this using 32-bit perm P,5.2.1 DES算法,Substitution Boxes
16、 S,Have eight S-boxes which map 6 to 4 bits Each S-box is actually 6 to 4 bit boxes outer bits 1 & 6 (row bits) select one rows inner bits 2-5 (col bits) are substituted result is 8 lots of 4 bits, or 32 bitsRow selection depends on both data & keyfeature known as autoclaving (autokeying)Example S(1
17、8 09 12 3d 11 17 38 39) = 5fd25e03,子密钥的产生,Forms subkeys used in each roundConsists of:initial permutation of the key (PC1) which selects 56-bits in two 28-bit halves 16 stages consisting of: selecting 24-bits from each half permuting them by PC2 for use in function f, rotating each half separately e
18、ither 1 or 2 places depending on the key rotation schedule K,子密钥的产生,子密钥的产生-压缩置换表,5.2.1 DES算法,DES的解密 是加密的逆过程,采用相同算法,但是子密钥使用的次序正好相反。雪崩效应 Avalanche Effect 明文或密钥的一比特的变化,引起密文许多比特的改变。如果变化太小,就可能找到一种方法减小有待搜索的明文和密文空间的大小。如果用同样密钥加密只差一比特的两个明文: 0000000000000000.00000000 1000000000000000.00000000 3次循环以后密文有21个比特不同
19、,16次循环后有34个比特不同如果用只差一比特的两个密钥加密同样明文: 3次循环以后密文有14个比特不同,16次循环后有35个比特不同,5.2.2 IDEA算法,国际数据加密算法IDEA是International Data Encryption Algorithm的缩写,1990年由瑞士联邦技术学院来学嘉X.J.Lai和Massey提出的建议标准算法称作PES(Proposed Encryption Standard)。Lai和Massey在1992年进行T改进,强化了抗差分分析的能力,改称为IDEA。它也是对64bit大小的数据块加密的分组加密算法,密钥长度为128位,它基于“相异代数群上
20、的混合运算”设计思想算法用硬件和软件实现都很容易且比DES在实现上快的多。IDEA自问世以来,经历了大量的详细审查,对密码分析具有很强的抵抗能力,在多种商业产品中被使用。,国际数据加密算法IDEA(International Data Encryption Algorithm)1990年由瑞士苏黎世联邦工业大学的Lai Xuejia和James Messey提出,1992年最终完成。算法形式同DES,用循环加密方式。设计原理使用128位密钥加密64位明文分组,穷举分析需要1038次试探,目前尚无破译方法。算法本身倾向于软件实现,加密速度快。 密码强度分组长度:64位密钥长度:128位扰乱:密文
21、以复杂交错的方式依赖明文和密钥扩散:每个明文比特都应该影响每个密文比特,5.2.2 IDEA算法,扰乱(IDEA的三种基本操作)IDEA的基本操作是将两个16位的值映射成一个16位的值逐位异或,整数模216(65536)加整数模216+1(65537)乘例如:00000000000000001000000000000000= 1000000000000001因为:216 x 215 mod (216+1) = 215 + 1扩散由乘积/相加(MA)结构的算法基本构件提供实现考虑方便软件和硬件的实现,硬件实现速度高,软件灵活低价,IDEA加密,IDEA单个循环,IDEA子密钥的产生,5.2.3
22、RSA算法,1977年,Rivest、Shamir、Adleman提出的非对称密码体制,是基于大合数的质因子分解问题的困难性。目前人类已能分解十进制150位的特殊类型的大合数第9个费马数, 1994年4月一个小组通过Internet合作,8个月时间成功分解129位的数,大约428比特,最新的记录是1996年分解130位合数。RSA专利于2000年9月20日到期。,算法流程随机选择两个秘密大质数p和q;计算公开模数n=p*q;计算秘密的欧拉指数函数(n)=(p-1)(q-1)选择一个与(n)互素的数K,作为e或d;用Euclid算法计算模(n)的K的乘法逆元素,即依ed mod (n)=1, 求
23、d或e;加密:C = Me mod n解密:M= Cd mod n = (Me mod n)d mod n = M 这里,(n)为Euler Totient Function, 欧拉商数,即模n的完全剩余集合(0, 1, 2, ., n-1)中与n互素的数的个数。,5.2.3 RSA算法,例:p = 53,q = 61,n = pq = 3233,(n)52x60 = 3120令d = 791,则e = 71令m = RE NA IS SA NC E即m = 1704 1300 0818 1800 1302 0426170471 mod 3233 = 3106,C = 3106 0100 09
24、31 2691 1984 2927RSA的安全性有三种可能的对RSA的攻击方法强行攻击:尝试所有可能的密钥数学攻击:对两个素数乘积的因子分解(FAC问题)定时攻击:依赖于解密算法的运行时间,5.2.3 RSA算法,1.Hash函数简介 Hash函数就是能够把任意有限长的消息串M映射成某一固定长度的输出串h的一种函数。这个输出串h称为该消息串M的消息摘要(message digest)或指纹(fingerprint)。用公式表示为:h=H (M)。其中h的长度应该至少为128比特以抵抗生日攻击。Hash函数应该具有单向函数的特性: (1)给定任意消息串M,计算h很容易 (2)给定h,计算消息串M
25、使得H (M)=h很难,5.2.4 MD5算法,1.Hash函数简介 除了满足单向性外,密码学上的Hash函数还需要满足抗碰撞的特性,因此引出了构造Hash 函数的三个安全性假设。如果一个Hash函数满足了如下三个假设,这样的Hash函数就可以被认为是安全的: (1)原像稳固假设:任意选择输出值h,希望找出一消息串M使得H(M)=h,在计算上是不可行的; (2)第二原像稳固假设:给定消息串M,要找到另外一消息串Z使得H (M)= H(Z),在计算上是不可行的; (3)碰撞稳固假设:要找出任意两个的消息串M和Z,使得H (M)= H (Z),在计算上是不可行的。,5.2.4 MD5算法,1.Ha
26、sh函数简介 Hash函数的主要用途在于提供数据的完整性校验和提高数字签名的有效性, 目前国际上已提出了许多Hash函数的设计方案。这些Hash函数的构造方法主要可分为以下3类: (1)基于某些数学难题如整数分解、离散对数问题的Hash函数设计。 (2)基于某些对称密码体制如DES等的Hash函数设计。 (3)不基于任何假设和密码体制直接构造的Hash函数。 其中第3类Hash函数有著名的SHA-1, SHA-256, SHA-384, SHA-512, MD4, MD5, RIPEMD和HAVAL等。,5.2.4 MD5算法,共四轮,每轮16步,共64步,每一步都是针对4个32位的寄存器中的
27、数据进行处理。4个32位的寄存器初始值是:a0= 0x67452301,b0= 0xefcdab89,c0= 0x98badcfe,d0= 0x10325476;经过64步处理后,ABCD中的值即为128位摘要。复制A、B、C、D到AA、BB、CC、DD;ABCD中三个寄存器的内容以非线性操作方式处理;结果与32位子明文块Mk及一个固定数Ti相加;结果左移S位,再与剩下的第四个寄存器的值相加;最后的32位结果重新存入A、B、C、D中的一个。每一回合操作,MD5使用不同的逻辑运算,将三个寄存器的内容以非线性方式进行处理。,5.2.4 MD5算法,MD5中使用的逻辑函数,每步骤的操作程序:FF(A
28、, B, C, D, Mk, S, Ti):ab + (F(B, C, D,) + Mk, S, Ti)S)GG(A, B, C, D, Mk, S, Ti):ab + (G(B, C, D,) + Mk, S, Ti)S)HH(A, B, C, D, Mk, S, Ti):ab + (H(B, C, D,) + Mk, S, Ti)S)II(A, B, C, D, Mk, S, Ti):ab + (I(B, C, D,) + Mk, S, Ti)S),图5.7 MD5某一轮的执行过程,5.2.4 MD5算法,+:模232的加运算常数Ti的产生依据232*abs(sin(i),i是弧度,取16
29、4第四回合最后一步输出A、B、C、D,分别与AA、BB、CC、DD的值相加,成为处理下一个512位明文块的A、B、C、D的初值。完成最后一个明文块的处理后,A、B、C、D中的值就是最后的哈希值。与MD4相比多一回合每一步都使用不同的常数Ti比MD4多一种逻辑运算每一步都有一取代一个寄存器值的操作,加快了雪崩效应。,5.2.4 MD5算法,5.3 认证技术,认证的目的有三个: 一是消息(完整性)认证,即验证信息在传送或存储过程中是否被篡改; 二是身份认证,即验证消息的收发者是否持有正确的身份认证符,如口令或密钥等; 三是消息的序号和操作时间(时间性)等的认证,其目的是防止消息重放或延迟等攻击。
30、认证技术是防止不法分子对信息系统进行主动攻击的一种重要技术。加密和认证同是信息系统安全的两个重要方面,但它们不能相互替代。认证不能自动地提供加密功能,而加密也不能自然地提供认证功能。,5.3 认证技术,认证技术一般可以分为三个层次:安全管理协议、认证体制和密码体制。安全管理协议的主要任务是在安全体制的支持下,建立、强化和实施整个网络系统的安全策略;认证体制在安全管理协议的控制和密码体制的支持下,完成各种认证功能;密码体制是认证技术的基础,它为认证体制提供数学方法支持。 一个安全的认证体制至少应该满足以下要求: (1)接收者能够检验和证实消息的合法性、真实性和完整性。 (2)消息的发送者对所发的
31、消息不能抵赖,有时也要求消息的接收者不能否认收到的消息。 (3)除了合法的消息发送者外,其他人不能伪造发送消息。,5.3 认证技术,认证体制中通常存在一个可信中心或可信第三方(如认证机构CA,即证书授权中心),用于仲裁、颁发证书或管理某些机密信息。通过数字证书实现公钥的分配和身份的认证。 数字证书是标志通信各方身份的数据,是一种安全分发公钥的方式。CA负责密钥的发放、注销及验证,所以CA也称密钥管理中心。CA为每个申请公开密钥的用户发放一个证书,证明该用户拥有证书中列出的公钥。CA的数字签名保证不能伪造和篡改该证书,因此,数字证书既能分配公钥,又实现了身份认证。,5.3 认证技术,安全认证的概
32、念可以细分为如下三个方面:数据源认证、实体认证及认证的密钥建立。 数据源认证:数据源认证包含从某个声称的源(发送者)到接收者的消息传输过程,该接收者在接收时验证消息以确认消息发送者的身份、原消息的完整性,以及消息传输的活现性。 实体认证:实体认证是一个通信过程,通过这个过程某个实体和另外一个实体建立一种真实通信,并且第二主体所声称的身份应和第一主体所寻求的通信方一致。 认证的密钥建立:认证的密钥建立是认证协议和密钥建立协议的结合,用于确认协议参与实体身份,并在实体之间建立共享秘密以保证上层的安全通信。,5.3 认证技术,依照不同的分类标准,认证协议可以分为不同的类型。根据认证实体的不同地位,可
33、将协议分为以下几类: 客户-服务器类型:认证的参与者具有不对等的地位,其中一个认证实体(客户)向另一个认证实体(服务器)请求某种服务。两个认证实体可以通过非密码方法预先共享某些秘密。 客户-客户类型:认证实体具有对等的地位,希望通过认证建立某种联系。 成员-俱乐部类型:成员向俱乐部证明其身份的有效性,俱乐部只需要考虑成员证件的有效性,而不必知道成员的进一步信息。,协议描述符号的约定。 Alice,Bob:协议参与主体名称,有时简称为A,B。 AB:M:A给B发送消息M。 KAB:主体A与B的共享密钥。 SigAM:主体A对消息M产生的签名。 NX:主体X产生的随机数,这些随机数是从一个足够大的
34、空间中随机抽样得到的。 ttX:主体X产生的时戳。,5.3.2 认证协议基本技术,1.挑战-应答机制在询问-应答机制中,Alice向Bob提出一个随机数作为询问,Bob利用能够证明其身份的密钥对这个随机数进行相应运算,给出对Alice询问的密码学应答。当Bob采取对称密钥时,询问-应答机制描述如下:AB:NA; BA:FKABM,NA;,5.3.2 认证协议基本技术,5.3.2 认证协议基本技术,1.挑战-应答机制基于公钥密码体制的挑战-应答机制如下:AB:NA;BA:SigAM,NA;ISO将上述挑战-应答机制标准化为“使用公钥的ISO两次传输单方认证机制”,A使用她的一次性随机数验证签名并
35、 接受 如果通过了签名验证 拒绝 其它,2.时戳/序列号机制应用挑战-应答机制实现单方认证需要进行两次交互,为了减少交互次数,可以采用时戳/序列号机制。对称密码体制中的时戳机制描述如下:AB:FKABM,ttA;B验证来自A的密文分组并 接受 如果ttA是有效的并且以正确 的形式出现 拒绝 其它上述机制中的密码算法F()依然可以采用对称加密算法或MAC函数。前一种情况被标准化为“ISO对称密钥一次传输单方认证协议”,后一种情况被标准化为“使用密码验证函数的ISO一次传输单方认证”。,5.3.2 认证协议基本技术,2.时戳/序列号机制公钥密码体制中的时戳机制描述如下:AB:SigAM,ttA;B
36、验证签名并 接受 如果通过了签名验证且ttA是有 效的 拒绝 其它该机制被标准化为“ISO公钥一次传输单方认证协议”。,5.3.2 认证协议基本技术,3.Diffie-Hellman密钥协商1976年,Diffie和Hellman在他们的经典著作密码学的新方向中提出了一种在不安全信道上安全地协商会话密钥的方法,该方法后来被称作Diffie-Hellman密钥协商,简称DH密钥协商。DH密钥协商是公钥密码学的基础,是密码学研究从传统走向现代一个里程碑式的标志。DH密钥协商建立在一个高阶乘法群上,给定大素数p,g是p的本原根,g和p被作为系统的公共参数。若Alice和Bob需要建立一个密钥,Ali
37、ce选择随机数xA,并将X = gxA mod p发送给Bob;Bob选择随机数xB,并将Y=gxB mod p发送给Alice。此时,Alice可以利用Y计算KAB=YxA mod p,Bob可以利用X计算KBA=XxBmod p。可以验证KAB=KBA=gxAxB mod p,Alice和Bob可以建立起一致的会话密钥。由于普遍认为由X和Y求xA或xB是困难的,因此会话密钥是安全的。,5.3.2 认证协议基本技术,4.基于口令的认证基于口令的认证技术起源于上世纪70年代初,该认证技术的基本思想是:用户Alice具有一个口令(也称通行字)PA,服务器保留了形如(Alice,PA)的记录。当A
38、lice登陆服务器时,以某种形式递交PA,服务器检查本地是否保存了相应的(Alice,PA)项:若有,则授权Alice的登陆;否则拒绝。由于目前的网络已经从最初的安全专线网络发展成为开放网络,基于口令的认证技术越来越类似于对称密钥情形下的认证,用户口令相当于一个长度较短的密钥。,5.3.2 认证协议基本技术,5.3.3 数字签名技术,在文件上手写签名长期以来被用作作者身份的证明,或至少同意文件的内容。在计算机上,可以用数字签名(Digital Signature)来实现与文件上手写签名相同的功能。所谓数字签名,就是只有信息发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对发送者发送
39、信息真实性一个证明。数字签名也称为电子签名,是公钥密码系统的一种重要应用方式。现在,已经有很多国家制定了电子签名法。中华人民共和国电子签名法已于2004年8月28日第十届全国人民代表大会常务委员会第十一次会议通过,并已于2005年4月1日开始实施。,5.3.3 数字签名技术,1.数字签名的特点 作为一种签名方式,数字签名与书面文件上的手写签名有着共同的特征和作用: (1) 签名是可信的:如果接收者能够用签名者的公开密钥解密,他就能够确定签名者的身份。 (2) 签名不可伪造:只有签名者知道他的私人密钥,别人无法伪造他的签名。 (3) 签名不可重用:签名是文件的一部分,不法之徒不可能将签名移到另一
40、个文件上。 (4) 被签名的文件是不可改变的:如果被签名的文件有任何改变,那么该签名文件就不可能用签名者的公开密钥进行解密。 (5) 签名是不可抵赖的:因为别人不知道签名者的私人密钥,不可能产生同样的签名文件,因此签名是不可能抵赖的。,5.3.3 数字签名技术,1.数字签名的特点 手写签名与数字签名的主要区别在于: (1)体现形式不一样。手写签名印在文件的物理部分,手写签名反映某个人的个性特征,同一个人对不同文档的手写签名体现的个性特征相同;数字签名则以签名算法体现在所签的文件中。数字签名是数字串,它随被签对象不同而变化。同一个人对不同文档的数字签名是不同的。 (2)验证方式不同。一个手写签名
41、是通过和一个真实的手写签名相比较来验证;而数字签名能通过一个公开的验证算法来验证。任何人都可以验证一个数字签名。 (3)拷贝形式不同。手写签名不易复制;数字签名容易拷贝。,5.3.3 数字签名技术,2.数字签名原理 如果A要向B发送一个消息,尽管该消息本身的保密性可能并不重要,但A希望B能够确认该消息确实是A发出的,并且消息在传输过程中没有被改动,即要实现消息真实来源的验证和消息的完整性验证。 在这种情况下A使用自己的私人密钥来加密消息。如果B收到A的密文消息后,能够用A的公开密钥进行解密,这样就验证了该消息一定是由A 发出的。因为除了A以外,没有其他人能够创建出可以用A的公开密钥来解密的密文
42、来。并且因为如果没有A的私人密钥就不可能对消息进行改动,因此在消息的真实来源得以验证的同时,消息的数据完整性也能够得到验证。数字签名是不可抵赖的。即使A以后声称他没有发送这个消息给B,但由于除了A以外,没有人能够生成同样的密文,这就说明A在说谎。,5.3.3 数字签名技术,2.数字签名基本算法 (1) 对称密钥密码算法进行数字签名对称密钥密码算法所用的加密密钥和解密密钥通常是相同的,或者可以很容易地由其中的任意一个导出另一个。对称密钥算法实现数字签名必须有仲裁人参与。用户A和仲裁人T共享密钥KA ,用户B和T共享另一个不同的密钥K B 。 A用KA加密他准备发送给B的明文消息M,并把加密消息C
43、A传送给T:CA =EKA (M)。 T用KA解密CA得到明文M:M=DKA(CA)。 T把解密消息和他收到A消息的声明t,一起用KB加密成CB:CB = EKB(M,t)。 T把加密的消息包CB连同A用KA加密的CA一起传给B:(CB,KA)B 。 B用KB解密消息包CB之后,就可以读到A的消息M和T的签名证书t,证明消息来自A:(M,t) = DKB (CB ),5.3.3 数字签名技术,2.数字签名基本算法 (2) 公开密钥数字签名算法 A用他的私人密钥对文件加密,从而对文件签名; A将签名文件发送给B; B用A的公开密钥解密文件,从而验证签名。,5.3.4 身份认证技术,1. 身份认证
44、基本概念 身份认证(Identification)是用户向系统出示自己身份证明的过程,又是系统查核用户身份证明的过程。这两个过程是判明和确认通信双方真实身份的两个重要环节,人们常把这两项工作统称为身份认证或(身份鉴别)。 进一步理解,认证、授权与访问控制3个概念相结合构成身份的概念。认证是指验证用户或设备所声称身份是否有效的过程;授权是赋予用户、用户组特定系统访问权限的过程;访问控制指把来自系统资源的信息流限制到网络中被授权的人或系统。授权和访问大多数情况下都是在成功的认证之后进行。 可见身份认证机制是安全系统中的基础设施,是最基本的安全服务,它是外界进入安全系统的第一道屏障,其它的安全服务都
45、依赖于它。如果身份认证出了问题,其它的安全服务也将功亏一赘。,5.3.4 身份认证技术,1. 身份认证基本概念 身份认证(Identification)是用户向系统出示自己身份证明的过程,又是系统查核用户身份证明的过程。这两个过程是判明和确认通信双方真实身份的两个重要环节,人们常把这两项工作统称为身份认证或(身份鉴别)。 进一步理解,认证、授权与访问控制3个概念相结合构成身份的概念。认证是指验证用户或设备所声称身份是否有效的过程;授权是赋予用户、用户组特定系统访问权限的过程;访问控制指把来自系统资源的信息流限制到网络中被授权的人或系统。授权和访问大多数情况下都是在成功的认证之后进行。 可见身份
46、认证机制是安全系统中的基础设施,是最基本的安全服务,它是外界进入安全系统的第一道屏障,其它的安全服务都依赖于它。如果身份认证出了问题,其它的安全服务也将功亏一赘。,5.3.4 身份认证技术,2. 认证技术分类 从不同的角度,可以对常用的身份选技术进行分类: 基于秘密知识的认证、基于物品的认证、基于生物特征的认证和基于地址的认证:这种划分也是从用户使用认证系统的方式角度来说的。基于秘密知识的认证基于“你知道什么”(What you know)。这里的用户名/口令认证应该理解为一切基于各种密码算法的软件认证方式,基于某种物品的认证方法基于“你拥有什么”(What you have),第三种基于生物特征的认证方法基于“你是什么”(Who you are),第四种基于地址的认证方法基于你的IP地址和端口(Where you are)。,