第十讲 数字签名.ppt
合集下载
《数字签名技术应用》PPT课件

由于商情的千变万化,交易一旦达成是不能被否认的。否则必 然会损害一方的利益。再如订购黄金,订货时金价较低,但收到订单 后,金价上涨了,如果供货方能否认收到订单的实际时间,甚至否认 收到订单的事实,则订货方就会蒙受损失。因此电子交易通信过程的 各个环节都必须是不可否认的。 5)信息传递的不可重放性
如在日常生活中,A向B借了钱,同时写了一张借条给B;当A还 钱的时候,肯定要向B索回他写的借条撕毁,不然,恐怕他会再次挟 借条要求A再次还钱。在数字签名中,如果采用了对签名报文添加流 水号、时戳等技术,可以防止重放攻击。
21
7.2.3 数字签名算法
1)签名过程
对于给定的k,消息m的签名定义如下: sig(m,k)=(y,s)
其中 y = (gk mod p)mod q s = (k-1(MD5(m)+ay)mod q
杂凑函数MD5用于把可变长度的消息m转变为一个160比特的消 息摘要,然后再用数字签名方案对它进行签名。
3)安全性分析
由于DSA是基于有限域上离散对数问题,出于短期安全性考虑要 求域Zp的素数p的长度至少为1024比特,而考虑到长期安全性则要求 其长度至少为2048比特。
23
7.2.3 数字签名算法
签名算法
Rivest、shamir和Adleman于1978年提出了RSA数字签名和公钥算 法,这是第一个较完善的公开密钥算法,它既能用于加密也能用于数 字签名,而认证过程相当于保密过程的逆过程。
(1)H能够应用到大小不一的数据上; (2)H对任何输入报文数据生成固定长度的输出; (3)对于任意给定的x,H(x)的计算相对简单; (4)对于任意给定的h,要发现满足H(x)=h的x在计算上是不可行的; (5)要发现满足H(x)=H(y)的(x,y)对在计算上是不可行的。 由于消息摘要函数比对称加密算法的速度还快,因此有着广泛 的应用。消息摘要函数是数字签名和消息识别码(MAC)的基础。
如在日常生活中,A向B借了钱,同时写了一张借条给B;当A还 钱的时候,肯定要向B索回他写的借条撕毁,不然,恐怕他会再次挟 借条要求A再次还钱。在数字签名中,如果采用了对签名报文添加流 水号、时戳等技术,可以防止重放攻击。
21
7.2.3 数字签名算法
1)签名过程
对于给定的k,消息m的签名定义如下: sig(m,k)=(y,s)
其中 y = (gk mod p)mod q s = (k-1(MD5(m)+ay)mod q
杂凑函数MD5用于把可变长度的消息m转变为一个160比特的消 息摘要,然后再用数字签名方案对它进行签名。
3)安全性分析
由于DSA是基于有限域上离散对数问题,出于短期安全性考虑要 求域Zp的素数p的长度至少为1024比特,而考虑到长期安全性则要求 其长度至少为2048比特。
23
7.2.3 数字签名算法
签名算法
Rivest、shamir和Adleman于1978年提出了RSA数字签名和公钥算 法,这是第一个较完善的公开密钥算法,它既能用于加密也能用于数 字签名,而认证过程相当于保密过程的逆过程。
(1)H能够应用到大小不一的数据上; (2)H对任何输入报文数据生成固定长度的输出; (3)对于任意给定的x,H(x)的计算相对简单; (4)对于任意给定的h,要发现满足H(x)=h的x在计算上是不可行的; (5)要发现满足H(x)=H(y)的(x,y)对在计算上是不可行的。 由于消息摘要函数比对称加密算法的速度还快,因此有着广泛 的应用。消息摘要函数是数字签名和消息识别码(MAC)的基础。
密码学--数字签名讲义PPT课件(26张)

基于仲裁的数字签名方案三 ——公钥加密,A不能阅读消息
实来自X。
数字签名生成后,可对整个报文和签名 进行进一步加密以增强数据通信的保密性。
加密可以是基于公开密钥方式,也可以 是基于对称密钥方式。
报文及签名可以保存在存储介质中,以 备解决争端时使用。
在这种情况下,第三方必须掌握解密密 钥才能查看报文和签名。
对直接数字签名的讨论
直接数字签名方案在安全性上存在一个 共同的弱点:方案的安全性依赖于发送方X 私有密钥的安全性。 ▪ 发送方可以声称自己的私ห้องสมุดไป่ตู้密钥丢失或 被盗用,而否认其发送过某个报文。 ▪ 若对私有密钥引入额外的管理控制,将 限制给签名方案的适用范围。
以防伪造和否认。 ▪ 产生数字签名比较容易。 ▪ 识别和验证签名比较容易。
数字签名的设计目标(2)
▪ 伪造数字签名在计算上是不可行的。 • 无论是从给定的数字签名伪造消息, • 还是从给定的消息伪造数字签名, • 在计算上都是不可行的。
▪ 保存数字签名的拷贝是可行的。
目前,已经有多种数字签名的 解决方案和数字签名计算函数。按 照其技术特点,这些方案可分为两 类:
我们或许愿意在计算机上做这 种事情,但还存在一些问题。
▪ 计算机文件易于复制,即使某人的 签名难以伪造(例如,手写签名的 图形),但是从一个文件到另一个 文件剪裁和粘贴有效的签名都是很 容易的。这种签名没有什么意义。
▪ 文件在签名后也易于修改,并且不 会留下任何修改的痕迹。
但我们还是要解决 计算机签名的问题——数 字签名。
▪ X和Y对A是高度信任的
• X确信A不会泄漏密钥Kax,因此不会产生伪造的 签名;
• Y也确信A发来的报文M是经过验证的、确实来 自X;
《数字签名》PPT课件

