KR101103893B1 - 몽고메리 곱셈 내에서의 simd 명령어들의 사용 - Google Patents

몽고메리 곱셈 내에서의 simd 명령어들의 사용 Download PDF

Info

Publication number
KR101103893B1
KR101103893B1 KR1020040067024A KR20040067024A KR101103893B1 KR 101103893 B1 KR101103893 B1 KR 101103893B1 KR 1020040067024 A KR1020040067024 A KR 1020040067024A KR 20040067024 A KR20040067024 A KR 20040067024A KR 101103893 B1 KR101103893 B1 KR 101103893B1
Authority
KR
South Korea
Prior art keywords
array
instructions
simd
instruction
multiplication
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
KR1020040067024A
Other languages
English (en)
Korean (ko)
Other versions
KR20050036698A (ko
Inventor
피터엘. 몽고메리
Original Assignee
마이크로소프트 코포레이션
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 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20050036698A publication Critical patent/KR20050036698A/ko
Application granted granted Critical
Publication of KR101103893B1 publication Critical patent/KR101103893B1/ko
Assigned to 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 reassignment 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 권리의 전부이전등록 Assignors: 마이크로소프트 코포레이션
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60—Methods 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/72—Methods 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/728—Methods 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
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/44—Arrangements 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)
KR1020040067024A 2003-10-15 2004-08-25 몽고메리 곱셈 내에서의 simd 명령어들의 사용 Expired - Lifetime KR101103893B1 (ko)

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
KR20050036698A KR20050036698A (ko) 2005-04-20
KR101103893B1 true KR101103893B1 (ko) 2012-01-12

Family

ID=34377640

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040067024A Expired - Lifetime KR101103893B1 (ko) 2003-10-15 2004-08-25 몽고메리 곱셈 내에서의 simd 명령어들의 사용

Country Status (7)

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

Families Citing this family (23)

* 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
CN1985458B (zh) * 2003-11-16 2013-05-08 桑迪斯克以色列有限公司 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置
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
US9268564B2 (en) * 2012-05-30 2016-02-23 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
JP7673871B2 (ja) * 2022-04-13 2025-05-09 日本電気株式会社 符号付き整数の剰余積計算装置、符号付き整数の剰余積計算方法及び、プログラム
US12632258B1 (en) 2022-09-22 2026-05-19 Apple Inc. Fused instruction operation for performing an operation and adjusting a sign of the operation result
US12288066B1 (en) 2022-09-23 2025-04-29 Apple Inc. Operation fusion for instructions bridging execution unit types
US12217060B1 (en) 2022-09-23 2025-02-04 Apple Inc. Instruction fusion

Citations (2)

* 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
WO2001076132A1 (en) 2000-03-31 2001-10-11 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon S Tate University Scalable and unified multiplication methods and apparatus

Family Cites Families (9)

* 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 株式会社日立製作所 並列処理プロセッサ、および、並列処理方法
JP2002007112A (ja) * 2000-06-20 2002-01-11 Sony Corp 剰余演算計算方法および剰余演算計算装置
JP3785044B2 (ja) * 2001-01-22 2006-06-14 株式会社東芝 べき乗剰余計算装置、べき乗剰余計算方法及び記録媒体
JP2002229445A (ja) * 2001-01-30 2002-08-14 Mitsubishi Electric Corp べき乗剰余演算器
CN1375765A (zh) * 2001-03-19 2002-10-23 深圳市中兴集成电路设计有限责任公司 一种快速大数模乘运算电路
US7107305B2 (en) * 2001-10-05 2006-09-12 Intel Corporation Multiply-accumulate (MAC) unit for single-instruction/multiple-data (SIMD) instructions
EP1459167B1 (en) * 2001-12-14 2006-01-25 Koninklijke Philips Electronics N.V. Pipelined core in montgomery multiplier
US7266577B2 (en) * 2002-05-20 2007-09-04 Kabushiki Kaisha Toshiba Modular multiplication apparatus, modular multiplication method, and modular exponentiation apparatus

Patent Citations (2)

* 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
WO2001076132A1 (en) 2000-03-31 2001-10-11 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon S Tate University Scalable and unified multiplication methods and apparatus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J. Grossschadl et al., "Architectural Enhancement for Montgomery Multiplication on Embedded RISC Processors", Computer Science
R. Posch et al., "RNS-Modulo Reduction Upon a Restricted Base Value Set and its Applicability to RSA Crypotography", Computer & Security, vol. 17, no.7, 1988 pp. 637-650.

Also Published As

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

Similar Documents

Publication Publication Date Title
KR20050036698A (ko) 몽고메리 곱셈 내에서의 simd 명령어들의 사용
Großschädl et al. Instruction set extensions for fast arithmetic in finite fields GF (p) and GF (2 m)
JP3605181B2 (ja) 掛け算累算命令を使用したデータ処理
US7240084B2 (en) Generic implementations of elliptic curve cryptography using partial reduction
JP2019500673A (ja) 冗長表現を用いた、第1および第2のオペランドの積算
Hoeven et al. Modular SIMD arithmetic in Mathemagix
US8229993B2 (en) Method for performing decimal division
KR100432401B1 (ko) 제산 명령 및 잉여 명령을 실행하는 방법 및 이 방법을이용한 데이터 처리 장치
JP2019500672A (ja) 重複ビットを使用する数値の冗長表現
US6009450A (en) Finite field inverse circuit
Bos et al. Montgomery arithmetic from a software perspective
Pessl et al. Curved tags–a low-resource ECDSA implementation tailored for RFID
Gutub et al. Efficient scalable VLSI architecture for Montgomery inversion in GF (p)
US7395295B2 (en) Pipeline core in Montgomery multiplier
US20070116270A1 (en) Calculating unit for reducing an input number with respect to a modulus
Becker et al. Efficient multiplication of somewhat small integers using number-theoretic transforms
US7558817B2 (en) Apparatus and method for calculating a result of a modular multiplication
CN101981542B (zh) 多项式数据处理运算
Hars Modular inverse algorithms without multiplications for cryptographic applications
US20080065714A1 (en) Device and method for calculating a result of a modular multiplication with a calculating unit smaller than the operands
JP4601544B2 (ja) 入力値に逆数演算を実施して結果値を作り出すデータ処理装置および方法
Louvet et al. Newton-Raphson algorithms for floating-point division using an FMA
US8364737B2 (en) Device and method for calculating a result of a sum with a calculating unit with limited word length
JP2006228191A (ja) 逆数演算の結果値の初期推定値を求めるデータ処理装置および方法
JP4850884B2 (ja) べき乗剰余演算器

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20040825

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20090819

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20040825

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20110211

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20111004

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20120102

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20120102

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20141230

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20151217

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20161220

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20171219

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20181226

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20191217

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20201216

Start annual number: 10

End annual number: 10

PR1001 Payment of annual fee

Payment date: 20231227

Start annual number: 13

End annual number: 13

PC1801 Expiration of term

Termination date: 20250225

Termination category: Expiration of duration