CN117857005A - 后量子密码学中的错误检测 - Google Patents
后量子密码学中的错误检测 Download PDFInfo
- Publication number
- CN117857005A CN117857005A CN202311261976.XA CN202311261976A CN117857005A CN 117857005 A CN117857005 A CN 117857005A CN 202311261976 A CN202311261976 A CN 202311261976A CN 117857005 A CN117857005 A CN 117857005A
- Authority
- CN
- China
- Prior art keywords
- polynomial
- function
- matrix
- data processing
- processing system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title description 11
- 239000011159 matrix material Substances 0.000 claims abstract description 116
- 239000013598 vector Substances 0.000 claims abstract description 86
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000010200 validation analysis Methods 0.000 claims abstract description 14
- 238000012795 verification Methods 0.000 claims description 10
- 238000002372 labelling Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 50
- 238000000034 method Methods 0.000 description 28
- 230000015654 memory Effects 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- SMBQBQBNOXIFSF-UHFFFAOYSA-N dilithium Chemical compound [Li][Li] SMBQBQBNOXIFSF-UHFFFAOYSA-N 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0852—Quantum cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Electromagnetism (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
Abstract
各种实施例涉及一种数据处理系统,所述数据处理系统包括体现于非暂时性计算机可读介质中的指令,所述指令用于处理器中的基于格的密码学的包括矩阵相乘的密码操作,所述指令包括:将第一函数应用于多项式矩阵的行以生成第一输出,其中所述第一函数不包括恒等函数;将额外行添加到所述多项式矩阵以产生修改后的矩阵,其中所述额外行中的每一元素是由应用于与所述额外行中的每一元素相关联的输出列的第二函数生成;使所述修改后的矩阵与多项式向量相乘以产生多项式输出向量;将验证函数应用于所述输出向量以产生对在所述修改后的矩阵与所述多项式向量的所述相乘中是否发生了错误的指示;以及当所述验证函数指示在所述修改后的矩阵与所述多项式向量的所述相乘中没有发生错误时,使用输出向量进行密码操作。
Description
技术领域
本文中所公开的各种示例性实施例大体上涉及使用冗余数据在后量子密码学的矩阵操作中进行错误检测。
背景技术
预防错误攻击是实现高保证密码实施方案的基本措施。在新的基于格的后量子密码学方案中,通常必须将一个公共矩阵与秘密向量相乘。在此矩阵相乘中引入错误可显露关于所使用的秘密的信息。
发明内容
下文呈现各种示例性实施例的概述。可在以下概述中作出一些简化和省略,所述概述意图凸显并引入各种示例性实施例的一些方面,而非限制本发明的范围。足以允许本领域的普通技术人员产生并使用本发明概念的例示性实施例的详细描述将在后续部分呈现。
另外的各种实施例涉及一种数据处理系统,所述数据处理系统包括体现于非暂时性计算机可读介质中的指令,所述指令用于处理器中的基于格的密码学的包括矩阵相乘的密码操作,所述指令包括:将第一函数应用于多项式矩阵的行以生成第一输出,其中所述第一函数不包括恒等函数;将额外行添加到所述多项式矩阵以产生修改后的矩阵,其中所述额外行中的每一元素是由应用于与所述额外行中的每一元素相关联的输出列的第二函数生成;使所述修改后的矩阵与多项式向量相乘以产生多项式输出向量;将验证函数应用于所述输出向量以产生对在所述修改后的矩阵与所述多项式向量的所述相乘中是否发生了错误的指示;以及当所述验证函数指示在所述修改后的矩阵与所述多项式向量的所述相乘中没有发生错误时,使用所述输出向量进行密码操作。
描述了各种实施例,其中所述额外行被计算为:f2(f1(a0,i),f1(a1,i),...,f1(ak-1,i)),其中f1是所述第一函数,f2是所述第二函数,a0,i,a1,i,...,ak-1,i是所述多项式矩阵的第i行的元素,且k是所述多项式矩阵的行数。
描述了各种实施例,其中对于恒定秘密c,f1(x)=c·x,所述第二函数f2是求和函数,所述验证函数被限定为:
其中w0,w1,...,wk是所述多项式输出向量。
描述了各种实施例,其中c是2的幂。
描述了各种实施例,其中对于恒定秘密c,f1(x)=c-1·x,且c-1是c的模逆,所述第二函数f2是求和函数,所述验证函数被限定为:
其中w0,w1,...,wk是所述多项式输出向量。
描述了各种实施例,其中c-1是2的幂。
描述了各种实施例,其中对于从值2i随机选择的恒定秘密c,其中0≤i<16,f1(x)=c·x,所述第二函数f2是求和函数,所述验证函数被限定为:
其中w0,w1,...,wk是所述多项式输出向量。
描述了各种实施例,其中对于应用于所述多项式矩阵的每一列的恒定秘密cj,f1(x)=cj·x,所述第二函数f2是求和函数,所述验证函数被限定为:
其中w0,w1,...,wk是所述多项式输出向量。
描述了各种实施例,其中cj是2的幂。
描述了各种实施例,所述实施例另外包括:在使所述修改后的矩阵与多项式向量相乘之前,随机打乱多项式矩阵的所述行;以及基于所述随机打乱而重新标记所述多项式输出向量。
描述了各种实施例,所述实施例另外包括:在使所述修改后的矩阵与多项式向量相乘之前,随机打乱多项式矩阵的列;以及在使所述修改后的矩阵与多项式向量相乘之前,针对所述列使用相同的随机打乱来打乱多项式向量。
另外的各种实施例涉及一种数据处理系统,所述数据处理系统包括体现于非暂时性计算机可读介质中的指令,所述指令用于处理器中的基于格密码学的包括矩阵相乘的密码操作,所述指令包括:随机打乱多项式矩阵的行;使随机打乱的矩阵与多项式向量相乘以产生多项式输出向量;基于所述随机打乱而重新标记所述多项式输出向量;以及使用重新标记的输出向量进行密码操作。
描述了各种实施例,所述实施例另外包括:在随机打乱多项式矩阵的行之前,将第一函数应用于多项式矩阵的所述行以生成第一输出;将额外行添加到所述多项式矩阵以产生修改后的矩阵,其中所述额外行中的每一元素是由在随机打乱多项式矩阵的所述行之前应用于与所述额外行中的每一元素相关联的输出列的第二函数生成;以及将验证函数应用于所述输出向量以产生对在所述修改后的矩阵与所述多项式向量的所述相乘中是否发生了错误的指示。
描述了各种实施例,其中所述额外行被计算为:f2(f1(a0,i),f1(a1,i),...,f1(ak-1,i)),其中f1是所述第一函数,f2是所述第二函数,a0,i,a1,i,...,ak-1,i是所述多项式矩阵的第i行的元素,且k是所述多项式矩阵的行数。
另外的各种实施例涉及一种数据处理系统,所述数据处理系统包括体现于非暂时性计算机可读介质中的指令,所述指令用于处理器中的基于格的密码学的包括矩阵相乘的密码操作,所述指令包括:随机打乱多项式矩阵的列;针对所述列使用相同的随机打乱来打乱多项式向量;使随机打乱的矩阵与打乱的多项式向量相乘以产生多项式输出向量;以及使用输出向量进行密码操作。
描述了各种实施例,所述实施例另外包括:在随机打乱多项式矩阵的所述列之前,将第一函数应用于多项式矩阵的行以生成第一输出;将额外行添加到所述多项式矩阵以产生修改后的矩阵,其中所述额外行中的每一元素是由在随机打乱多项式矩阵的所述列之前应用于与所述额外行中的每一元素相关联的输出列的第二函数生成;以及将验证函数应用于所述输出向量以产生对在所述修改后的矩阵与所述多项式向量的所述相乘中是否发生了错误的指示。
描述了各种实施例,其中所述额外行被计算为:f2(f1(a0,i),f1(a1,i),...,f1(ak-1,i)),其中f1是所述第一函数,f2是所述第二函数,a0,i,a1,i,...,ak-1,i是所述多项式矩阵的第i行的元素,且k是所述多项式矩阵的行数。
附图说明
为了更好地理解各种示例性实施例,参考附图,在附图中:
图1示出由处理器在矩阵相乘之前打乱多项式矩阵的行以进行密码操作的方法的流程图;
图2示出由处理器在矩阵相乘之前打乱多项式矩阵的列以进行密码操作的方法的流程图;
图3示出由处理器在矩阵相乘之前将冗余信息添加到多项式矩阵以进行密码操作的方法的流程图;以及
图4示出用于实施包括矩阵相乘的密码操作的示例性硬件图。
为了便于理解,相同参考数字已用于表示具有大体上相同或类似结构和/或大体上相同或类似功能的元件。
具体实施方式
描述和附图示出了本发明的原理。因此将了解,本领域的技术人员将能够设计各种布置,尽管本文中未明确地描述或示出所述布置,但所述布置体现本发明的原理且包括在其范围内。此外,本文中所引述的所有例子主要意在明确地用于教学目的,以帮助读者理解本发明的原理和由发明人提供的用以深化本领域的概念,且所有例子应视为并不限于此类特定引述例子和条件。另外,除非另外指明(例如,“否则”或“或在可替换的方案中”),否则如本文中所使用的术语“或”指非独占的“或”(即,“和/或”)。并且,本文所描述的各种实施例不一定相互排斥,因为一些实施例可以与一个或多个其它实施例组合以形成新的实施例。
预防错误攻击是实现高保证密码实施方案的重要措施。在新的基于格的后量子密码学方案中,通常必须将一个公共矩阵与秘密向量相乘。在此矩阵相乘中引入错误可显露关于所使用的秘密的信息。本文中描述错误检测的实施例,示出如何在计算期间引入额外冗余信息以帮助检测这类有目的地引入的错误。此矩阵/向量运算是许多基于格的后量子密码方案中的核心操作。这种对错误引入的检测是必要的,因为这种错误攻击可能导致提取所使用的私钥。本文中描述的错误检测可将额外数据(呈矩阵的额外行形式)引入到所述计算。错误检测方法也可在进行相乘之前打乱矩阵的行或列。这使计算变慢,但允许检查是否在计算期间引入了错误。提出了多种提高冗余数据计算效率的技术。
在一些密码方案(例如后量子数字签名方案达丽星(Dilithium))中,处理多项式环元素。更具体地,在生成签名时,具有公共矩阵/>和秘密向量y∈Rl。使这两个对象相乘,如w=A·y,使用了个别元素的矩阵/向量积,所述个别元素是多项式环Rq中的所有多项式。
学习关于秘密值的信息的技术之一是在计算期间主动引入错误,并使用此错误结果来学习或推断关于使用所述秘密值进行计算的信息。这类攻击在矩阵/向量积期间是可能的。本文中描述的错误检测方法是围绕对公共矩阵A中的值的修改检测。
首先,限定某一表示法。公共矩阵A的0≤i<k和0≤j<l的元素ai,j∈Rq是
以类似方式,对于0≤i<l,可限定向量y和其元素yi∈Rq
随后,积w=A·y被限定为
在达丽星签名方案中,签名z的主要部分被计算为z=y+c·s1,其中y是先前提及的秘密向量,c被称为质询(challenge)且是从w导出的稀疏多项式,且s1是秘密签名密钥。对于有效签名,在计算上难以从z中恢复s1,这是因为生成的秘密向量y会遮蔽关于z中的s1的任何信息。
达丽星签名方案提供两个生成秘密向量y的选项。所述秘密向量可针对每一签名随机生成,或从消息的散列和秘密密钥确定性地导出。第一种方式被称为随机化签名且后一种方式被称为确定性签名。
确定性签名尤其容易受到差分错误攻击。在达丽星签名生成的情境中,敌方可将同一消息的签名触发两次并且注入错误来改变w的值。攻击者随后得到两个签名z=y+c.s1和z′=y′+c′.s1。因为签名过程是确定性的,所以同一秘密向量y用于这两个签名(y=y′)。然而,w的值在第二签名中出错,且因此,对两个签名的质询是不同的(c≠c′)。敌方因此恢复形式(z-z′)=(c-c′).s1的关系,且由于所有值z、z′、c和c′是公共的或可从公共签名导出,因此攻击者恢复关于秘密密钥s1的信息。
使w的值出错以发动前述攻击的方式包括在矩阵向量积w=A·y的计算期间注入随机错误。
错误检测方法可使用的一种对策是将A的行随机化。这可包括将A的布局重新排序,且照常(有序)处理矩阵或使在矩阵/向量积计算中处理A的行的次序随机化。此随机化是有帮助的,这是因为此随机化使潜在敌方插入目标错误变得困难得多。
将集S限定为整数集0到k-1:S={0,1,...,k-1}。选择随机排列π1:S→S以用于在预处理步骤中“打乱”A的行。举例来说,将A的第一行a0,0,a0,1,...,a0,l-1映射到行号π1(0),如逆排列标示为/>使得/>如预期。此预处理步骤将A转换成/>如下
此行随机化使得在公共矩阵A中瞄准特定错误变得更加困难。w=A·y的计算可如下执行。首先,如上将A变换成随机化的接下来,计算
最后,对于0≤i<k,通过重新标记得到期望的结果w。
图1示出由处理器在矩阵相乘之前打乱多项式矩阵的行以进行密码操作的方法的流程图。首先,所述方法随机打乱多项式矩阵的行102。接下来,所述方法使随机打乱的矩阵与多项式向量相乘以产生多项式输出向量104。随后,所述方法基于随机打乱而重新标记多项式输出向量106。最后,所述方法使用重新标记的输出向量进行密码操作108。所述密码操作可为例如数字签名。
除随机化行以外,可替代地打乱A的列,然而,这也意味着因此需要打乱y的值。以与随机化行类似的方式,将集T限定为整数集0到l-1:T={0,1,...,l-1}。选择随机排列π2:T→T以允许在预处理步骤中通过限定来“打乱”A的列
类似地,还通过限定来预处理向量y(或者可替换的是,这可实时地进行)
可如下进行w=A·y的计算。首先,将A变换成随机化的并将y变换成/>接下来,计算
不需要最后的重新标记。
图2示出由处理器在矩阵相乘之前打乱多项式矩阵的列以进行密码操作的方法的流程图。所述方法开始为随机打乱多项式矩阵的列202。接下来,所述方法针对列使用相同的随机打乱来打乱多项式向量204。接下来,所述方法使随机打乱的矩阵与打乱的多项式向量相乘以产生多项式输出向量206。最后,所述方法使用输出向量进行密码操作208。
在另一错误检测方法中,可通过使用冗余信息来检测错误。所述方法为将呈值的额外行形式的某一冗余信息添加到矩阵A。此额外信息可用于验证在矩阵/向量积期间是否引入了错误。这通过限定两个函数f1:Rq→Rq(第一函数)和(第二函数)来进行。接下来,创建A的额外第k行,其中每一列i(对于0≤i<l)被限定为:
f2(f1(a0,i),f1(a1,i),...,f1(ak-1,i))。
这意味着在与y相乘之后,w中存在另一元素:
函数f1和f2以如下方式限定:可使用前k个值w0,w1,...,wk-1改变新计算的wk。这使用验证函数来进行,所述验证函数在给出w的k+1向量条目下确定在计算期间是否引入错误(f3返回零或一)或所述验证不检测错误(f3分别返回一或零)。
现将描述f1和f2的一些例子。在第一例子中,此构造的最基础示例是将f1视为恒等函数:f1(x)=x。将f2限定为求和
接下来,f3可被限定为:
应注意,可调换f3的输出值一和零,使得一指示没有错误且零指示有错误。这如预期地进行工作,因为wk被限定为
且f3实际上在此减法等于零的情况下输出一:
在其它实施例中,函数f1可被限定为包括除恒等函数以外的所有函数。
在第二例子中,对于恒定秘密值c∈Rq,f1可被限定为f1(x)=c·x(且将f2限定为求和函数)。这产生A的另一行中的每一元素中的c的另一因子,所述因子在相乘之后传播到w的最后元素。这意味着f3变成:
如果元素c被选择为二的幂,那么可在实践中省略相乘且替换为位移位。
在第三例子中,代替如在第二例子中,使与c相乘,可使wk乘以模逆c-1modq。这意味着f3变成:
在实践中也可优化此第三例子。此外,在达丽星后量子签名方案的情况下,q=8380417=223-213+1且可使用此结构。对于0≤i<16,可在f1(x)=c·x中选择常数c作为十六个值2i中的任一个的随机选择。此相乘在实践中仅为移位且可有效实施。通过乘以 可有效地在f3中计算c-1=2-i。可以这样做是因为对于所有0≤i<16,(24575q+1)≡0(mod 2i)。因此,在f3的计算中仅需要单个额外相乘。
在第四例子中,对于0≤j<k,可通过使用k个行特定常数cj∈Rq而非一个全局常数c来将第二例子和第三例子一般化。这意味着可使用k个不同函数并构造A的额外第k行,其中每一列i(对于0≤i<l)被限定为:
验证函数f3变成
图3示出由处理器在矩阵相乘之前将冗余信息添加到多项式矩阵以进行密码操作的方法的流程图。所述方法首先将第一函数应用于多项式矩阵的行以生成第一输出,其中所述第一函数不包括恒等函数302。接下来,所述方法将额外行添加到多项式矩阵以产生修改后的矩阵,其中额外行中的每一元素304是由应用于与额外行中的每一元素相关联的输出列的第二函数生成。随后,所述方法使修改后的矩阵与多项式向量相乘以产生多项式输出向量306。所述方法还将验证函数应用于输出向量以产生对在修改后的矩阵与多项式向量相乘中是否发生了错误的指示308。最后,当验证函数指示在修改后的矩阵与多项式向量相乘中没有发生错误时,所述方法使用输出向量进行密码操作。
应注意,图1和图2的方法可与图3的方法组合。
图4示出用于实施包括矩阵相乘的密码操作的示例性硬件图400。如所示出,装置400包括经由一个或多个系统总线410互连的处理器420、存储器430、用户接口440、网络接口450和存储装置460。应理解,图4在一些方面中构成抽象,且装置400的组件的实际组织可能比所示的更复杂。
处理器420可以是任何能够执行存储于存储器430或存储装置460中的指令或以其它方式处理数据的硬件装置。如此,所述处理器可包括微处理器、微控制器、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其它类似装置。
存储器430可包括各种存储器,例如,L1、L2或L3高速缓冲存储器或系统存储器。因此,存储器430可以包括静态随机存取存储器(SRAM)、动态RAM(DRAM)、快闪存储器、只读存储器(ROM),或其它类似存储器装置。
用户接口440可以包括用于使得能够与例如管理员等用户通信的一个或多个装置。举例来说,用户接口440可包括显示器、触摸接口、鼠标和/或键盘以用于接收用户命令。在一些实施例中,用户接口440可以包括可经由网络接口450呈现给远程终端的命令行接口或图形用户接口。
网络接口450可以包括用于使得能够与其它硬件装置通信的一个或多个装置。举例来说,网络接口450可以包括被配置成根据以太网协议或其它通信协议(包括无线协议)进行通信的网络接口卡(NIC)。另外,网络接口450可实施TCP/IP堆栈以根据TCP/IP协议通信。用于网络接口450的各种可替换的或额外的硬件或配置将是显而易见的。
存储装置460可以包括一个或多个机器可读存储介质,例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、快闪存储器装置或类似存储介质。在各种实施例中,存储装置460可存储用于由处理器420执行的指令,或可存储可由处理器420进行操作的数据。举例来说,存储装置460可存储用于控制硬件400的各种基本操作的基本操作系统461。存储装置462可包括用于执行包括图1、2和3的矩阵相乘的密码功能的指令。
将显而易见的是,描述为存储在存储装置460中的各种信息可以另外或可替换地存储在存储器430中。就此而言,存储器430还可以被视为构成“存储装置”,且存储装置460可以被视为“存储器”。各种其它布置将是显而易见的。另外,存储器430和存储装置460都可以被视为“非暂时性机器可读介质”。如本文中所使用,术语“非暂时性”将被理解为不包括暂时性信号,但是包括所有形式的存储装置,包括易失性存储器和非易失性存储器这两者。
系统总线410允许处理器420、存储器430、用户接口440、存储装置460和网络接口450之间的通信。
虽然主机装置400示出为包括每个所描述的组件中的一个组件,但是在各种实施例中,各种组件可以重复。举例来说,处理器420可以包括多个微处理器,所述微处理器被配置成独立地执行本文中所描述的方法,或被配置成执行本文中所描述的方法的步骤或子例程,使得多个处理器协作实现本文中描述的功能性。另外,当在云计算系统中实施装置400时,各种硬件组件可以属于单独的物理系统。举例来说,处理器420可以包括在第一服务器中的第一处理器和在第二服务器中的第二处理器。
如本文所使用,术语“非暂时性机器可读存储介质”应理解为不包括暂时传播信号,但包括所有形式的易失性和非易失性存储器。当软件实施于处理器上时,软件和处理器的组合变成单个特定机器。尽管已详细描述了各种实施例,但应理解,本发明能够具有其它实施例,并且能够在各种显而易见的方面中修改其细节。
由于实施本发明的数据处理大部分由本领域的技术人员已知的电子组件和电路构成,因此为了理解和了解本发明的基本概念并且为了不混淆或偏离本发明的教示,将不会以任何比上文所示的认为必要的程度更大的程度来解释电路细节。
虽然本文中参考具体实施例描述了本发明,但是在不脱离如所附权利要求书所阐述的本发明的范围的情况下可以进行各种修改和改变。因此,说明书和附图应视为示意性而不具有限制性意义,并且所有这些修改旨在都包括在本发明的范围内。并不希望将本文中关于特定实施例描述的任何益处、优势或针对问题的解决方案理解为任何或所有权利要求的关键、必需或必不可少的特征或元件。
此外,如本文中所使用,术语“一”被限定为一个或一个以上。而且,权利要求书中例如“至少一个”和“一个或多个”等介绍性短语的使用不应解释为暗示由不定冠词“一”导入的另一权利要求要素将包含此引导的权利要求要素的任何特定权利要求限制为仅包含一个此要素的发明,甚至是在同一权利要求包括介绍性短语“一个或多个”或“至少一个”和例如“一”等不定冠词时。这同样适用于定冠词的使用。
除非以其它方式陈述,否则例如“第一”和“第二”等术语用于任意地区别这些术语所描述的元件。因此,这些术语未必意图指示此类元件的时间或其它优先级排序。
在处理器上运行以实施本发明的实施例的特定软件的任何组合构成特定专门机器。
本领域的技术人员应了解,本文中的任何框图表示体现本发明的原理的说明性电路的概念视图。
Claims (10)
1.一种数据处理系统,其特征在于,所述数据处理系统包括体现于非暂时性计算机可读介质中的指令,所述指令用于处理器中的基于格的密码学的包括矩阵相乘的密码操作,所述指令包括:
将第一函数应用于多项式矩阵的行以生成第一输出,其中所述第一函数不包括恒等函数;
将额外行添加到所述多项式矩阵以产生修改后的矩阵,其中所述额外行中的每一元素是由应用于与所述额外行中的每一元素相关联的输出列的第二函数生成;
使所述修改后的矩阵与多项式向量相乘以产生多项式输出向量;
将验证函数应用于所述输出向量以产生对在所述修改后的矩阵与所述多项式向量的所述相乘中是否发生了错误的指示;以及
当所述验证函数指示在所述修改后的矩阵与所述多项式向量的所述相乘中没有发生错误时,使用所述输出向量进行密码操作。
2.根据权利要求1所述的数据处理系统,其特征在于,
所述额外行被计算为:
f2(f1(a0,i),f1(a1,i),…,f1(ak-1,i)),
其中f1是所述第一函数,f2是所述第二函数,a0,i,a1,i,...,ak-1,i是所述多项式矩阵的第i行的元素,且k是所述多项式矩阵的行数。
3.根据权利要求2所述的数据处理系统,其特征在于,
对于恒定秘密c,f1(x)=c·x,
所述第二函数f2是求和函数,
所述验证函数被限定为:
其中w0,w1,…,wk是所述多项式输出向量。
4.根据权利要求2所述的数据处理系统,其特征在于,
对于恒定秘密c,f1(x)=c-1·x,且c-1是c的模逆,
所述第二函数f2是求和函数,
所述验证函数被限定为:
其中w0,w1,…,wk是所述多项式输出向量。
5.根据权利要求2所述的数据处理系统,其特征在于,
对于从值2i随机选择的恒定秘密c,其中0≤i<16下,f1(x)=c·x,
所述第二函数f2是求和函数,
所述验证函数被限定为:
其中w0,w1,…,wk是所述多项式输出向量。
6.根据权利要求2所述的数据处理系统,其特征在于,
对于应用于所述多项式矩阵的每一列的恒定秘密cj,f1(x)=cj·x,
所述第二函数f2是求和函数,
所述验证函数被限定为:
其中w0,w1,…,wk是所述多项式输出向量。
7.一种数据处理系统,其特征在于,所述数据处理系统包括体现于非暂时性计算机可读介质中的指令,所述指令用于处理器中的基于格的密码学的包括矩阵相乘的密码操作,所述指令包括:
随机打乱多项式矩阵的行;
使随机打乱的矩阵与多项式向量相乘以产生多项式输出向量;
基于所述随机打乱而重新标记所述多项式输出向量;以及
使用重新标记的输出向量进行密码操作。
8.根据权利要求7所述的数据处理系统,其特征在于,所述数据处理系统另外包括:
在随机打乱多项式矩阵的行之前,将第一函数应用于多项式矩阵的所述行以生成第一输出;
将额外行添加到所述多项式矩阵以产生修改后的矩阵,其中所述额外行中的每一元素是由在随机打乱多项式矩阵的所述行之前应用于与所述额外行中的每一元素相关联的输出列的第二函数生成;以及
将验证函数应用于所述输出向量以产生对在所述修改后的矩阵与所述多项式向量的所述相乘中是否发生了错误的指示。
9.一种数据处理系统,其特征在于,所述数据处理系统包括体现于非暂时性计算机可读介质中的指令,所述指令用于处理器中的基于格的密码学的包括矩阵相乘的密码操作,所述指令包括:
随机打乱多项式矩阵的列;
针对所述列使用相同的随机打乱来打乱多项式向量;
使随机打乱的矩阵与打乱的多项式向量相乘以产生多项式输出向量;以及
使用输出向量进行密码操作。
10.根据权利要求9所述的数据处理系统,其特征在于,所述数据处理系统另外包括:
在随机打乱多项式矩阵的所述列之前,将第一函数应用于多项式矩阵的行以生成第一输出;
将额外行添加到所述多项式矩阵以产生修改后的矩阵,其中所述额外行中的每一元素是由在随机打乱多项式矩阵的所述列之前应用于与所述额外行中的每一元素相关联的输出列的第二函数生成;以及
将验证函数应用于所述输出向量以产生对在所述修改后的矩阵与所述多项式向量的所述相乘中是否发生了错误的指示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/938,564 US20240137214A1 (en) | 2022-10-06 | 2022-10-06 | Fault detection in post-quantum cyptography |
US17/938,564 | 2022-10-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117857005A true CN117857005A (zh) | 2024-04-09 |
Family
ID=88241110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311261976.XA Pending CN117857005A (zh) | 2022-10-06 | 2023-09-27 | 后量子密码学中的错误检测 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240137214A1 (zh) |
EP (1) | EP4351082A1 (zh) |
CN (1) | CN117857005A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3099001A1 (en) * | 2015-05-29 | 2016-11-30 | Gemalto Sa | System and method for protecting a cryptographic device against fault attacks while performing cryptographic non-linear operations using linear error correcting codes |
DE102017117899A1 (de) * | 2017-08-07 | 2019-02-07 | Infineon Technologies Ag | Durchführen einer kryptografischen Operation |
CN114521319B (zh) * | 2019-09-26 | 2023-12-05 | 维萨国际服务协会 | 具有均匀秘密的基于格的签名 |
-
2022
- 2022-10-06 US US17/938,564 patent/US20240137214A1/en active Pending
-
2023
- 2023-09-27 CN CN202311261976.XA patent/CN117857005A/zh active Pending
- 2023-10-02 EP EP23201307.8A patent/EP4351082A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4351082A1 (en) | 2024-04-10 |
US20240137214A1 (en) | 2024-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110363030B (zh) | 用于执行基于格的密码操作的方法和处理设备 | |
Bruinderink et al. | Differential fault attacks on deterministic lattice signatures | |
Fan et al. | An updated survey on secure ECC implementations: Attacks, countermeasures and cost | |
Blömer et al. | A new CRT-RSA algorithm secure against bellcore attacks | |
JP6058245B2 (ja) | 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム | |
JP7123959B2 (ja) | 楕円曲線点乗算デバイス及び方法 | |
US11139971B2 (en) | Conducting a cryptographic operation | |
CN108352981B (zh) | 被布置用于计算目标块加密的密码设备 | |
CN109791517B (zh) | 保护并行乘法运算免受外部监测攻击 | |
CN104836670B (zh) | 一种基于随机数未知的sm2签名算法安全性验证方法 | |
CN109661792B (zh) | 计算分组密码的设备和方法 | |
Merli et al. | Protecting PUF error correction by codeword masking | |
CN103095450A (zh) | 抵抗故障攻击的有限域密码算法 | |
US20110274271A1 (en) | Countermeasure method and devices for asymmetric encryption | |
US20210152331A1 (en) | Protecting polynomial hash functions from external monitoring attacks | |
CN106712968A (zh) | 密钥获取方法、数字签名方法和装置 | |
Campos et al. | Trouble at the CSIDH: protecting CSIDH with dummy-operations against fault injection attacks | |
JP2004304800A (ja) | データ処理装置におけるサイドチャネル攻撃防止 | |
Barenghi et al. | A novel fault attack against ECDSA | |
TW200939114A (en) | Modular reduction using a special form of the modulus | |
Luo et al. | Effective simple-power analysis attacks of elliptic curve cryptography on embedded systems | |
Luo et al. | Differential fault analysis of SHA-3 under relaxed fault models | |
Blömer et al. | Wagner’s Attack on a secure CRT-RSA Algorithm Reconsidered | |
CN117857005A (zh) | 后量子密码学中的错误检测 | |
Bauer et al. | Attacks against white-box ECDSA and discussion of countermeasures: A report on the WhibOx contest 2021 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |