跳到主要内容

加密和认证技术

加密技术

加密技术是最常用的安全保密手段,加解密过程可记为

  • 加密

    C=Ek1(P)C=E_{k1}(P)
  • 解密

    P=Dk2(C)P=D_{k2}(C)

对称加密

单密钥加密;私人密钥加密(每个接收方都有自己的key)

  • DES
    • 加密: C=enck1(P)C=enc_{k1}(P)
    • 解密: P=deck1(C)P=dec_{k1}(C)
    • C64bits;k156bits;P64bitsC_{64bits};k1_{56bits};P_{64bits}
  • 3DES
    • 加密: C=enck1(deck2(enck1(P)))C=enc_{k1}(dec_{k2}(enc_{k1}(P)))
    • 解密: P=deck1(enck2(deck1(C)))P=dec_{k1}(enc_{k2}(dec_{k1}(C)))
    • C64bits;k156bits;k256bits;P64bitsC_{64bits};k1_{56bits};k2_{56bits};P_{64bits}
  • RC-5
  • IDEA
  • AES

非对称加密

公开密钥加密;公开解密密钥;

  • RSA

    • p,qPrimep,q>10100n=pqz=(p1)(q1)(d,z)=1demodz=1P(p0...pk1)2k>n0P<np,q \in Prime \\ p,q>10^{100} \\ n=p*q \\ z=(p-1)*(q-1) \\ (d,z)=1 \\ de \mod z=1 \\ P(p_0...p_{k-1}) \\ 2^k \gt n \\ \to 0 \le P \lt n

    • 加密: C=PemodnC=P^e \mod n

    • 解密: P=CdmodnP=C^d \mod n

    • e.g.

      P=2p=3,q=11n=pq=33,z=20d=7,e=3C=23mod33=8P=87mod33=2P=2 \\ p=3,q=11 \\ n=pq=33,z=20 \\ d=7,e=3 \\ C=2^3 \mod 33=8 \\ P=8^7 \mod 33=2

密钥管理

  • 密钥产生
    • 私钥由用户保存
    • 公钥由CA中心签名,产生证书
  • 密钥备份和恢复
    • 即使密钥丢失,使用KPI的企业仍能得到确认,受密钥保护的数据也必须能够恢复
  • 密钥更新
    • 密钥的生命周期由签发证书的CA中心来确定,当用户的私钥遭到泄露或者快到期时,用户应该更新私钥。
  • 多密管理
    • 机构中有n个人,则每个人需要保存n-1个密钥,非常愚蠢
    • 使用KDC,每个人只需记住一个密钥

认证技术

解决网络通信过程中通信双方的身份认可。

账户名/口令认证

摘要算法认证

基于PKI认证

  • CA
  • 数字证书库
  • 密钥备份/恢复系统
  • 证书作废系统
  • API
  • 标准
    • PKCS
    • PKIX

Hash算法与信息摘要

在数字签名中验证签名和用户身份验证和不可抵赖性

  • 压缩性
  • 容易计算
  • 抗修改
  • 强抗碰撞

数字签名

  1. 发送方签名: Sig=enc(hash(Message))Sig=enc(hash(Message))
  2. 发送: send(Sig,Message)send(Sig,Message)
  3. 接收方验证: if hash(Message)=dec(Sig)?if \space hash(Message)=dec(Sig) ?

数字加密

  1. 发送方生成密钥: kk
  2. 发送方加密信息: Msg=enc(k,Message)Msg=enc(k,Message)
  3. 发送方加密密钥k: K=RSA(k,kpub)K=RSA(k,k_{pub})
  4. 发送数字信封: send(Msg,K)send(Msg,K)
  5. 接收方解密密钥: k=dec(K,kpri)k=dec(K,k_{pri})
  6. 接受方解密消息: Message=dec(k,Message)Message=dec(k,Message)

SSL

提高应用程序间的信息安全,涉及所有TCP/IP应用程序。

  • 用户和服务器的合法性认证
  • 加密被传送的数据
  • 保护数据完整性

过程

  1. 接通: clientgreetingserver\boxed{client} \xrightarrow{greeting} \boxed{server}
  2. 密码交换: clientsecretserver\boxed{client} \xleftrightarrow{secret} \boxed{server}
  3. 会谈密码: 客户端和服务器之间产生会话密码
  4. 客户端检验: 客户端检验服务器取得的密码
  5. 客户端认证: 服务器验证客户端的可信度
  6. 交换结束
  7. 成功建立数据通道

数字时间戳

文件签署的日期和签名一样均是十分重要的防止伪造和篡改的关键内容。

DTS

Digest=hash(data)clientDigestDTSDts=Hash(Digest+timestamp)DTSDtsclientDigest=hash(data) \\ \boxed{client} \xrightarrow{Digest} \boxed{DTS} \\ Dts=Hash(Digest+timestamp) \\ \boxed{DTS} \xrightarrow{Dts} \boxed{client}