– 改进的方式例如可以要求被签名的信息包含一个时间戳(日 期与时间),并要求将已暴露的密钥报告给一个授权中心
▪ X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的签
名及早于或等于时间T的时间戳
精选PPT
12
仲裁数字签名
精选PPT
13
仲裁数字签名
▪ 引入仲裁者
– 所有从发送方X到接收方Y的签名消息首先送到仲裁者A – A将消息及其签名进行一系列测试,以检查其来源和内容 – A将消息加上日期并与已被仲裁者验证通过的指示一起发给Y
精选PPBT ob (B)
15
仲裁数字签名-单密钥加密方式1
数字签名
精选PPT
16
仲裁数字签名-单密钥加密方式1
精选PPT
17
仲裁数字签名-单密钥加密方式2
精选PPT
18
仲裁数字签名-双密钥加密方式
精选PPT
19
仲裁数字签名-双密钥加密方式
精选PPT
20
数字签名标准DSS
美国国家标准与技术局(NIST)在1991年 提出了一个联邦数字签名标准,NIST称之 为数字签名标准(DSS)。DSS提供了一种 核查电子传输数据及发送者身份的一种方 式。
– DSS/DSA
▪ 不可否认的数字签名算法 ▪ 群签名算法 ▪ 盲签名算法
精选PPT
23
▪ 仲裁者在这一类签名模式中扮演敏感和关键的角色
– 所有的参与者必须极大地相信这一仲裁机制工作正常
精选PPT
14
仲裁数字签名
Trent (T)
对称密码+明文传送
Alice (A)
Bob (B)
Trent (T)
对称密码+密文传送
▪ X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的签
名及早于或等于时间T的时间戳
精选PPT
12
仲裁数字签名
精选PPT
13
仲裁数字签名
▪ 引入仲裁者
– 所有从发送方X到接收方Y的签名消息首先送到仲裁者A – A将消息及其签名进行一系列测试,以检查其来源和内容 – A将消息加上日期并与已被仲裁者验证通过的指示一起发给Y
精选PPBT ob (B)
15
仲裁数字签名-单密钥加密方式1
数字签名
精选PPT
16
仲裁数字签名-单密钥加密方式1
精选PPT
17
仲裁数字签名-单密钥加密方式2
精选PPT
18
仲裁数字签名-双密钥加密方式
精选PPT
19
仲裁数字签名-双密钥加密方式
精选PPT
20
数字签名标准DSS
美国国家标准与技术局(NIST)在1991年 提出了一个联邦数字签名标准,NIST称之 为数字签名标准(DSS)。DSS提供了一种 核查电子传输数据及发送者身份的一种方 式。
– DSS/DSA
▪ 不可否认的数字签名算法 ▪ 群签名算法 ▪ 盲签名算法
精选PPT
23
▪ 仲裁者在这一类签名模式中扮演敏感和关键的角色
– 所有的参与者必须极大地相信这一仲裁机制工作正常
精选PPT
14
仲裁数字签名
Trent (T)
对称密码+明文传送
Alice (A)
Bob (B)
Trent (T)
对称密码+密文传送
《数字签名技术》PPT课件

3.2.1 RSA数字签名系统
RSA算法中数字签名技术实际上是通过一个哈 希函数来实现的。数字签名的特点是它代表了 文件的特征,文件如果发生改变,数字签名的 值也将发生变化。不同的文件将得到不同的数 字签名。
用RSA或其它公开密钥密码算法的最大方便是 没有密钥分配问题。因为公开密钥加密使用两 个不同的密钥,其中有一个是公开的,另一个 是保密的。公开密钥可以保存在系统目录内、 未加密的电子邮件信息中、 黄页(商业 ) 上或公告牌里,网上的任何用户都可获得公开 密钥。
一个Hash函数满足: ①H可以作用于一个任意长度的数据块; ②H产生一个固定长度的输出; ③H(x)对任意给定的x计算相对容易,无论是软件还是硬
件实现; ④对任意给定码h,找到x满足H(x)=h具有计算不可行性; ⑤对任意给定的数据块x,找到满足H(y)=H(x)的y x具
有计算不可行性; ⑥找到任意数据对(x,y),满足H(x) = H(y)是计算不可行的。
3.1.4 数字签名的作用
能证明:
– 信息是由签名者发送的(认证性) – 信息自签发后到收到为止未曾做过任何修改(完整性) – 发送者不能否认其发送过信息及信息的内容(不可否认
性)
可防止 – 发送者或接收者伪造 – 第三方冒充 – 接收方篡改
3.2.1 RSA数字签名系统 3.2.2 Hash签名 3.2.3 美国数字签名标准(DSA) 3.2.4 椭圆曲线数字签名算法(ECDSA)
(1) A取一文件并以一随机值乘之,称此随机值为盲因 子
(2) A将此盲文件发送给B; (3) B对盲文件签名; (4) A以盲因子除之,得到B对原文件的签名
Chaum将盲变换看做是信封,盲文件是对文件 加个信封,而去掉盲因子的过程是打开信封 的过程。文件在信封中时无人可读,而在盲 文件上签名相当于在复写纸信封上签名,从 而得到了对起文件(信封内容)的签名。
第10讲数字签名

