第 6 章 身份认证与数字签名

55
第6第 第第第第第第第第第

Upload: cheyenne-fuentes

Post on 03-Jan-2016

243 views

Category:

Documents


1 download

DESCRIPTION

第 6 章 身份认证与数字签名. 主要内容. 身份认证 数字签名. 6.1 身份认证. 身份认证是验证主体的真实身份与其所声称的身份是否符合的过程。 认证的结果只有两个:符合和不符合。 适用于用户、进程、系统、信息等。. 身份认证的例子. 邮件登录 Client 与 Server 之间的鉴别 Telnet 远程登录 Ftp 服务 登录到某台电脑上. 身份认证系统的组成. 出示证件的人,称作示证者 P(Prover) ,又称声称者 (Claimant) 。 验证者 V ( Verifier), 检验声称者提出的证件的正确性和合法性,决定是否满足要求。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 6 章  身份认证与数字签名

第 6 章

身份认证与数字签名

Page 2: 第 6 章  身份认证与数字签名

主要内容

身份认证 数字签名

Page 3: 第 6 章  身份认证与数字签名
Page 4: 第 6 章  身份认证与数字签名

6.1 身份认证 身份认证是验证主体的真实身份与其所声称

的身份是否符合的过程。 认证的结果只有两个:符合和不符合。 适用于用户、进程、系统、信息等。

Page 5: 第 6 章  身份认证与数字签名

身份认证的例子 邮件登录 Client 与 Server 之间的鉴别 Telnet 远程登录 Ftp 服务 登录到某台电脑上

Page 7: 第 6 章  身份认证与数字签名

身份认证系统的组成 出示证件的人,称作示证者 P(Prover) ,又

称声称者 (Claimant) 。 验证者 V ( Verifier), 检验声称者提出的证

件的正确性和合法性,决定是否满足要求。 第三方是可信赖者 TP ( Trusted third

party) ,参与调解纠纷。在许多应用场合下没有第三方。

Page 8: 第 6 章  身份认证与数字签名

身份认证的物理基础

Something the user know ( 例如口令 ) 简单,但不安全

设计依据 安全水平、系统通过率、用户可接受性、成本等

Page 9: 第 6 章  身份认证与数字签名

身份认证的物理基础 Something the user possesses( 例如证

件 ) 认证系统相对复杂

Page 10: 第 6 章  身份认证与数字签名

身份认证的物理基础 Something the user is( 例如指纹识别 )

更复杂 , 而且有时会牵涉到本人意愿

Page 11: 第 6 章  身份认证与数字签名

身份认证方式 单向认证( One-way Authentication ) 双向认证( Two-way Authentication ) 信任的第三方认证( Trusted Third-party

Authentication )

Page 12: 第 6 章  身份认证与数字签名

单向认证 通信的一方认证另一方的身份

客户端

(1) ID,Password

(2) Authenticated服务器端

Page 13: 第 6 章  身份认证与数字签名

用对称密码体制来实现单向认证

某函数变换 f 双方共享的密钥 KS

随机数 RA

A B

① E(RA,Ks)

② E(f(RA),Ks)

Page 14: 第 6 章  身份认证与数字签名

用非对称密码体制来实现单向认证

随机数 RA

B 的私钥 KSB

A B① RA

② E(RA,KSB)

Page 15: 第 6 章  身份认证与数字签名

双向认证 双方都要提供用户名和密码给对方,才能通

过认证。

Page 16: 第 6 章  身份认证与数字签名

用对称密码体制来实现双向认证

A 产生一个随机数 RA

双方共享的密钥 KS

B 产生一个随机数 RB

A B

① E(RA,KS)

③ E(RB,KS)

② E(RA||RB,KS)

Page 17: 第 6 章  身份认证与数字签名

用非对称密码体制来实现双向认证

A 产生一个随机数 RA B 产生一个随机数 RB B 的私钥 KSB A 的私钥 KSA

Page 18: 第 6 章  身份认证与数字签名

信任的第三方认证 当两端欲进行连线时,彼此必须先通过信任

第三方的认证,然后才能互相交换密钥,而后进行通信

客户端

(1) C

lient

ID,P

assw

ord

(5) Authenticate Data

(3) Server ID,Password

信任第三方

(2) A

uthen

ticati

on(4) Authentication

(6) Authenticate Data服务器端

