SE517045C2 - Metod och anordning vid modulomultiplikation samt användning av metoden vid asymmetrisk kryptering/dekryptering - Google Patents

Metod och anordning vid modulomultiplikation samt användning av metoden vid asymmetrisk kryptering/dekryptering

Info

Publication number
SE517045C2
SE517045C2 SE0003757A SE0003757A SE517045C2 SE 517045 C2 SE517045 C2 SE 517045C2 SE 0003757 A SE0003757 A SE 0003757A SE 0003757 A SE0003757 A SE 0003757A SE 517045 C2 SE517045 C2 SE 517045C2
Authority
SE
Sweden
Prior art keywords
format
calculation
calculation chain
chain
multiplication
Prior art date
Application number
SE0003757A
Other languages
English (en)
Other versions
SE0003757D0 (sv
SE0003757L (sv
Inventor
Rolf Sundblad
Original Assignee
Novacatus Invest Ab
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 Novacatus Invest Ab filed Critical Novacatus Invest Ab
Priority to SE0003757A priority Critical patent/SE0003757L/sv
Publication of SE0003757D0 publication Critical patent/SE0003757D0/sv
Priority to AU2002211130A priority patent/AU2002211130A1/en
Priority to PCT/SE2001/002270 priority patent/WO2002033885A1/en
Publication of SE517045C2 publication Critical patent/SE517045C2/sv
Publication of SE0003757L publication Critical patent/SE0003757L/sv

Links

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/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/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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49931Modulo N reduction of final result

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Facsimile Transmission Control (AREA)
  • Complex Calculations (AREA)

Description

lO 15 20 25 30 35 517 045 o u I o v u o - | n a . '- 2 Uppfinningen skall i det följande förklaras närmare med hänvisning till bifogad rit- ning på vilken fig 1 visar ett blockschema över en uppfinningsenlig anordning. Fig 2 visar en detalj av den uppfinningsenliga anordningen. Fig 3 är ett flödesschema över den uppfinningsenli ga metoden.
Enligt RSA-algoritmen sker kryptering och dekryptering av ett meddelande M enligt följande ekvationer: c-ivfmøtum) (1) M=cd mod(m) (2) Ekv 1 utför krypteringen medan ekv 2 utför dekrypteringen. C är det krypterade med- delandet, e och m är publika nycklar och d är en privat nyckel. M, C, e, m och d årtal med längden n.
I bägge fallen utföres operationen XY mod(m) med n bitars långa tal. Denna opera- tion uträknas per definition enligt följande: XY mod(m)=fest(xY/m) (s) Beräkningen ovan sker genom att ett antal modulomultiplikationer utföres. En mo- dulomultiplikation innebär att följande skall beräknas: A*B mod(m) = rest(A*B/m) (4) Den uppfinningsenliga al goritrnen baserar sig på det faktum att multiplikation av stora tal utföres mycket effektivt i seriell aritmetik. Ekvation 4 har omformulerats till följ ande: A*B mod(m) = A*B - (int(1/m * A * B)) * m (5) där l/m och m betraktas som konstanter. Vid t.ex kryptering/dekrypteiing används samma konstanter vid flera operationer. I det fallet behöver man bara initialt beräkna l/m och således utförs inga divisioner vid beräkningen av ekv (5). 10 15 20 25 30 35 517 045 II :nu 3 I fig 1 betecknar 1 en seriell aritrnetisk enhet, i vilken multiplikation utföres genom att ena operanden matas in seriellt vid X och den andra matas in parallellt vid Y. Re- sultatet matas seriellt ut vid R] (resultat låg) och Rh (resultat hög). Ett minne 2 an- vänds för att lagra mellanresultat, men fiingerar även som in- och utgång för operan- dema resp resultatet. Åtminstone en serie/parallell och parallell/serie omvandlare 3 tar emot och skickar iväg seriella tal, men matar ned och tar upp parallella tal till och från minnet 2. I en utföringsform av uppfinningen används tre stycken omvandlare 3a, 3b och 3c.
Om två n-bitars tal multipliceras erhålles ett resultat som är 2n bitar långt. För att inte erhålla ett tidsproblem, nämligen att operandema inläses på n klockcykler medan det tar 2n klockcykler för resultatet att komma ut, läses carryresultaten i kedjan ned till en parallell beräkningskedja efier n klockcykler. På detta sätt kommer de minst signi- fikanta siffrorna att läsas ut vid Rl och de mest signifikanta siffroma vid Rh. En ny beräkning påbörjas efter n klockcykler och beräkningarna överlappar varandra.
För att de överlappade beräkningarna inte skall blandas ihop är det en multiplexer 5 (MUX) anordnad vid ingången till den aritmetiska enheten l. En subtraktion skall utföras enligt ekv (5). Den utföres separat i en enkel adderare 4, vilken antingen är anordnad separat, som i fi g 1, eller är integrerad i den aritmetiska enheten 1.
Den seriella aritmetiska enheten I innefattar ett förutbestämt antal kretsar 20, vilka visas i fig 2, vilka var och en utför en seriell addition av X och Yi, där Y; är talet Y:s bit nr i. I den föredragna utföringsfonnen av uppfinningen består den aritmetiska en- heten 1 av 512 kretsar 20, men kan givetvis vara färre eller fler beroende av hur långa tal man vill multiplicera. Kretsen 20 innefattar en heladderare 21, en halvadderare 22: en AND-grind 23 och fyra st D-vippor 24, 25, 26 och 27.
X och Y; år ingångsvärden till AND-grinden 23. Ingångsvârden till heladderaren är utgångsvärdet från AND-grinden 23, föregående canyvärde via D-vippan 24 samt föregående summavärde från kretsen i-l med högre bitvikt via D-vippan 25. Carry- värdena i D-vippoma 24 och 25 parallellförflyttas till D-vippoma 26 och 27 efter n klockcykler, då en ny beräkning startas i den övre beräkningskedjan. Ingångar till halvadderaren 22 är de innestående carrybitama i D-vippoma 26 och 27 .
I en alternativ utföringsfonn av uppfinningen anordnas efter ett förutbestämt antal kretsar 20 D-vippor efter utgångama Rl och Rh samt på X-linjen. Detta för att prak- 10 15 20 25 517» 045 4 tiskt kunna distribuera ut X till samtliga kretsar 20.
I en töredragen utfóringsfonn av uppfinningen (visas i figur 3) utföres den uppfin- ningsenliga algoritmen, se ekv (5), enligt metoden nedan: 1. Operanderna A, B och konstanterna l/m, m matas in i minnet 2 (steg 31); 2. Produkten A*B beräknas (steg 32) genom att A matas via omvandlaren 3 seriellt in vid X i den aritrnetiska enheten 1 och B matas parallellt ner till Yi den seriella aritmetiska enheten 1. Efter n klockcykler har de minst signifi- kanta bitarna av resultatet P1 matats in i omvandlaren 3b och carryvärdena parallellförflyttas till den nedre beräkningskedjan, varefter de mest signifi- kanta bitama av resultatet P1 börjar matas in i omvandlaren 3a. Samtidigt som carryvärdena íörflyttas påbörjas nästa beräkningsalgoritrn. Resultatet, P1 lagras i minnet 2 (steg 33) via omvandlama 3a och 3b efter ytterligare n klockcykler; 3. Påsamma sätt som under punkt 2 ovan beräknas sedan produkten Int[P1*1/m] (steg 34). Resultatet P2 lagras i minnet 2 (steg 35); 4. Produkten P2*m beräknas (steg 36). Resultatet P3 lagras i minnet 2 (steg 37); 5. Slutligen beräknas differensen Pl-P; i en enkel heladderare 4 (steg 38). Re- sultatet R lagras via omvandlaren 3c i minnet 2 (steg 39) och tas ut som ut- data, samtidigt som det via MUX:en 5 används som underlag vid nästa beräkningsalgoritm.

