CN100437548C - 在Montgomery乘法内利用SIMD指令的方法和系统 - Google Patents

在Montgomery乘法内利用SIMD指令的方法和系统 Download PDF

Info

Publication number
CN100437548C
CN100437548C CNB2004100855415A CN200410085541A CN100437548C CN 100437548 C CN100437548 C CN 100437548C CN B2004100855415 A CNB2004100855415 A CN B2004100855415A CN 200410085541 A CN200410085541 A CN 200410085541A CN 100437548 C CN100437548 C CN 100437548C
Authority
CN
China
Prior art keywords
modulus
array
multiplication
instructions
integer
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 - Lifetime
Application number
CNB2004100855415A
Other languages
English (en)
Chinese (zh)
Other versions
CN1607518A (zh
Inventor
P·L·蒙特格米里
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1607518A publication Critical patent/CN1607518A/zh
Application granted granted Critical
Publication of CN100437548C publication Critical patent/CN100437548C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/728Methods 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 Montgomery reduction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
CNB2004100855415A 2003-10-15 2004-10-15 在Montgomery乘法内利用SIMD指令的方法和系统 Expired - Lifetime CN100437548C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/686,316 2003-10-15
US10/686,316 US7532720B2 (en) 2003-10-15 2003-10-15 Utilizing SIMD instructions within montgomery multiplication

Publications (2)

Publication Number Publication Date
CN1607518A CN1607518A (zh) 2005-04-20
CN100437548C true CN100437548C (zh) 2008-11-26

Family

ID=34377640

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100855415A Expired - Lifetime CN100437548C (zh) 2003-10-15 2004-10-15 在Montgomery乘法内利用SIMD指令的方法和系统

Country Status (7)

Country Link
US (1) US7532720B2 (https=)
EP (1) EP1524594B1 (https=)
JP (1) JP4662744B2 (https=)
KR (1) KR101103893B1 (https=)
CN (1) CN100437548C (https=)
AT (1) ATE413642T1 (https=)
DE (1) DE602004017559D1 (https=)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040249782A1 (en) * 2003-06-04 2004-12-09 International Business Machines Corporation Method and system for highly efficient database bitmap index processing
DE602004027943D1 (de) * 2003-11-16 2010-08-12 Sandisk Il Ltd Verbesserte natürliche montgomery-exponentenmaskierung
KR100530372B1 (ko) * 2003-12-20 2005-11-22 삼성전자주식회사 사이드채널 공격을 방지할 수 있는 타원곡선 암호화 방법
US7664810B2 (en) * 2004-05-14 2010-02-16 Via Technologies, Inc. Microprocessor apparatus and method for modular exponentiation
JP5027422B2 (ja) * 2006-02-09 2012-09-19 ルネサスエレクトロニクス株式会社 剰余演算処理装置
US8036379B2 (en) * 2006-03-15 2011-10-11 Microsoft Corporation Cryptographic processing
KR20120077164A (ko) 2010-12-30 2012-07-10 삼성전자주식회사 Simd 구조를 사용하는 복소수 연산을 위한 사용하는 장치 및 방법
CN102431508B (zh) * 2011-10-12 2014-06-11 奇瑞汽车股份有限公司 太阳能汽车天窗供电控制方法、系统以及汽车
WO2013089750A1 (en) * 2011-12-15 2013-06-20 Intel Corporation Methods to optimize a program loop via vector instructions using a shuffle table and a blend table
EP2856303B1 (en) * 2012-05-30 2017-08-02 Intel Corporation Vector and scalar based modular exponentiation
US10095516B2 (en) 2012-06-29 2018-10-09 Intel Corporation Vector multiplication with accumulation in large register space
US9355068B2 (en) 2012-06-29 2016-05-31 Intel Corporation Vector multiplication with operand base system conversion and re-conversion
JP5852594B2 (ja) * 2013-01-15 2016-02-03 日本電信電話株式会社 多倍長整数演算装置、多倍長整数演算方法、プログラム
CN104951279B (zh) * 2015-05-27 2018-03-20 四川卫士通信息安全平台技术有限公司 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
IL239880B (en) * 2015-07-09 2018-08-30 Kaluzhny Uri Simplified montgomery multiplication
CN106452723B (zh) * 2016-12-13 2017-05-31 深圳市全同态科技有限公司 一种基于模运算的全同态加密处理方法
JP7286239B2 (ja) * 2019-02-28 2023-06-05 ルネサスエレクトロニクス株式会社 演算処理方法、演算処理装置、及び半導体装置
US20230042366A1 (en) * 2021-07-23 2023-02-09 Cryptography Research, Inc. Sign-efficient addition and subtraction for streamingcomputations in cryptographic engines
US12008369B1 (en) 2021-08-31 2024-06-11 Apple Inc. Load instruction fusion
WO2023199440A1 (ja) * 2022-04-13 2023-10-19 日本電気株式会社 符号付き整数の剰余積計算装置、符号付き整数の剰余積計算方法及び、プログラム
US12217060B1 (en) 2022-09-23 2025-02-04 Apple Inc. Instruction fusion
US12288066B1 (en) 2022-09-23 2025-04-29 Apple Inc. Operation fusion for instructions bridging execution unit types

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202077B1 (en) * 1998-02-24 2001-03-13 Motorola, Inc. SIMD data processing extended precision arithmetic operand format
CN1368674A (zh) * 2001-01-30 2002-09-11 三菱电机株式会社 应用蒙哥马利算法的幂剩余运算器
CN1375765A (zh) * 2001-03-19 2002-10-23 深圳市中兴集成电路设计有限责任公司 一种快速大数模乘运算电路
WO2003052584A2 (en) * 2001-12-14 2003-06-26 Koninklijke Philips Electronics N.V. Pipelined core in montgomery multiplier

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2726667B1 (fr) * 1994-11-08 1997-01-17 Sgs Thomson Microelectronics Procede de mise en oeuvre de multiplication modulaire selon la methode montgomery
JP3869947B2 (ja) * 1998-08-04 2007-01-17 株式会社日立製作所 並列処理プロセッサ、および、並列処理方法
US7240204B1 (en) 2000-03-31 2007-07-03 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Scalable and unified multiplication methods and apparatus
JP2002007112A (ja) * 2000-06-20 2002-01-11 Sony Corp 剰余演算計算方法および剰余演算計算装置
JP3785044B2 (ja) * 2001-01-22 2006-06-14 株式会社東芝 べき乗剰余計算装置、べき乗剰余計算方法及び記録媒体
US7107305B2 (en) * 2001-10-05 2006-09-12 Intel Corporation Multiply-accumulate (MAC) unit for single-instruction/multiple-data (SIMD) instructions
US7266577B2 (en) * 2002-05-20 2007-09-04 Kabushiki Kaisha Toshiba Modular multiplication apparatus, modular multiplication method, and modular exponentiation apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202077B1 (en) * 1998-02-24 2001-03-13 Motorola, Inc. SIMD data processing extended precision arithmetic operand format
CN1368674A (zh) * 2001-01-30 2002-09-11 三菱电机株式会社 应用蒙哥马利算法的幂剩余运算器
CN1375765A (zh) * 2001-03-19 2002-10-23 深圳市中兴集成电路设计有限责任公司 一种快速大数模乘运算电路
WO2003052584A2 (en) * 2001-12-14 2003-06-26 Koninklijke Philips Electronics N.V. Pipelined core in montgomery multiplier

Also Published As

Publication number Publication date
EP1524594A3 (en) 2006-04-12
EP1524594A2 (en) 2005-04-20
US7532720B2 (en) 2009-05-12
ATE413642T1 (de) 2008-11-15
JP2005122141A (ja) 2005-05-12
DE602004017559D1 (de) 2008-12-18
EP1524594B1 (en) 2008-11-05
JP4662744B2 (ja) 2011-03-30
CN1607518A (zh) 2005-04-20
KR101103893B1 (ko) 2012-01-12
KR20050036698A (ko) 2005-04-20
US20050084099A1 (en) 2005-04-21

Similar Documents

Publication Publication Date Title
CN100437548C (zh) 在Montgomery乘法内利用SIMD指令的方法和系统
US7346159B2 (en) Generic modular multiplier using partial reduction
Avanzi Aspects of hyperelliptic curves over large prime fields in software implementations
Großschädl et al. Instruction set extensions for fast arithmetic in finite fields GF (p) and GF (2 m)
Hoeven et al. Modular SIMD arithmetic in Mathemagix
Bos et al. Montgomery arithmetic from a software perspective
Pornin Optimized binary gcd for modular inversion
Becker et al. Polynomial multiplication on embedded vector architectures
US7603558B2 (en) Montgomery transform device, arithmetic device, IC card, encryption device, decryption device and program
Grossschadl Instruction set extension for long integer modulo arithmetic on RISC-based smart cards
US20080065714A1 (en) Device and method for calculating a result of a modular multiplication with a calculating unit smaller than the operands
Gopal et al. Fast and constant-time implementation of modular exponentiation
Oliveira et al. Koblitz curves over quadratic fields
US20070100926A1 (en) Device and method for calculating a multiplication addition operation and for calculating a result of a modular multiplication
US8364737B2 (en) Device and method for calculating a result of a sum with a calculating unit with limited word length
Tillich et al. A simple architectural enhancement for fast and flexible elliptic curve cryptography over binary finite fields GF (2 m)
Großschadl et al. Optimized RISC architecture for multiple-precision modular arithmetic
Baktır et al. Finite field polynomial multiplication in the frequency domain with application to elliptic curve cryptography
Wang et al. High radix montgomery modular multiplier on modern FPGA
Groszschaedl et al. Architectural support for arithmetic in optimal extension fields
Hurchalla An Improved Integer Modular Multiplicative Inverse (modulo $2^ w $)
Safieh Compact Architecture of the ECC Coprocessor for Binary Extension Fields
Lorenz Efficient Multiplication of Somewhat Small Integers Using Number-Theoretic Transforms
Takahashi Implementation of Multiple Multiplicative Inverses Modulo 2 w Using Intel AVX-512 Instructions
Großschädl Architectural support for long integer modulo arithmetic on RISC-based smart cards

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20081126