【密码学】第七章、密码协议

Diffie-Hellman密钥交换

协议

安全性

  • 基于离散对数的困难性。

中间人攻击

门限方案

概念

  • 秘密s被分为n个部分,每个部分称为shadow
    • 使得k个及以上的参与者持有的部分可以重构秘密s
    • 反之,少于k个参与者无法重构s
  • (k,n)秘密分割门限方案k门限值
  • 若少于k个参与者无法得到s的任何信息,则改门限方案是完善的
  • 门限方案由份额分配算法恢复算法构成。

Shamir门限方案

秘密分割

  • q是一个大素数,满足q>=n+1
  • 秘密sGF(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 aiGF(q){0} ,i=1,...,k1
  • 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+...+ak1xk1
  • 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=1kf(ij)l=1,l=jijil(xil)(modq)s=f(0)=(1)k1j=1kf(ij)l=1l=jijilil(modq)

相互认证

  • 共享密钥时需要保证保密性实时性
  • 保密性
    • 会话密钥使用加密传输
  • 实时性
    • 防止重放

序列号方法

  • 方法
    • 每条消息加上序号,序号正确才接收。
  • 缺点
    • 记录和每个用户的序号,增大了负担。

时戳法

  • 方法
    • 收到的消息中包含时戳,且和自己的时间差不多,才接收。
  • 要求
    • 消息各方时间同步。

询问-应答

  • 方法
    • 发出的消息包含一个一次性的随机数,接收的消息也得包含该一次性随机数。

方法比较

  • 时戳法不适合面向连接。
  • 询问-应答不适合无连接。

密钥建立认证协议

NS密钥分配协议

  • 基于单钥加密体制设计
    • 每个用户都和密钥分发中心KDC有一共享密钥,称为主密钥
    • KDC为通信双方建立一个短期内使用的密钥,称为会话密钥

协议内容

N1是一次性随机数,应使敌手对N1很难猜测。

协议目的

  • A2.安全地获得了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 ClockT<Δ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[IDAKSTB] can be authenticated as A

  • 有效时间内无需认证服务器的认证过程:

基于公钥加密的会话密钥分配协议

  • 公钥加密不适合保密通信时的消息加密(太慢),但是做密钥分配却很合适。

简单分配

  • 密钥在通信前临时生成,使用之后销毁(总之就是不存储),这样密钥泄漏的风险最小。
  • 中间人攻击
    • 类似代理服务器机制。
    • 用户AB都以为在彼此通信,其实是由中间人代理了。

具有保密性和认证性的密钥分配

  • 被动&主动攻击都防御。

  • 建立在已经完成公钥交换基础上。

  • 事先不知道彼此公钥的情况:
    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] AKDC: IDAIDBKDCA: ESKAU[IDBPKB]AB: EPKB[NAIDA]BKDC:IDBIDAEPKAU[NA]KDCB:ESKAU[IDAPKA]EPKB[ESKAU[NAKSIDB]]BA:EPKA[ESKAU[NAKSIDB]NB]AB:EKS[NB]

身份证明技术

口令认证

  • 操作系统常采用用户+口令的方式进行认证。

攻击类型

  • 窃听(Sniffer
    • 如果口令使用明文传输,则可被非法截获。
  • 截取/重放
    • 重新编写客户端程序以使用加密口令实现系统登录。
  • 字典攻击&穷举攻击
    • 对弱口令进行爆破。
  • 窥探
    • 安装监视器在被攻击系统,窥视口令。
  • 社会工程
    • 就是骗你说密码。
  • 垃圾搜索
    • 在被攻击者的废弃物中找到口令。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值