Claims (1)

1. 0 15 20 25 30 517 0045 v: .n Patentkrav Metod vid modulomultiplikation, varvid multiplikationen utföres medelst seri- ell aritmetik, kännetecknad av, att produkten av ett första (A) och ett andra (B) ingängsvärde beräknas av en första beräkningskedja i en seriell aritrnetisk enhet (1), varvid de minst signifikanta bitarna av resultatet (P1) omvandlas från ett första format till ett andra format och därefter lagras i ett minne (2), att en i den första beräkningskedjan erhållen carrylängd parallellförflyttas till en andra beräkningskedja i den aritmetiska enheten (1), varvid de mest signifikanta bitarna av resultatet (P1) omvandlas från det första formatet till det andra formatet och därefter lagras i minnet (2), att när carrylängden förflyttas till den andra beräkningskedjan påbörjas parallellt en ny beräkning av den första beräkningskedjan. Anordning vid modulomultiplikation innefattande en seriell aritrnetisk enhet (1) inrättad att utföra multiplikationen, kännetecknad av, att ett antal kretsar (20) i den seriella aritmetiska enheten (1) innefattar en första och en andra beräkningskedja, att, den första beräkníngskedj a är inrättad att ta emot ett första ingångsvärde (A) av ett första format och ett andra ingångsvärde (B) av ett andra format och att beräkna produkten av ingångsvärdena, att, en omvandlande enhet (3) är inrättad att omvandla de minst signifikanta bitama av resultatet (Rl) av produkten från det första fonnatet till det andra formatet och att lagra detta i ett minne (2), att, den forsta beräkningskedj an är inrättad att parallellförflytta en ur beräkningen erhållen canylängd till den andra beräkningskedj an, att, den omvandlande enheten (3) är inrättad att omvandla de mest signifikanta bitarna av resultatet (Rh) från det första formatet till det andra formatet och att lagra detta i minnet (2), 10 517 045 att, den första beräkningskedj an är inrättad att påbörja en ny beräkning när carrylängden fórflyttats till den andra beräkningskedjan. Anordning enligt patentkrav 2, kännetecknad av, att den omvandlande enheten (3) är en serie/parallell omvandlare och att det första fonnatet är seriellt och det andra formatet parallellt. Användning av metoden enligt patentkravet 1 vid asymrnetñsk kryptering/dekryptering. ~ ouøooo n
SE0003757A 2000-10-17 2000-10-17 Metod och anordning vid modulomultiplikation samt användning av metoden vid asymmetrisk kryptering/dekryptering SE0003757L (sv)