Page 19: 第 6 章  身份认证与数字签名

一种第三方认证机制

SKAU :管理员的私钥 PKB : B 的公钥 PKA : A 的公钥

A B②

E(P KB

||Req

uest|

|Tim

e 1,SKAU

)KDC

① R

eque

st||T

ime 1

③ E(IDA||N1,PKB)

④ Request||Time2

⑤ E(PKA ||Request||Time1 ,SK

AU)

⑥ E(N1||N2,PKA)

⑦ E(N2,PKB)

N1 : A 的临时交互号 N2 : B 产生的新临时交互号

Page 20: 第 6 章  身份认证与数字签名

Kerberos 协议 Kerberos 是在 80 年中期作为美国麻省理工

学院“雅典娜计划”( Project Athena )的一部分被开发的。

Kerberos 是一个分布式的认证服务,它允许一个进程(或客户)代表一个主体(或用户)向验证者证明他的身份,而不需要通过网络发送那些有可能会被攻击者用来假冒主体身份的数据。

Page 21: 第 6 章  身份认证与数字签名

Kerberos 协议的应用环境

Kerberos

Client Server

Page 22: 第 6 章  身份认证与数字签名

Kerberos 系统架构

Kerberos

认证服务器

票据授权服务器

每个用户仅登录一次会话

每类服务仅一次

每个服务会话一次

⑥① 请求票据许可票据② 票据+会话密钥③ 请求服务授权票据④ 票据+会话密钥⑤ 请求服务⑥ 提供服务器认证码

Page 23: 第 6 章  身份认证与数字签名

Kerberos v4 认证协议的流程 (1)

客户端认证

Page 24: 第 6 章  身份认证与数字签名

Kerberos v4 认证协议的流程 (2)

取得与服务器通信的票据

Page 25: 第 6 章  身份认证与数字签名

Kerberos v4 认证协议的流程 (3)

客户端与服务器通信

Page 26: 第 6 章  身份认证与数字签名

零知识证明 Alice: “ 我知道联邦储备系统计算的口令” Bob: “ 不,你不知道” Alice :我知道 Bob :你不知道 Alice :我确实知道 Bob :请你的证实这一点 Alice :好吧,我告诉你。(她悄悄说出了口令) Bob :太有趣了!现在我也知道了。我要告诉《华盛顿邮报》

Alice :啊呀!

Page 27: 第 6 章  身份认证与数字签名

零知识证明技术 零知识证明技术可使信息的拥有者无需泄露

任何信息就能够向验证者或任何第三方证明它拥有该信息。

Page 28: 第 6 章  身份认证与数字签名

零知识证明的基本协议例 [Quisquater 等 1989] 。

设 P 知道咒语, 可打开 C 和 D 之间的秘密门,不知道者都将走向死胡同中。

A

B

C D

Page 29: 第 6 章  身份认证与数字签名

零知识证明的基本协议 (1) V 站在 A 点; (2) P 进入洞中任一点 C 或 D ; (3) 当 P 进洞之后, V 走到 B 点; (4) V 叫 P : (a) 从左边出来,或 (b) 从右边出来; (5) P 按要求实现 ( 以咒语,即解数学难题帮助 ) ; (6) P 和 V 重复执行 (1) ~ (5) 共 n 次。 若 A 不知咒语,则在 B 点,只有 50 % 的机会猜中 B 的

要求,协议执行 n 次,则只有 2-n 的机会完全猜中,若n=16 ,则若每次均通过 B 的检验, B 受骗机会仅为1/65 536

Page 30: 第 6 章  身份认证与数字签名

最简单的零知识证明

问题要求:假如 P想说服 V ,使 V 相信他确实知道n 的因数 p 和 q ,但不能告诉 V

最简单的步骤: V 随机选择一整数 x ,计算 x4 mod n 的值,并告诉 P P 求 x2 mod n 并将它告诉 V V 验证 x4 mod n

V 知道求 x2 mod n 等价于 n 的因数分解,若不掌握 n 的因数 p 和 q ,求解很困难。

Page 31: 第 6 章  身份认证与数字签名

6.2 数字签名

Page 32: 第 6 章  身份认证与数字签名

消息认证码的不足 可以保护通信双方以防止第 3 者攻击,不能

保护通信双方中一方防止另一方的欺骗和伪造。 B 伪造一个消息并使用与 A 共享的密钥产生该消

