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/dekrypteringInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/722—Modular multiplication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49931—Modulo 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
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)
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)
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 | 剰余計算装置、テーブル作成装置および乗算剰余計算装置 |
-
2000
- 2000-10-17 SE SE0003757A patent/SE0003757L/sv not_active IP Right Cessation
-
2001
- 2001-10-17 WO PCT/SE2001/002270 patent/WO2002033885A1/en active Application Filing
- 2001-10-17 AU AU2002211130A patent/AU2002211130A1/en not_active Abandoned
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 |