2) 用户私钥KRa =x(只针对用户a) 针对用户a任意选择x∈Zq*,形成用户私钥
3) 用户公钥分量KUa= y(只针对用户a) 针对x计算y=gx (mod p),形成用户公钥分
量。 4) 密值k(属于某次签名) 针对某次签名随机选取k ∈Zq*
2. DSA的签名过程
签名方先算出消息明文M的散列值 H(M)=SHA-1(M)∈Zp* ,然后随机选取 密值k ∈Zq*,计算: r=(gk (mod p)) (mod q) s=(H(M)+xr)k-1(mod q)
3. 用非对称密码体制实现数字签名 用私钥加密实现签名
y sigkRa(m) EkRa(m)
用公钥解密实现验证
ver(m, y) true m EkUa( y)
属于严格意义上的数字签名 本质上是公钥加密体制的逆用 4. 数字签名的种类 直接数字签名(通信双方为签名方与验
证方) 需仲裁的数字签名(通信三方为签名方、
签名
消息 M
加 密 E
验证
M
合
M
并
EKR(M)
解
密
D
比较
M’
私钥KR
公钥KU
2. 带保密功能的数字签名──签名后再加密
A→B :EK [M+EKRa[M] ] 兼有信息完整性认证的作用 签名过程会因消息长而更费时 对消息本身有保密功能 除了需要签名者的“公钥-私钥”外,双方
还需有共享密钥 过程如下(图略)
3) 接收者Y 用与A共享的密钥KYA 解密上述信 息,并保存经A验证的签名和经A认证的消息
仲裁机制: 当Y需要抗击X抵赖时,可向A发送 EKYA[IDX || M || EKXA [IDX || H(M)]]; A用KYA恢复出IDX 、M 、EKXA [IDX || H(M)]; 然后用KXA恢复H(M),并通过重算验证签名; 从而裁决X确有此签名。 可用前提:
3) 用户公钥分量KUa= y(只针对用户a) 针对x计算y=gx (mod p),形成用户公钥分
量。 4) 密值k(属于某次签名) 针对某次签名随机选取k ∈Zq*
2. DSA的签名过程
签名方先算出消息明文M的散列值 H(M)=SHA-1(M)∈Zp* ,然后随机选取 密值k ∈Zq*,计算: r=(gk (mod p)) (mod q) s=(H(M)+xr)k-1(mod q)
3. 用非对称密码体制实现数字签名 用私钥加密实现签名
y sigkRa(m) EkRa(m)
用公钥解密实现验证
ver(m, y) true m EkUa( y)
属于严格意义上的数字签名 本质上是公钥加密体制的逆用 4. 数字签名的种类 直接数字签名(通信双方为签名方与验
证方) 需仲裁的数字签名(通信三方为签名方、
签名
消息 M
加 密 E
验证
M
合
M
并
EKR(M)
解
密
D
比较
M’
私钥KR
公钥KU
2. 带保密功能的数字签名──签名后再加密
A→B :EK [M+EKRa[M] ] 兼有信息完整性认证的作用 签名过程会因消息长而更费时 对消息本身有保密功能 除了需要签名者的“公钥-私钥”外,双方
还需有共享密钥 过程如下(图略)
3) 接收者Y 用与A共享的密钥KYA 解密上述信 息,并保存经A验证的签名和经A认证的消息
仲裁机制: 当Y需要抗击X抵赖时,可向A发送 EKYA[IDX || M || EKXA [IDX || H(M)]]; A用KYA恢复出IDX 、M 、EKXA [IDX || H(M)]; 然后用KXA恢复H(M),并通过重算验证签名; 从而裁决X确有此签名。 可用前提:
数字签名.ppt

