Diffie-Hellman密钥交换
协议

安全性
- 基于离散对数的困难性。
中间人攻击

门限方案
概念
- 秘密
s被分为n个部分,每个部分称为shadow。- 使得
k个及以上的参与者持有的部分可以重构秘密s。 - 反之,少于
k个参与者无法重构s。
- 使得
(k,n)为秘密分割门限方案,k为门限值。- 若少于
k个参与者无法得到s的任何信息,则改门限方案是完善的。 - 门限方案由份额分配算法和恢复算法构成。
Shamir门限方案
秘密分割
q是一个大素数,满足q>=n+1。- 秘密
s是GF(q)\{0}上均匀选取的一个随机数。 - 另
s等于常系数a0。 - 其他
k-1个系数也满足:
a i ∈ G F ( q ) { 0 } , i = 1 , . . . , k − 1 a_i\in GF(q)\{0\}\ ,i=1,...,k-1 ai∈GF(q){0} ,i=1,...,k−1 - 在
GF(q)上建立一个k-1次多项式f(x):
f ( x ) = a 0 + a 1 x + . . . + a k − 1 x k − 1 f(x)=a_0+a_1x+...+a_{k-1}x^{k-1} f(x)=a0+a1x+...+ak−1xk−1 - 有
n个参与者,每个参与者分配到的子密钥为(i,f(i))。
秘密恢复
- 任意
k个参与者计算:
f ( x ) = ∑ j = 1 k f ( i j ) ∏ l = 1 , l ≠ j ( x − i l ) i j − i l ( m o d q ) s = f ( 0 ) = ( − 1 ) k − 1 ∑ j = 1 k f ( i j ) ∏ l = 1 l ≠ j i l i j − i l ( m o d q ) f(x)=\sum^k_{j=1}f(i_j)\prod_{l=1,l\neq j}\frac{(x-i_l)}{i_j-i_l}\pmod{q}\\ \\ s=f(0)=(-1)^{k-1}\sum^k_{j=1}f(i_j)\prod_{l=1\\l\neq j}\frac{i_l}{i_j-i_l}\pmod{q} f(x)=j=1∑kf(ij)l=1,l=j∏ij−il(x−il)(modq)s=f(0)=(−1)k−1j=1∑kf(ij)l=1l=j∏ij−ilil(modq)
相互认证
- 共享密钥时需要保证保密性和实时性。
- 保密性
- 会话密钥使用加密传输。
- 实时性
- 防止重放。
序列号方法
- 方法
- 每条消息加上序号,序号正确才接收。
- 缺点
- 记录和每个用户的序号,增大了负担。
时戳法
- 方法
- 收到的消息中包含时戳,且和自己的时间差不多,才接收。
- 要求
- 消息各方时间同步。
询问-应答
- 方法
- 发出的消息包含一个一次性的随机数,接收的消息也得包含该一次性随机数。
方法比较
- 时戳法不适合面向连接。
- 询问-应答不适合无连接。
密钥建立认证协议
NS密钥分配协议
- 基于单钥加密体制设计
- 每个用户都和密钥分发中心
KDC有一共享密钥,称为主密钥。 KDC为通信双方建立一个短期内使用的密钥,称为会话密钥。
- 每个用户都和密钥分发中心
协议内容

N1是一次性随机数,应使敌手对N1很难猜测。
协议目的
A在2.安全地获得了Ks。3.中消息只有B能解密,使得B安全地获得了Ks。4.中B表示自己拿到了Ks,并且询问自己的Ks是否是新的。5.中A根据询问,判断并回答Ks的新鲜性。4.、5.用于防止对3.的重放攻击。
若敌手重放
3.、5.,即可欺骗B。
协议改进
方案一
-
在
2.和3.加上时戳。 -
检验实时性:
∣ C l o c k − T ∣ < Δ t 1 + Δ t 2 Δ t 1 : t h e e r r o r v a l u e o f l o c a l t i m e a n d K D C s t a n d a r d Δ t 2 : t h e d e l a y o f t h e n e t w o r k |Clock-T|<\Delta t_1+\Delta t_2\\ \Delta t_1:\ the\ error\ value\ of\ local\ time\ and\ KDC\ standard\\ \Delta t_2:\ the\ delay\ of\ the\ network ∣Clock−T∣<Δt1+Δt2Δt1: the error value of local time and KDC standardΔt2: the delay of the network