息的认证码,然后生成该消息来自于 A B 有可能伪造 A 发来的消息,所以 A 就可以对自

己发过的消息予以否认

Page 33: 第 6 章  身份认证与数字签名

数字签名的基本概念

数字签名由公钥密码发展而来,它在网络安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有着重要应用。

Page 34: 第 6 章  身份认证与数字签名

手写签名的特征 签名是可信的 签名是不可伪造的 签名不可重用 签名后的文件是不可变的 签名是不可抵赖的

Page 35: 第 6 章  身份认证与数字签名

简单扫描手写签名是不能满足要求的 对数字签名的要求

要保证能够验证作者及其签名的日期时间 必须能够认证签名时刻的内容 签名必须能够由第三方验证,以解决争议。

Page 36: 第 6 章  身份认证与数字签名

更进一步的要求 依赖性:签名必须是依赖于被签名信息来产生;唯一性:签名必须使用某些对发送者是唯一的信息,以防止双方的伪造与否认;

可验性:必须相对容易识别和验证该数字签名;抗伪造:伪造该数字签名在计算上是不可行的,根

据一个已有的数字签名来构造消息是不可行的;对一个给定消息伪造数字签名是不可行的;

可用性:在存储器中保存一个数字签名副本是现实可行的。

Page 37: 第 6 章  身份认证与数字签名

签名方法直接数字签名方法仲裁数字签名方法

Page 38: 第 6 章  身份认证与数字签名

直接数字签名

A B

消息

加密后的摘要

消息

散列函数

A 的私钥

摘要

加密算法

消息

加密后的摘要

A 的公钥 解密

算法解密后的摘要

散列函数

摘要

比 较

加密后的摘要

Page 39: 第 6 章  身份认证与数字签名

直接数字签名的缺点 直接数字签名的执行过程只有通信的双

方参与,并假定双方有共享的秘密密钥或者接收一方知道发送方的公开钥。

缺点:方案的有效性取决于发方密钥的安全性。 发方可声称秘密钥丢失或被窃

Page 40: 第 6 章  身份认证与数字签名

仲裁数字签名 具有仲裁方式的数字签名

1.发方 X 对发往收方 Y 的消息签名2.将消息和签名先发往仲裁者 A3.A 对消息和签名验证完后,再连同一个表示已通

过验证的指令一起发给 Y.

Page 41: 第 6 章  身份认证与数字签名

具有仲裁方式的数字签名

例 1 :1. XA:M||