数字签名技术专题
江西理工大学信息工程学院 返回总目录
内容安排
数字签名技术专题
授课内容安排
(一) 数字签名的概念 (二) 数字签名的实际应用 (三) 数字签名的作用 (四) 数字签名的实施方案(实例) (五) 数字签名的几个重要问题考虑 (六) 消息摘要产生背景 (七) 数字签名技术总体介绍 (八) SHA—1(安全散列算法)介绍 (九) 课后能力培养内容
数字签名技术专题
(一) 数字签名的概念
• 数字证书是证明用户身份的网上标识,在网络 中识别通讯各方的身份,即在虚拟社会中解决 “我是谁”的问题。通俗的讲,数字证书就好 像是网上用户的身份证,能够保证您在网络上 进行的交易是安全的和可信的。
• 数字签名就是对消息进行消息摘要计算,再利 用数字证书提供的密钥文件,达到利用计算机 数据签章的效果。
生成数字信封,包含CT和K2。 • 3、B用A的公钥(K3)解密一次性对称密钥(K1),
再用K1解密密文(CT),得明文(PT)。 • 缺点:没有减少数据量,只是保证了密钥安全。 • 启发:
实际过程可以对明文消息下工夫,减少数据量,而达到 相同目的。
数字签名技术专题
(六)消息摘要技术的产生背景(2)
3、验证体系 由CA利用公钥进行验证, 以确定数据未有更改。
数字签名技术专题
(四)数字签名的实施方案(实例)
数字签名印章解决方案
数字签名技术专题
(四)数字签名的实施方案(实例)
数字签名印章实现过程
数字签名技术专题
(五) 数字签名技术几个重要问题的考虑
• 1)文件的大小问题。签名文件很大的话如 何保证速度。 消息摘要方法
• 2)需要签名的文件本身如何传输的问题。 A:保密程度高。通过其他安全方式和通
江西理工大学信息工程学院 返回总目录
内容安排
数字签名技术专题
授课内容安排
(一) 数字签名的概念 (二) 数字签名的实际应用 (三) 数字签名的作用 (四) 数字签名的实施方案(实例) (五) 数字签名的几个重要问题考虑 (六) 消息摘要产生背景 (七) 数字签名技术总体介绍 (八) SHA—1(安全散列算法)介绍 (九) 课后能力培养内容
数字签名技术专题
(一) 数字签名的概念
• 数字证书是证明用户身份的网上标识,在网络 中识别通讯各方的身份,即在虚拟社会中解决 “我是谁”的问题。通俗的讲,数字证书就好 像是网上用户的身份证,能够保证您在网络上 进行的交易是安全的和可信的。
• 数字签名就是对消息进行消息摘要计算,再利 用数字证书提供的密钥文件,达到利用计算机 数据签章的效果。
生成数字信封,包含CT和K2。 • 3、B用A的公钥(K3)解密一次性对称密钥(K1),
再用K1解密密文(CT),得明文(PT)。 • 缺点:没有减少数据量,只是保证了密钥安全。 • 启发:
实际过程可以对明文消息下工夫,减少数据量,而达到 相同目的。
数字签名技术专题
(六)消息摘要技术的产生背景(2)
3、验证体系 由CA利用公钥进行验证, 以确定数据未有更改。
数字签名技术专题
(四)数字签名的实施方案(实例)
数字签名印章解决方案
数字签名技术专题
(四)数字签名的实施方案(实例)
数字签名印章实现过程
数字签名技术专题
(五) 数字签名技术几个重要问题的考虑
• 1)文件的大小问题。签名文件很大的话如 何保证速度。 消息摘要方法
• 2)需要签名的文件本身如何传输的问题。 A:保密程度高。通过其他安全方式和通
课件数字签名

南京师范大学刘海艳试讲课件
数字签名
主要内容
1 数字签名的背景及概述
2
3
数字签名的技术及原理
签名和数字水印、加密
南京师范大学刘海艳试讲课件
2
数字签名研究背景
• 政治、军事、外交等领域的文件、命令、条约、商 业中的契约、以及个人之间的书信等,传统上都采 用手书签名或印章,以便在法律上能认证、核准和 生效。 • 随着计算机通信网的发展,人们越来越多的通过电 子设备实现快速、远距离的交易。那么,如何实现 计算机通信中信息的安全呢? • 因此,如何数字化实现类似手书签名的功能已成为 迫切研究的问题。
南京师范大学刘海艳试讲课件
Hale Waihona Puke 14RSA数字签名算法总过程
• 第一步Bob选择大的质数p和q,并使他们相乘,从而 得到n; • 第二步Bob选择一个公共质数e,它与(p-1)(q-1)是互质 数; • 第三步Bob计算私有质数d; • 第四步Bob与Carol共享公钥,数字n和e; • 第五步Bob使用C=Me mod n把M加密成C,并把C发送 给Bob; • 第六步Bob使用M=Cd mod n把C解密成M
南京师范大学刘海艳试讲课件
19
南京师范大学刘海艳试讲课件
3
数字签名概述
• 数字签名作为一种新的认证技术,便应运而生,并逐 渐应用于商业通信系统,如电子邮递、电子转账和办 公自动化等系统中。并随着电子商务的发展,电子签 名的使用也越来越多 • 数字签名是就是附加在数据单元上的一些数据,或是 对数据单元所作的密码变换。这种数据或变换允许数 据单元的接收者用以确认数据单元的来源和数据单元 的完整性并保护数据,防止被人(例如接收者)进行伪 造。数字签名提供了对信息来源的确定并能检测信息 是否被篡改。
数字签名
主要内容
1 数字签名的背景及概述
2
3
数字签名的技术及原理
签名和数字水印、加密
南京师范大学刘海艳试讲课件
2
数字签名研究背景
• 政治、军事、外交等领域的文件、命令、条约、商 业中的契约、以及个人之间的书信等,传统上都采 用手书签名或印章,以便在法律上能认证、核准和 生效。 • 随着计算机通信网的发展,人们越来越多的通过电 子设备实现快速、远距离的交易。那么,如何实现 计算机通信中信息的安全呢? • 因此,如何数字化实现类似手书签名的功能已成为 迫切研究的问题。
南京师范大学刘海艳试讲课件
Hale Waihona Puke 14RSA数字签名算法总过程
• 第一步Bob选择大的质数p和q,并使他们相乘,从而 得到n; • 第二步Bob选择一个公共质数e,它与(p-1)(q-1)是互质 数; • 第三步Bob计算私有质数d; • 第四步Bob与Carol共享公钥,数字n和e; • 第五步Bob使用C=Me mod n把M加密成C,并把C发送 给Bob; • 第六步Bob使用M=Cd mod n把C解密成M
南京师范大学刘海艳试讲课件
19
南京师范大学刘海艳试讲课件
3
数字签名概述
• 数字签名作为一种新的认证技术,便应运而生,并逐 渐应用于商业通信系统,如电子邮递、电子转账和办 公自动化等系统中。并随着电子商务的发展,电子签 名的使用也越来越多 • 数字签名是就是附加在数据单元上的一些数据,或是 对数据单元所作的密码变换。这种数据或变换允许数 据单元的接收者用以确认数据单元的来源和数据单元 的完整性并保护数据,防止被人(例如接收者)进行伪 造。数字签名提供了对信息来源的确定并能检测信息 是否被篡改。
《数字签名技术》PPT课件

