密码学中的协议构建、曲线密码及新兴技术
1. 从密码原语构建协议
在现实世界中,公钥密码学和数字签名方案的应用远不止实现一两个基本算法那么简单。实际应用通常会涉及多种不同的密码原语。例如,一个公钥本身可能会被数字签名,而使用哈希函数填充明文的公钥密码系统,可能会用于传输对称密码的密钥。这一单一应用就涉及到选择公钥密码系统和数字签名方案(如RSA)、哈希函数(如SHA - 1)、填充方案(如OAEP +)以及对称密码(如AES)。
然而,仅仅确定这些还远远不够。比如,Bob和Alice使用的是1024位密钥还是2048位密钥的RSA?他们的AES密钥长度是多少?他们究竟如何使用哈希函数或对称密码来生成伪随机数?即使他们确定了所有明显的参数并决定了如何使用所有的密码原语,他们仍然不能进行通信,还需要就数据格式达成一致。这看似琐碎,但却非常重要。在Bob和Alice交换消息之前,他们需要明确数据中每个字节的具体含义,例如哪些字节是密文,哪些字节是签名等。如果不特别处理,像数据在内存中的存储顺序和计算机之间的传输顺序这样看似微不足道的问题,也可能导致整个系统故障。
密码协议是实现密码过程所需的所有内容的完整描述。这个术语并不完全精确,但它通常指的是一个或多个密码算法的实现方式以及它们之间的协调方式。密码协议的理论,特别是它们的创建和安全性证明,本身就是一个重要的研究领域。需要注意的是,即使假设底层的密码原语(如RSA或ECC)是安全的,使用这些原语创建一个看似安全但实际上容易受到攻击的协议也是非常容易的。如果在设计协议时主要考虑效率和灵活性,而不将安全考虑放在首位,这种情况就更有可能发生。此外,由于由多个密码原语组合而成的协议非常复杂,很难给出一个有说服力的启发式论证来证明该协议没有安全
超级会员免费看
订阅专栏 解锁全文
4510

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



