第三章 数字签名技术
采用单向Hash函数,团体签名是容易实现的: ①A对文件的hash签名。 ②B对文件的hash签名。 ③B将他的签名交给A。 B A ④A把文件、签名和B的签名发给C。 ⑤C验证A和B的签名。 A和B能同时或顺序地完成①和②,在⑤C可以 只验证其中一人的签名而不用验证另一人的签 名。
具有可信仲裁者的团体签名方案
3.3.2 双联签名
在一次电子商务活动过程种可能同时有两个有 联系的消息M1和M2,要对它们同时进行数字签 名。例如,一个是送银行B的有关转帐财务明 细表,即消息M1,另一个是厂商C的进货清单 即消息M2;但要求交送银行B的数字签名不应 知道M2,送厂商C的数字签名不应知道M1.
MD1=H(M1) MD2=H(M2) MD=H(MD1|MD2)
一个Hash函数满足: ①H可以作用于一个任意长度的数据块; ②H产生一个固定长度的输出; ③H(x)对任意给定的x计算相对容易,无论是软件还是 硬件实现; ④对任意给定码h,找到x满足H(x)=h具有计算不可行性; ⑤对任意给定的数据块x,找到满足H(y)=H(x)的yx具 有计算不可行性; ⑥找到任意数据对(x,y),满足H(x) = H(y)是计算不可行 的。
二、签名及验证协议 签名及验证协议如下: ①P产生随机数k,k < q; ②P计算 r = ( gk mod p ) mod q和s = ( k-1 (H(m) + xr)) mod q 签名结果是( m, r, s )。 ③验证时 计算 w = s-1mod q 计算u1 = ( H( m ) * w ) mod q 计算u2 = ( r * w ) mod q 计算v = (( gu1 * yu2 ) mod p ) mod q 若v = r,则认为签名有效。
获得数字时间戳的过程
Hash 算 法 摘 要 1 Internet 原 文 数 字 时 戳 间 数 字 时 戳 间 用DTS 机 的 钥 密 构 私 加 摘 要 1 加 间 时 摘 1 要 +时 间 Hash 算 法 加 时 后 了 间 的 摘 新 要
发 身必须有时间标记,而与它所用 的物理媒介无关。 ②不存在哪怕改变文件的1个比特而文件时 间戳却没有明显变化的情形。 ③不可能用不同于当前日期和时间的日期 和时间来签署文件。
3.2.1 RSA数字签名系统 RSA数字签名系统
RSA算法中数字签名技术实际上是通过一个哈 希函数来实现的。数字签名的特点是它代表了 文件的特征,文件如果发生改变,数字签名的 值也将发生变化。不同的文件将得到不同的数 字签名。 用RSA或其它公开密钥密码算法的最大方便是 没有密钥分配问题。因为公开密钥加密使用两 个不同的密钥,其中有一个是公开的,另一个 是保密的。公开密钥可以保存在系统目录内、 未加密的电子邮件信息中、电话黄页(商业电 话)上或公告牌里,网上的任何用户都可获得 公开密钥。
3.1.1 数字签名的基本概念
数字签名是通过一个单向函数对要传送 的信息进行处理得到的用以认证信息来 源并核实信息在传送过程中是否发生变 化的一个字母数字串。 化的一个字母数字串。数字签名提供了 对信息来源的确定并能检测信息是否被 篡改。 篡改。
3.1.2 3.1.2 数字签名的特点
在书面文件上签名是确认文件的一种手段,其作用有两点: 第一,因为自己的签名难以否认,从而确认了文件已 签署这一事实; 第二,因为签名不易仿冒,从而确定了文件是真的这 一事实。 数字签名与书面文件签名有相同之处,采用数字签名, 数字签名与书面文件签名有相同之处,采用数字签名,也能 确认以下两点: 确认以下两点: 第一,信息是由签名者发送的; 第一,信息是由签名者发送的; 第二,信息自签发后到收到为止未曾作过任何修改。 第二,信息自签发后到收到为止未曾作过任何修改。 区别:手签是模拟的, 区别:手签是模拟的,易伪造 数字签名是基于数学原理的,更难伪造。 数字签名是基于数学原理的,更难伪造。
3.3特殊数字签名方法 3.3特殊数字签名方法
3.3.1 盲签名
一般数字签名中,总是要先知道文件内 容而后才签署,这正是通常所需要的。 但有时需要某人对一个文件签名,但又 不让他知道文件内容,称为盲签名,它 是由Chaum在1983年最先提出的。在选举 投票和数字货币协议中会使用到。利用 盲变换可以实现盲签名。
3.1.3 数字签名的原理
Hash 算法 摘要 发送者 私钥加密 数字 签名 Internet 原文 原文 Hash 算法 摘要 数字 签名 发送者 公钥解密 摘要 对比?
发送方
接收方
处理过程: (采用双重加密)
(1)使用SHA编码将发送文件加密产生128bit的数字摘要; (2)发送方用自己的专用密钥对摘要再加密,形成数字签名; (3)将原文和加密的摘要同时传给对方; (4)接受方用发送方的公共密钥对摘要解密,同时对收到的文件 用SHA编码加密产生同一摘要; (5)将解密后的摘要和收到的文件在接受方重新加密产生的摘要 相互对比,如果两者一致,则说明在传送过程中信息没有破坏 和篡改。否则,则说明信息已经失去安全性和保密性。
3.3.4 无可争辩签名
不可争辩签名是在没有签名者自己的合作下不可能 验证签名的签名。无可争辩签名是为了防止所签名 文件被复制,有利于产权拥有者控制产品的散发。 不可争辩签名1989年由Chaum和Antwerpen引入,这 类签名有一些特点,适用于某些应用,如电子出版 系统,以利于对知识产权的保护。 在签名人合作下才可能验证签名,又会给签名者一 种机会,在不利于他时可拒绝合作,因而不具有 “不可否认性”。不可争辩签名除了一般签名体制 中的签名算法和验证算法(或协议)外,还需要第 三个组成部分,即否认协议;签名者利用不可争辩 签名可向法庭或公众证明一个伪造的签名的确是假 的;但如果签名者拒绝参与执行否认协议,就表明 签名真的由他签署。
DSA签名和验证 DSA
3.2.4 椭圆曲线数字签名算法(ECDSA) 椭圆曲线数字签名算法(ECDSA)
椭圆曲线的数字签名具有与RSA数字签名和 DSA数字签名基本上相同的功能,但实施起来 更有效,因为椭圆曲线数字签名在生成签名和 进行验证时要必RSA和DSA来得快。 椭圆曲线数字签名的速度要比RSA、DSA快,还 可以用在一些较小、对资源有一定限制得设备 如智能卡(含有微处理器芯片得塑料片)中。
3.1.4 数字签名的作用
能证明:
– 信息是由签名者发送的(认证性) – 信息自签发后到收到为止未曾做过任何修改(完整性) – 发送者不能否认其发送过信息及信息的内容(不可否认
性)
可防止 – 发送者或接收者伪造 – 第三方冒充 – 接收方篡改
3.2常规数字签名方法 3.2常规数字签名方法
3.2.1 RSA数字签名系统 3.2.2 Hash签名 3.2.3 美国数字签名标准(DSA) 3.2.4 椭圆曲线数字签名算法(ECDSA)
(1)T生成一大批公开密钥/私钥密钥对,并且给团 体内每个成员一个不同的唯一私钥表。在任何表 中密钥都是不同的(如果团体内有n个成员,每个 成员得到m个密钥对,那么总共有n*m个密钥对) (2)T以随机顺序公开该团体所用的公开密钥主表。 T保持一个哪些密钥属于谁的秘密记录。 (3)当团体成员想对一个文件签名时,他从自己的 密钥表随机取一个密钥。 (4)当有人想验证签名是否属于该团体时,只需查 找对应公钥表并验证签名。 (5)当争议发生时,T知道哪个公钥对应于哪个成 员。
3.4数字签名法律 3.4数字签名法律
3.4.1 数字签名法律的内涵 3.4.2 电子签名立法原则 3.4.3 全球电子签名立法特点 3.4.4 我国电子签名立法现状
3.4.1 数字签名法律的内涵
联合国《电子商务示范法》第7条规定:"如法 律要求要有一个人签字,则对于一项数据电文 而言,倘若情况如下,即满足了该项要求: ①使用了一种方法,鉴定了该人的身份,并且表 明该人认可了数据电文内含的信息; ②从所有各种情况看来,包括根据任何相关协议, 所用方法是可靠的,对生成或传递数据电文的 目的来说也是适当的。
3.2.3 美国数字签名标准(DSA) 美国数字签名标准(DSA)
数字签名算法(Digital Signature Algorithm,DSA)是Schnorr和ElGamal 签名算法的变种,由美国国家标准化技 术研究院(NIST)和国家安全局共同开 发。DSA是基于离散对数的难度。
一、DSA算法参数说明 DSA算法中应用了下述参数: p:L bits长的素数。L是64的倍数,范围是512到1024; q:p - 1的160bits的素因子; g g g:g = hp-1 mod p,h满足h < p - 1, h(p-1)/q mod p > 1; p h h 1 x:1<x< q,x为私钥; y:y = gx mod p ,( p, q, g, y )为公钥; H( x ):单向Hash函数。在DSS中选用安全散列算法 ( Secure Hash Algorithm,SHA )[]。 p, q, g:可由一组用户共享,但在实际应用中,使用 公共模数可能会带来一定的威胁。
利用盲变换可以实现盲签名的基本原理
(1) A取一文件并以一随机值乘之,称此随机值为盲因 子 (2) A将此盲文件发送给B; (3) B对盲文件签名; (4) A以盲因子除之,得到B对原文件的签名
Chaum将盲变换看做是信封,盲文件是对文件 加个信封,而去掉盲因子的过程是打开信封 的过程。文件在信封中时无人可读,而在盲 文件上签名相当于在复写纸信封上签名,从 而得到了对起文件(信封内容)的签名。
A--》BANK:M1|Sig(MD)|MD2 A--》CUSTMER: M2|Sig(MD)|MD1
3.3.3团体签名 3.3.3团体签名
团体签名具有以下特性: ①只有该团体内的成员能对消息签名; ②签名的接收者能够证实消息是该团体 的有效签名。 ③签名的接收者不能决定是该团体内哪 一个成员签的名; ④在出现争议时,签名能够被“打开”, 以揭示签名者的身份。