Priority Applications (3)

Application Number Priority Date Filing Date Title
SE0003757A SE0003757L (sv) 2000-10-17 2000-10-17 Metod och anordning vid modulomultiplikation samt användning av metoden vid asymmetrisk kryptering/dekryptering
AU2002211130A AU2002211130A1 (en) 2000-10-17 2001-10-17 Modular multiplication for rsa and other assymetric encryption/decryption
PCT/SE2001/002270 WO2002033885A1 (en) 2000-10-17 2001-10-17 Modular multiplication for rsa and other assymetric encryption/decryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0003757A SE0003757L (sv) 2000-10-17 2000-10-17 Metod och anordning vid modulomultiplikation samt användning av metoden vid asymmetrisk kryptering/dekryptering

Publications (3)

Publication Number Publication Date
SE0003757D0 SE0003757D0 (sv) 2000-10-17
SE517045C2 true SE517045C2 (sv) 2002-04-09
SE0003757L SE0003757L (sv) 2002-04-09

Family

ID=20281454

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0003757A SE0003757L (sv) 2000-10-17 2000-10-17 Metod och anordning vid modulomultiplikation samt användning av metoden vid asymmetrisk kryptering/dekryptering

Country Status (3)

Country Link
AU (1) AU2002211130A1 (sv)
SE (1) SE0003757L (sv)
WO (1) WO2002033885A1 (sv)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558817B2 (en) 2002-04-29 2009-07-07 Infineon Technologies Ag Apparatus and method for calculating a result of a modular multiplication
DE10219158B4 (de) * 2002-04-29 2004-12-09 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE10219164B4 (de) * 2002-04-29 2004-12-02 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines ganzzahligen Quotienten

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
IL97413A (en) * 1991-03-04 1995-06-29 Fortress U & T 2000 Ltd Microcircuit for the implementation of rsa algorithm and ordinary and modular arithmetic in particular exponentiation with large operands
EP0504996B1 (en) * 1991-03-22 1998-07-08 Koninklijke Philips Electronics N.V. Arithmetic unit for multiplying long integers modulo M and R.S.A. converter provided with such multiplication device
JPH0720778A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 剰余計算装置、テーブル作成装置および乗算剰余計算装置

Also Published As

Publication number Publication date
SE0003757D0 (sv) 2000-10-17
SE0003757L (sv) 2002-04-09
AU2002211130A1 (en) 2002-04-29
WO2002033885A1 (en) 2002-04-25

Similar Documents

Publication Publication Date Title
JP4955182B2 (ja) 整数の計算フィールド範囲の拡張
TWI244611B (en) Circuit and method for performing multiple modulo mathematic operations
KR100684134B1 (ko) 몽고메리 승산에 기초한 모듈의 승산 및 누승을 위한 개선된 장치와 방법
EP1293891B1 (en) Arithmetic processor accomodating different finite field size
JP3636740B2 (ja) モジュラ・乗算を遂行するための超小形電子系装置、および超小形電子系装置を使用する方法
US7805479B2 (en) Scalable, faster method and apparatus for montgomery multiplication
US5121429A (en) Digital signal processing
CA2409200C (en) Cryptographic method and apparatus
US8781112B2 (en) Signed montgomery arithmetic
US7046800B1 (en) Scalable methods and apparatus for Montgomery multiplication
CN100437470C (zh) 模数增值方法及装置
Li et al. Research in fast modular exponentiation algorithm based on FPGA
SE517045C2 (sv) Metod och anordning vid modulomultiplikation samt användning av metoden vid asymmetrisk kryptering/dekryptering
US7607165B2 (en) Method and apparatus for multiplication and/or modular reduction processing
US7590235B2 (en) Reduction calculations in elliptic curve cryptography
KR100481586B1 (ko) 모듈러 곱셈 장치
Chevallier-Mames et al. Faster double-size modular multiplication from Euclidean multipliers
KR20040055523A (ko) GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치
EP1504338A1 (en) "emod" a fast modulus calculation for computer systems
Jin et al. Short-iteration constant-time GCD and modular inversion
JP3210420B2 (ja) 整数上の乗算回路
US7471789B2 (en) Encryption circuit achieving higher operation speed
Pinckney et al. Parallelized Booth-encoded radix-4 Montgomery multipliers
Nehru et al. Efficient ASIC Architecture of RSA Cryptosystem
Lin et al. A synchronous modular multiplier with variable latency

Legal Events

Date Code Title Description
NUG Patent has lapsed