《PKI加密技术.ppt》由会员分享,可在线阅读,更多相关《PKI加密技术.ppt(64页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、PKI加密技术加密技术消息和加密o遵循国际命名标准,加密和解密可以翻译成:“Encipher(译成密码)”和“(Decipher)(解译密码)”。也可以这样命名:“Encrypt(加密)”和“Decrypt(解密)。 消息被称为明文。用某种方法伪装消息以隐藏它的内容的过程称为加密,加了密的消息称为密文,而把密文转变为明文的过程称为解密,图表明了加密和解密的过程。数据安全是一个主动的保护措施。明文与密文o明文用M(Message,消息)或P(Plaintext,明文)表示,它可能是比特流、文本文件、位图、数字化的语音流或者数字化的视频图像等。o密文用C(Cipher)表示,也是二进制数据,有时和
2、M一样大,有时稍大。通过压缩和加密的结合,C有可能比P小些。o加密函数E作用于M得到密文C,用数学公式表示为:E(M)=C。解密函数D作用于C产生M,用数据公式表示为:D(C)=M。先加密后再解密消息,原始的明文将恢复出来,D(E(M)=M必须成立。密码学功能 除了提供机密性外,密码学需要提供三方面的功能:鉴别、完整性和抗抵赖性。这些功能是通过计算机进行社会交流,至关重要的需求。o鉴别:鉴别:消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。o完整性:完整性:消息的接收者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假消息代替合法消息。o抗抵赖性:抗抵赖性:发送消息者事后不可
3、能虚假地否认他发送的消息。对称加密o现代密码学用密钥解决了这个问题,密钥用K表示。oK可以是很多数值里的任意值,密钥K的可能值的范围叫做密钥空间。越长越难破解。o加密和解密运算都使用这个密钥,即运算都依赖于密钥,并用K作为下标表示,加解密函数表达为:nEK(M)=CnDK(C)=MnDK(EK(M)=M,如图所示。加密解密明文密文原始明文密钥密钥非对称加密o有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下,加密和解密的函数表达式为:nEK1(M)=CnDK2(C)=Mo函数必须具有的特性是,DK2(EK1(M)=M,如图所示。加密解密明文密文原始
4、明文加密密钥解密密钥古典密码o替换法 替换密码法是用一组密文字母代替一组明文字母以隐蔽明文,但保持明文字母的位置不变的方法。在替换法加密体制中,使用了密钥字母表。常见的方法是凯撒密码法。凯撒密码是最古老的替换密码。它是公元前50年古罗马大将凯撒(Julius Caesar)使用过的密码。其加密方法是,把A换成D,B换成E,C换成FZ换成C,也称循环移位密码。这样,明文和密文的字母就建立了一对一的映射关系。凯撒密码凯撒密码:o明文 A B C D E F G H I J K L M N O P Q R S T U V W X Y Zo密文 D E F G H I J K L M N O P Q
5、R S T U V W X Y Z A B C用凯撒密码进行加密,如果明文是CAESAR,则密文是FDHVDU凯撒密码的简单改进凯撒密码的简单改进o用数字0,1,2,25分别和字母A,B,C,Z相对应,则明文字母P和密文字母C的对应关系是C=(P+3)mod 26。这个公式可以推广为 C=(P+K) mod 26。这里KS,S=1,2,25 ,K是密钥集合,或称密钥空间。o加密算法:c = E(m,k) = (m + k) mod qo解密算法:m = D(c,k) = (c - k) mod qo特定地(恺撒密码):m = c = Zq , q = 26;o例:(k=3)o明文:meet m
6、e after the partyo密文:phhw ph diwhu wkh sduwb替代法的缺点o以上几种替代法都是明文字符集与密文字符集之间的一对一映射,在密文中仍然保存了明文中的单字符的频率分布,这使它的安全性大大降低。破解时主要利用了概率统计的特性,E字母出现的概率最大。统计字母概率,最大的频率就是和E对应的。 传统的维吉尼亚密码法采用一种表格(维吉尼亚表,如表所示)和一个关键字对明文进行加密。该表格包括了字符集内所有可能的字符移位。加密时,选择一个关键字做为密钥,然后将密钥依次重复写在明文下面,用明文中的字符选择列、用密钥中的字符选择行,在维吉尼亚表中查找对应的密文。 解密时,将密
7、钥依次重复写在密文下面,在密钥字符所对应的行中查找密文字符,则该字符所对应的列的字符即为明文字符。维吉尼亚密码法维吉尼亚密码法维吉尼亚密码表 ABCDEFGHIJKLMNOPQRSTUVWXYZA ABCDEFGHIJKLMNOPQRSTUVWXYZB BCDEFGHIJKLMNOPQRSTUVWXYZAC CDEFGHIJKLMNOPQRSTUVWXYZABD DEFGHIJKLMNOPQRSTUVWXYZABCE EFGHIJKLMNOPQRSTUVWXYZABCDF FGHIJKLMNOPQRSTUVWXYZABCDEG GHIJKLMNOPQRSTUVWXYZABCDEFH HIJKL
8、MNOPQRSTUVWXYZABCDEFGI IJKLMNOPQRSTUVWXYZABCDEFGHJ JKLMNOPQRSTUVWXYZABCDEFGHIK KLMNOPQRSTUVWXYZABCDEFGHIJL LMNOPQRSTUVWXYZABCDEFGHIJK维吉尼亚密码表M MNOPQRSTUVWXYZABCDEFGHIJKLN NOPQRSTUVWXYZABCDEFGHIJKLMO OPQRSTUVWXYZABCDEFGHIJKLMNP PQRSTUVWXYZABCDEFGHIJKLMNOQ QRSTUVWXYZABCDEFGHIJKLMNOP R RSTUVWXYZABCDEFGH
9、IJKLMNOPQS STUVWXYZABCDEFGHIJKLMNOPQRT TUVWXYZABCDEFGHIJKLMNOPQRSU UVWXYZABCDEFGHIJKLMNOPQRSTW WXYZABCDEFGHIJKLMNOPQRSTUVX XYZABCDEFGHIJKLMNOPQRSTUVWY YZABCDEFGHIJKLMNOPQRSTUVWXZ ZABCDEFGHIJKLMNOPQRSTUVWXY维吉尼亚密码例子 例如密钥为COMPUTER明文:THISISANEXAMPLE密钥:COMPUTERCOMPUTE密文:VVUHCLEEGLMBJEJ推广o密钥密钥 K( k1,k2,km
10、)o加密算法:加密算法:oEk(x1,x2,xm)=(x1+k1,x2+k2,xm+km) =co解密算法:解密算法:oDk(y1,y2,ym)= (x1-k1,x2-k2,xm-km) mod 26 =mo这里的所有的运算都是在其中进行的。这里的所有的运算都是在其中进行的。易位密码法易位密码法的思想是重新排列明文字母,而排列序列由加密密钥确定。最简单的易位密码就是将明文中的字母按顺序颠倒过来重新书写。如THE CAR变成RAC EHT。下面介绍另一种易位密码列换位密码列换位密码。该密码的密钥是一个单词或短语,其中不能包括重复字母。易位密码法o假设:密钥为HEARTILYo明文为PLEASET
11、RANSFERDOLLARSTOMYBANKACCOUNTFOURo列换位密码方法的思想是首先将密钥转换为列的易位编号,选最小的字母作为第一列,次小的字母为第二列,依次类推。将明文按行水平书写,不全的行可用不常用的字母添满(用不上的),如表所示。密钥 H E A R T I L Y 列编号 3 2 1 6 7 4 5 8 明 P L E A S E T R 文 A N S F E R D O 序 L L A R S T O M 列 Y B A N K A C C O U N T F O U R 易位密码法对于表中的排列顺序,密文按列的编号顺序由小到大输出,先输出第一列的所有字母,再输出第二列的
12、字母,直到所有列的字母输出完为止,最后得到密文如下:明文PLEASETRANSFERDOLLARSTOMYBANKACCOUNTFOUR密文 ESAANLNLBUPALYOERTAOTDOCUAFRNTSESKFROMCR 解密:按照密文按列的编号顺序由小到大,然后再按每一列添加进去,按1-n行输出。算法类型o流加密法 一次加密明文中的一个位,异或计算。o块加密法 一次加密明文中的一个块。假设要加密的明文为ILOVEYOU,利用块加密法,可以先加密ILOV,再加密EYOU,即一次加密明文中的一个块。算法类型流加密法块加密法流加密法 虽然这种密码看起来非常简单,但迄今为止,这是惟一达到理论不可破
13、译的密码体制。但是,利用这种加密方法,大量的密钥必须通过安全通道在通信双方之间传递。密钥的安全存放及网络状态下密钥的建立和同步都比较困难。图 流密码体制模型密钥流产生器明文m密文c异或运算密钥k对称算法概述o基于密钥的算法通常有两类:对称算法和公开密钥算法(非对称算法)。对称算法有时又叫传统密码算法,加密密钥能够从解密密钥中推算出来,反过来也成立。o在大多数对称算法中,加解密的密钥是相同的。对称算法要求发送者和接收者在安全通信之前,协商一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加解密。对称算法的加密和解密表示为:nEK(M)=CnDK(C)=M对称密钥信息处理流
14、程o发送方A首先利用随机数发生器等应用产生加密密钥e,并通过安全通道发送给接收方B。 o发送方A利用加密算法和产生的密钥对要发送的明文信息进行加密,并把密文c通过公共通道发送接收方B。 o接收方B利用接收到的密钥e(或推导出的相关密钥)对接收到的密文进行解密,产生原始明文。 对称加密算法处理流程对称加密算法处理流程经典的DES算法oDES,DES变形算法(双重DES,三重DES),oIDEA算法,RC5算法,BLOWFISH算法,AES算法等等。DES对称加密算法oDES(Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位
15、数据的方法。o美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。数据加密标准(Data Encryption Standard,DES)是美国IBM公司发明的一种对计算机数据进行密码保护的数学算法,是美国标准局(NBS)于1977年颁布的数据加密标准,它是近20年来全世界通用的标准算法。DES算法的工作原理DES是一个块加密算法,按照64位块长加密数据,即把64位明文作为DES的输入,产生64位密文输出。加密和解密使用相同的算法和密钥,只是稍作改变。密钥长度为56位。64位明文DE
16、S56位密钥64位密文64位明文DES56位密钥64位密文64位明文DES56位密钥64位密文密钥处理12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364DES使用56位密钥,实际上,最初的密钥为64位,但在DES过程开始之前放弃了密钥的每一个第8位,从而得到了56位密钥,即放弃第8、16、24、32、40、48、56、64位,这些位用来进行奇偶校验的。表 放弃密钥的每一个第8位DES算法的主要步骤DES算法的
17、主要步骤o第一步:变换明文。对给定的64位比特的明文x,首先通过一个置换IP表来重新排列x,从而构造出64位比特的x0,x0=IP(x)=L0R0,其中L0表示x0的前32比特,R0表示x0的后32位。o第二步:按照规则迭代。规则为oLi = Ri-1oRi = Li-1 f(Ri-1,Ki) (i=1,2,316)o经过第一步变换已经得到L0和R0的值,其中符号 表示的数学运算是异或,f表示一种置换,由S盒置换构成,Ki是一些由密钥编排函数产生的比特块。f和Ki将在后面介绍。o第三步:对L16R16利用IP-1作逆置换,就得到了密文y变换明文:初始置换 输入的64位数据按置换IP表进行重新组
18、合,并把输出分为L0、R0两部分,每部分各长32位,其置换IP表如表所示。58501234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157 将输入64位比特的第58位换到第1位,第50位换到第2位,依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位。比如:置换前的输入值为D1D2D3D64,则经过初始置换后的结果为:L0=D58D50.D8,R0=D57D49.D7。D
19、ES的一轮计算 o第一步:每一轮从56位密钥中产生不同的48位密钥,称为密钥变换。为此,56位密钥分为两半,各为28位。循环左移一位或两位,例如如果轮号是1、2、9、16,则只移一位,否则移两位。相应的移位后,选择56位中的48位。由于密钥变换要进行置换和选择56位中的48位,因此称为压缩置换。o设其前28位为C0,后28位为D0,对C0作左移LS1得到C1,对D0作左移LS1得到D1,对C1D1应用PC2进行选位,得到K1。密钥变换扩展置换S盒替换P盒替换异或与交换密钥变换o左移的原理是所有二进位向左移动,原来最右边的比特位移动到最左边。 o对C1,D1作左移LS2得到C2和D2,进一步对C
20、2D2应用PC2进行选位,得到K2。如此继续,分别得到K3,K4K16。1122222212222每一轮移动的密钥位数14171124153281562110231912, 42681672720132415231374755304051453348444939563453464250362932压缩置换表扩展置换o通过初始置换后,我们得到了两个32位的明文区,分别为左明文和右明文。扩展置换将右明文从32位扩展到48位。除了从32位扩展到48位之外,这些位也进行置换,因此也称为扩展置换。o将32位明文分成8块,每块各有4位。o将上步的每一个4位块扩展到6位块,利用扩展置换表进行扩展和置换。32
21、12345456789891011121312131415161716171819202120212223242524252627282928293031321S盒变换o密钥变换将56位密钥压缩成48位,而扩展置换将32位右明文扩展到48位。现在,48位密钥和48位右明文进行异或运算,将结果传递给下一步。即S盒替换。密钥变换(将密钥从56位压缩为48位)扩展置换(将右明文从32位扩展为48位)XOR48位密钥48位右明文S盒变换S盒变换原理将上面的48位输出分成8组,每组6位,作为8个S盒的输入。48位输入块6位子块6位子块6位子块1盒2盒S盒4位输出4位输出4位输出32位块输出S盒变换S盒替
22、换用什么逻辑从6位中选择4位呢?可以把每一个S盒看成一个表4行(0-3),16列(0-15)。在每一行和列的相交处,有一个4位数(是S盒的4位输出)。利用6位输入如何取定哪个交点,选择哪个行和列呢?将6位输入进行位排列,这个6位输入来确定4位输出。假如S盒的6位输出表示为b1,b2,b3,b4,b5,b6,则b1b2 b3 b4 b5 b64位列号2位行号P盒置换o所有S盒的输出组成32位块,对该32位要进行P盒置换。1672021291228171152326518311028241432273919133062211425P盒置换异或与交换o注意上面的操作只是处理了64位明文中的右面的32
23、位(即右明文)。还没有处理左明文。原来经初始置换后的64位明文块32位左明文块32位右明文块密钥变换扩展置换S盒置换P盒置换XOR32位右明文块32位左明文下一轮最终置换o16轮结束后,进行一次最终置换。 40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725最终置换表DES解密oDES加密算法适合于解密。唯一区别是米密钥部分倒过来。如果原来的密钥K分解为K1,K2,.,K16。用于16轮加密,则解密密钥应为K1
24、6,K15,K1。对称加密算法的特点 o对称加密技术的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。对称加密技术要求通信双方事先交换密钥,当系统用户增多时,例如,在网上购物的环境中,商户需要与成千上万的购物者进行交易,若采用简单的对称密钥加密技术,商户需要管商户需要管理成千上万的密钥与不同的对象通信理成千上万的密钥与不同的对象通信,除了存储开销以外,密钥管理是一个几乎不可能解决的问题。 非对称加密算法o公开密钥算法是非对称算法,即密钥分为公钥和私钥,因此称双密钥体制;o双钥体制的公钥可以公开,所以也称为公钥算法;o公钥算法的出现,给密码发展开辟了新的方向。在鉴别系统(数字
25、签名)和密钥交换等安全技术领域起着关键的作用。o加密和解密由不同的密钥完成;n加密:P C: C = EPK( P )n解密:C P: P = DSK( C )= DSK( EPK(P) o加密算法公开的情况下,从加密密钥得到解密密钥在计算上是不可行的;o两个密钥中的任一个都可以做加密而另一个做解密;o即:用户拥有一个密钥对( Pk ,Sk ) ,一个公开,一个保密;非对称算法的作用o加密:非对称算法的公/私密钥对用法是,当发方向收方通信时发方用收方的公钥对原文进行加密,收方收到发方的密文后,用自己的私钥进行解密,其中他人是无法解密的,因为他人不拥有自己的私钥,这就是用公钥加密,私钥解密用于通
26、信.oA要给B发消息,A用B的公钥加密消息,因为A知道B的公钥oA将消息发送给BoB用自己的私钥解密A的消息。这个消息只能用B的私钥解密,而不能用别的钥匙解密。o银行将自己的公钥发给所有客户,客户用银行公钥加密消息之后发给银行,银行用自己的私钥解密这些消息。加密过程Joy明文输入明文输入 加密算法,如加密算法,如RSA等等解密算法解密算法 明文输出明文输出Alice的私钥的私钥Bob的的公钥环公钥环TedAliceMikeAliceAlice的公钥的公钥密文传输密文传输o非对称密钥加密(用接受方的公钥进行加密)解决了密钥协定和密钥交换问题,其中:o非对称算法加解密慢,而且密文大于明文长度;而对
27、称算法加密解密速度快,密文通常小于明文长度。o实现两者的结合。对称和非对称加密的比较oA利用DES加密,生成密文CT,利用一次性K1密钥。是否需要把K1发给对方?又回到了密钥交换的问题了!不需要,o利用B的公钥K2对K1进行加密,这个过程叫做对称密钥的密钥包装。o现在把密文CT和加密的对称密钥一起放到数字信封o这时将数字信封发送给BoB打开信封,取出CT和加密的对称密钥(用B公钥包装的)oB用A用过的非对称算法和B的私钥解密,得到对称密钥K1数字信封o最后,B用A的对称算法和K1解密密文CT。优势:o利用对称算法加密,速度快,得到的密文小。o用B的公钥加密对称密钥K1,K1长度小,时间也不会太
28、长。o解决了密钥交换问题。数字签名o我们改为另一种机制:oA用A的私钥加密,将加密的消息发送给B,oB用A的公钥解密o能实现加密吗?o不能,因为A的公钥是公开的,任何人都可以用其进行解密,了解内容,无法实现保密。那这种机制有什么用途呢? 如果接受方B收到用A的私钥发来的加密消息,则可以利用A的公钥解密,从而访问明文。如果解密成功,则表明最初的消息是用A的私钥加密的,而且只有A知道他的私钥,因此,别人不可能假冒A,用A的私钥加密消息。因此这个消息一定是A发来的。因此,这个机制不能用作加密,但可以用来鉴别。,此外,如果发生争议,则B可以拿出加密消息,用A的公钥解密从而证明这个消息是A发来的。即不可
29、抵赖。即使C在途中截获了这个消息,能够用A的公钥解密,然后改变了消息,没有用。因为C不知道A的私钥,无法再次用A的私钥加密改变后的消息。即便C把改变的消息传给B,B也不会认为是A传来的,因为它没有用A的私钥加密。消息摘要o从数字签名看,没有解决非对称算法的问题,即速度慢和密文大。可以利用数字信封来解决,用A的私钥加密K1,到了B,B利用A的公钥解密。o使用消息摘要,散列。o散列(HASH)函数H也称消息摘要(Message Digest)、哈希函数或杂凑函数等,其输入为一可变长输入x,返回一固定长度串,该串h被称为输入x的Hash值(消息摘要),计作h=H(x)。oHash函数H一般满足以下几
30、个基本要求:o输入x可以为任意长度, o输出数据串长度固定, o易计算,给定任何x,给容易算出H(x), o单向函数,即给出一Hash值h,很难反向计算出一特定输入x,使h=H(x), o唯一性,又叫冲突性,可分为弱免冲突和强免冲突两种。弱免冲突指给出一消息x,找出一消息y同x相似且H(x)=H(y)是计算不可行的,而强免冲突指找出任意两条消息x、y,使H(x)=H(y)也是计算不可行的。消息摘要特点o即使使用的算法不同,但所有的散列值都拥有很多相同的属性。散列值的长度由算法的类型决定,与被散列的消息大小无关,一般为128或160比特长度。即使两个消息差别很小,如差别一两个比特,其散列值也完全
31、不同。利用现在的算法技术,几乎不可能找到两个拥有相同散列值的不同消息。用同一个算法对某一消息进行散列计算只能获取唯一确定的散列值。o所有的散列算法都是单向的,也就是说不能从散列值来获取原始消息,即使是原始消息的很少一部分信息都不可能获得。所以,有时候对一个数据的散列也叫做该数据的摘要,它可以作为一个消息的唯一标识,来保护消息的完整性。发送者发送数据的同时,也把该数据的散列值发送过去。接收者接收到消息以后,首先根据接收到的数据计算其散列值,然后和发送过来的散列值进行比较,就可以判断数据是否在发送过程中遭到修改。消息鉴别码MACo虽然大部分情况下,HASH函数是不需要密钥的,但根据应用不同,可以给
32、HASH函数加上密钥,用于保护HASH结果的完整性。o假设发送者利用不带密钥的HASH函数对发送的文件产生了一个摘要或数字拇印(digital finger),然后把该文件和摘要一同发送给接收者。这样就给黑客留下了可乘之机,使其可以对信息进行假冒。黑客首先对网络进行监听,截获发送来的文件,然后对文件进行修改,并利用同样的HASH函数对修改后的文件进行处理,产生假冒的HASH结果。然后,黑客把修改后的文件和假冒的HASH值发送给原始的接收者。接收者根据发送来的文件检查HASH,错误地认为文件是完整的。o如果发送者使用带密钥的HASH函数来产生HASH值的话,由于黑客不知道密钥(发送文件的时候一般
33、不会把密钥附带在文件上),所以,即使黑客产生了假冒的HASH结果,接收者利用密钥进行验证的时候,同样会发现文件遭到了修改,从而保证了传输文件的完整性。利用上述方法产生的HASH结果就成为消息校验码MAC(Message Authentication Codes)。常用的HASH算法有SHA1和MD5等。MAC算法oA和B共享一个对称秘钥K,A计算MAC时,要将K坐用到消息M。oA将消息M和MAC H1发给BoB收到M时,也用K对M求出MAC H2oB比较H1和H2,如果相同,则表明M没有改变。o前面介绍的SHA和MD5,计算消息摘要,然后利用共享加密秘钥加密消息摘要,从而输出MAC。这就是HM
34、AC。oHMAC没有解决秘钥交换的问题,不适合多个接受方的情况,不知道消息来自何方。o引出了数字签名。数字签名o把HASH函数和公钥算法结合起来,可以在提供数据完整性的同时来保证数据的真实性。完整性保证传输的数据没有被修改,而真实性则保证是由确定的合法者产生的HASH,而不是由其他人假冒。而把这两种机制结合起来就可以产生所谓的数字签名(Digital Signature)。o将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要(Message Digest)值。在数学上保证:只要改动报文的任何一位,重新计算出的报文摘要就会与原先值不符,这样就保证了报文的不可更改。然后把该报文的摘要值用
35、发送者的私人密钥加密,并将该密文同原报文一起发送给接收者,所产生的报文即为数字签名。o接收方收到数字签名后,用同样的HASH算法对报文计算摘要值,然后与用发送者的公开密钥进行解密解开的报文摘要值相比较。如相等则说明报文确实来自发送者,因为只有用发送者的签名私钥加密的信息才能用发送者的公钥解开,从而保证了数据的真实性。o数字签名相对于手写签名在安全性方面具有如下好处:数字签名不仅与签名者的私有密钥有关,而且与报文的内容有关,因此不能将签名者对一份报文的签名复制到另一份报文上,同时也能防止篡改报文的内容。数字签名验证o为了验证一个数字签名,必须同时获得原始消息和数字签名。首先,利用同签名相同的方法
36、计算消息的散列值,然后利用签名者公钥解密签名获取原散列值,如果两个散列值相同,则可以验证发送者的数字签名。PKI技术技术 哈尔滨工程大学哈尔滨工程大学 PKI技术 公钥基础设施(Public Key Infrastructure). 数字证书:建立这个用户和某个公钥的联系。就是一个 小小的计算机文件。 包括用户名,出生日期,有效时间等等。还有就是签发的机构。说明这个证书是政府发的,不是小店发的,你就可以相信了。 证书机构CA:就是可以签发证书的机构。 注册机构RA:由于证书机构任务很多,如签发新证书,维护旧证书,吊销证书等,需要将一部分工作交给注册机构。对于用户来说,差别不大。最终用户最终用户
37、最终用户注册机构RA证书机构CA证书生成步骤 o秘钥生成o主体可以通过软件生成私钥/公钥对,对私钥保密,然后把公钥和其他信息与身份证明发给注册机构。o注册机构为主体生成密钥对,缺点是注册机构知道用户的私钥。o注册o验证,第一项对提供的材料证明,第二项是保证请求证书的用户持有向RA请求中发送的公钥所对应的私钥。oRA可以要求用户用私钥对证书签名请求进行数字签名。如果RA能用这个用户的公钥验证签名的正确性,则可以相信这个用户拥有这个私钥。oRA产生个信息,然后利用这个用户的公钥加密,加密信息发给用户,如果用户能用其私钥解密,则可证明。o证书生成,生成证书并保留证书纪录。o通知用户下载其证书。信任数
38、字证书n证书机构可以用自己的私钥签名这个证书,表示:n我已经对这个证书进行了签名,保证是这个证书持有指定的公钥,请相信我。数字证书的最后一个字段总是证书机构的数字签名。向用户签发数字证书之前,CA首先要对证书的所有字段计算一个消息摘要(MD5和SHA),然后用CA的私钥加密消息摘要(RSA),构成CA的数字签名,然后CA将计算的数字签名作为数字证书的最后一个字段插入,相当于盖章。公钥信息用户名有效日期版本号消息摘要算法消息摘要数字签名算法证书机构的私钥数字签名最后一个字段如何验证数字证书o用户将数字证书中除了最后一个字段的所有字段传入消息摘要算法,计算出消息摘要,假设为MD1o取出CA的数字签
39、名,利用反签名算法(证书机构的公钥),得到另一个消息摘要MD2,o如果正确MD1=MD2,证明数字证书是CA用其私钥签名的。公钥信息用户名有效日期版本号签名消息摘要算法消息摘要MD1反签名算法证书机构的公钥消息摘要MD2MD1=MD2证书有效?SSL安全套接层 o传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据, 别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真
40、正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。 服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。 oSHell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了, 而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。 SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。SSL握手协议 o用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。 o服务器将其
41、SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服发给浏览器的还有服务器的证书务器的证书。如果配置服务器的配置服务器的SSL需要验证用户身份,还要需要验证用户身份,还要发出请求要求浏览器提供用户证书发出请求要求浏览器提供用户证书。 o客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。 o客户端浏览器为本次会话生成pre-master secret,并将其用服务并将其用服务器公钥加密后发送给服务器器公钥加密后发送给服务器。(为了验证对方是证书中的秘钥持有人) o如果服务器要求鉴别客户身份,客户端还要再对另外
42、一些数据再对另外一些数据签名后签名后(为了验证自己是证书中的秘钥持有人)并将其与客户端证书一起发送给服务器。SSL握手协议o如果服务器要求鉴别客户身份(用证书中的公钥解密),则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。o客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以
43、上,能够显著提高双方会话时的运算速度。 o客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次SSL握手。 o服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次SSL握手。 o本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。SSL通讯示意图SSL通讯说明 o在该部分,将对图1所示的示意图进行说明。为了说明的方便,在本文中称客户端为B,服务器端为S。oSTEP 1: BS(发起对话,协商传送加密算法)o你好,S!我想和你进行安全对话,我的对称加密算法有DES,RC5,我的密钥交换
44、算法有RSA和DH,摘要算法有MD5和SHA。oSTEP2: SB(发送服务器数字证书)o你好,B!那我们就使用DESRSASHA这对组合进行通讯,为了证明我确实是S,现在发送我的数字证书给你,你可以验证我的身份。oSTEP 3: BS(传送本次对话的密钥)o检查S的数字证书是否正确,通过CA机构颁发的证书验证了S证书的真实有效性后。生成了利用S的公钥加密的本次对话的密钥发送给S)oS, 我已经确认了你的身份,现在将我们本次通讯中使用的对称加密算法的密钥发送给你。SSL通讯说明 STEP4: SB(获取密钥)oS用自己的私钥解密获取本次通讯的密钥)。oB, 我已经获取了密钥。我们可以开始通信了。oSTEP5: SB(进行通讯)o说明:一般情况下,当B是保密信息的传递者时,B不需要数字证书验证自己身份的真实性,如电子银行的应用,客户需要将自己的账号和密码发送给银行,因此银行的服务器需要安装数字证书来表明自己身份的有效性。在某些B2B应用,服务器端也需要对客户端的身份进行验证,这时客户端也需要安装数字证书以保证通讯时服务器可以辨别出客户端的身份,验证过程类似于服务器身份的验证过程。