CN103765493B - 数字平方计算机实现的方法和设备 - Google Patents

数字平方计算机实现的方法和设备 Download PDF

Info

Publication number
CN103765493B
CN103765493B CN201180073287.5A CN201180073287A CN103765493B CN 103765493 B CN103765493 B CN 103765493B CN 201180073287 A CN201180073287 A CN 201180073287A CN 103765493 B CN103765493 B CN 103765493B
Authority
CN
China
Prior art keywords
individual
bit register
stored
integer
processor
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.)
Expired - Fee Related
Application number
CN201180073287.5A
Other languages
English (en)
Other versions
CN103765493A (zh
Inventor
S.格伦
V.克拉斯诺夫
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN103765493A publication Critical patent/CN103765493A/zh
Application granted granted Critical
Publication of CN103765493B publication Critical patent/CN103765493B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/552Indexing scheme relating to groups G06F7/552 - G06F7/5525
    • G06F2207/5523Calculates a power, e.g. the square, of a number or a function, e.g. polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

本公开内容的实施例描述与大数字平方相关联的计算机实现的方法、计算机实现的媒体和计算机系统。将数字x平方的计算机实现的方法可包括在处理器的t个b比特寄存器中存储x的t数位向量表示。使用所述t个b比特寄存器中存储的x,可生成并在处理器的2t个b比特寄存器中存储2t数位中间向量。t个b比特或2t个b比特寄存器至少之一中存储的值可向左移位n。n可以是至少等于1的整数。在移位后的某个点,数字x的平方w可由在2t个b比特寄存器中存储的2t数位结果向量表示。其它实施例也可描述和/或声明。

Description

数字平方计算机实现的方法和设备
技术领域
本发明的实施例一般涉及数据处理领域,并且具体地说,涉及与许多密码算法相关联的大数字平方。
背景技术
本文中提供的背景描述是为了概括介绍公开内容的上下文。当前有名的发明者的工作(就其在本背景部分中描述而言)及在提交之时不可视为现有技术的描述的方面,均未被明确或隐含承认为相对于本公开内容的现有技术。除非本文中另有指示,否则,此部分中描述的方案不是本公开内容的权利要求的现有技术,并且未由于包含在本部分中而被承认是现有技术。
大数字平方可以是密码运算的组成部分。例如,Rivest, Shamir和Adleman(“RSA”)密码算法可包括两个模幂运算。w进制模幂运算算法可包括迭代通过w比特的群组中的阶位的环。在每次迭代中,可执行w模平方运算,随后是单模乘运算。模平方运算可包括一个大整数平方加上取决于使用的方法而有所不同的多个更小的乘法和加法。模乘法可包括一个大的整数乘法加上同样取决于使用的方法的几个更小的乘法和加法。在一些情况下,大整数平方一般可涉及8或16数位的整数,并且可消耗大约40%的模平方运算。例如,使用w=4的窗口大小(每模乘法四个模平方运算)时,大整数平方可消耗大约三分之一的幂运算时间。对于更大的窗口大小(例如,w=5,w=6并以此类推),大整数平方运算的相对权重可增大。
诸如大整数x等大数字可在计算机上通过tb比特数位表示。比特的数量b可以是给定体系结构上字中比特的数量,并且数位的数量t可以是表示数字x要求的字的数量。例如,在64比特处理器(例如,x86-64体系结构)上,8数位数字具有总共512个比特,并且16数位数字具有1024个比特。用于将大数字平方的示例算法在下面示出:
算法1
输入:
输出:
1.对于从0到(2t-1)的i,执行:w[i]=0
2.对于从0到(t-1)的i,执行:
2.1
2.2
2.3c=carry
2.4对于从(i+1)到(t-1)的j,执行:
2.5
3.返回w
在上述算法中,carry可以是从执行的最近加法运算的进位,cu可以是寄存器。
附图说明
结合附图,通过下面的详细描述,将容易理解实施例。为有助于此描述,类似的标号指示类型的结构要素。在附图的图形中,实施例以示例方式而不是限制方式示出。
图1根据本公开内容的一实施例,以示意图方式示出用于将大数字平方的示例方法。
图2根据本公开内容的一实施例,列出可使用两种不同算法执行以将大数字平方的示例运算。
图3根据本公开内容的一实施例,以示意图方式示出配置成实现密码操作和大数字平方的示例系统。
具体实施方式
在各种实施例中,可提供计算机实现的方法以将数字x平方。方法可包括在处理器的tb比特寄存器中存储xt数位向量表示;使用所述tb比特寄存器中存储的x,生成并在处理器的2tb比特寄存器中存储2t数位中间向量;以及将tb比特或2tb比特寄存器至少之一中存储的值向左移位n,其中,n是至少等于1的整数。在所述移位后,数字x的平方w可由在2tb比特寄存器中存储的2t数位结果向量表示。在一些实施例中,n=1。
在各种实施例中,系统可包括处理器、耦合到处理器的通信信道和配置成由处理器操作以将消息加密以便在信道上传送和/或将在信道上收到的消息解密的密码模块。密码模块可配置成将表示为t数位向量的数字x平方,作为加密或解密的一部分。为将数字x平方,密码模块可配置成:在处理器的tb比特寄存器中存储x;使用所述tb比特寄存器中存储的x,生成并在处理器的2tb比特寄存器中存储2t数位中间向量;以及将tb比特或2tb比特寄存器至少之一中存储的值向左移位n,其中,n是至少等于1的整数。在移位操作后,数字x的平方w可由在2tb比特寄存器中存储的2t数位结果向量表示。在一些实施例中,n=1。
在各种实施例中,提供了其中包含计算机可读代码的非暂时性计算机可读媒体。计算机可读代码可包括指令,指令配置成允许设备响应指令的执行而执行以下操作:
接收要平方的数字x的输入,其中x存储在tb比特存储器位置中,
分配2tb比特存储器位置,以存储x的平方;
对于每个整数i,执行以下操作:
对于每个整数j,执行以下操作:
设置
设置
设置
设置
对于每个整数i,执行以下操作:
设置
设置
c=carry
其中,carry是执行的最近加法运算的进位,并且cu是寄存器。
在下面的详细描述中,参照了形成本文一部分的附图,并且图中类似的标号在所有图形中指示类似的部分,通过示图方式示出了可实践的实施例。要理解的是,在不脱离本公开内容的范围的情况下可利用其它实施例,并且可进行结构或逻辑更改。因此,下面的详细描述不可从限制的意义理解,并且实施例的范围只由随附权利要求及其等效物定义。
各种操作可又以对理解所述主题最有帮助的方式描述为多个离散动作或操作。然而,描述的顺序不应理解为暗示这些操作一定与顺序相关。具体而言,可不以介绍的顺序执行这些操作。所述操作可以与所述实施例不同的顺序执行。可执行各种另外的操作,和/或可在另外的实施例中忽略所述操作。
为便于理解本公开内容,短语“A和/或B”表示(A)、(B)或(A和B)。为便于理解本公开内容,短语“A、B和C”表示(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
描述可使用短语“在一实施例中”或“在实施例中”,这均可指一个或多个相同或不同的实施例。此外,如相对于本公开内容的实施例使用的术语“包括”、“具有”及诸如此类同义。
在本文中使用时,术语“模块”可指以下所述、以下所述的一部分或包括以下所述:专用集成电路(“ASIC”)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或群组)和/或存储器(共享、专用或群组)、组合逻辑电路和/或提供所需功能性的其它适合组件。
背景部分中描述的算法1可展示以下特性,其中的一个或几个特性可不是最佳的。可使用在第2.4.1和2.4.2行的乘法(“mul”)指令计算积。积可表示为多达2b个比特,并且因此,高和低比特可存储在两个单独的b比特寄存器中(例如,在加州圣克拉拉的英特尔公司生产的Intel x86-64体系结构处理器中在%rax和%rdx寄存器中)。使用在第2.4.1行的“add”指令,可将积的低部分(例如,在%rax寄存器中存储)加上变量u。使用在第2.4.2行的进位加使用(“adc”)指令,可将积的高部分(例如,在%rdx寄存器中存储)加上变量c。在第2.3行,使用“adc”指令和0的中间值,可将“adc”指令的进位加到第三寄存器,例如,保留0的值。积的低和高部分的相加(第2.4.1和2.4.2行)可重复进行以适应乘以2。在第2.4.1行,使用“add”指令,可将u加到在阵列w[i+j]的值。在第2.4.2行,使用“adc”指令和0的中间值,可将进位加上c;c随后可移到u
算法1可以各种方式进行优化。例如,可分割算法1的一些计算,以便乘以2延迟到最后。这可将执行的加法指令(例如,“add”和/或“adc”)的数量几乎减少一半。
图1示出将例如可大约为10308(1024个比特)或更大的大数字x平方的示例方法100。在102,在处理器的tb比特寄存器中可存储xt数位向量表示,例如, 。在104,使用在tb比特寄存器中存储的x,可生成2t数位中间向量w,例如,。w可存储在处理器的2tb比特寄存器中。在106,tb比特或2tb比特寄存器至少之一中存储的值可向左移位n。在一些实施例中,n可以是至少等于1的整数。在一些实施例中,106可重复进行,直到将整个向量移位。在106的移位后某一点,例如,在一些实施例中执行另外的指令(未示出)后,可将x的平方由在2tb比特寄存器中存储的2t数位结果向量表示。
下面在算法2中示出根据图1的方法100可实现的示例算法。如上所述,cu和s可以是在处理器的相应寄存器中存储的变量/值。
算法2
输入:
输出:
1.对于从0到(2t-1)的i,执行:w[i]=0;
2.对于从0到(t-2)的i,执行:
2.4对于从(i+1)到(t-1)的j,执行:
2.5
3.
4.对于从0到(t-1)的i,执行:
5.返回w
与如算法1中重复乘以2不同,在第3行,算法2包括将整个向量向左移位1的指令。此移位可以各种方式实现。在一些实施例中,将tb比特或2tb比特寄存器至少之一中存储的值向左移位n包括执行双精度左移(“shld”)指令,以将在tb比特寄存器或2tb比特寄存器至少之一中存储的值向左移位n。例如,在Intel x-86 64比特体系结构中,shld指令shld(reg1, reg2, imm8)可将reg1左移imm8(立即或常数值)比特,同时将reg2的比特从右移imm8比特。
在其它实施例中,将tb比特寄存器或2tb比特寄存器至少之一中存储的值向左移位n包括执行进位左环移(“rcl”)指令。这可将在tb比特或2tb比特寄存器至少之一中存储的值向左移位n。例如,可使用立即值1,从最低有效字向上在向量上重复进行“rcl”指令。在其它实施例中,SIMD指令可用于移位。
图2根据各种实施例,示出分别使用算法1和算法2执行的汇编语言指令的示例摘要。如图2所示,使用算法2执行的指令的数量少于使用算法1执行的指令的数量。
算法1和2在第二代Intel® Core处理器上测试。为将512比特整数平方,算法2使用144个中央处理单元(“CPU”)周期,而算法1使用193个CPU周期,节省了大约25%。为将1024比特整数平方,算法2使用562个CPU周期,而算法1使用838个CPU周期,节省了大约33%。
本文中所述技术和设备可实现到使用适合硬件和/或软件的系统中以根据需要配置。对于一个实施例,图3示出示例系统300,系统包括一个或多个处理器304、耦合到处理器304至少之一的系统控制逻辑308、耦合到系统控制逻辑308的系统存储器312、耦合到系统控制逻辑308的非易失性存储器(TSTVM)/存储装置316及耦合到系统控制逻辑308的一个或多个通信接口320。
用于一个实施例的系统控制逻辑308可包括任何适合的接口控制器以提供到处理器304至少之一和/或到与系统控制逻辑308进行通信的任何适合装置或组件的任何适合接口。
用于一个实施例的系统控制逻辑308可包括一个或多个存储器控制器以提供到系统存储器312的接口。系统存储器312可用于例如为系统300加载和存储数据和/或指令。例如,用于一个实施列的系统存储器312可包括任何适合的易失性存储器,如适合的动态随机存取存储器(DRAM)。
用于一个实施例的系统控制逻辑308可包括一个或多个输入/输出(I/O)控制器以提供到NVM/存储装置316和通信接口320的接口。
例如,NVM/存储装置316可用于存储数据和/或指令。NVM/存储装置316例如可包括任何适合的非易失性存储器,如闪存存储器,和/或例如可包括任何适合的非易失性存储装置,如一个或多个硬盘驱动器(HDD)、一个或多个固态驱动器、一个或多个压缩光盘(CD)和/或一个或多个数字多功能光盘(DVD)驱动器。
NVM/存储装置316可包括安装有系统300的装置在物理上的一部分的存储资源,或者它可由装置访问但不一定是其一部分。例如,可经通信接口320通过网络访问NVM/存储装置316。
通信接口320可提供接口以便系统300通过通信信道326与一个或多个网络328和/或与任何另一适合的装置进行通信。通信接口320可包括任何适合的硬件和/或固件。用于一个实施例的通信接口320例如可包括无线网络适配器。通信接口320可使用一个或多个天线。
系统存储器312和NVM/存储装置316可分别包括密码模块324的临时和永久性副本。密码模块324可包括在由处理器304至少之一执行时促使系统300执行诸如RSA等密码操作的指令。在一些实施例中,密码模块324可另外/备选位于系统控制逻辑308中。
具体而言,密码模块324可配置成由处理器304至少之一操作以将消息加密以便在信道326上传送和/或将信道328上收到的消息解密。作为这些密码操作的一部分,密码模块可配置成使用诸如本文中所述那些方法等各种方法,执行大数字平方。
对于一个实施例,处理器304至少之一可以与用于系统控制逻辑308的一个或多个控制器的逻辑封装在一起。对于一个实施例,处理器304至少之一可以与用于系统控制逻辑308的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,处理器304至少之一可以与用于系统控制逻辑308的一个或多个控制器的逻辑集成在相同管芯上。对于一个实施例,处理器304至少之一可以与用于系统控制逻辑308的一个或多个控制器的逻辑集成在相同管芯上以形成芯片级系统(SoC)。
系统300可以是台式或膝上型计算机、移动电话、智能电话或适用于接收无线通信信号的任何另一装置。在各种实施例中,系统300可具有更多或更少组件和/或不同体系结构。
下面在算法3中示出根据图1的方法100可实现的另一示例算法。如上所述,c、u和v可以是在处理器的相应寄存器中存储的变量/值。
算法3
输入:
输出:
1.对于从0到(2t-1)的i,执行:w[i]=0;
2.对于从2到(t-1)的i,执行:
3.对于从0到(t-1)的i,执行:
3.1.;
3.2.;
3.3.;
3.4.;
3.7.对于从(i+2)到(t-1)的j,执行:
3.8.;
4.c=0;
5.如果x[t-1] >> (b-1 )=1,则执行:
5.1. 对于从0到(t-2)的i,执行:
5.1.1.;
5.1.3c=carry
5.2
6.返回w
类似于算法2,算法3也可节省乘以2。它也可只包括算法2一半的移位指令。然而,一些信息可由于左移而丢失。相应地,步骤4可适应此可能性。
图4根据各种实施例示出使用算法2(图4中称为“变化A”)和算法3(图4中称为“变化B”)执行512比特和1024比特乘法的示例结果。在这些测试中,使用了x86-64内联汇编指令,但可使用其它类型的指令。比较该性能和优化的OpenSSL 1.0.0d函数bn_sqr_comba8的性能,该函数是专门为512比特数平方优化的汇编语言函数。也比较用于1024比特乘法的BN_sq函数。也比较了算法2和3的性能和GMP 5.0.2函数 的性能,该函数是专门针对Intel® Core处理器的汇编函数。在Intel®Core™和第二代Intel® Core™处理器上测量性能。使用了带有100000次重复的环中的平方函数。确定了计算平方所用的平均时间。该过程重复了5000次。
图4的顶部图表示出用于512比特乘法测试的示例结果。长块表示CPU周期。要求的周期越少,算法就越快。算法2在两个处理器上均可最快,对于两种大小,在前一代Intel®Core™ CPU (i7-X980)上实现速度10.5%增大,并且在第二代Intel® Core™ CPU (i7-2600K)中实现超过18%增大。
虽然为便于描述,某些实施例已在本文中示出和描述,但在不脱离本公开内容的范围的情况下,计划实现相同目的的各种备用和/或等效实施例或实现可替代所示和所述的实施例。本申请旨在涵盖本文中所述的实施例的所有修改或变化。因此,很明显,本文中描述的实施例只受权利要求及其等效物的限制。

Claims (14)

1.一种将数字x平方的计算机实现的方法,作为加密或解密的一部分,包括:
在处理器的tb比特寄存器中存储xt数位向量表示;
使用所述tb比特寄存器中存储的x,生成并在所述处理器的2tb比特寄存器中存储2t数位中间向量;
将所述tb比特寄存器至少之一中存储的值向左移位n,其中n是至少等于1的整数;
其中在所述移位后,数字x的平方w由所述2tb比特寄存器中存储的所述2t数位结果向量表示,并且tb是整数。
2.如权利要求1所述的计算机实现的方法,其中将所述tb比特寄存器至少之一中存储的值向左移位n包括执行双精度左移(“shld”)指令以将所述tb比特寄存器至少之一中存储的值向左移位n
3.如权利要求1所述的计算机实现的方法,其中将所述tb比特寄存器至少之一中存储的值向左移位n包括执行进位左环移(“rcl”)指令以将所述tb比特寄存器至少之一中存储的值向左移位n
4.如权利要求1所述的计算机实现的方法,其中n =1。
5.如权利要求1所述的计算机实现的方法,其中所述tb比特寄存器由x=x[0]+x[1]+x[2]...+x[t-1]表示,所述2tb比特寄存器由w=w[0]+w[1]+w[2]...+w[2t-1]表示,并且所述方法还包括:
对于每个整数i,由所述处理器执行以下操作:
设置
其是y是临时向量。
6.如权利要求5所述的计算机实现的方法,还包括:
对于每个整数i,由所述处理器执行以下操作:
设置
设置
设置
设置
对于每个整数j
设置
设置
设置
设置c = 0;
其中c是寄存器。
7.如权利要求6所述的计算机实现的方法,还包括由所述处理器执行以下操作:
如果,则执行以下操作:
对于每个整数i,执行以下操作:
设置
设置c=carry
设置
返回w
8.一种系统,包括:
处理器;
通信信道,耦合到所述处理器;
密码模块,配置成由所述处理器操作以将消息加密以便在所述信道上传送和/或将在所述信道上收到的消息解密,其中所述密码模块配置成将表示为t数位向量的数字x平方,作为加密或解密的一部分,其中为将数字x平方,所述密码模块配置成:
在所述处理器的tb比特寄存器中存储x;
使用所述tb比特寄存器中存储的x,生成并在所述处理器的2tb比特寄存器中存储2t数位中间向量;以及
将所述tb比特寄存器至少之一中存储的值向左移位n,其中n是至少等于1的整数;
其中在所述移位操作后,数字x的平方w由所述2tb比特寄存器中存储的所述2t数位结果向量表示,并且tb是整数。
9.如权利要求8所述的系统,其中为将在所述tb比特寄存器至少之一中存储的值向左移位n,所述密码模块配置成执行双精度左移(“shld”)指令以将所述tb比特寄存器至少之一中存储的值向左移位n
10.如权利要求8所述的系统,其中为将在所述tb比特寄存器至少之一中存储的值向左移位n,所述密码模块配置成执行进位左环移(“rcl”)指令以将所述tb比特寄存器至少之一中存储的值向左移位n
11.如权利要求8所述的系统,其中n=1。
12.如权利要求8所述的系统,其中所述tb比特寄存器由x=x[0]+x[1]+x[2]...+x[t-1]表示,所述2tb比特寄存器由w=w[0]+w[1]+w[2]...+w[2t-1]表示,并且其中所述密码模块还配置成:
对于每个整数i,执行以下操作:
设置
其是y是临时向量。
13.如权利要求12所述的系统,其中所述密码模块还配置成:
对于每个整数i,执行以下操作:
设置
设置
设置
设置
对于每个整数j
设置
设置
设置
设置c = 0;
其中c是寄存器。
14.如权利要求13所述的系统,其中所述密码模块还配置成执行以下操作:
如果,则执行以下操作:
对于每个整数i,执行以下操作:
设置
设置c=carry
设置
返回w。
CN201180073287.5A 2011-09-06 2011-09-06 数字平方计算机实现的方法和设备 Expired - Fee Related CN103765493B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/050496 WO2013036217A1 (en) 2011-09-06 2011-09-06 Number squaring computer-implemented method and apparatus

Publications (2)

Publication Number Publication Date
CN103765493A CN103765493A (zh) 2014-04-30
CN103765493B true CN103765493B (zh) 2017-10-24

Family

ID=47832459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180073287.5A Expired - Fee Related CN103765493B (zh) 2011-09-06 2011-09-06 数字平方计算机实现的方法和设备

Country Status (4)

Country Link
US (1) US9383966B2 (zh)
EP (1) EP2754143A4 (zh)
CN (1) CN103765493B (zh)
WO (1) WO2013036217A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9355068B2 (en) 2012-06-29 2016-05-31 Intel Corporation Vector multiplication with operand base system conversion and re-conversion
US10095516B2 (en) 2012-06-29 2018-10-09 Intel Corporation Vector multiplication with accumulation in large register space
CN108024005B (zh) * 2016-11-04 2020-08-21 北京搜狗科技发展有限公司 信息处理方法、装置、智能终端、服务器和系统
CN109039640B (zh) * 2018-08-03 2021-10-19 广东工业大学 一种基于rsa密码算法的加解密硬件系统及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52149454A (en) 1976-06-07 1977-12-12 Nippon Telegr & Teleph Corp <Ntt> Square number generating circuit
DE19709106A1 (de) * 1997-03-06 1998-09-10 Philips Patentverwaltung Rechenschaltung zum Berechnen eines Quadrats
US6766346B2 (en) * 1999-11-30 2004-07-20 Mosaid Technologies Incorporation System and method for computing a square of a number
US6820105B2 (en) * 2000-05-11 2004-11-16 Cyberguard Corporation Accelerated montgomery exponentiation using plural multipliers
EP1299797B1 (en) * 2000-05-15 2009-07-29 SanDisk IL Ltd Extending the range of computational fields of integers
US7113593B2 (en) * 2001-03-06 2006-09-26 Ericsson Inc. Recursive cryptoaccelerator and recursive VHDL design of logic circuits

Also Published As

Publication number Publication date
US20130297664A1 (en) 2013-11-07
CN103765493A (zh) 2014-04-30
EP2754143A1 (en) 2014-07-16
US9383966B2 (en) 2016-07-05
EP2754143A4 (en) 2015-06-03
WO2013036217A1 (en) 2013-03-14

Similar Documents

Publication Publication Date Title
US11416638B2 (en) Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques
TWI731543B (zh) 計算機資料處理方法及裝置
US11190340B2 (en) Efficient unified hardware implementation of multiple ciphers
US11222127B2 (en) Processor hardware and instructions for SHA3 cryptographic operations
US20130301826A1 (en) System, method, and program for protecting cryptographic algorithms from side-channel attacks
KR102075848B1 (ko) 다항식 연산 최적화 처리 장치, 다항식 연산 최적화 처리 방법 및 기록매체
CN103765493B (zh) 数字平方计算机实现的方法和设备
CN113742741A (zh) 人工智能计算半导体器件和包含该器件的存储器件
CN116633520A (zh) 同态加密操作加速器以及同态加密操作加速器的操作方法
CN109144472B (zh) 一种二元扩域椭圆曲线的标量乘法及其实现电路
CN116436709B (zh) 一种数据的加解密方法、装置、设备和介质
CN105027074A (zh) 质数产生
WO2022252876A1 (en) A hardware architecture for memory organization for fully homomorphic encryption
Li et al. Accelerating polynomial modular multiplication with crossbar-based compute-in-memory
US11977883B2 (en) Reconfigurable crypto-processor
Zhang et al. A high performance pseudo-multi-core ECC processor over GF (2 163)
Hu et al. A secure modular division algorithm embedding with error detection and low-area ASIC implementation
US20230269067A1 (en) Homomorphic encryption operation accelerator, and operating method of homomorphic encryption operation accelerator
Nedjah et al. Four hardware implementations for the m-ary modular exponentiation
Choi et al. Lightweight Polynomial Multiplication Accelerator for NTRU Using Shared SRAM
KR20200013372A (ko) 저전력 디바이스 환경상에서 대용량 암호화 행렬 연산 최적화 처리 방법
CN118233081B (zh) 一种基于neon指令集的国密sm2底层模乘优化方法
Wang et al. A Folded Computation-in-Memory Accelerator for Fast Polynomial Multiplication in BIKE
US20230376273A1 (en) Booth multiplier for compute-in-memory
CN117271437A (zh) 一种处理器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171024

Termination date: 20190906