2. AY:

)](||[ MHIDE XK XA

]||)(||[||||[ TMHIDEMIDE XKXK XAAY

E :单钥加密算法

KXA,KAY:A 与 X 和 Y 的共享密钥

M :消息

T :时戳

IDX : X 的身份

H(M) : M 的杂凑值

Page 42: 第 6 章  身份认证与数字签名

在 1 中, X以 EKXA[IDX‖H(M)] 作为自己对 M 的签名,将M及签名发往 A 。

在 2 中 A将从 X收到的内容和 IDX 、 T 一起加密后发往 Y ,其中的 T 用于向 Y 表示所发的消息不是旧消息的重放。 Y 对收到的内容解密后 ,将解密结果存储起来以备出现争议时使用。

如果出现争议, Y 可声称自己收到的 M 的确来自 X ,并将 EKAY[IDX‖M‖EKXA[IDX‖H(M)]] 发给A ,由 A仲裁, A由 KAY 解密后,再用 KXA对 EKXA[IDX‖H(M)] 解密,并对 H(M)加以验证,从而验证了 X 的签名。

Page 43: 第 6 章  身份认证与数字签名

具有仲裁方式的数字签名 例 2

1. XA:IDX||

2. AY: ]||))]((||[||][||[ TMEHIDEMEIDEXYXAXYAY KXKKXK

))]((||[||][ MEHIDEMEXYXAXY KXKK

X 对 M 的签名

X 和 Y 的共享密钥

此方案提供了对 M 的保密性

和前一方案相同,仲裁者可和发方共谋否认发方曾发过的消息,也可和收方共谋产生发方的签名

Page 44: 第 6 章  身份认证与数字签名

具有仲裁方式的数字签名 例 3

]||]][[||[:.2

]]][[||[||:.1

TMEEIDEYA

MEEIDEIDAX

XYA

XYX

SKPKXSK

SKPKXSKX

X 的私钥 Y 的公钥

Page 45: 第 6 章  身份认证与数字签名

第 1步中, X 用自己的秘密钥 SKX 和 Y 的公开钥 PKY 对消息加密后作为对 M 的签名,以这种方式使得任何第 3 方(包括 A )都不能得到 M 的明文消息。

A收到 X 发来的内容后,用 X 的公开钥可对ESKX[IDX‖EPKY[ESKX[M]]] 解密,并将解密得到的IDX 与收到的 IDX加以比较,从而可确信这一消息是来自于 X 的(因只有 X 有 SKX )。

第 2步, A将 X 的身份 IDX 和 X 对 M 的签名加上一时戳后,再用自己的秘密钥加密发往 Y 。

Page 46: 第 6 章  身份认证与数字签名

与前两种方案相比,第 3 种方案有很多优点: 在协议执行以前,各方都不必有共享的信息,从

而可防止共谋。 只要仲裁者的秘密钥不被泄露,任何人包括发方就不能发送重放的消息。

对任何第三方(包括 A )来说, X 发往 Y 的消息都是保密的。

Page 47: 第 6 章  身份认证与数字签名

RSA 签名体制 体制参数

大素数 p,q , n=p×q, y(n)=(p-1)(q-1) 。选整数 1<e< y(n), 且 gcd(e, y(n))=1; 计算 d 满足 de≡1 mod y(n). {e,n} 为公开密钥, {d,n} 为秘密密钥。

签名过程 S=Md mod n

验证过程 M=Se mod n

实际应用中加密是对 H(M) 进行的。

Page 48: 第 6 章  身份认证与数字签名

RSA 签名方案

M ||

H E

SKA

M

[ ( )]ASKE H M

H

D

PKA 比较

Page 49: 第 6 章  身份认证与数字签名

数字签名标准

Digital Signature Standard (DSS)

Page 50: 第 6 章  身份认证与数字签名

概况 由 NIST1991 年公布 1993 年公布修改版 美国联邦信息处理标准 FIPS PUB 186 签名长度 320bit 只能用于数字签名,不能用于加密

Page 51: 第 6 章  身份认证与数字签名

DSS 的基本方式M ||

H E

SKA

M

)]([ MHEASK

H

D

PKA 比较

M ||

H

SKA

M

s

H

PKG

比较Ver

PKG

K随机数

r

PKA

Sig

RSA 签名

DSS 签名

全局公开钥

Page 52: 第 6 章  身份认证与数字签名

数字签名算法 DSA 算法描述 :

(a) 全局公钥 ( p, q, g )

p :是 2L-1 < p < 2L 中的大素数, 512 L 1024 ,按 64 bits递增;

q : (p- 1) 的素因子,且 2159 < q < 2160 ,即字长 160 bits;

g : = hp-1 mod p ,且 1< h < (p- 1) ,使 h(p-1)/q mod p >1 。

(b) 用户秘密钥 x : x 为在 0<x<q 内的随机数。(c) 用户公钥 y : =g x mod p 。(d) 用户每个消息用的秘密随机数 k :在 0<k<q 内的随机数

Page 53: 第 6 章  身份认证与数字签名

数字签名算法 DSA(e) 签名过程:对消息 MM=Zp* ,其签名为 S=Sigk(M, k)=(r,

s) , SS=Zq×Zq, r(gk mod p) mod q

s[k-1 (h(M) + xr)] mod q

(f) 验证过程:计算 w=s -1 mod q ; u1 =[H(M)w] mod q ;

u2=rw mod q ; v=[(gu1yu2) mod p] mod q 。Ver(M, r, s)= 真 v=r

rqpg

qpg

qpggv

k

sxrMH

xrwwMH

mod)mod(

mod]mod[

mod]mod)[(1])([

)(

Page 54: 第 6 章  身份认证与数字签名

不可否认签名

在得不到签名者配合的情况下其他人不能正确进行签名验证,从而可以防止非法复制和扩散签名者所签署的文件。

可用于保护知识产权

Page 55: 第 6 章  身份认证与数字签名

盲签名

Chaum 在 1983 年提出。 需要某人对文件签名,但又不想签名者知道

文件内容,称为盲签名。适应于电子选举、数字货币协议中