非线性过滤模型是一种设计安全流密码的古老且易于理解的方法。几十年来,大量的研究表明如何攻击基于此模型的流密码,并确定了用作过滤函数的布尔函数所需的安全属性,以抵御此类攻击。这导致了构造布尔函数的问题,这些函数既要提供足够的安全性,又要实现高效。不幸的是,在过去的二十年里,文献中没有出现解决这个问题的好方法。缺乏好的解决方案实际上导致非线性过滤模型或多或少变得过时。这对密码设计工具包来说是一个巨大的损失,因为非线性过滤模型的巨大优势在于,除了它的简单性和为面向硬件的流密码提供低成本解决方案的能力之外,还在于积累了有关抽头位置和过滤函数的安全要求的知识,当满足所有标准时,这让人对其安全性充满信心。在本文中,我们构造了奇数个变量(n≥5)的平衡函数,这些函数具有以下可证明的性质:线性偏差等于2−⌊n/2⌋−1,代数次数等于2⌊log2⌊n/2⌋⌋,代数免疫度至少为⌈(n−1)/4⌉,快速代数免疫度至少为1+⌈(n−1)/4⌉,并且这些函数可以使用O(n)NAND门实现。这些函数是通过对著名的Maiorana-McFarland弯曲函数类进行简单修改而获得的。由于实现效率高,对于任何目标安全级别,我们都可以构造高效的可实现函数,以提供对快速代数和快速相关攻击所需的抵抗级别。先前已知的可有效实现的函数具有过大的线性偏差,即使变量数量很大,它们也不合适。通过适当选择 n 和线性反馈移位寄存器的长度 L,我们表明有可能获得可证明 κ 位安全的流密码示例,这些密码对于各种 κ 值都可以抵御众所周知的攻击。我们为 κ = 80、128、160、192、224 和 256 提供了具体建议,使用长度为 163、257、331、389、449、521 的 LFSR 和针对 75、119、143、175、203 和 231 个变量的过滤函数。对于 80 位、128 位和 256 位安全级别,相应流密码的电路分别需要大约 1743.5、2771.5 和 5607.5 个 NAND 门。对于 80 位和 128 位安全级别,门数估计值与著名密码 Trivium 和 Grain-128a 相当,而对于 256 位安全级别,我们不知道任何其他流密码设计具有如此低的门数。关键词:布尔函数、流密码、非线性、代数免疫、高效实现。
非线性过滤模型是一种设计安全流密码的古老且易于理解的方法。几十年来,大量的研究表明如何攻击基于此模型的流密码,并确定了用作过滤函数的布尔函数所需的安全属性,以抵御此类攻击。这导致了构造布尔函数的问题,这些函数既要提供足够的安全性,又要实现高效。不幸的是,在过去的二十年里,文献中没有出现解决这个问题的好方法。缺乏好的解决方案实际上导致非线性过滤模型或多或少变得过时。这对密码设计工具包来说是一个巨大的损失,因为非线性过滤模型的巨大优势在于,除了它的简单性和为面向硬件的流密码提供低成本解决方案的能力之外,还在于积累了有关抽头位置和过滤函数的安全要求的知识,当满足所有标准时,这让人对其安全性充满信心。在本文中,我们构造了奇数个变量(n≥5)的平衡函数,这些函数具有以下可证明的性质:线性偏差等于2−⌊n/2⌋−1,代数次数等于2⌊log2⌊n/2⌋⌋,代数免疫度至少为⌈(n−1)/4⌉,快速代数免疫度至少为1+⌈(n−1)/4⌉,并且这些函数可以使用O(n)NAND门实现。这些函数是通过对著名的Maiorana-McFarland弯曲函数类进行简单修改而获得的。由于实现效率高,对于任何目标安全级别,我们都可以构造高效的可实现函数,以提供对快速代数和快速相关攻击所需的抵抗级别。先前已知的可有效实现的函数具有过大的线性偏差,即使变量数量很大,它们也不合适。通过适当选择 n 和线性反馈移位寄存器的长度 L,我们表明有可能获得可证明 κ 位安全的流密码示例,这些密码对于各种 κ 值都可以抵御众所周知的攻击。我们为 κ = 80、128、160、192、224 和 256 提供了具体建议,使用长度为 163、257、331、389、449、521 的 LFSR 和针对 75、119、143、175、203 和 231 个变量的过滤函数。对于 80 位、128 位和 256 位安全级别,相应流密码的电路分别需要大约 1743.5、2771.5 和 5607.5 个 NAND 门。对于 80 位和 128 位安全级别,门数估计值与著名密码 Trivium 和 Grain-128a 相当,而对于 256 位安全级别,我们不知道任何其他流密码设计具有如此低的门数。关键词:布尔函数、流密码、非线性、代数免疫、高效实现。