CN107273089B - 非模数乘法器、用于非模数乘法的方法及计算装置 - Google Patents

非模数乘法器、用于非模数乘法的方法及计算装置 Download PDF

Info

Publication number
CN107273089B
CN107273089B CN201710137121.4A CN201710137121A CN107273089B CN 107273089 B CN107273089 B CN 107273089B CN 201710137121 A CN201710137121 A CN 201710137121A CN 107273089 B CN107273089 B CN 107273089B
Authority
CN
China
Prior art keywords
modulus
product
integer
multiplier
modulo
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.)
Active
Application number
CN201710137121.4A
Other languages
English (en)
Other versions
CN107273089A (zh
Inventor
厄瑞·卡路兹尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Winbond Electronics Corp filed Critical Winbond Electronics Corp
Publication of CN107273089A publication Critical patent/CN107273089A/zh
Application granted granted Critical
Publication of CN107273089B publication Critical patent/CN107273089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/729Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using representation by a residue number system

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了一种非模数乘法器、用于非模数乘法的方法及计算装置,非模数乘法器包含接口和电路。所述接口经配置以接收n位的整数A和整数B。所述电路经配置以通过执行计算序列来计算非模数乘积(A*B),且经配置以在执行所述序列时使得所述乘法器消耗的电力的模式随机化。所述序列包含:产生随机数w;确定取决于数值R=2k(k等于M1和M2的位长)及取决于所述随机数w的模数M1和M2,并计算第一模数乘积C=A*B%M1和第二模数乘积D=A*B%M2;以及基于所述第一模数乘积和所述第二模数乘积产生及输出所述非模数乘积(A*B)。

Description

非模数乘法器、用于非模数乘法的方法及计算装置
技术领域
本发明涉及数据安全,尤其涉及免受旁信道攻击的高效非模数乘法。
背景技术
多个重要密码系统(诸如RSA)使用具有大量模数值的模运算以及非模运算,包含求幂和相乘。计算非模数乘积的经典方法涉及将操作数划分为块或“位(digits)”且将加权和应用于所述位的交叉乘积。然而,此基本乘法方法在多个实际案例中计算上昂贵。
对于模数乘法(例如,在加密计算中),惯例为使用被称为蒙哥马利模数乘法(或简称为蒙哥马利乘法)的高效方法。为了执行蒙哥马利乘法,使用已知为蒙哥马利约简的算法将操作数转换成专门的蒙哥马利形式。蒙哥马利形式的操作数的乘法避免了常规算术中模约简的需要(然而如果得到的乘积大于模数则仍然需要较简单的条件约简)。蒙哥马利约简和乘法算法例如由Menezes等人描述于应用密码学手册(Handbook of AppliedCryptography)(1996)的章节14.3.2、第600到603页中,其公开内容以引用的方式并入本说明书中。
密码系统可遭受各种类型的旨在暴露内部机密信息的攻击。在被称作旁信道攻击(side channel attack;SCA)的攻击中,可通过分析执行下层加密函数期间的功率消耗行为推论出机密信息。举例来说,Amiel等人在标题为“用于机密回收的功率分析和公钥算法的逆向工程(Power Analysis for Secret Recovering and Reverse Engineering ofPublic Key Algorithms)”的文章中描述应用于非模数乘法计算的差别功率分析(differential power analysis;DPA)攻击(第14届国际会议关于加密中的所选领域的会议记录(SAC 2007,LNCS,第4876卷,第110至125页,海德堡施普林格),其公开内容以引入的方式并入本说明书中。
发明内容
根据本发明一方面,提供了包含接口和电路的乘法器。所述接口经配置以接收n位的整数A和整数B。所述电路经配置以通过执行计算序列来计算非模数乘积,所述非模数乘积表示为(A*B),且经配置以在执行序列时使得乘法器消耗的电力的模式随机化,所述序列包括:产生随机数w;确定取决于数值R及取决于所述随机数w的模数M1和模数M2,其中R=2k,k等于所述模数M1和所述模数M2的位长,并计算第一模数乘积C和第二模数乘积D,其中C=A*B%M1,D=A*B%M2,以及基于所述第一模数乘积C和第二模数乘积D产生和输出非模数乘积。
优选地,电路包含蒙哥马利乘法器,所述蒙哥马利乘法器经配置以计算所述第一模数乘积C和第二模数乘积D。
优选地,电路经配置以:通过计算w*A将所述整数A转换为蒙哥马利域的所述模数M1中的A′;通过计算(w-d)*B将所述整数B转换为蒙哥马利域的所述模数M2中的B′,d为小于w的整数;以及通过使用蒙哥马利乘法器计算各别蒙哥马利乘积A′⊙B和A⊙B′来计算所述第一模数乘积C和第二模数乘积D。
优选地,表示为低位部分ABL和高位部分ABH的组合而满足(A*B)=ABH*R+ABL,且电路经配置以基于所述第一模数乘积C和第二模数乘积D计算所述高位部分ABH和所述低位部分ABL
优选地,电路经配置以根据ABH=(C-D)/d计算高位部分ABH,其中d为用于将所述整数B转换为蒙哥马利域的整数,且经配置以根据ABL=C-w*ABH计算低位部分ABL
优选地,电路经配置以根据M1=R-w确定所述模数M1,且经配置以根据M2=R-(w-d)确定所述模数M2,d为小于所述随机数w的整数。
根据本发明的另一方面,提供了一种包含接收n位的整数A和整数B的用于非模数乘法的方法。使用乘法器通过执行计算序列来计算非模数乘积,所述非模数乘积表示为(A*B),且在执行所述序列时使得乘法器消耗的电力的模式随机化,所述序列包含:产生随机数w;确定取决于数值R及取决于所述随机数w的模数M1和模数M2,其中R=2k,k等于所述模数M1和所述模数M2的位长,并计算第一模数乘积C和第二模数乘积D,其中C=A*B%M1,D=A*B%M2;以及基于所述第一模数乘积C和第二模数乘积D产生和输出非模数乘积。
根据本发明的又一方面,还提供了一种包含接口和乘法器的计算装置。所述接口经配置以接收n位的整数A和整数B。所述乘法器经配置以通过执行计算序列来计算非模数乘积,所述非模数乘积表示为(A*B),且在执行序列时使得乘法器消耗的电力的模式随机化,所述序列包括:产生随机数w;确定取决于数值R及取决于随机数w的模数M1和模数M2,其中R=2k,k等于所述模数M1和所述模数M2的位长,并计算第一模数乘积C和第二模数乘积D,其中C=A*B%M1,D=A*B%M2,以及基于所述第一模数乘积C和第二模数乘积D产生和输出非模数乘积。
附图说明
图1示意性地说明了本发明一实施例的具有免受旁信道攻击的高效非模数乘法器的计算装置的框图;
图2示意性地说明了本发明一实施例的用于基于蒙哥马利模数乘法的非模数乘法的方法的流程图。
具体实施方式
概述
本发明实施例提供了一种用于基于蒙哥马利模数乘法的高效非模数乘法的方法。方法包括具有随机模数的模数计算,此保护计算免受旁信道攻击。
蒙哥马利模数乘法(为简洁起见,也被简称为蒙哥马利乘法)为用于高效相乘的方法。为简单概述,假定两个大整数A和B,代替计算A*B,蒙哥马利乘法(表示为)产生A⊙B=A*B*R-1%M,其中R=2k,且k为模数M的位长。(符号“%”用于本描述及附图中以表示“模”,且符号“*”或“·”用于表示非模数乘法。)
在本发明实施例中,蒙哥马利乘法用于有效地计算形式A*B%M的表达式。为此目的,操作数中的仅一个转化为蒙哥马利域且乘以如下其它操作数:
公式1:
A′⊙B=A*R*B*R-1%M=A*B%M。
在本发明实施例中,非模数乘法器以公式1形式为两个不同模数M1和M2计算两个模数乘积,且组合两个模数乘积以导出非模数乘积(A*B)。根据ABH*R+ABL使用高位和低位部分表示非模数乘积,其中基于模数乘积A*B%M1和A*B%M2评估高位和低位部分。低位和高位部分可视为2n位乘积(A*B)的各别低位显著性和高位显著性子集。
基于R=2k及随机所选择的较小奇数确定模数M1和M2。本发明实施例中,计算模数乘积通过选择k(且因此R)足够大而显著简化。模数M1和M2中的随机分量w产生免受旁信道攻击的计算。更确切地说,在关于w的特定条件下,提出的方案导致与所选特定w无关的正确非模数乘法结果,但由于对于w的不同值,计算包括不同计算,基本功率消耗模式也将不同,这保护计算免受功率分析攻击。
在本发明和权利要求的情形下,可通过分析诸如计算期间消耗的功率或电流的适当参数来导出功率消耗模式。
系统描述
图1示意性地说明了本发明一实施例的包括免受旁信道攻击的高效非模数乘法器的计算装置20中的电路元件的框图。图中所示出的电路元件通常实施为诸如专用集成电路(Application-Specific Integrated Circuit;ASIC)或现场可编程门阵列(Field-Programmable Gate Array;FPGA)的集成电路(integrated circuit;IC)装置中的硬件逻辑电路,但可替代地实施于适合的可编程处理器上的软件中,或实施为硬件与软件元件的组合。
所绘示的电路执行可以广泛将多种不同配置和应用整合到计算装置中的非模数乘法函数,以执行与(例如)加密、解密和/或验证有关的运算。在图中仅示出了与非模数乘法直接有关的装置20的元件,并且这些元件与装置20的其它组件的集成对于本领域技术人员而言将是显而易见的。
装置20从电源(例如,电力供应器或电池(未示出))汲取电力。本发明实施例中的防止装置20受到试图通过分析由装置20消耗的功率的瞬时或频谱模式而获取机密信息的旁信道攻击。此攻击可以各种方式感测功率消耗,例如通过感测功率供应管线供给装置20上的电流,或通过测量装置附近的电磁辐射。
计算装置20具有一对输入28A、28B(例如,实施为存储器阵列中的位置)以接收n位输入A和B。装置20包括非模数乘法器24,所述非模数乘法器经由接口32接受A和B,且将非模数乘积(A*B)输出至输出36(诸如存储器阵列中的另一位置),其内容可递送至装置20的其它元件或反馈回到输入28A、28B中的一者或两者以用于后续计算(诸如用于求幂的多个连续乘法)。
非模数乘法器24包括蒙哥马利引擎40,所述蒙哥马利引擎经配置有待用于本发明实施例中的蒙哥马利算术的模数参数M 46和整数k 48,其中k等于M的位长。整数k确定R的值为R=2k
蒙哥马利引擎40从接口32接收输入A和B且计算A*B%M。(符号“%”用于当前描述及图式中以表示“模”,且符号“*”或“·”用于表示非模数乘法。)为执行A与B之间的非模数乘法,装置20应用蒙哥马利引擎40于具有表示为M1和M2的两个不同模数的A和B,且将模数乘积A*B%M1和A*B%M2递送至组合器50。此外,本发明实施例中,组合器50在模数乘积上应用其它计算以导出非模数乘积(A*B)。
蒙哥马利引擎40包括蒙哥马利乘法器52,所述蒙哥马利乘法器接受k位操作数54A和54B。假定输入至蒙哥马利乘法器54的输入表示为X和Y,所述蒙哥马利乘法器执行以下计算:
公式2:
X⊙Y=X*Y*R-1%M
蒙哥马利引擎40进一步包括接收模数M 46的转换器56。转换器56接收n位输入X(即,A或B)且将其转换为通过以下公式给定的蒙哥马利域X′:
公式3:
X=X*R%M
X′具有与M相同的位长(即,k位元)。本发明实施例中,通过选择M=(R-w),公式3中的计算等于计算X′=w*X,后者不需要模数计算且因此明显更简单。
蒙哥马利乘法器24将引擎40分别应用于模数M1和M2。可在各种排程方案中执行运算。在本发明实施例中,在经配置为模数M1时,蒙哥马利引擎40将输入B递送至操作数54B,将转换器56应用至输入A,且将A′=A*R%M1递送至操作数54A。蒙哥马利乘法器输出在此情况下通过以下公式给出:
公式4:
A′⊙B=A*R*B*R-1%M1=A*B%M1
在经配置成M2时,蒙哥马利引擎40将输入A递送至操作数54B,将转换器56应用至输入B,且将B′=B*R%M2递送至操作数54A。蒙哥马利乘法器输出在此情况下通过以下公式给出:
公式5:
B′⊙A=B*R*A*R-1%M2=A*B%M2
在公式4和5中,2n位值(A*B)减少到分别具有模数M1和M2的k位模数乘积。本发明实施例中,组合器50从公式4和5的两个模数乘积恢复非模数2n位值(A*B)。
本发明实施例中的模数参数M 46经配置为模数M1和M2中的一个。非模数乘法器24包括按以下计算模数M164和模数M268的模数随机化器60:
公式6:
M1=R-w
M2=R-(w-d)
其中d为适当的整数(例如,d=2或d为2的一些幂),且数值w 72为由随机产生器76所选择的随机或伪随机整数。(如在本发明的说明书中以及在权利要求书中使用的术语“随机”应理解为还包含“伪随机”数,除非上下文另外指示。)在本发明中,w经选择为比d大的随机奇数。
数值w经选择为奇数,由于蒙哥马利乘法需要奇数模数。另外,w经选择为足够小,使得转换器56可快速及有效地计算w*A和(w-d)*B。w的范围足够大以用于在M1和M2中实现有效随机化。在一实例实施例中,w包括32位随机数。
应注意,使用蒙哥马利引擎40和组合器50计算非模数乘积(A*B)的结果与随机w72(在关于w的特定条件下)的值无关,尽管实际基本计算确实取决于w。换句话说,将方案应用于具有从不同数值w1和w2导出的模数M1和M2对的同一输入A和B产生相同非模数结果(A*B)。然而,具有w1的计算(A*B)中所执行的算术运算不同于具有w2执行的,此产生不同各别功率消耗模式。
非模数乘法器24包括算术模块80,所述算术模块包括加法器82和非模数乘法器84。加法器和乘法器通常在预定义大小(诸如三十二位)的块上操作。算术模块80根据需要通过其各种元件(诸如蒙哥马利乘法器52、转换器56、组合器50和模数随机化器60)将非模数算术计算应用于乘法器24。
控制器88安排及协调在中执行非模数乘法的乘法器24的不同元件的运算。
基于蒙哥马利乘法的高效非模数乘法
图2示意性地说明了本发明一实施例的用于基于蒙哥马利模数乘法的非模数乘法的方法的流程图。在以下的描述中,方法经描述为通过图1的非模数乘法器24执行。
在输入步骤100处,方法以非模数乘法器24接收n位整数输入A和B开始。在随机化步骤104处,非模数乘法器例如使用随机产生器76产生随机奇数w(72)。另外在步骤104处,非模数乘法器设定整数k 48,所述整数确定R=2k。在一实施例中,将k设定为n加w的位长。举例来说,当w为32位整数时,k=n+32。通过将k选择为n加w的位长,以下条件得到满足。
公式7:
w*A<R
(w-d)*B<R
应注意,在公式7中,假定输入A和B为n位整数,如果上方条件为真,下方条件也为真,且因此仅上方条件应被视为选择R足够大。
在模数选择步骤108处,非模数乘法器根据上述公式6(即,M1=R-w、M2=R-(w-d))基于R=2k和随机整数w确定模数M1(64)和M2(68)。在转化步骤112处,蒙哥马利引擎40使用转换器56将A和B分别转换为蒙哥马利域模数M1和M2。在计算A′中,我们分配R=(R-w)+w,且使用公式7的条件w*A<R,我们获得高概率而且w*A<(R-w)或:
公式8:
A′=A*R%M1=w*A%(R-w)=w*A
在公式8中,模数乘(R-w)运算仅在w*A>(R-w)时需要,且可以其它方式省去。由于我们具有w*A<R,w*A超出(R-w)的概率为w/R,这是因为32位w和512位k小于232/2512,其几乎等于零。
类似地,在计算B′中,我们分配R=[R-(w-d)]+(w-d),且使用公式7的条件(w-d)*B<R,我们获得高概率而且(w-d)*B<[R-(w-d)]或:
公式9:
B′=B*R%M2=(w-d)*B%[R-(w-d)]=(w-d)*B
在一些实施例中,公式8和9中的乘法w*A和(w-d)*B分别由算术模块80执行。
在一些实施例中,蒙哥马利引擎40将转换器56分别应用于输入A以产生A′和输入B以产生B′。转换器56的输出(即,A′或B′)递送至蒙哥马利乘法器52的操作数54A。
在模数计算步骤114处,蒙哥马利乘法器52如上述公式4和5中所假定的计算模数乘积:
公式10:
C=A′⊙B=A*B%M1
公式11:
D=B′⊙A=A*B%M2
以下附录呈现其中使用不同模数M1和M2减小2m位整数Z用于通过可假定Z%M1和Z%M2求解的m位低位和高位部分Z1和Z0表示Z的方法。通过将附属的结果应用于Z=(A*B),可将非模数乘积分配到高位和低位部分中。
在高位/低位分配步骤116处,2n位乘积(A*B)分别分配到表示为ABH和ABL的高位和低位部分中,其中(A*B)=ABH*R+ABL。基于附录,得到公式12:
Figure BDA0001241052430000091
公式13:
ABL=C-w*ABH
在公式12和13中,R=2k,ABL为k位整数且ABH为(2n-k)位整数。在一些实施例中,d为2的幂,且在公式12中除以d有效实施为二进位移位运算。在输出步骤120处,非模数乘法器24根据以下公式输出非模数乘积(A*B):
公式14:
(A*B)=ABH*B+ABL
且方法随后终止。
每当调用图2的方法时,乘法器24通常选择不同的w值。因而,乘法器24和装置20整体的功率消耗的瞬时或频谱模式随机变化。即使输入值A和B保持相同,随机化功率消耗模式。因此,旁信道攻击不大可能从功率消耗剖面图的分析推导任何机密信息,例如,A和B的值。
上述实施例借助于实例给出,还可使用其它适当的实施例。举例来说,本发明实施例中,蒙哥马利引擎40包括单一蒙哥马利乘法器和至蒙哥马利域的单一转换器,两者应用两次以用于计算两个模数乘积A*B%M1和A*B%M2。在替代实施例中,其中蒙哥马利引擎包括两个蒙哥马利乘法器52和两个转换器56,平行计算两个模数乘积,此将计算时间减少一半。
附录
假设Z为2m位整数。Z可表示为Z=Z1*R+Z0,其中低位部分Z0和高位部分Z1包括m位整数,且R=2m。通过模数M1=R-w和M2=R-(w-d)减小2m位整数Z,其中w>d为与R相比极小的奇数,使得:
公式15:
Z%M1=(w*Z1+Z0)%M1
公式16:
Z%M2=[(w-d)*Z1+Z0]%M2
其可示出如果位长m选择得足够大,使得Z1<<M1,我们通过高概率具有,
Z%M1=w*Z1+Z0
Z%M2=(w-d)*Z1+Z0
且随后以下公式产生Z的高位和低位部分(假定Z%M1和Z%M2):
公式17:
Figure BDA0001241052430000101
公式18:
Figure BDA0001241052430000102
在本发明的替代实施例中,所述的步骤和运算是通过适当的可编程处理器在软件程序指令的控制下执行的。所述软件可以电子形式下载到处理器,例如,在网络上。另外地或可替代地,所述软件可以储存在有形的非暂时性计算机可读媒体上,例如,光学、磁性或电子存储媒体。
本发明实施例主要解决免受旁信道攻击的高效模数乘法运算,其中的方法和系统还可以使用其它应用,诸如在软件中实施非模数乘法,在基本乘法此情况下可更快但并不针对DPA攻击受到保护。
应了解,所述实施例以实例方式被引用,且本发明不限于上文已经具体展示并描述的内容。实情为,本发明的范畴包括上文所描述的各种特征的组合及子组合两者,以及一般技术人员在阅读前述描述之后将想到且并未在先前技术中公开的本发明的变化及修改。以引用的方式并入本专利申请案中的文件被视为申请案的整体部分,除了就这些并入文件中以与本说明书中明确地或隐含地描述的定义有冲突的方式来对任何术语进行定义而言,仅应考虑本说明书中的定义之外。

Claims (12)

1.一种非模数乘法器,其特征在于,包括:
接口,其经配置以接收n位的整数A和整数B;以及
电路,其经配置以通过执行计算序列来计算非模数乘积,所述非模数乘积表示为A*B,且经配置以在执行所述序列时使得所述非模数乘法器消耗的电力的模式随机化,所述序列包括:
产生随机数w;
确定取决于数值R及取决于所述随机数w的模数M1和模数M2,其中R=2k,k等于所述模数M1和所述模数M2的位长,并计算第一模数乘积C和第二模数乘积D,其中C=A*B%M1,D=A*B%M2;以及
基于所述第一模数乘积C和所述第二模数乘积D产生及输出所述非模数乘积,
其中,所述电路包含蒙哥马利乘法器,所述蒙哥马利乘法器经配置以计算所述第一模数乘积C和所述第二模数乘积D。
2.根据权利要求1所述的非模数乘法器,其中,所述电路经配置以:通过计算w*A将所述整数A转换为蒙哥马利域的所述模数M1中的A';通过计算(w-d)*B将所述整数B转换为蒙哥马利域的所述模数M2中的B',其中d为小于w的整数;以及通过使用所述蒙哥马利乘法器计算各别蒙哥马利乘积A'⊙B和A⊙B'来计算所述第一模数乘积C和所述第二模数乘积D。
3.根据权利要求1所述的非模数乘法器,其中,A*B表示为低位部分ABL和高位部分ABH的组合而满足A*B=ABH*R+ABL,且其中所述电路经配置以基于所述第一模数乘积C和所述第二模数乘积D计算所述高位部分ABH和所述低位部分ABL
4.根据权利要求3所述的非模数乘法器,其中,所述电路经配置以根据ABH=(C-D)/d计算所述高位部分ABH,其中d为用于将所述整数B转换为蒙哥马利域的整数,且经配置以根据ABL=C-w*ABH计算所述低位部分ABL
5.根据权利要求1所述的非模数乘法器,其中,所述电路经配置以根据M1=R-w确定所述模数M1,且经配置以根据M2=R-(w-d)确定所述模数M2,其中d为小于所述随机数w的整数。
6.一种用于非模数乘法的方法,其特征在于,包括:
接收n位的整数A和整数B;及
使用乘法器通过执行计算序列来计算非模数乘积,所述非模数乘积表示为A*B,且在执行所述序列时使得所述乘法器消耗的电力的模式随机化,所述序列包括:
产生随机数w;
确定取决于数值R及取决于所述随机数w的模数M1和模数M2,其中,R=2k,k等于所述模数M1和所述模数M2的位长,并计算第一模数乘积C和第二模数乘积D,其中C=A*B%M1,D=A*B%M2;以及
基于所述第一模数乘积C和所述第二模数乘积D产生及输出所述非模数乘积,
其中,计算所述第一模数乘积C和所述第二模数乘积D包括使用蒙哥马利乘法器计算所述第一模数乘积C和所述第二模数乘积D。
7.根据权利要求6所述的用于非模数乘法的方法,其中,计算所述第一模数乘积C和所述第二模数乘积D包括:通过计算w*A将所述整数A转换为蒙哥马利域的所述模数M1中的A';通过计算(w-d)*B将所述整数B转换为蒙哥马利域的所述模数M2中的B',其中d为小于w的整数;以及通过使用所述蒙哥马利乘法器计算各别蒙哥马利乘积A'⊙B和A⊙B'来计算所述第一模数乘积C和所述第二模数乘积D。
8.根据权利要求6所述的用于非模数乘法的方法,其中,A*B表示为低位部分ABL和高位部分ABH的组合而满足A*B=ABH*R+ABL,且包括基于所述第一模数乘积C和所述第二模数乘积D计算所述高位部分ABH和所述低位部分ABL
9.根据权利要求8所述的用于非模数乘法的方法,其中,计算所述高位部分ABH包括计算ABH=(C-D)/d,其中d为用于将所述整数B转换为蒙哥马利域的整数,且其中计算所述低位部分ABL包括计算ABL=C-w*ABH
10.根据权利要求6所述的用于非模数乘法的方法,其中,确定所述模数M1和所述模数M2包括根据M1=R-w确定所述模数M1,及根据M2=R-(w-d)确定所述模数M2,其中d为小于所述随机数w的整数。
11.一种计算装置,其特征在于,包括:
接口,其经配置以接收n位的整数A和整数B;以及
乘法器,其经配置以通过执行计算序列来计算非模数乘积,所述非模数乘积表示为A*B,且经配置以在执行所述序列时使得所述乘法器消耗的电力的模式随机化,所述序列包括:
产生随机数w;
确定取决于数值R及取决于所述随机数w的模数M1和模数M2,其中R=2k,k等于所述模数M1和所述模数M2的位长,并计算第一模数乘积C和第二模数乘积D,其中C=A*B%M1,D=A*B%M2;以及
基于所述第一模数乘积C和所述第二模数乘积D产生及输出所述非模数乘积,
其中,所述乘法器包含蒙哥马利乘法器,所述蒙哥马利乘法器经配置以计算所述第一模数乘积C和所述第二模数乘积D。
12.根据权利要求11所述的计算装置,其中,所述乘法器通过不同的各别所述随机数w值应用所述整数A与所述整数B之间的第一和第二非模数乘法运算,其中对应于执行所述第一非模数乘法运算和所述第二非模数乘法运算期间消耗的功率的第一和第二功率消耗模式包括不同的各别功率消耗模式。
CN201710137121.4A 2016-03-30 2017-03-08 非模数乘法器、用于非模数乘法的方法及计算装置 Active CN107273089B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IL244842A IL244842A0 (en) 2016-03-30 2016-03-30 Efficient non-modular multiplexing is protected against side-channel attacks
IL244842 2016-03-30

Publications (2)

Publication Number Publication Date
CN107273089A CN107273089A (zh) 2017-10-20
CN107273089B true CN107273089B (zh) 2020-09-29

Family

ID=57300906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710137121.4A Active CN107273089B (zh) 2016-03-30 2017-03-08 非模数乘法器、用于非模数乘法的方法及计算装置

Country Status (7)

Country Link
US (1) US10133554B2 (zh)
EP (1) EP3226120B1 (zh)
KR (1) KR101990861B1 (zh)
CN (1) CN107273089B (zh)
ES (1) ES2747758T3 (zh)
IL (1) IL244842A0 (zh)
TW (1) TWI630545B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019232159A1 (en) * 2018-05-30 2019-12-05 Lg Electronics, Inc. Modulus calculation that leverages computer architecture and/or operand clustering
US11354383B2 (en) * 2019-09-27 2022-06-07 Applied Materials, Inc Successive bit-ordered binary-weighted multiplier-accumulator

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040059767A1 (en) * 2002-09-20 2004-03-25 Pierre-Yvan Liardet Masking of factorized data in a residue number system
CN1650254A (zh) * 2002-04-29 2005-08-03 因芬尼昂技术股份公司 计算模数乘法之结果的装置及方法
CN1702613A (zh) * 2004-03-02 2005-11-30 三星电子株式会社 蒙哥马利模乘法器
CN101110016A (zh) * 2007-08-29 2008-01-23 中国人民解放军国防科学技术大学 子字并行整数乘法器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200841232A (en) * 2007-04-09 2008-10-16 Univ Feng Chia Finite field Montgomery multiplier
CN102207847B (zh) * 2011-05-06 2013-12-04 广州杰赛科技股份有限公司 基于蒙哥马利模乘运算的数据加解密处理方法及装置
KR20130111721A (ko) * 2012-04-02 2013-10-11 삼성전자주식회사 부분 곱 생성기의 부스코드 생성방법, 컴퓨터 시스템 및 그 매체와 디지털 신호프로세서
CN102999313B (zh) * 2012-12-24 2016-01-20 飞天诚信科技股份有限公司 一种基于蒙哥马利模乘的数据处理方法
CN103226461B (zh) * 2013-03-26 2016-07-06 中山大学 一种用于电路的蒙哥马利模乘方法及其电路
CN103761068B (zh) * 2014-01-26 2017-02-01 上海交通大学 优化的蒙哥马利模乘硬件
US9813232B2 (en) * 2015-03-17 2017-11-07 Cypress Semiconductor Corporation Device and method for resisting non-invasive attacks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1650254A (zh) * 2002-04-29 2005-08-03 因芬尼昂技术股份公司 计算模数乘法之结果的装置及方法
US20040059767A1 (en) * 2002-09-20 2004-03-25 Pierre-Yvan Liardet Masking of factorized data in a residue number system
CN1702613A (zh) * 2004-03-02 2005-11-30 三星电子株式会社 蒙哥马利模乘法器
CN101110016A (zh) * 2007-08-29 2008-01-23 中国人民解放军国防科学技术大学 子字并行整数乘法器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Efficient Architectures for implementing Montgomery Modular Multiplication and RSA Modular Exponentiation on Reconfigurable Logic;Alan Daly等;《Proceedings of the 2002 ACM/SIGDA tenth international symposium on Field-programmable gate arrays》;20020228;第40-49页 *
Leak Resistant Arithmetic;Jean-Claude Bajard等;《Lecture Notes in Computer Science》;20040831;第1-14页 *
Randomised multi-modulo residue number system architecture for double-and-add to prevent power analysis side channel attacks;Jude Angelo Ambrose等;《IET Circuits, Devices & Systems》;20131231;第7卷(第5期);第283-293页 *

Also Published As

Publication number Publication date
US20170286063A1 (en) 2017-10-05
KR101990861B1 (ko) 2019-09-30
ES2747758T3 (es) 2020-03-11
IL244842A0 (en) 2016-07-31
EP3226120A1 (en) 2017-10-04
CN107273089A (zh) 2017-10-20
EP3226120B1 (en) 2019-07-17
TW201802666A (zh) 2018-01-16
KR20170113268A (ko) 2017-10-12
US10133554B2 (en) 2018-11-20
TWI630545B (zh) 2018-07-21

Similar Documents

Publication Publication Date Title
CN107040362B (zh) 模乘设备和方法
KR102136911B1 (ko) 스칼라 또는 멱수와의 곱셈 연산을 포함하는 암호화 방법
JP5488718B2 (ja) 暗号処理装置、暗号処理方法、およびプログラム
EP1840732A1 (en) Protection against side channel attacks
EP1014617A2 (en) Method and apparatus for elliptic curve cryptography and recording medium therefor
WO2008112273A1 (en) Cryptographic method and system
JP5449576B2 (ja) 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法および剰余演算プログラム
US20090136025A1 (en) Method for scalarly multiplying points on an elliptic curve
JP5182364B2 (ja) サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
US20100287384A1 (en) Arrangement for and method of protecting a data processing device against an attack or analysis
CN107273089B (zh) 非模数乘法器、用于非模数乘法的方法及计算装置
CN105337734B (zh) 包括错误检测的椭圆曲线加密方法
US10057064B2 (en) Computational method, computational device and computer software product for montgomery domain
JP2005020735A (ja) データ処理装置におけるサイドチャネル攻撃防止
JP2004163687A (ja) 楕円曲線暗号装置、楕円曲線暗号プログラム
Dąbrowski et al. Generation and Implementation of Cryptographically Strong Elliptic Curves
Sakai et al. Simple power analysis on fast modular reduction with generalized mersenne prime for elliptic curve cryptosystems
JP5179933B2 (ja) データ処理装置
Fürbass ECC signature generation device for RFID tags
US20150180665A1 (en) Optimized hardware architecture and method for ecc point doubling using jacobian coordinates over short weierstrass curves

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant