物联网安全之浅析数字签名_第1页
物联网安全之浅析数字签名_第2页
物联网安全之浅析数字签名_第3页
物联网安全之浅析数字签名_第4页
物联网安全之浅析数字签名_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、物联网安全 之浅析数字签名汇报人:李向阳 学 号:20159309导 师:李数字签名 有些场合,如政府发布电子公文,不需要确保数据的机密性,但要求有如下保证: 1.身份认证和鉴别:对信息传输的双方进行身份认证和鉴别,需要某种机制来证明双方的真实身份。 2. 数据完整性:数据在传输的过程中没有被篡改。 3.不可否认性:信息的发送方必须对自己的操作承担责任,不可否认。信任类型信任类型现实世界现实世界网络世界网络世界身份认证身份认证身份证、护照、信用卡、驾照身份证、护照、信用卡、驾照数字签名数字签名完完 整整 性性签名、支票、第三方证明签名、支票、第三方证明数字签名数字签名保保 密密 性性保险箱、信

2、封、警卫、密藏保险箱、信封、警卫、密藏加密加密不可否认性不可否认性签名、挂号信、公证、邮戳签名、挂号信、公证、邮戳数字签名数字签名形式化定义:“数字签名”指在数据电文中,以电子形式所含、所附或在逻辑上与数据电文有联系的数据,和与数据电文有关的任何方法,它可用于数据电文有关的签字持有人和表明此人认可数据电文所含信息。数字签名基本原理签名过程:1.使用某种散列算法,对要发送的数据进行处理,生成数据摘要信息;2.采用公钥密码算法,用私钥加密数据摘要信息;签名体制:1.发送方的签名部分,对消息M签名,记作S=sig(K,M),签字算法使用的密钥是秘密的,即是签字者的私钥。2.接收方的认证部分,签名S的

3、验证可以记 作 : Ver(M,S,K)真,假 一个签名方案由签署算法与验证算法两部分构成。可用五元关系组(P,A,K,S,Y)表示,其中,P是由一切可能消息(messages)所构成的有限集合;A是一切可能的签名的有限集合;K为有限密钥空间,一些可能密钥的有限集合;任意kK,有签署算法Sigk S,Sigk:PA,对任意x P,有s=Sigk(x),那么s S为消息x的签名,将(x,s)发送到签名验证者。对于密钥集合K,有对应的验证算法Verk y,满足: Verk: PXA真,假 签名者收到(x,s)后,计算Verk(x,y),若y=Sigk(x),则Verk(x,y)=真;若ySigk(

4、x), Verk(x,y)=假。其中:任意是kK,函数Sigk和verk都为多项式时间函数。Verk为公开的函数,而Sigk为秘密函数。如果坏人要伪造B对x的签名,在计算机上是不可能的。即给定x,仅有B能计算出签名y,使得Verk(x,y)=真。一个签名方案不能是无条件安全的,有足够的时间第三方总能伪造B的签名。数字签名展示: 鲍勃有两把钥匙一把是公钥一把是私钥。鲍勃把公钥送给他的朋友们-帕蒂、道格、苏珊-每人一把。苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落

5、在别人手里,也无法解密。 鲍勃给苏珊回信,决定采用数字签名。他写完后先用Hash函数,生成信件的摘要(digest) 然后,鲍勃使用私钥,对这个摘要加密,生成数字签名(signature)鲍勃将这个签名,附在信件下面,一起发给苏珊苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的 复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成数字签名,写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 苏珊再对信件本身使用Hash函数

