【现代密码学理论与实践】防守与攻击

对于消息M(不管是明文还是密文)、密码算法A(不管它代表加密还是解密)、密钥K(不管它是加密密钥还是解密密钥),我们可以用M'=A(K,M)表示一个密码变换

在对称密码体制种,我们可以认为K’=K;在公钥密码体制中,K’表示K的秘密部分或与K相匹配的部分。密文习惯记为${M}_K$。

用符号${M}_K$表示的完善加密

  1. 不用密钥K(在对称密码体制中),或者不用与K相匹配的私钥(在公钥密码体制中),密文${M}_K$不提供任何求解明文消息M的密码分析方法。
  2. 密文${M}_K$也许还有一些关于明文消息M的已知信息,不提供任何求解密钥K(在对称密码体制中)或与K相匹配的私钥(在公钥密码体制中)的密码分析方法。
  3. (用于消息认证服务)如果没有密钥K,即使知道明文M,要想更改${M}_K$而不被接收者在解密阶段发现是不可能的。

具有这两个性质的完善加密是对现实世界中存在的加密算法的理想化。完善加密并不能防止协议含有安全缺陷。

Dolve-Yao威胁模型——密码协议的标准威胁模型[102]

在这个模型中,攻击者有如下特征:

  1. 他能获得经过网络的任何消息。
  2. 他是网络的一个合法使用者,因而能够发起与任何其他用户的对话。
  3. 他有机会成为任何主体发出信息的接收者。
  4. 他能够冒充任何别的主体给任意主体发消息。

在不对“不能做”的意思量化的情况下,攻击者不能做的事情:

  1. 攻击者不能猜到从足够大的空间中选出的随机数。
  2. 没有正确的密钥(或私钥),攻击者不能由给定的密文恢复出明文;对于完善加密算法,攻击者也不能从给定的明文构造出正确的密文。
  3. 攻击者不能求出私有部分,比如:与给定的公钥相匹配的私钥。
  4. 攻击者虽然能控制我们的计算和通信环境的大量公共部分,但一般他不能控制计算环境中的许多私有区域,如:访问离线主体的存储器。

认证服务器:它根据它所服务的主体的名字维护一个检索数据库,并能够递送通过请求主体密钥所计算出来的身份信息,而该密钥为服务器和主体所共享。认证服务器是一种特殊的主体,成为可信第三方TTP

在同一个认证服务器提供服务下,假定Alice和TTP共享一个密钥,密钥由$K_{AT}$表示,成为密钥-加密密钥长期密钥

一个共享密钥只能用于一次通信会话,因此这种密钥也称会话密钥短期密钥

“消息认证”协议:将消息和通信主体相绑定。可利用消息重放攻击

如果主体的身份对于消息的意义来说是必要的,那么为了保险起见,应当在消息中明确置入主体的名字。

“询问-应答”协议:以运行的随机数为nonce,表示仅使用一次的数字。又称Needham-Schroeder对称密钥认证协议。阻截通信信道,利用消息重放攻击。