-
存在问题
- 依赖网络各方的时钟。
- 等待重放攻击:提前发出的重放攻击,可造成重复接收等问题。
方案二

E K B [ I D A ∣ ∣ K S ∣ ∣ T B ] c a n b e a u t h e n t i c a t e d a s A E_{KB}[ID_A||K_S||T_B]\ can\ be\ authenticated\ as\ A EKB[IDA∣∣KS∣∣TB] can be authenticated as A
- 有效时间内无需认证服务器的认证过程:

基于公钥加密的会话密钥分配协议
- 公钥加密不适合保密通信时的消息加密(太慢),但是做密钥分配却很合适。
简单分配

- 密钥在通信前临时生成,使用之后销毁(总之就是不存储),这样密钥泄漏的风险最小。
- 中间人攻击
- 类似代理服务器机制。
- 用户
A和B都以为在彼此通信,其实是由中间人代理了。
具有保密性和认证性的密钥分配
-
被动&主动攻击都防御。
-
建立在已经完成公钥交换基础上。

-
事先不知道彼此公钥的情况:
A → K D C : I D A ∣ ∣ I D B K D C → A : E S K A U [ I D B ∣ ∣ P K B ] A → B : E P K B [ N A ∣ ∣ I D A ] B → K D C : I D B ∣ ∣ I D A ∣ ∣ E P K A U [ N A ] K D C → B : E S K A U [ I D A ∣ ∣ P K A ] ∣ ∣ E P K B [ E S K A U [ N A ∣ ∣ K S ∣ ∣ I D B ] ] B → A : E P K A [ E S K A U [ N A ∣ ∣ K S ∣ ∣ I D B ] ∣ ∣ N B ] A → B : E K S [ N B ] A\rightarrow KDC:\ ID_A||ID_B\\ KDC\rightarrow A:\ E_{SK_{AU}}[ID_B||PK_B]\\ A\rightarrow B:\ E_{PK_B}[N_A||ID_A]\\ B\rightarrow KDC:ID_B||ID_A||E_{PK_{AU}[N_A]}\\ KDC\rightarrow B:E_{SK_{AU}}[ID_A||PK_A]||E_{PK_B}[E_{SK_{AU}}[N_A||K_S||ID_B]]\\ B\rightarrow A:E_{PK_A}[E_{SK_{AU}}[N_A||K_S||ID_B]||N_B]\\ A\rightarrow B:E_{KS}[N_B] A→KDC: IDA∣∣IDBKDC→A: ESKAU[IDB∣∣PKB]A→B: EPKB[NA∣∣IDA]B→KDC:IDB∣∣IDA∣∣EPKAU[NA]KDC→B:ESKAU[IDA∣∣PKA]∣∣EPKB[ESKAU[NA∣∣KS∣∣IDB]]B→A:EPKA[ESKAU[NA∣∣KS∣∣IDB]∣∣NB]A→B:EKS[NB]
身份证明技术
口令认证
- 操作系统常采用用户+口令的方式进行认证。
攻击类型
- 窃听(
Sniffer)- 如果口令使用明文传输,则可被非法截获。
- 截取/重放
- 重新编写客户端程序以使用加密口令实现系统登录。
- 字典攻击&穷举攻击
- 对弱口令进行爆破。
- 窥探
- 安装监视器在被攻击系统,窥视口令。
- 社会工程
- 就是骗你说密码。
- 垃圾搜索
- 在被攻击者的废弃物中找到口令。
2227

被折叠的 条评论
为什么被折叠?