6、,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过 后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找证书中心(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成数字证书鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了 苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明数字签名是否真的是鲍勃签的 哈希(HASH) Hash 定义:一般翻译做“散列”,也有直接音译为“哈希”的

7、,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 算法特点:1.定长输出2.单向性:对任意给定的码h, 寻求x使得H(x)=h在计算上是不可行的3.弱抗攻击性:任意给定分组x, 寻求不等于x的y, 使得H(y)= H(x)在计算上不可行4.强抗攻击性:寻求对任何的(x,y)对使得H(x)=H(y)在计算上不可行 常见Hash算法:SHA-1算法描述: 可以对长度

8、不超过 比特的消息进行计算,输入以512位数据块为单位处理,产生160比特的消息摘要作为输出。642SHA-1变换消息摘要输入输出小于264bit160bit预处理: 在进行计算之前,消息x必须先进行填充,直到其大小为512位的倍数。为了便于内部处理,填充后的消息必须分组;同时,初始值H0也需要设置为一个预定义的常量。填充:假设有一个长度为l位的消息x。为了使整个消息的大小为512位的整数倍,将一个1、k个0和l的二进制表示的64位追加到消息后面。最后,所需要零的个数k可以表示为: k512-64-1-l=448-(l+1)mod 512例:给定一个由三个8位ASC字符组成的消息“abc”,其

9、总长度l=24我们将一个“1”和k=423个0追加到消息后面,其中k可以使用一下方法确定: k448-(l+1)=448-25=423 mod 512 最后,将包含长度l=2410=110002的二进制的64位追加到最后。“abc”01100001 01100010 01100011原始消息bit序列转换a=0 x61 b=0 x62 c=0 x63 61626380 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000000

10、00 00000000 00000018填充后形式如下:在使用压缩函数之前,需要将消息分割为长度为512位的分组x1, x2,x3,,xn。每个512位的分组又可以分割为16个大小为32位的单词。例如,消息x的第i个分组可以分割为: xi=(xi (0) xi (1) xi (15) ) 其中,xi (k)表示大小为32位的单词。例如:一个160位的缓冲区用来存放第一轮迭代需要的初始哈希值。这五个32位的单词是固定的,他们对应的十六进制表示为:512bit512bit512bit512bitX = X1 | X2 | | Xi | | XnX= 61626380 00000000 000000

11、00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000018X1 A=H0(0) = 0 x67452301 B=H0(1) = 0 xEFCDAB89 C=H0(2) = 0 x98BADCFE D=H0(3) = 0 x10325476 E=H0(4) = 0 xC3D2E1F0 对每个消息分组xi的处理分为四个阶段,其中每个阶段都包含20轮。每轮都计算一个32位的单词W0,W1,W79。单词Wj是从512位消息分组

12、得到: Wj=( )1161483()jijjjjxS WWWW16j79S1表示循环左移0j15将X分成16个字W0,W1,,W15X1 = 61626380 00000000 00000000 00000000 W0 W1 W2 W3 00000000 00000000 00000000 00000000 W4 W5 W6 W7 00000000 00000000 00000000 00000000 W8 W9 W10 W11 00000000 00000000 00000000 00000018 W12 W13 W14 W15扩展W16,W17,,W79Wj = S1(Wj-3 Wj-8

13、 Wj-14 Wj-16) (0 j 19) 五个大小为32位的工作寄存器ABCDE,分别组成哈希值Hi。开始时,哈希值为初始值H0;然而每次处理完单个消息分组后,此哈希值将被得到的新哈希值替换。最后一个哈希值Hn等于SHA-1的输出h(x)。上图中的四个SHA-1阶段结构相似,只是使用的内部函数ft和常量Kt不同,其中1t4。每个阶段包含20轮,在每轮中,函数ft和某个与阶段无关的常量Kt一起处理一部分消息分组。第80轮之后的输出与输入值Hi-1模232进行按位相加。第t阶段的第j轮内的操作可表示为:T = S5(A) + ft(B,C,D) + E + Wt + Kt对于0 t 79,执行以下循环:T = S5(A) + ft(B,C,D) + E + Wt + KtE = D ; D = C ; C = S30(B) ; B = A ; A = T上一步循环执行完成后,令:Hi (0) = Hi-1 (0) + AHi (1) = Hi-1 (1) + BHi (2) = Hi-1 (2 ) + CHi (3) = Hi-1 (3) + DHi (4) = H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论