用到的知识:
1.模n的二次剩余集 2.模n的平方根 3.剩余类的集合 4.合数 5.勒让德符号 6.雅可比符号
RSA签名方案中p和q是不同的素数
,从而(n)=(p-1)(q-1)是偶数。 而e必须满足gcd(e, )=1,所以e是
奇数。
2021/4/26
30/47
➢Rabin公钥签名方案的密钥生成
1.计算m~ Rm
2.计算m~ mod n的一个平方根s
3.A对m的签名是s
为验证A的签名s且恢复消息m,B执行如下操作:
1.获得A的可信公钥n
2.计算m~ s2 mod n 3.验证m~ M R ;否则,拒绝接受签名
4.恢复m R1m~
2021/4/26
32/47
➢Rabin公钥签名方案举例
1995年我国也制定了自己的数字签名标准 (GB15851-1995)
2004年我国颁发《中华人民共和国电子签名法》
2021/4/26
7/47
➢数字签名的原理
2021/4/26
8/47
➢数字签名的功能
1.机密性 2.完整性 3.身份验证 4.防伪造 5.防抵赖 6.防重放攻击
2021/4/26
1)选择合适的冗余函数R对Rabin签名方案的安全性极为重 要。
2)对Rabin方案而言,设消息m是比特串,则R可以将它赋值 为二元表示是该消息的整数。然而,却不能保证那个整数是 模n的二次剩余,这可能导致无法计算平方根。所以人们试图 尝试用确定性方法。
2021/4/26
13/47
➢数字签名方案的分类
带附录的数字签名方案:要求初始消息作为验 证算法的输入
❖ DSA、ElGamal和Schnorr签名方案 ❖ 消息可以是任意长度
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a,b,R(a b) R(a) R(b)。对R的这一条件是必须的, 但满足这一条件并不一定就是安全的。
1.3.2 RSA的乘法特性(续) 例 子 2令 n为 RSA的模,d为秘密密钥。令k log2n
是n的比特长度,并且令t 是一个固定长度的正整数, 满足t k/2。令w 2t 并令消息m为在区间[1,n 2t 1] 上的整数。冗余函数定义为R(m) = m 2t (R(m)的二进 制表示的最末t比特全为0)。在绝大多数的模n下,R 将都不具有乘法特性。
本讲提要
RSA签名方案 ElGamal族签名方案 生日攻击
1 RSA数字签名方案
1.1 算法描述
算 法 1 RSA数字签名方案的密钥产生 摘要:每个实体产生一个RSA公开密钥和对应的秘密密钥。 每个实体A做如下步骤: (1) 产生两个大的不同随机素数p和q,两个素数规模大约相 同。 (2) 计算n p q和φ ( p 1)(q 1)。 (3) 选择一个随机整数e,1 e φ,满足(e,φ) 1。 (4) 使用扩展Euclidean算法计算唯一一个整数d,1 d φ, 满足e d 1(modφ)。 (5) A的公开密钥是(n,e);A的秘密密钥是d。
1.3 RSA 签名的可能攻击 1.3.1 整数分解
如果一个攻击者可以分解某个实体A的公开模n, 那么攻击者就可以计算φ,并进而使用扩展 Euclidean算法通过解同余式e d 1(mod φ)得到 秘密密钥d 。这一方法就完全使签名系统崩溃。 为了阻止这一攻击,A 必须选择p 和q使得分解n 在计算上不可能。
1.4.3 签名产生和认证的执行特征
令n p q 是2 k比特的RSA模,这里 p和 q都是k比特的素数。 对消息m 计算一个签名s md (mod n),需要O(k 3)次比特操作。 如果认证操作选择小的公开指数,那么认证操作将明显快于
在 211/p 56 到 (211 + 28 )/p 62之间任选择一个素数q。
q的可能选择为59和 61。如果选择q = 59,则 n 37 59 2183, 二进制表示为100010000111。如果选择q 61,则n 37 61 2257,二进制表示为100011010001。
1.4.1分块问题(续)
(2) 每个实体两个模。每个实体把用于签名的模和加密 的模分开。如果每个实体的签名的模都小于系统中所有 用来加密的模,则不正确解密的情况将不再会发生。这 种方法可以通过要求加密的模使用t +1比特的数,而签名 模使用t比特的数来实现。
1.4.1分块问题(续)
(3) 预先设定模的形式。这种方法是仔细选择素数p和q, 以使它们的乘积n 具有特殊的形式:最高位为1接下来的 连续 k位都是0。具有这种形式的t比特的模n可以这样产生。 对于n具有需要形式应该满足2t1 n 2t1 + 2tk1。随机
1.1 算法描述(续)
评 述 .冗余函数R和它的逆函数R1公开选择产生。这个 冗余函数可以部分降低攻击者通过随机选择数字产生 合法签名的可能性。
签 名 认 证 正 确 性 证 明如. 果s是对消息m的一个签名,则 s m d (mod n),这里 m R(m)。由于e d 1(mod φ),se m ed m (mod n)。最终,R1(m) = R1(R(m)) m。
数字签名有很多应用,包括:认证,数据
真实性,和不可否认。数字签名的一个非 常重要应用是在大规模网络上的公钥数字 证书。数字证书是可信第三方将用户身份 与其的公开密钥绑定的方法,在此之后, 其它实体认证公开密钥的时候都不需要可 信第三方的协助。
数字签名的概念和用途在实用数字签名技
术产生之前就为人们所认识。第一个数字 签名方法是RSA数字签名方案,它至今仍 然是最为实用数字签名技术。后续的研究 也给出非常丰富的各种数字签名方法。这 些技术常常在功能性和执行性方面提供了 相当大的改进。
.2 例子
例子1 密 钥 产 生 .实体A选择素数p 7927,q 6997,并且计算 n p q 55465219和φ = 7926 6996 55450296。A 选择 e 5 并且解e d 5 d 1(mod55450296),得到d 44360237。A的公开密钥是(n 55465219,e 5);A的秘密 密钥是 d 44360237。 签 名 产 生 .为了简单,假设冗余函数R是一个单位映射 R(m) m。为了签名消息m 31229978,A 计算m R(m) 31229978,并且计算签名s m d (mod n ) 3122997844360237 (mod55465219) 30729435。 签 名 认 证 .B计算m se (mod n ) 307294355 (mod55465219) 31229978。最终,由于m 符合冗余函数要求,B 接受签名并 可以恢复消息m R1(m ) 31229978。
选择一个t/ 2比特的素数p,在 2t1 / p 到 2t1 + 2tk1 / p 区间
内找一个素数q,这样n p q 就具有需要的形式。 例 子 4假定希望找到一个12比特的模n,满足最高位为1接 下来连续k 3位为0。开始任意选择一个6比特的素数p 37。
1.4.1分块问题(续)
有几种方法可以克服分块问题。 (1) 调换顺序。如果先做小模操作再做大模操作,不正 确解密的问题将不会出现。也就是说,如果nA nB,则 实体A应该先使用B的公开密钥加密消息,再用自己的 秘密密钥签名加密的消息。当然,最好的操作顺序通 常是先签名消息再加密签名,原因是如果A 先加密再 签名,攻击者可以移除该签名而换上自己的签名。虽 然攻击者并不知道具体签名的内容,这仍然是对攻击 者十分有利的情形。因此,调换顺序并不是最好的解 决方法。
1.1 算法描述(续)
算 法 2RSA签名产生和认证 摘要:实体A对一条消息m签名。任何实体B 可以验证 A的签名并从签名中恢复出消息m。 签 名 产 生 .A 做如下步骤: (1) 计算 m R(m),这里 m是区间[0,n 1]上的整数。 (2) 计算s m d (mod n)。 (3) s就是A对m的签名。 认 证 .为了认证A的签名s 并恢复出消息m,B 做如下步骤: (1) 得到A的真实公开密钥(n,e)。 (2) 计算 m se (mod n)。 (3)认证 m,如果非法,拒绝签名s。 (4) 恢复消息m = R1(m )。
(1) s mdA (mod nA ) 136879737726937 (mod 62894113) 59847900。 (2) c seB (mod nB ) 598479005 (mod55465219) 38842235。 为了恢复消息并认证签名,B 做如下计算:
(1) sˆ cdB (mod nB ) 3884223544360237 (mod55465219) 4382681。 (2) mˆ sˆeA (mod nA ) 43826815 (mod 62894113) 54383568。 注意m mˆ 。发生这个问题的原因是s大于nB。
m2 r w 和 m3 y w。如果y 0,构造整数m2 r w和m3 y w。 在每种情况下,m2和m3都符合冗余的规则。如果可以从合法签名者 获得签名s2 m2d (mod n) 和s3 m3d (mod n),则攻击者可以计算对m的 签名如下:
如果 y 0,计算 s2 s3
第十讲 数字签名
这一讲考虑设计用于模拟手写签名的数字签
名技术。一条消息的数字签名是一个依赖于 仅签名者知晓的秘密而产生的数字,并需附 加被签名的消息。数字签名必须可以被验证: 如果任何一方对文件的签名的真实性产生争 议(导致的原因可能是不诚实的签名者想否认 自己产生的签名,或者是认证者提出欺诈的 权利要求),一个公正的第三方就可以公平的 解决这一问题,而不需要获得签名者的秘密 (秘密密钥)。
一种对RSA的常用方法是签名一条消息再对签名 结果加密。必须考虑在执行这一过程时两个模的 长度。假定A希望签名再加密一条消息给B。假定 (nA,eA ) 和(nB,eB )分别是A和B的公开密钥。如果 nA nB,则B有可能不能正确恢复出消息。
1.4.1分块问题(续)
例 子 3 令 nA 8387 7499 62894113,eA 5,和d A 37726937; 以及nB 55465219,eB 5,dB = 44360237。注意 nA nB. 假定消息 m 1368797符合冗余规则,先用A的秘密密钥签名再用B的公开 密钥加密。A 计算的过程为:
1.4.1分块问题(续)
(3) (续) 对模 n的这一选择并不能完全解决不正确解 密问题,但是可使出现不正确解密情况的概率可以
忽略。假定nA是模并且s mdA (mod nA )是对消息m 的签名。进一步假定s在最高的k +1比特位中有一位 为1,而不是首位。由于s应该小于nA,s的最高必须 为0,因此,s小于一般形式模产生的结果。在s最高 的k +1比特位中首位为1的概率不超过(1/ 2)k。当k选 择100的时候,这一概率可以忽略。
1.3.2 RSA的乘法特性
RSA签名方案具有如下的乘法特性,有时候也称其为
同态特性。如果 s1 m1d (mod n) 和s2 m2d (mod n)分别 是对消息m1和 m2的签名,则s s1 s2 (mod n) 有特性 s (m1 m2 )d (mod n)。如果m m1 m2也具有正确的冗余 特性则s就是对消息m的合法签名。因此,冗余函数R 应该不具有乘法特性,也就是,对于基本上所有的对
1.3.2 RSA的乘法特性(续)
例 子 2(续) 假定攻击者想伪造消息m的签名。对n和m R(m) m 2t
1.3.2 RSA的乘法特性(续) 例 子 2令 n为 RSA的模,d为秘密密钥。令k log2n
是n的比特长度,并且令t 是一个固定长度的正整数, 满足t k/2。令w 2t 并令消息m为在区间[1,n 2t 1] 上的整数。冗余函数定义为R(m) = m 2t (R(m)的二进 制表示的最末t比特全为0)。在绝大多数的模n下,R 将都不具有乘法特性。
本讲提要
RSA签名方案 ElGamal族签名方案 生日攻击
1 RSA数字签名方案
1.1 算法描述
算 法 1 RSA数字签名方案的密钥产生 摘要:每个实体产生一个RSA公开密钥和对应的秘密密钥。 每个实体A做如下步骤: (1) 产生两个大的不同随机素数p和q,两个素数规模大约相 同。 (2) 计算n p q和φ ( p 1)(q 1)。 (3) 选择一个随机整数e,1 e φ,满足(e,φ) 1。 (4) 使用扩展Euclidean算法计算唯一一个整数d,1 d φ, 满足e d 1(modφ)。 (5) A的公开密钥是(n,e);A的秘密密钥是d。
1.3 RSA 签名的可能攻击 1.3.1 整数分解
如果一个攻击者可以分解某个实体A的公开模n, 那么攻击者就可以计算φ,并进而使用扩展 Euclidean算法通过解同余式e d 1(mod φ)得到 秘密密钥d 。这一方法就完全使签名系统崩溃。 为了阻止这一攻击,A 必须选择p 和q使得分解n 在计算上不可能。
1.4.3 签名产生和认证的执行特征
令n p q 是2 k比特的RSA模,这里 p和 q都是k比特的素数。 对消息m 计算一个签名s md (mod n),需要O(k 3)次比特操作。 如果认证操作选择小的公开指数,那么认证操作将明显快于
在 211/p 56 到 (211 + 28 )/p 62之间任选择一个素数q。
q的可能选择为59和 61。如果选择q = 59,则 n 37 59 2183, 二进制表示为100010000111。如果选择q 61,则n 37 61 2257,二进制表示为100011010001。
1.4.1分块问题(续)
(2) 每个实体两个模。每个实体把用于签名的模和加密 的模分开。如果每个实体的签名的模都小于系统中所有 用来加密的模,则不正确解密的情况将不再会发生。这 种方法可以通过要求加密的模使用t +1比特的数,而签名 模使用t比特的数来实现。
1.4.1分块问题(续)
(3) 预先设定模的形式。这种方法是仔细选择素数p和q, 以使它们的乘积n 具有特殊的形式:最高位为1接下来的 连续 k位都是0。具有这种形式的t比特的模n可以这样产生。 对于n具有需要形式应该满足2t1 n 2t1 + 2tk1。随机
1.1 算法描述(续)
评 述 .冗余函数R和它的逆函数R1公开选择产生。这个 冗余函数可以部分降低攻击者通过随机选择数字产生 合法签名的可能性。
签 名 认 证 正 确 性 证 明如. 果s是对消息m的一个签名,则 s m d (mod n),这里 m R(m)。由于e d 1(mod φ),se m ed m (mod n)。最终,R1(m) = R1(R(m)) m。
数字签名有很多应用,包括:认证,数据
真实性,和不可否认。数字签名的一个非 常重要应用是在大规模网络上的公钥数字 证书。数字证书是可信第三方将用户身份 与其的公开密钥绑定的方法,在此之后, 其它实体认证公开密钥的时候都不需要可 信第三方的协助。
数字签名的概念和用途在实用数字签名技
术产生之前就为人们所认识。第一个数字 签名方法是RSA数字签名方案,它至今仍 然是最为实用数字签名技术。后续的研究 也给出非常丰富的各种数字签名方法。这 些技术常常在功能性和执行性方面提供了 相当大的改进。
.2 例子
例子1 密 钥 产 生 .实体A选择素数p 7927,q 6997,并且计算 n p q 55465219和φ = 7926 6996 55450296。A 选择 e 5 并且解e d 5 d 1(mod55450296),得到d 44360237。A的公开密钥是(n 55465219,e 5);A的秘密 密钥是 d 44360237。 签 名 产 生 .为了简单,假设冗余函数R是一个单位映射 R(m) m。为了签名消息m 31229978,A 计算m R(m) 31229978,并且计算签名s m d (mod n ) 3122997844360237 (mod55465219) 30729435。 签 名 认 证 .B计算m se (mod n ) 307294355 (mod55465219) 31229978。最终,由于m 符合冗余函数要求,B 接受签名并 可以恢复消息m R1(m ) 31229978。
选择一个t/ 2比特的素数p,在 2t1 / p 到 2t1 + 2tk1 / p 区间
内找一个素数q,这样n p q 就具有需要的形式。 例 子 4假定希望找到一个12比特的模n,满足最高位为1接 下来连续k 3位为0。开始任意选择一个6比特的素数p 37。
1.4.1分块问题(续)
有几种方法可以克服分块问题。 (1) 调换顺序。如果先做小模操作再做大模操作,不正 确解密的问题将不会出现。也就是说,如果nA nB,则 实体A应该先使用B的公开密钥加密消息,再用自己的 秘密密钥签名加密的消息。当然,最好的操作顺序通 常是先签名消息再加密签名,原因是如果A 先加密再 签名,攻击者可以移除该签名而换上自己的签名。虽 然攻击者并不知道具体签名的内容,这仍然是对攻击 者十分有利的情形。因此,调换顺序并不是最好的解 决方法。
1.1 算法描述(续)
算 法 2RSA签名产生和认证 摘要:实体A对一条消息m签名。任何实体B 可以验证 A的签名并从签名中恢复出消息m。 签 名 产 生 .A 做如下步骤: (1) 计算 m R(m),这里 m是区间[0,n 1]上的整数。 (2) 计算s m d (mod n)。 (3) s就是A对m的签名。 认 证 .为了认证A的签名s 并恢复出消息m,B 做如下步骤: (1) 得到A的真实公开密钥(n,e)。 (2) 计算 m se (mod n)。 (3)认证 m,如果非法,拒绝签名s。 (4) 恢复消息m = R1(m )。
(1) s mdA (mod nA ) 136879737726937 (mod 62894113) 59847900。 (2) c seB (mod nB ) 598479005 (mod55465219) 38842235。 为了恢复消息并认证签名,B 做如下计算:
(1) sˆ cdB (mod nB ) 3884223544360237 (mod55465219) 4382681。 (2) mˆ sˆeA (mod nA ) 43826815 (mod 62894113) 54383568。 注意m mˆ 。发生这个问题的原因是s大于nB。
m2 r w 和 m3 y w。如果y 0,构造整数m2 r w和m3 y w。 在每种情况下,m2和m3都符合冗余的规则。如果可以从合法签名者 获得签名s2 m2d (mod n) 和s3 m3d (mod n),则攻击者可以计算对m的 签名如下:
如果 y 0,计算 s2 s3
第十讲 数字签名
这一讲考虑设计用于模拟手写签名的数字签
名技术。一条消息的数字签名是一个依赖于 仅签名者知晓的秘密而产生的数字,并需附 加被签名的消息。数字签名必须可以被验证: 如果任何一方对文件的签名的真实性产生争 议(导致的原因可能是不诚实的签名者想否认 自己产生的签名,或者是认证者提出欺诈的 权利要求),一个公正的第三方就可以公平的 解决这一问题,而不需要获得签名者的秘密 (秘密密钥)。
一种对RSA的常用方法是签名一条消息再对签名 结果加密。必须考虑在执行这一过程时两个模的 长度。假定A希望签名再加密一条消息给B。假定 (nA,eA ) 和(nB,eB )分别是A和B的公开密钥。如果 nA nB,则B有可能不能正确恢复出消息。
1.4.1分块问题(续)
例 子 3 令 nA 8387 7499 62894113,eA 5,和d A 37726937; 以及nB 55465219,eB 5,dB = 44360237。注意 nA nB. 假定消息 m 1368797符合冗余规则,先用A的秘密密钥签名再用B的公开 密钥加密。A 计算的过程为:
1.4.1分块问题(续)
(3) (续) 对模 n的这一选择并不能完全解决不正确解 密问题,但是可使出现不正确解密情况的概率可以
忽略。假定nA是模并且s mdA (mod nA )是对消息m 的签名。进一步假定s在最高的k +1比特位中有一位 为1,而不是首位。由于s应该小于nA,s的最高必须 为0,因此,s小于一般形式模产生的结果。在s最高 的k +1比特位中首位为1的概率不超过(1/ 2)k。当k选 择100的时候,这一概率可以忽略。
1.3.2 RSA的乘法特性
RSA签名方案具有如下的乘法特性,有时候也称其为
同态特性。如果 s1 m1d (mod n) 和s2 m2d (mod n)分别 是对消息m1和 m2的签名,则s s1 s2 (mod n) 有特性 s (m1 m2 )d (mod n)。如果m m1 m2也具有正确的冗余 特性则s就是对消息m的合法签名。因此,冗余函数R 应该不具有乘法特性,也就是,对于基本上所有的对
1.3.2 RSA的乘法特性(续)
例 子 2(续) 假定攻击者想伪造消息m的签名。对n和m R(m) m 2t