第 4 次作业
学号:2017221302006 姓名:周玉川
噪声协议是一种基于 Diffie-Hellman 密钥协议的密码协议框架.噪声可以
描述由单个消息和交互协议组成的协议。噪声协议的核心是每一方在握手过程中
维护的一组变量,以及通过顺序处理来自消息模式的令牌来发送和接收握手消息
的规则。每一方保持以下变量:
s, e 本地静态和短暂的密钥对(可能是空的)。
rs, re*远程静态和短暂的公钥(可能是空的)。
h*a 握手散列值,该值对已发送和接收的所有握手数据进行散列。
ck*a 链式钥匙它会散列所有以前的 DH 输出。握手完成后,将使用链接密钥
派生传输消息的加密密钥。
k, n*加密密钥 k(可能是空的)和一个基于计数器的现在。n...每当一个新
的 DH 输出导致一个新的 ck 要计算,一个新的 k 也是计算出来的。钥匙 k 而现在
n 用于加密静态公钥和握手有效载荷。并使用当前 h 价值为关联数据这是由 AIAD
认证覆盖的。静态公钥和有效载荷的加密在握手阶段提供了一些机密性和密钥确
认。
握手消息由一些 DH 公钥组成,后面跟着一个有效载荷,有效载荷可能包含应
用程序选择的证书或其他数据。要发送握手消息,发送方指定有效负载并顺序处
理消息模式中的每个令牌。
噪声协议被实例化为一组具体的 DH 函数, 密码函数,和散列函数。
噪声取决于以下因素 DH 函数(及相关常数):
1. GENERATE_KEYPAIR()生成一个新的 Diffie-Hellman 密钥对。DH 密钥对
由 public_key 和 private_key 元素。一个 public_key 将 DH 公钥的编码表示为
长度的字节序列。DHLEN...这个 public_key 编码细节特定于每一组 DH 函数。
2. DH(key_pair, public_key)中的私钥之间执行 Diffie-Hellman 计算。
key_pair 而 public_key 并返回长度字节的输出序列。DHLEN...为了安全起见,
基于此函数的 Gap-DH 问题必须由任何实际的密码分析对手解决.
public_key 要么编码一个大型素数级组中的生成器的值(该值可能具有多个
等效编码),要么是一个无效的值。实现必须通过返回一些输出来处理无效的公
钥,这些输出纯粹是公钥的一个函数,不依赖于私钥,或者向调用方发出错误信
号。DH 函数可以为处理无效值定义更具体的规则。
DHLEN=指定公钥和 DH 输出的字节大小的常量。出于安全原因,DHLEN 一定
是 32 岁或以上。
噪声取决于以下因素密码函数:
1.ENCRYPT(k, n, ad, plaintext)*加密 plaintext 使用密码密钥 k 为 32 个
字节和一个 8 字节的无符号整数 n 键必须是唯一的。k...返回密文。加密必须使
用关联数据的“aead”加密模式进行。ad(使用来自[1]),并返回与明文大小相
同的密文加上用于身份验证数据的 16 个字节。如果密钥是秘密的,则整个密文
必须与随机密文无法区分.
评论0