数字签名算法是一种可以实现数据签名的算法,能够用于验证信息的完整性和来源。而随着量子计算技术的发展,传统的数字签名算法面临着被破解的风险。为了应对这一挑战,Falcon数字签名算法应运而生。下面我们就来了解一下Falcon数字签名算法。

Falcon数字签名算法简介

Falcon算法全称为Fast-Fourier Lattice-Based Compact Signature over NTRU,是后量子密码学中的一种数字签名算法,其核心思想是利用格上的困难问题来提供安全保障。

Falcon是基于Gentry、Peikert和Vaikuntanathan的理论框架,用于基于NTRU格的签名方案。并在NTRU格上实例化该框架,使用称为“快速傅立叶采样”的陷门采样器。利用NTRU格上的短整数解问题 (SIS),即使在量子计算机的帮助下,也没有有效的求解算法 。

Falcon数字签名算法

Falcon数字签名算法的过程

密钥生成

首先,使用高斯采样器生成一对公钥和私钥。公钥用于验证签名,私钥用于生成签名。私钥需要进行安全存储,以防止被未授权的人员获取。

签名生成

使用私钥对消息进行签名。具体步骤如下:

  1. 将消息进行哈希处理,得到消息摘要;
  2. 使用私钥对消息摘要进行加密,得到签名;
  3. 将签名与原始消息一起发送给接收者。

签名验证

接收者收到消息和签名后,首先对消息进行哈希处理,得到消息摘要。然后使用公钥对签名进行解密,得到解密后的摘要。最后比较解密后的摘要与原始消息摘要是否一致,如果一致则认为签名有效,否则认为签名无效。

Falcon数字签名算法

Falcon数字签名算法的安全性

Falcon还有两种标准,分别是Falcon-512和Falcon-1024,在抵御量子攻击方面表现出色。对于Falcon-512,抵御量子攻击最少需要花费21次;对于Falcon-1024,需要多个大于2287的次数。

与对称加密算法AES相比,AES-128需要花费22次,AES-256需要花费2143次才能抵御量子攻击。因此,Falcon数字签名算法能够很好的抵御量子攻击。

Falcon数字签名算法

Falcon数字签名算法的特点

  • 安全性:Falcon内部使用了真正的高斯采样器,可以提供几乎无限数量的签名,使得密钥信息泄露的可能性几乎为零。
  • 紧凑性:Falcon由于使用了NTRU格,签名比具有相同安全保证的任何基于格的签名方案要短得多,而公钥的大小大致相同。
  • 速度:Falcon使用快速傅立叶采样,可以实现非常快的实现,在普通计算机上每秒可以有数千个签名,验证速度快五到十倍。
  • RAM:Falcon的增强型密钥生成算法使用不到30 KB的RAM,比NTRUSign等以前的设计改进了一百倍。 Falcon与小型、内存受限的嵌入式设备兼容。

免责声明:素材源于网络,如有侵权,请联系删稿。