FI112708B - Method and apparatus for calculating a response - Google Patents

Method and apparatus for calculating a response Download PDF

Info

Publication number
FI112708B
FI112708B FI20002151A FI20002151A FI112708B FI 112708 B FI112708 B FI 112708B FI 20002151 A FI20002151 A FI 20002151A FI 20002151 A FI20002151 A FI 20002151A FI 112708 B FI112708 B FI 112708B
Authority
FI
Finland
Prior art keywords
sliding window
multipliers
secret key
multiplier
window method
Prior art date
Application number
FI20002151A
Other languages
Finnish (fi)
Swedish (sv)
Other versions
FI20002151A (en
FI20002151A0 (en
Inventor
Lauri Paatero
Original Assignee
Setec Oy
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 Setec Oy filed Critical Setec Oy
Priority to FI20002151A priority Critical patent/FI112708B/en
Publication of FI20002151A0 publication Critical patent/FI20002151A0/en
Priority to PCT/FI2001/000836 priority patent/WO2002028009A1/en
Priority to AU2001291913A priority patent/AU2001291913A1/en
Publication of FI20002151A publication Critical patent/FI20002151A/en
Application granted granted Critical
Publication of FI112708B publication Critical patent/FI112708B/en

Links

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Storage Device Security (AREA)

Abstract

The present invention relates to a device comprising an inlet (2) for receiving an input, calculating means (P) for calculating a response by means of the input, a secret key and a calculation algorithm, the calculation algorithm utilizing a sliding window method, and an outlet (3) for forwarding said response. In order to make the secret key even more difficult for an external attacker to find out, the device further comprises a random number generator (RND) to generate at least some of the multipliers utilized by the calculating means (P) in the sliding window method.

Description

112708112708

Menetelmä ja laite vasteen laskemiseksi Tämä keksintö liittyy laskentaoperaatioihin, joissa hyödynnetään liukuvan ikkunan menetelmää sekä salaista avainta, joka halutaan suojata si-5 ten, että ulkopuolinen hyökkääjä ei laskennan yhteydessä saa sellaista informaatiota, että hän pystyisi selvittämään salaisen avaimen.The present invention relates to computing operations which utilize a sliding window method and a secret key which is intended to be protected so that an external attacker does not receive information during the computation that would allow him to determine the secret key.

Toimikortit ovat eräs esimerkki laitteista, joissa esillä olevaa keksintöä voidaan soveltaa. Toimikorttien yhteydessä salaista avainta hyödynnetään esimerkiksi toimikortin autentikointiin. Seuraavassa esillä olevaa keksintöä 10 selostetaankin ensisijaisesti toimikortteihin viittaamalla, vaikkakin esillä olevaa keksintöä voidaan soveltaa myös muissa yhteyksissä, joissa on tarve suorittaa salaista avainta hyödyntäviä laskentaoperaatioita.Smart cards are one example of devices in which the present invention can be applied. In the case of smart cards, the secret key is utilized, for example, for smart card authentication. In the following, the present invention 10 will be described primarily with reference to smart cards, although the present invention may also be applied to other contexts in which it is necessary to perform computing operations utilizing a secret key.

Ennestään tunnetaan julkaisuista WO 99/35782 ja Coron, Goubin, "On Boolean and arithmetic masking against differential power analysis", peit-15 tämismenetelmiä (masking), joissa avain voidaan esittää esimerkiksi kahden luvun summana. Toista lukua varten generoidaan joka suorituskerralla satunnaisluku.Masking methods are known from WO 99/35782 and Coron, Goubin, "On Boolean and arithmetic masking against differential power analysis," in which the key can be represented, for example, as a sum of two numbers. For each second number, a random number is generated each time.

Ennestään on myös tunnettua hyödyntää liukuvan ikkunan menetelmää kertolaskun tai exponentoinnin laskemiseksi siten, että kertolasku saa-20 daan korvatuksi yhteenlaskulla tai exponentiointi kertolaskulla. Tunnetuissa ratkaisuissa liukuvan ikkunan menetelmää sovelletaan siten, että laskennassa '* ·’ hyödynnetään ennalta määrättyjä kertojia, joiden binääriarvojen pituudet mää- : : ; riitelevät käytettävien ikkunoiden leveyden. Yleensä käytössä on muutama •: · i ennalta määrätty kertoja, esimerkiksi 1 (ikkunan leveys 1 bitti), 3 (ikkunan le- . ‘. : 25 veys 2 bittiä), 5 (ikkunan leveys 3 bittiä) ja 7 (ikkunan leveys 3 bittiä). Käytettä- , vien kertojien arvot valitaan etukäteen sellaisella tavalla, että laskenta olisi mahdollisimman nopeaa. Tunnetuissa ratkaisuissa valitaan liukuvan ikkunan menetelmään kuuluvissa yksittäisissä laskuoperaatioissa käyttöön suurin mahdollinen kertoja. Näin varmistetaan, että laskenta saadaan vietyä loppuun 30 mahdollisimman nopeasti.It is also known in the art to utilize a sliding window method for calculating the multiplication or exponential so that the multiplication can be replaced by the addition or the exponential multiplication. In prior art solutions, the sliding window method is applied by using predefined multipliers with binary values of lengths: *; argue about the width of windows used. Usually there are a few •: · predefined times, for example 1 (window width 1 bit), 3 (window width: 25 veys 2 bits), 5 (window width 3 bits) and 7 (window width 3 bits) ). The values of the available multipliers are pre-selected in such a way that the calculation is as fast as possible. The known solutions select the maximum number of times for the individual lowering operations of the sliding window method. This ensures that the calculation can be completed as quickly as possible.

: Eräs selostettuun tunnettuun ratkaisuun liittyvä heikkous on se, että : laskennasta saattaa syntyä sellaista informaatiota, joka helpottaa ulkopuolista hyökkääjää selvittämään salaisen avaimen, kun kyseistä laskentamenetelmää käytetään salaista avainta hyödyntävissä laskuissa. Eräs tapa, jolla ulkopuoli-35 nen hyökkääjä voi yrittää selvittää salaisenavaimen on ns. DPA-hyökkäys (Differential Power Analysis), jossa esimerkiksi toimikortille toistuvasti (useita tu- 2 1127G8 hansia kertoja) syötetään erilaisia syötteitä, samalla kun toimikortin lähdöstä saatavaa vastetta, toimikortin laskennan aikana käyttämää virrankulutusta sekä toimikortin laskennan aikana synnyttämää säteilyä seurataan. Syötettä, virrankulutusta, säteilyä ja vastetta tilastoimalla saattaa ulkopuolinen hyökkääjä 5 saada selville toimikortin salaisen avaimen. Tunnetuissa liukuvan ikkunan menetelmää hyödyntävissä laskenta-algoritmeissä ongelmallista on se, että ennalta määrättyjen kertojien hyödyntäminen laskuissa voidaan havaita virranku-lutuksessa. Eli ulkopuolinen hyökkääjä voi virrankulutusta tilastoimalla havaita missä järjestyksessä laskuoperaatiot suoritetaan, koska ajankohdat, jolloin eri 10 kertojia hyödynnetään ovat havaittavissa virrankulutuksesta. Tämän jälkeen ulkopuolisen hyökkääjän on enää selvitettävä kertojien arvot, jonka jälkeen salainen avain on hänen käytettävissään.A disadvantage of the known solution described is that: information may be generated from the calculation that facilitates an outside attacker to determine the secret key when this calculation method is used in calculations using the secret key. One way in which an outside-35 attacker can try to find out the secret key is through a so-called. A DPA attack (Differential Power Analysis), for example, where multiple inputs are repeatedly fed to the smart card (several times 1127G8 glove times) while monitoring the response from the smart card output, the power used during smart card counting, and radiation generated during smart card counting. By statistics of input, power consumption, radiation, and response, an outside attacker 5 may discover the secret key of the smart card. The problem with known sliding-window calculation algorithms is that the utilization of predetermined multipliers in calculations can be detected in power consumption. That is, an outside attacker can statistically observe the order in which the landing operations are performed, since the times when the various multipliers are utilized are observable from the power consumption. After that, the outside attacker has to figure out the values of the multipliers, after which he has the secret key at his disposal.

Tämän keksinnön tarkoitus on ratkaista edellä selostettu ongelma, ja saada aikaan ratkaisu, joka entisestään vaikeuttaa salaisen avaimen selvit-15 tämistä liukuvan ikkunan menetelmää hyödynnettäessä. Tämä päämäärä saavutetaan keksinnön mukaisella menetelmällä vasteen laskemiseksi, jossa menetelmässä: valitaan liukuvan ikkunan menetelmässä hyödynnettävät kertojat, ja lasketaan vaste syötteen, salaisen avaimen ja laskenta-algoritmin avulla, joka laskenta-algoritmi hyödyntää mainittua liukuvan ikkunan menetelmää se-20 kä valittuja kertojia. Keksinnön mukaiselle menetelmälle on tunnusomaista, että valitaan ainakin osa mainituista liukuvan ikkunan menetelmässä hyödyn-‘: * ’: nettävistä kertojista satunnaisesti.The object of the present invention is to solve the problem described above and to provide a solution which further complicates the process of solving the secret key using the sliding window method. This object is achieved by the method of calculating the response according to the invention, comprising: selecting the multipliers to be used in the sliding window method and calculating the response by input, secret key and calculation algorithm which utilizes said sliding window method and selected multipliers. The method of the invention is characterized in that at least some of said multipliers in the sliding window method are randomly selected.

: ’: Keksinnön kohteena on lisäksi laite, jolla keksinnön mukaista mene- : · | telmää voidaan hyödyntää. Keksinnön mukaiseen laitteeseen kuuluu tulo syöt- ·. : 25 teen vastaanottamiseksi, laskinvälineitä vasteen laskemiseksi syötteen, salai- ! sen avaimen ja laskenta-algoritmin avulla, joka laskenta-algoritmi hyödyntää liukuvan ikkunan menetelmää, ja lähtö mainitun vasteen syöttämiseksi edel- ♦ leen. Keksinnön mukaiselle laitteelle on tunnusomaista, että laite edelleen käsittää satunnaislukugeneraattorin, joka tuottaa ainakin osan kertojista, joita las-30 kinvälineet hyödyntävät liukuvan ikkunan menetelmässä.: ': The invention further relates to a device for: · | this can be utilized. The device according to the invention includes an input ·. : 25 to receive tea, calculator means to calculate response to input, secret! by the key and calculation algorithm that utilizes the sliding window method, and the output for further input of said response. The device according to the invention is characterized in that the device further comprises a random number generator which produces at least a part of the multipliers used by the calculating means in the sliding window method.

: Keksintö perustuu siihen oivallukseen, että kun ainakin osa liukuvan ikkunan menetelmässä hyödynnettävistä kertojista valitaan satunnaisesti ei .., ; ulkopuolinen hyökkääjä enää hyödy laskennan aikana mahdollisesti tilastoita vista tiedoista, koska laskentatapahtuma ja mm. sen vaatima virrankulutus 35 muuttuu uusien kertojien käyttöön ottamisen vaikutuksesta. Keksinnön mukai-: sesti uudet satunnaiset kertojat voidaan ottaa käyttöön jokaisen uuden lasken- 112708 3 takerran yhteydessä. Tämä ei kuitenkaan ole välttämätöntä, vaan haluttaessa samoja kertojia voidaan hyödyntää muutamissa peräkkäisissä laskuoperaatioissa. Kertojat voidaan myös vaihtaa siten, että vain osa käytössä olleista kertojista vaihdetaan kerrallaan. Pääasia on se, että ulkopuolinen hyökkääjä ei 5 pääse keräämään tilastoja useista sadoista tai jopa tuhansista peräkkäisistä laskuoperaatioista, joissa on käytetty samoja kertojia. Keksinnön mukaisen ratkaisun merkittävimmät edut ovat entisestään parantunut salaisen avaimen salaus, eli ulkopuolisen hyökkääjän on entistä vaikeampi selvittää salaista avainta.: The invention is based on the realization that when at least some of the multipliers used in the sliding window method are randomly selected, no .. ,; external attacker no longer Use any statistic data during the count, because the counting event and e.g. its required power consumption 35 will change with the introduction of new storytellers. According to the invention, new random multipliers can be introduced with each new computation of 112708 3. However, this is not necessary, but if desired, the same multipliers can be utilized in a few successive calculations. The multipliers can also be changed so that only a portion of the multipliers in use are switched at a time. The bottom line is that an outside attacker will not be able to collect statistics from several hundred or even thousands of consecutive counting operations using the same multipliers. The major advantages of the solution according to the invention are the further improved secret key encryption, i.e. it is more difficult for an outside attacker to find out the secret key.

10 Eräässä keksinnön mukaisen menetelmän ensimmäisessä edulli sessa suoritusmuodossa valitaan satunnaisesti osa liukuvan ikkunan menetelmän yksittäisistä laskuoperaatioista suoritettavaksi jollakin toisella kuin suurimmalla mahdollisella kertojalla. Tämä keksinnön mukainen suoritusmuoto hidastaa jonkin verran laskennan läpiviemistä. Kyseinen haitta on kuitenkin 15 merkityksetön sikäli, että tämä suoritusmuoto kasvattaa laskuoperaatioihin sisältyvää satunnaisuutta siten, että ulkopuolisen hyökkääjän keräämä tilasto on entistä harhaanjohtavampi.In a first preferred embodiment of the method of the invention, some of the individual calculation operations of the sliding window method are randomly selected to be performed by a factor other than the maximum. This embodiment of the invention slows down the computation somewhat. However, this disadvantage is insignificant to the extent that this embodiment increases the randomness of landing operations by making the statistics collected by an outside attacker more misleading.

Eräässä keksinnön mukaisen menetelmän kolmannessa edullisessa suoritusmuodossa valitaan käyttöön sellaisia kertojia, että pisimpien kertoji-20 en pituus on noin 8-128 bittiä. Tällöin liukuvan ikkunan menetelmässä ei käsi-. teliä kaikkia ikkunan sisällä olevia kertojan bittejä, jolloin tulee välttämättömäk si laskea ikkunan ja kertojan erotus ja käyttää tätä edelleen laskennassa.In a third preferred embodiment of the method of the invention, multipliers are selected such that the longest multipliers are between about 8 and 128 bits long. Thus, in the sliding window method, no manual. bundle all the narrator bits inside the window, so it becomes necessary to calculate the window and narrator difference and continue to use this in the calculation.

; Eräässä keksinnön mukaisen menetelmän neljännessä edullisessa suoritusmuodossa liukuvan ikkunan menetelmään sisältyvät laskuoperaatiot : 25 suoritetaan siten, että ikkunan siirtämisestä aiheutuvat laskuoperaatiot ja tar- : kasteltavaan ikkunaan sisältyvien bittien käsittelystä aiheutuvat laskuoperaati- ot suoritetaan ennalta määrätyssä järjestyksessä laskukerrasta toiseen. Eli liukuvan ikkunan menetelmään sisältyvät laskuoperaatiot voidaan jakaa kahteen pääryhmään, ikkunan siirrosta aiheutuviin laskuoperaatioihin ja tarkastel-' · . 30 tavaan ikkunaan sisältyvien bittien käsittelystä (valittuja kertojia hyödyntämällä) aiheutuviin laskuoperaatioihin. Tunnetuissa ratkaisuissa laskenta etenee siten, ' että laskennan aikana valitaan aina soveltuvin operaatio seuraavaksi. Se onko ' : valittu ikkunan siirto vai ikkunassa olevien bittien käsittely on kuitenkin asia ‘: jonka ulkopuolinen hyökkääjä voi joissakin tapauksissa nähdä mm. virrankulu- ... : 35 tuksesta. Näin ollen ulkopuolinen hyökkääjä voi vetää johtopäätöksiä laskujen etenemisestä mikäli tällaisia valintoja tehdään. Jos sitävastoin valitaan ikkunan , 112/08 4 siirto tai ikkunassa olevien bittien käsittely ennalta määrätyn sekvenssin mukaisesti, esimerkiksi joka toinen kerta siirretään ikkunaa ja joka toinen kerta käsitellään ikkunassa olevia bittejä, ei laskuissa synny mitään edellä selostetun kaltaista valintatilannetta, eikä ulkopuolinen hyökkääjä näin ollen saa li-5 säinformaatiota siitä miten laskut etenevät. Näin ollen tämä keksinnön mukainen suoritusmuoto parantaa laskujen turvallisuutta entisestään.; In a fourth preferred embodiment of the method according to the invention, the sliding window method includes calculating operations: performing the window moving calculating operations and the calculating operations of processing the bits contained in the window being viewed in a predetermined sequence from one to another. That is, the calculation operations included in the sliding window method can be divided into two main groups, the calculation operations resulting from window shifting and the observation. Calculation operations resulting from the processing of bits in a 30-byte window (using selected multipliers). In known solutions, the computation proceeds such that during the computation the most suitable operation is always selected next. Whether ': selected window transfer or handling of bits in the window is a matter': which an outside attacker may in some cases see, for example, power consumption ...: 35 times. Thus, an outside attacker can draw conclusions about the progress of the bills if such choices are made. Conversely, if a window, 112/08 4 move, or processing of bits in a window according to a predetermined sequence is selected, for example, every other time the window is moved and every other time the bits in the window are processed, no selection situation like the one described above will occur. li-5 weather information on how invoices are moving. Thus, this embodiment of the invention further improves the safety of landings.

Keksinnön mukaisen menetelmän ja laitteen edulliset suoritusmuodot ilmenevät oheisista epäitsenäisistä patenttivaatimuksista 2 - 5 ja 6 -11.Preferred embodiments of the method and apparatus of the invention are disclosed in the dependent claims 2 to 5 and 6 to 11.

Keksintöä selostetaan seuraavassa esimerkinomaisesti lähemmin 10 viittaamalla oheisiin kuvioihin, joista: kuvio 1 esittää vuokaaviota keksinnön mukaisen menetelmän ensimmäisestä edullisesta suoritusmuodosta, kuvio 2 esittää vuokaaviota keksinnön mukaisen menetelmän toisesta edullisesta suoritusmuodosta, 15 kuvio 3 havainnollistaa keksinnön mukaisen laitteen ensimmäistä edullista suoritusmuotoa, ja kuvio 4 esittää vuokaaviota keksinnön mukaisen menetelmän kolmannesta edullisesta suoritusmuodosta.The invention will now be described, by way of example, in more detail 10 with reference to the accompanying drawings, in which: Figure 1 is a flow chart of a first preferred embodiment of the method of the invention, Figure 2 is a flow diagram of a first preferred embodiment of the device a third preferred embodiment of the method of the invention.

Kuvio 1 esittää vuokaaviota keksinnön mukaisen menetelmän en-20 simmäisestä edullisesta suoritusmuodosta. Kuvion 1 menetelmässä hyödyn- . netään liukuvan ikkunan menetelmää salaiseen avaimeen liittyvien laskutoimi- * tusten suorittamiseen. Liukuvan ikkunan menetelmä on tunnettu tapa kertolaskun tai exponentoinnin laskemiseksi binäärijärjestelmässä. Seuraavassa esitetään esimerkki kertolaskun C*B suorittamiseksi liukuvan ikkunan menetelmäl- * » : 25 lä, kun käytössä on yksinomaan yhteenlasku, ja kun halutaan välttää, että ul- \: kopuolinen hyökkääjä saisi käyttöönsä sellaista tietoa, jonka avulla hän voisi ,, ; selvittää salaisen avaimen C.Fig. 1 shows a flow chart of a first preferred embodiment of the method of the invention. The method of Figure 1 utilizes. A sliding window method is performed for performing the calculation of the * secret key. The sliding window method is a known method for calculating the multiplication or exponentiation in a binary system. The following is an example of performing multiplication C * B by the sliding window method when using only addition, and in order to prevent an alien attacker from gaining access to information which he could use; find out the secret key C.

C esitetään binäärisesti C=C0|Ci|C2|...|Cn, Co*0. Aluksi valitaan satunnaisesti liukuvan ikkunan menetelmässä käytettävät kertojat. Kertojiksi vali-' ; 30 taan tässä esimerkissä 1 (01), 3 (11), 5 (101) ja 7 (111).C is represented binary C = C0 | Ci | C2 | ... | Cn, Co * 0. Initially the multipliers used in the sliding window method are selected. The narrators were chosen; 30 in this Example 1 (01), 3 (11), 5 (101) and 7 (111).

Aluksi lasketaan kertojien arvot, eli:First, the values of the multipliers are calculated, ie:

• *' B• * 'B

B3= b+b+b B5= b+b+b+b+bB3 = b + b + b B5 = b + b + b + b + b

. : 35 B7= B+B+B+B+B+B+B. : 35 B7 = B + B + B + B + B + B + B

112708 5112708 5

Lisäksi asetetaan Ak=0 (Ak =välitulos) ja m=0 (m osoittaa bitin C:ssä, jota seuraavaksi tarkastellaan. Tämän jälkeen toistetaan:In addition, set Ak = 0 (Ak = intermediate result) and m = 0 (m denotes the bit in C, which is then considered.

Lasketaan ensimmäinen, jonka ehto täyttyy: 5 Jos Cm|Cm+i|Cm+2 = 111, lasketaan Ak=8*(Ak)+B7, m = m+3.Let's calculate the first condition: 5 If Cm | Cm + i | Cm + 2 = 111, then calculate Ak = 8 * (Ak) + B7, m = m + 3.

Jos Cm|Cm+i|Cm+2 =101, lasketaan Ak=8*(Ak)+B5, m = m+3.If Cm | Cm + i | Cm + 2 = 101, then Ak = 8 * (Ak) + B5, m = m + 3.

Jos Cm|Cm+i = 11, lasketaan Ak=4*(Ak)+B3, m = m+2.If Cm | Cm + i = 11, then Ak = 4 * (Ak) + B3, m = m + 2.

Jos Cm = 1, lasketaan Ak=2*(Ak)+B, m = m+1.If Cm = 1, calculate Ak = 2 * (Ak) + B, m = m + 1.

10 Jos Cm=0, lasketaan Ak=2*(Ak), m = m+1.10 For Cm = 0, calculate Ak = 2 * (Ak), m = m + 1.

Toistetaan kunnes m>n. Tällöin tulos on Ak.Repeat until m> n. Then the result is Ak.

Seuraavassa on esitetty laskuesimerkki, jossa yllä olevia kaavoja soveltamalla kerrotaan binääriset numerot C*B, kun B=101 ja 15 C=101101011101, ja käytettävät kertojat ovat samat kuin yllä, eli 1, 3, 5 ja 7. Tällöin kertojien arvot ovat: B=101 B3= B+B+B = 1111 B5= B+B+B+B+B = 11001 20 B7= B+B+B+B+B+B+B = 100011 t __—— __^—__,__^__________________^.The following is a calculation example where, by applying the above formulas, the binary numbers C * B are multiplied by B = 101 and 15 C = 101101011101, and the multipliers used are the same as above, i.e. 1, 3, 5 and 7. Then the multiplier values are: B = 101 B3 = B + B + B = 1111 B5 = B + B + B + B + B = 11001 20 B7 = B + B + B + B + B + B + B = 100011 t __—— __ ^ —__ , __ ^ ^ __________________.

’ TARKASTELTAVAT BITIT VÄLITULOS AK SELITYS'EXAMINED BITS INTERMEDIATE AK EXPLANATION

; ALLEVIIVATTU___ 101101011101 5B=11001 Valittu kertoja B5, (ikku- : nassa olevien bittien käsit- __tely)_ : 000101011101 8*5B+5B=45B= Valittu kertoja B5 _ 11100001___ 1 000000011101 2*45B=90B= Ei sopivaa kertojaa. Siirre- ,·__111000010_tään ikkunaa._ ;·. 000000011101 8*90B+7B=727B= Valittu kertoja B7 ; : _ 111000110011__ 000000000001 2*727B=1454B= Ei sopivaa kertojaa. Siirre- :__1110001100110_tään ikkunaa._ • 000000000001 2*1454B+B=2909B = Valittu kertoja B..; Underlined___ 101101011101 5B = 11001 Multiplier B5 selected (processing bits in window) _: 000101011101 8 * 5B + 5B = 45B = Multiplier selected B5 _ 11100001___ 1 000000011101 2 * 45B = 90B = No matching multiplier. Migrate, · __111000010_this window._; ·. 000000011101 8 * 90B + 7B = 727B = Selected multiplier B7; : _ 111000110011__ 000000000001 2 * 727B = 1454B = No suitable multiplier. Migrate: __ 1110001100110_the window._ • 000000000001 2 * 1454B + B = 2909B = Selected multiplier B.

I |11100011010001 6 112708I | 11100011010001 6 112708

Edellä olevan laskun tulos muodostuu viimeisestä välituloksesta Ak, eli tulos on 11100011010001. Laskennan aikana kaikki tulokseen johtavat laskuoperaatiot suoritetaan binäärijärjestelmää ja yhteenlaskuoperaatioita 5 hyödyntämällä. Kuitenkin yllä olevassa esimerkissä on laskuoperaatiot merkitty myös kymmenjärjestelmää ja kertolaskua hyödyntämällä, jotta yksittäisten laskuoperaatioiden seuraaminen helpottuisi.The result of the above calculation consists of the last intermediate result Ak, i.e. the result is 11100011010001. During the calculation, all the calculation operations leading to the result are performed using the binary system and the addition operations 5. However, in the example above, the calculation operations are also denoted by using the decimal system and multiplication to facilitate tracking of the individual calculation operations.

Kuvion 1 lohkossa A vastaanotetaan syöte. Tämän jälkeen siirrytään lohkoon B, jossa valitaan satunnaiset laskuoperaatioissa käytettävät ker-10 tojat. Eli sen sijan että kertojiksi valitaan aina esimerkiksi 1, 3, 5 ja 7 (kuten edellisessä laskuesimerkissä) valitaan keksinnön mukaisesti kertojat satunnaisesti. Kyseinen kertojien satunnainen arvonta voidaan suorittaa jokaisen vasteen laskennan yhteydessä tai vaihtoehtoisesti samoja kertojia voidaan käyttää muutamissa perättäisissä vasteen laskentaoperaatioissa, jonka jälkeen 15 valitaan uudet satunnaiset kertojat. Kertojat valitaan edullisesti siten, että ne ovat suhteellisen pitkiä, eli noin 8-128 bittisiä. Näin ollen ulkopuolisen hyökkääjän on entistä vaikeampi selvittää käytetyt kertojat.In block A of Figure 1, an input is received. Next, we proceed to block B, where random multipliers for the calculation operations are selected. That is, instead of choosing, for example, 1, 3, 5 and 7 (as in the previous calculation example), the multipliers are randomly selected according to the invention. This multiplier random draw may be performed for each response calculation, or alternatively the same multipliers may be used in a few successive response calculation operations, after which new random multipliers are selected. The multipliers are preferably selected so that they are relatively long, i.e., about 8 to 128 bits. This makes it harder for an outside attacker to find out what multipliers are used.

Lohkossa C suoritetaan vasteen laskenta salaista avainta syötettä ja liukuvan ikkunan menetelmää hyödyntävän laskenta-algoritmin avulla. Täl-20 löin liukuvan ikkunan menetelmään liittyvät laskutoimitukset suoritetaan edellä ; olevan esimerkin osoittamalla tavalla käyttämällä lohkossa B valittuja satun naisia kertoimia.In block C, the response is computed by an algorithm using a secret key input and a sliding window method. Thus, the calculations related to the sliding window method are performed above; using the random women coefficients selected in block B.

; Kuvio 2 havainnollistaa keksinnön mukaisen menetelmän toista edullista suoritusmuotoa. Myös kuvion 2 menetelmässä hyödynnetään liuku-• 25 van ikkunan menetelmää salaiseen avaimeen liittyvien laskutoimitusten suorit- : tamiseen. Kuvion 2 suoritusmuoto poikkeaa sikäli kuvion 1 suoritusmuodosta, ..: että kun kuvion 1 tapauksessa kussakin liukuvan ikkunan menetelmään kuulu vassa yksittäisessä laskuoperaatiossa valitaan aina käyttöön suurin mahdolli- : nen kertoja (jotta laskenta etenisi mahdollisimman nopeasti lopputulokseen), 30 niin kuvion 2 tapauksessa ainakin osa yksittäisistä laskutoimituksista suoritetaan käyttämällä satunnaisesti jotakin muuta kuin suurinta mahdollista kerto-’ jaa. Näin ollen laskujen eteneminen hidastuu jonkin verran, mutta laskujen etenemisestä tulee entistä "satunnaisempaa", minkä vuoksi ulkopuoliselle hyökkääjälle kantautuu entistä vähemmän informaatiota, vaikka hän tilastoisi-, | 35 kin mm. laskujen suorittamiseen tarvittavaa energiankulutusta.; Figure 2 illustrates another preferred embodiment of the method of the invention. The method of Figure 2 also utilizes a sliding window method to perform the calculations associated with the secret key. The embodiment of Fig. 2 differs from the embodiment of Fig. 1 in that, in the case of Fig. 1, in each sliding window method each single calculation operation is always selected to maximize (so that the calculation proceeds as quickly as possible to the final result) individual calculations are performed randomly using something other than the largest possible multiplier. As a result, the progress of the bills slows down somewhat, but the progress of the bills becomes more "random", which results in less information being transmitted to the outside attacker, even if he is compiling statistics, | 35 kin mm. the amount of energy required to complete the invoices.

1 1 o 7 n o 7 ί ί L / U Ο1 1 o 7 n o 7 ί ί L / U Ο

Seuraavassa esitetään eräs esimerkki siitä, miten keksinnön mukaisesti liukuvan ikkunan menetelmää voidaan soveltaa kertolaskun C*B laskemiseksi siten, että laskuissa käytettävät kertojat valitaan satunnaisesti, ja satunnaisesti valitaan jotkin laskuoperaatiot suoritettaviksi jollakin toisella kuin 5 suurimmalla mahdollisella kertojalla. Laskuissa on käytössä yksinomaan yhteenlasku, ja laskujen aikana halutaan välttää, että ulkopuolinen hyökkääjä saisi käyttöönsä sellaista tietoa, jonka avulla hän voisi selvittää salaisen avaimen C.The following is an example of how the sliding window method of the invention can be applied to compute the multiplication C * B by randomly selecting the multipliers to be used in the calculations, and randomly selecting some of the operations to be performed by any other than the 5 largest multipliers. The counting is done solely by summing, and during the counting process, it is desired to prevent an outside attacker from gaining access to information that would allow him to determine the secret key C.

C esitetään binäärisesti C=Co|Ci|C2|...|Cn, Co*0. Aluksi valitaan sa-10 tunnaisesti liukuvan ikkunan menetelmässä käytettävät kertojat. Kertojiksi valitaan tässä esimerkissä 1 (01), 3 (11) ja 5 (101).C is represented binary C = Co | Ci | C2 | ... | Cn, Co * 0. Initially, the multipliers used in the slip window method are selectively selected. In this example, multipliers 1 (01), 3 (11) and 5 (101) are selected as multipliers.

Aluksi lasketaan kertojien arvot, eli:First, the values of the multipliers are calculated, ie:

BB

B3= b+b+bB3 = b + b + b

15 B5— B+B+B+B+B15 B5— B + B + B + B + B

Lisäksi asetetaan Ak=0 (Ak =välitulos) ja m=0 (m osoittaa bitin C:ssä, jota seuraavaksi tarkastellaan. Tämän jälkeen toistetaan:In addition, set Ak = 0 (Ak = intermediate result) and m = 0 (m denotes the bit in C, which is then considered.

Lasketaan jokin seuraavista, jonka ehto täyttyy (eli valitaan satunnaisesti jonkin mahdollisista yksittäisistä laskuoperaatioista): 20 ; JOS Cm|Cm+i|Cm+2 >— 101, lasketaan Ak-Ak+Bs, Cm|Cm+l|Cm+2 = Cm|Cm+l|Cm+2_ 101.Calculate one of the following conditions, that is, satisfy the condition (that is, randomly select one of the possible individual calculation operations): 20; IF Cm | Cm + i | Cm + 2> - 101, calculate Ak-Ak + Bs, Cm | Cm + l | Cm + 2 = Cm | Cm + l | Cm + 2_ 101.

, Jos Cfn|Cm+i|Cm+2 ·*— 011, lasketaan Ak—Ak+B3, Cm|Cm+i|Cm+2 = Cm|Cm+i|Cm+2_ ; 011., If Cfn | Cm + i | Cm + 2 · * - 011, then Ak-Ak + B3, Cm | Cm + i | Cm + 2 = Cm | Cm + i | Cm + 2_; 011.

* 25 JOS Cm|Cm+l|Cm+2 001, lasketaan Ak-Ak+B, Cm|Cm+l|Cm+2 = Cm|Cm+i|Cm+2 001.* 25 IF Cm | Cm + l | Cm + 2,001, calculate Ak-Ak + B, Cm | Cm + 1 | Cm + 2 = Cm | Cm + i | Cm + 2,001.

Jos m>n-2 siirretään ikkunaa laskemalla Ak=2*Ak, m=m+1.If m> n-2 is moved by the window computing Ak = 2 * Ak, m = m + 1.

Toistetaan kunnes CmlCm+ilCm+?= 000 ja m=n-2. Tällöin tulos on Ak.Repeat until CmlCm + ilCm +? = 000 and m = n-2. Then the result is Ak.

30 Seuraavassa on esitetty laskuesimerkki, jossa yllä olevia kaavoja soveltamalla kerrotaan binääriset numerot C*B, kun B=101 ja ' C=101101011101, ja käytettävät kertojat ovat samat kuin yllä, eli 1, 3 ja 5. Täi- löin kertojien arvot ovat: B=101, B3 = B+B+B = 1111 ja Bs= ί B+B+B+B+B = 11001.The following is a calculation example in which, by applying the above formulas, the binary numbers C * B when B = 101 and 'C = 101101011101 are multiplied, and the multipliers used are the same as above, i.e. 1, 3 and 5. Then the multiplier values are: B = 101, B3 = B + B + B = 1111 and Bs = ί B + B + B + B + B = 11001.

: 35 [IKKUNASSA OLEVATl VÄLITULOS Ak [SELITYS 1 112708 8: 35 [INTERIM RESULT IN WINDOW Ak [EXPLANATION 1 112708 8

TARKASTELTAVAT BITITBITS TO BE CONSIDERED

ALLEVIIVATTU___ 101101011101 5B= Valittu kertoja B5,, 11001 (ikkunassa olevien __bittien käsittely)_ 000101011101 2*5B =10B= Valittu ikkunan siirto _110010__Underlined___ 101101011101 5B = Selected multiplier B5 ,, 11001 (Handling __ bits in window) _ 000101011101 2 * 5B = 10B = Selected window move _110010__

000101011101 10B+B=11B= Valittu kertoja B000101011101 10B + B = 11B = Selected multiplier B

_110111__ 000001011101 2*11B=22B= Valittu ikkunan siirto _1101110__ 000001011101 2*22B=44B= Valittu ikkunan siirto _11011100__ 000001011101_2*44B = 88B= 110111000 Valittu ikkunan siirto 000001011101 2*88B=176B= Valittu ikkunan siirto _ 1101110000__ 000001011101 176B+3B=179B= Valittu kertoja B3 _1101111111__ 000000101101 2*179B=358B= Valittu ikkunan siirto _11011111110__ : 000000101101 358B+5B=363B= Valittu kertoja B5 : _ 11100010111___ : 000000000101 2*363B=726B= Valittu ikkunan siirto : _ 111000101110__ ; 000000000101 2*726B=1452B= Valittu ikkunan siirto 1110001011100 » — .I II.— I - | I.—. Il- I -.III I.· III .Il —_110111__ 000001011101 2 * 11B = 22B = Selected Window Move _1101110__ 000001011101 2 * 22B = 44B = Selected Window Move _11011100__ 000001011101_2 * 44B = 88B = 110111000 Selected Window Move 000001011101 2 * 88B = 1700B = 1100B00 = 11001100 = 11001100 = 1100B = 1700B = 1700 179B = Selected Multiplier B3 _1101111111__ 000000101101 2 * 179B = 358B = Selected Window Move _11011111110__: 000000101101 358B + 5B = 363B = Selected Multiplier B5: _ 11100010111___: 000000000101 2 * 363B = 7210 Selected Window Move 000000000101 2 * 726B = 1452B = Selected Window Move 1110001011100 »- .I II.— I - | I.-. Il- I -.III I. · III .Il -

000000000101 1452B+B=1453B= Valittu kertoja B000000000101 1452B + B = 1453B = Selected multiplier B

_ 1110001100001__ 000000000011 2*1453B=2906B= Valittu ikkunan siirto _ 11100011000010__ : 000000000011 +3B=2909B= Valittu kertoja B3 _ 11100011010001__ : l000000000000 112708 9_ 1110001100001__ 000000000011 2 * 1453B = 2906B = Selected Window Move _ 11100011000010__: 000000000011 + 3B = 2909B = Selected Multiplier B3 _ 11100011010001__: l000000000000 112708 9

Edellä olevan laskun tulos muodostuu viimeisestä välituloksesta Ak, eli tulos on 11100011010001. Laskennan aikana kaikki tulokseen johtavat laskuoperaatiot suoritetaan binäärijärjestelmää ja yhteenlaskuoperaatioita hyödyntämällä. Kuitenkin yllä olevassa esimerkissä on laskuoperaatiot merkit-5 ty myös kymmenjärjestelmää ja kertolaskua hyödyntämällä, jotta yksittäisten laskuoperaatioiden seuraaminen helpottuisi.The result of the above calculation consists of the last intermediate result Ak, i.e. the result is 11100011010001. During the calculation, all the calculation operations leading to the result are performed using the binary system and the addition operations. However, in the example above, the calculation operations are also denoted by the decimal system and the multiplication to facilitate tracking of the individual calculation operations.

Kuvion 2 vuokaaviossa, jossa havainnollistetaan keksinnön mukaisen menetelmän toisen suoritusmuodon etenemistä, lohkot A' ja B‘ vastaavat kuvion 1 lohkoja A ja B, eli niissä vastaanotetaan syöte, jonka jälkeen valitaan 10 satunnaisesti laskuissa käytettävät kertojat.In the flow chart of Figure 2 illustrating the progress of another embodiment of the method according to the invention, the blocks A 'and B' correspond to the blocks A and B of Figure 1, i.e. receiving an input, followed by a random selection of 10 multipliers.

Lohkossa C aloitetaan laskenta vasteen laskentaan tarkoitetulla laskenta-algoritmilla, joka hyödyntää liukuvan ikkunan menetelmää.In block C, the computation is started by a computation algorithm for response computation which utilizes the sliding window method.

Yksittäisen laskenta-operaation aloittamisen yhteydessä tarkistetaan lohkossa D‘, onko vuorossa sellainen yksittäinen laskenta-operaatio, joka 15 edellyttää liukuvan ikkunan menetelmää varten valitun kertoimen hyödyntämistä. Mikäli näin ei ole siirrytään lohkoon P, jossa laskentaoperaatio suoritetaan, jonka jälkeen lohkossa J‘ tarkistetaan onko laskenta viety loppuun, jos ei ole palataan lohkoon D\When initiating a single counting operation, it is checked in block D 'whether there is a single counting operation which requires the use of a factor selected for the sliding window method. If this is not the case, proceed to block P where the calculation operation is performed, after which in block J 'it is checked whether the calculation has been completed if there is no return to block D \

Jos lohkossa D’ havaitaan, että vuorossa oleva laskenta-operaatio 20 tulee hyödyntämään liukuvan ikkunan menetelmää varten valittua kerrointa, ; siirrytään lohkoon E'. Tällöin arvotaan satunnaisluku, esimerkiksi väliltä 1-10.If it is detected in block D 'that the shift counting operation 20 will utilize the coefficient selected for the sliding window method,; moving to block E '. In this case, a random number is drawn, for example, between 1-10.

Lohkossa F' verrataan onko satunnaisluku suurempi kuin vertailuluku, esimer-; kiksi 5, jos halutaan, että puolet liukuvan ikkunan menetelmään liittyvistä yksit- ' täisistä laskuoperaatioista suoritetaan satunnaisella kertojalla. Mikäli satun- : 25 naisluku on suurempi kuin vertailuluku siirrytään lohkoon H', jossa käyttöön : valitaan satunnaisesti valittava kertoja. Vaihtoehtoisesti siirrytään lohkoon G', .: jossa käyttöön valitaan suurin mahdollinen kertoja.In block F ', a comparison is made whether the random number is greater than the reference number, e.g. 5, if it is desired that half of the single count operations associated with the sliding window method be performed by a random multiplier. If the random: 25 female number is greater than the control number, it moves to block H ', where it is used: a randomly selected multiplier is selected. Alternatively, we move to block G ', .: where the maximum number of times is used.

Lohkojen F' - H' ansiosta saavutetaan tilanne, jossa satunnainen : osa liukuvan ikkunan menetelmään kuuluvista laskentaoperaatioista suorite- ; 30 taan jollakin muulla kuin suurimmalla mahdollisella kertojalla. Näin ollen lasku jen eteneminen hidastuu, mutta laskuista tulee enemmän satunnaisia, mikä ' tekee salaisen avaimen selvittämisestä entistä vaikeampaa ulkopuoliselle hyökkääjälle.The blocks F 'to H' provide a situation whereby: a part of the sliding window method computation operations are executed; 30 other than the highest possible multiplier. As a result, the progress of the bills slows down, but the bills become more random, which makes finding the secret key more difficult for an outside attacker.

; Kuvio 3 esittää lohkokaaviota keksinnön mukaisen laitteen ensim- 35 mäisestä edullisesta suoritusmuodosta. Kuvion 3 tapauksessa laitteen 1 oletetaan olevan toimikortti, jonka muistiin M on tallennettu salainen avain, joko sei- 112708 10 laisenaan tai vaihtoehtoisesti koodattuna (jolloin koodaus puretaan samassa yhteydessä kun avain luetaan muistista). Kyseisen salaisen avaimen avulla toimikortti voidaan autentikoida, koska on olemassa yksi ainoa toimikortti, jolle on tallennettu kyseessä oleva salainen avain, ja joka näin ollen tuottaa salai-5 sesta avaimesta riippuvaisen vasteen toimikortille syötetystä syötteestä.; Figure 3 is a block diagram of a first preferred embodiment of the device according to the invention. In the case of Fig. 3, the device 1 is assumed to be a smart card having a secret key stored in its memory M, either as a secret key or alternatively encoded (whereby the key is decrypted when the key is read from the memory). This secret key allows the smart card to be authenticated because there is a single smart card on which the secret key in question is stored and thus produces a response dependent on the secret key from the input supplied to the smart card.

Laitteeseen 1 kuuluu lisäksi laskin P, joka voi muodostua esimerkiksi prosessorista, joka ennalta määrätyn laskenta-algoritmin avulla laskee vasteen laitteen tuloon 2 syötetylle syötteelle sekä syöttää vasteen edelleen lähdön 3 kautta. Laskennassa laskenta-algoritmi hyödyntää liukuvan ikkunan 10 menetelmää sekä laitteen 1 salaista avainta. Keksinnön mukaisesti laite 1 hyödyntää liukuvan ikkunan menetelmässä satunnaisgeneraattorin RND generoimista satunnaisluvuista muodostuvia kertojia (kuten kuvioiden 1 ja 2 vuo-kaavioiden yhteydessä on selostettu), jotka välittyvät satunnaislukugeneraattorilta laskimelle laitteen sisäisen väylän kautta. Lisäksi laite 1 voi hyödyntää sa-15 tunnaislukugeneraattoria RND valitsemaan osan liukuvan ikkunan menetelmään kuuluvista yksittäisistä laskenta-operaatioista suoritettaviksi satunnaisilla kertojilla, eli toisin sanoen jollakin toisella käyttöön valitulla kertojalla kuin suurimmalla mahdollisella kertojalla (kuten kuvion 2 yhteydessä on selostettu).The device 1 further includes a calculator P, which may consist of, for example, a processor which, by means of a predetermined calculation algorithm, calculates the response to the input input to the device input 2 and outputs the response further through the output 3. In the calculation, the calculation algorithm utilizes the sliding window 10 method and the secret key of the device 1. According to the invention, device 1 utilizes random number multipliers (as described in connection with the flow charts of Figures 1 and 2) transmitted from the random number generator to the calculator via an internal bus in the sliding window method. Further, the device 1 may utilize the sa-15 random number generator RND to select some of the individual computation operations of the sliding window method to be executed by random multipliers, i.e., by another multiplier selected for use than the maximum multiplier (as described in FIG. 2).

Kuvion 3 esimerkistä poiketen laite 1 voi olla jokin muu laite kuin 20 toimikortti. Keksintöä voidaan soveltaa myös esimerkiksi luottamuksellisten . tietojen välittämiseen epäluotettavan tiedonsiirtokanavan, kuten Internetin yli.Unlike the example of Figure 3, device 1 may be a device other than a smart card 20. The invention can also be applied, for example, to confidentiality. for the transmission of information over an unreliable communication channel such as the Internet.

Tällöin on tarpeen voida joko kryptata viesti siten, että ulkopuolinen ei voi sitä ; lukea, tai vaihtoehtoisesti varustaa viesti elektronisella allekirjoituksella, jolloin ’ viestin vastaanottaja voi varmistaa, että viesti on oikeasta lähteestä. RSA algo- i 25 ritmi on eräs tunnettu algoritmi, jota hyödynnetään viestien kryptaamiseen ja viestien elektroniseen allekirjoituksiin. RSA algoritmin ovat kehittäneet Ronald ,: Rivest, Adi Shamir ja Leonard Adelman vuonna 1977. RSA algoritmissa viestit kryptataan julkisella avaimella ja kryptaus puretaan salaisella avaimelle. Vas-: taavasti elektroninen allekirjoitus tuotetaan salaisella avaimella, ja allekirjoituk- ' ; 30 sen oikeellisuus tarkistetaan julkisella avaimella. Keksinnön mukaisesti kuvion 3 laite 1 voi näin ollen olla esimerkiksi tietokone, joka vastaanottaa elektroni-‘ sella allekirjoituksella varustetun viestin, sekä keksinnön mukaista menetel mää ja salaista avainta hyödyntämällä tarkistaa onko elektronien allekirjoitus : oikein. Tällöin vaste muodostuu tiedosta, joka osoittaa onko allekirjoitus oikein.In this case, it is necessary to be able to either encrypt the message in such a way that an outsider cannot; read, or alternatively, tag the message electronically so that the recipient of the message can verify that the message is from the correct source. The RSA Algorithm 25 rhythm is a known algorithm that is utilized for encrypting messages and electronic signatures of messages. The RSA algorithm was developed by Ronald, Rivest, Adi Shamir and Leonard Adelman in 1977. In the RSA algorithm, messages are encrypted with a public key and decrypted with a secret key. Similarly, an electronic signature is produced with a secret key, and the signature; 30 it is verified with a public key. Thus, in accordance with the invention, the device 1 of Figure 3 may be, for example, a computer that receives a message with an electronic signature, and uses the method and secret key of the invention to check whether the electron signature is: correct. In this case, the response consists of information indicating whether the signature is correct.

: 35 Edelleen on eräs toinen vaihtoehto, että kuvion 3 laite 1 on tietoko ne, joka salaisella avaimella purkaa vastaanottamansa kryptatun viestin, joka 112708 11 on kryptattu salaista avainta vastaavalla julkisella avaimella. Näin ollen vaste muodostuu selväkielisestä viestistä.: 35 Yet another alternative is that the device 1 of Fig. 3 is a computer that decrypts the received encrypted message that has been encrypted with the public key corresponding to the secret key by the secret key. Therefore, the response consists of a plain language message.

Kuvio 4 esittää vuokaaviota keksinnön mukaisen menetelmän kolmannesta edullisesta suoritusmuodosta. Kuvion 4 vuokaavio poikkeaa aikai-5 semmista suoritusmuodoista sikäli, että kuvion 4 tapauksessa vasteen laskemiseen tarvittava salainen avain ei ole tallennettu selväkielisenä muistiin. Sitävastoin salainen avain on tallennettu muistiin sellaisessa muodossa, että sen hyödyntäminen ei anna ulkopuoliselle hyökkääjälle tietoja salaisesta avaimesta, ja että avaimen hyödyntäminen liukuvan ikkunan menetelmän yhteydessä 10 on hyvin yksinkertaista.Figure 4 shows a flow chart of a third preferred embodiment of the method according to the invention. The flowchart of Figure 4 differs from previous embodiments in that in the case of Figure 4, the secret key needed to calculate the response is not stored in plain-language memory. In contrast, the secret key is stored in the memory in such a form that its recovery does not provide information to the outside attacker about the secret key, and that the use of the key in the sliding window method 10 is very simple.

Lohkossa A" salainen avain jaetaan osatekijöihin, joiden summa vastaa salaista avainta. Ainakin yksi osatekijöistä muodostuu toistensa kanssa kerrottavista luvuista, joista yksi vastaa liukuvan ikkunan menetelmää varten valittua kertojaa. Osatekijöihin sisältyvät luvut tallennetaan muistiin. Kuvion 4 15 suoritusmuodossa salainen avain C on jaettu osatekijöihin seuraavalla tavalla: C= XO + (K1 * X1) + (K2 * X2) + ...+ (Kn* Xn)In block A, the secret key is divided into components whose sum corresponds to the secret key. At least one of the components consists of mutually multiplicative numbers, one of which corresponds to a multiplier selected for the sliding window method. The numbers included in the components are stored in memory. way: C = XO + (K1 * X1) + (K2 * X2) + ... + (Kn * Xn)

Edellä olevassa kaavassa salainen avain on purettu osatekijöihin, 20 joiden summa muodostaa salaisen avaimen C. Osatekijät puolestaan muodos-: tuvat luvuista tai lukujen tuloista. Osa luvista ovat satunnaisesti valittuja kerto jia K1 - Kn, jotka voidaan vaihtaa laskentakerrasta toiseen myöhemmin kuvat- ; tavalla tavalla. Muut luvut X1 - Xn ovat binäärisiä lukuja, joiden yksittäisten » [ bittien avulla osoitetaan, milloin luvun edessä olevaa kertojaa tulee hyödyntää.In the above formula, the secret key is decomposed into components 20, the sum of which forms the secret key C. The components, in turn, consist of numbers or product revenues. Some of the permissions are randomly selected multiplied by Jia K1 - Kn, which can be changed from one count to another later shown-; way way. The other numbers X1 - Xn are binary numbers whose individual »bits indicate when the multiplier in front of the number should be used.

: 25 Muistiin tallennetaan näin ollen kertojat K1-Kn sekä luvut XO-Xn. Mikäli ky- : seessä on uusi valmistettava toimikortti tai vastaava, niin ensimmäinen tallen nus tapahtuu toimikortin valmistuksen yhteydessä.: 25 The multipliers K1-Kn and the numbers XO-X are thus stored in memory. If there is a new smart card to be produced or the like, the first recording is made when the smart card is produced.

Seuraavassa esitetään laskentaesimerkki, joka valaisee lohkossa : A" tallennettavien lukujen valintaa. Oletetaan, että salainen avain ; 30 0=11010101, ja että liukuvan ikkunan menetelmää varten on valittu käyttöön yksi ainoa satunnainen kertoja, eli edellä mainitun kaavan kertoja K1 = 5 = 101 | (binäärimuodossa). Seuraavaksi selvitetään luvut X0 ja X1.The following is a calculation example which illustrates the selection of numbers to be stored in block: A ". Assume that the secret key; 30 0 = 11010101, and that a single random multiplier, i.e. K1 = 5 = 101 | (in binary form) Next, the numbers X0 and X1 are explained.

; TARKASTELTAVAT BITIT SELITYS IKKUNAN PAIKKA; EXAMINED BITS EXPLANATION WINDOW POSITION

I ALLEVIIVATTU _l____ 112708 12 11010101_Vähennetään kertoja 101 1_ 00110101_Vähennetään 001__ 00010101_Siirretään ikkunaa__ 00010101_Vähennetään 001_2_ 00000101_Siirretään ikkunaa__ 00000101_Siirretään ikkunaa_3_ 00000101_Siirretään ikkunaa_4_ 00000101_Siirretään ikkunaa_5_ 00000101_Vähennetään kertoja 101 6I DELETED _l____ 112708 12 11010101_Reduce window 101 1_ 00110101_Reduce 001__ 00010101_Remove window__00010101_Remove window__ 00000101_Remove window_aa_0000010_Remove window_aa

Edellä olevasta taulukosta havaitaan, että kertojaa K1 =101 on käytetty kun ikkuna on ollut paikassa 1 ja 6. Tällöin asetetaan luvun X1 bitit 1 ja 6 arvoon "1" ja muut bitit arvoon "0", eli X1=1000001. Vastaavasti havaitaan, 5 että lukua 001 on käytetty kun ikkuna on ollut paikassa 1 ja 2. Tällöin asetetaan bitit 1 ja 6 arvoon "1" luvussa X0 kun taas muut bitit asetetaan arvoon "0", eli X0=110000. Muistiin tallennetaan näin ollen salaisen avaimen C sijasta luvut: -X0=110000, 10 - K1 =101, ja -X1 =1000001.From the table above it is seen that the multiplier K1 = 101 has been used when the window was in positions 1 and 6. The bits 1 and 6 of X1 are then set to "1" and the other bits to "0", i.e. X1 = 1000001. Correspondingly, it is found that the number 001 has been used when the window was in positions 1 and 2. The bits 1 and 6 are then set to "1" in X0 while the other bits are set to "0", i.e. X0 = 110,000. Thus, instead of secret key C, the numbers: -X0 = 110000, 10-K1 = 101, and -X1 = 1000001 are stored in memory.

Salaisen avaimen arvo voidaan selvittää näiden lukujen avulla käyt-: tämällä edellä mainittua kaavaa, eli C= 110000 + (101 * 100001). Hyöty jokaThe value of the secret key can be determined by these numbers using the above formula, i.e. C = 110000 + (101 * 100001). The benefit of which

: edellä mainitulla tallennusmuodolla saavutetaan on se, että salaista avainta C: the above mentioned form of storage achieves that the secret key C

: 15 ei milloinkaan tarvitse käsitellä selväkielisessä muodossa muistiin tallennetta essa, muistista luettaessa tai vasteen laskennan yhteydessä, vaan muistista ·, haetaan käsiteltäväksi edellä mainitut luvut ja kertojat. Tämän lisäksi edellä oleva esitysmuoto helpottaa vasteen laskentaa liukuvan ikkunan menetelmällä kuten seuraavassa selostetaan.: 15 never need to be processed in plain text when storing, reading from memory or calculating a response, but from memory ·, the above numbers and multipliers are requested for processing. In addition, the above representation facilitates the calculation of the response by the sliding window method as described below.

20 Lohkossa B" odotetaan kunnes vastaanotetaan vaste, johon tulee laskea syöte. Tällöin siirrytään lohkoon C", jossa haetaan muistiin tallennetut luvut, jonka jälkeen lohkossa D" suoritetaan vasteen laskenta hyödyntämällä ;· haettuja lukuja sekä liukuvan ikkunan menetelmää. Seuraavassa esitetään vasteen laskennasta esimerkki, joka koskee nimenomaan liukuvan ikkunan ; 25 menetelmää hyödyntävää osuutta.In block B ", wait is received until the response to be counted is received. This moves to block C", which retrieves the numbers stored in the memory, followed by block D "using the response calculation; · The retrieved numbers and the sliding window method. specifically for the sliding window;

Kun salainen avain C on purettu osatekijöihin lohkon A" yhteydessä selostetulla tavalla, eli is 112708 C= XO + (K1 * X1) + (K2 * X2) + ...+ (Kn* Xn), ja kun laskettavana on kertolasku A=C*B, vastaa tämä seuraavan laskutoimi-5 tuksen suorittamista: A= B*XO+(K1 *B)*X1 +(K2*B)*X2 + ...+ (Kn*B)* XnWhen the secret key C has been decomposed into components as explained in the context of block A ", i.e., is 112708 C = XO + (K1 * X1) + (K2 * X2) + ... + (Kn * Xn), and when multiplication A = C * B, this corresponds to performing the following calculation operation: A = B * XO + (K1 * B) * X1 + (K2 * B) * X2 + ... + (Kn * B) * Xn

Viimeisimmässä kaavassa suluissa olevat laskutoimitukset, kuten K1*B, vas-10 taavat käytettyjen ikkunoiden todellisia arvoja ja lukujen X1, X2...Xn binäärimuoto ilmaisee koska suluissa olevien laskutoimitusten arvoja tulee käyttää liukuvan ikkunan menetelmää hyödynnettäessä (0=ei kerrota, 1=kerrotaan).In the latest formula, calculations in parentheses, such as K1 * B, represent the actual values of the windows used, and the binary form of X1, X2 ... Xn indicates that the values in parentheses should be used when using the sliding window method (0 = not multiplied; ).

Eli jos kerrottavana on luvut C*B, kun salainen avain C on tallennettu edellä esitetyssä muodossa, eli edellä mainituilla luvuilla, joiden arvot ovat 15 X0=110000, K1 =101 ja X1 =1000001, päädytään seuraavaan laskuun, kun oletetaan että B=101.That is, if the numbers C * B to be multiplied, when the secret key C is stored in the above form, i.e. the above numbers having values 15 X0 = 110000, K1 = 101 and X1 = 1000001, the next calculation is assumed, assuming B = 101 .

BITTI NRO X0 X1 LASKUTOIMITUS VÄLITULOSBIT NO X0 X1 CALCULATION INTERIM RESULT

1 1 1 B+5B 6B= _____11110_ 2 10 2*6B+B 13B = :____ 1000001 3 0 0 2Ί3Β 26B = J____ 10000010 4 0 0 2*26B 52B = v____ 100000100 5 0 0 2*52B 104B = 7____ 1000001000 J 6 0 1 2*104B+5B 213B =1 1 1 B + 5B 6B = _____11110_ 2 10 2 * 6B + B 13B =: ____ 1000001 3 0 0 2Ί3Β 26B = J____ 10000010 4 0 0 2 * 26B 52B = v____ 100000100 5 0 0 2 * 52B 104B = 7____ 1000001000 J. 6 0 1 2 * 104B + 5B 213B =

:·; 111 110000101001 I: ·; 111 110000101001 I

20 Edellä olevassa taulukossa laskut on merkitty kymmenjärjestelmää : ja kertolaskua hyödyntämällä jotta laskujen etenemistä olisi helpompi seurata.20 In the table above, invoices are denoted by a decimal system: and by using multiplication to make it easier to track the progress of the invoices.

• Käytännössä kaikki laskut kuitenkin suoritetaan binäärijärjestelmän luvuilla ja ainoastaan yhteenlaskuoperaatioilla. Laskut etenevät siten, että: 112/08 14 - kun siirrytään tarkastelemaan seuraavana vuorossa olevaa bittiä luvuissa XO ja X1 kerrotaan aikaisempi välitulos kahdella, - kun luvun XO tarkasteltavan bitin arvo on 1 lisätään välitulokseen 001, ja - kun luvun X1 tarkasteltavan bitin arvo on 1 lisätään välitulokseen lukua X1 5 vastaavan kertojan arvo, eli 5 (K1=101, eli 5 kymmenjärjestelmässä).• In practice, however, all calculations are performed with binary system numbers and only by addition operations. The calculations proceed as follows: 112/08 14 - when moving to the next bit in the turn, XO and X1 multiply the previous intermediate result by two, - when the value of the bit under XO is 1 is added to intermediate 001, and - when the bit under X1 is 1 the value of the multiplier corresponding to X1 5 is added to the intermediate result, ie 5 (K1 = 101, ie 5 in decimal system).

Kun vaste on laskettu ja syötetty edelleen lohkon D" yhteydessä selostettuja laskuoperaatioita hyödyntämällä siirrytään lohkoon E", jossa tarkistetaan onko uusien satunnaisten kertojien valinta ajankohtainen. Satunnaiset kertojat voidaan haluttaessa vaihtaa jokaisen vasteen tuottamisen jälkeen, 10 kun on tuotettu ennalta määrätty lukumäärä vasteita samoilla kertojilla tai vaihtoehtoisesti voidaan jokaisen vasteen tuottamisen jälkeen satunnaisesti arpoa vaihdetaanko kertojat vai jatketaanko samoilla kertojilla.Once the response has been calculated and fed further using the calculation operations described in connection with block D ", we proceed to block E", which checks whether the selection of new random multipliers is timely. Random multipliers may be changed, if desired, after each response has been generated, when a predetermined number of responses have been generated by the same multipliers, or alternatively, after each response has been generated, the random multiplier may be changed or continued with the same multipliers.

Mikäli kertojat päätetään vaihtaa siirrytään lohkoon F". Kun uusien satunnaisten kertojien valinta tulee ajankohtaiseksi suoritetaan se seuraavasti. 15 Oletetaan, että muistiin on uusien satunnaisten kertojien valintahetkellä tallennettu salainen avain lukujen X0 - X3 ja K1 - K3 avulla, jolloin salaisen avaimen arvo on neljän osatekijän summa seuraavasti: C= X0 + (K1*X1) + (K2*X2) + (K3*X3) 20 . Uusien kertojien valinnan yhteydessä säilytetään keksinnön mukai sesti ainakin yhden käytössä olleen osatekijän luvut muuttumattomina. Seu-; raavassa oletetaan, että toisen osatekijän (K1*X1) luvut K1 ja X1 säilytetään : muuttumattomina. Kertojien vaihdon yhteydessä on huomattava, että avaimen i 25 C arvo ei saa muuttua. Näin ollen käytöstä poistettavien osatekijöiden sum-: man on vastattava uusien korvaavien osatekijöiden summaa. Vaihto tehdään siten, että: - valitaan satunnaisesti kaksi uutta kertojaa, eli luvut K2’ja K3’ . - valitaan uusi luku X2’ siten, että: . 30 (K21 * X2’) < X0 + (K2 * X2) + (K3 *X3) - valitaan uusi luku X3’ siten, että: : (K3* * X3’) < X0 + (K2 * X2) + (K3 *X3) - (K2' * X2') : - lasketaan uusi X0' siten, että: . X0' = X0 + (K2 * X2) + (K3 *X3) - (K2‘ * X2') - (K3‘ * X3') 112708 15 Tällöin salainen avain C voidaan tallentaa seuraaviin osatekijöihin sisältyvien lukujen avulla: C= XO' + (K1 * X1) + (K21 * X2') + (K3* *X3') 5 eli kolmeen osatekijään sisältyvät luvut on vaihdettu kun taas neljännen osatekijän luvut X1 ja K1 ovat pysyneet muuttumattomina. C:n arvo ei ole muuttunut, koska muuttuneiden osatekijöiden summa on pysynyt samana vaikka osatekijöihin sisältyvien lukujen arvoja on muutettu.If the selection of new random multipliers becomes timely, it is done as follows. the sum is as follows: C = X0 + (K1 * X1) + (K2 * X2) + (K3 * X3) 20. When selecting new multipliers, the numbers of at least one of the components used in accordance with the invention are kept unchanged. the components K1 and X1 of the component (K1 * X1) are retained: unchanged Note that the value of the key i 25 C must not change when replacing the multipliers, so the sum of the components to be decommissioned must correspond to the sum of the new substitutes. that: - randomly select two new multipliers, that is, the numbers K2'and K3 '- select a new number X2' si 30 (K21 * X2 ') <X0 + (K2 * X2) + (K3 * X3) - select a new number X3' such that:: (K3 * * X3 ') <X0 + (K2 * X2) + (K3 * X3) - (K2 '* X2'): - calculate a new X0 'such that:. X0 '= X0 + (K2 * X2) + (K3 * X3) - (K2' * X2 ') - (K3' * X3 ') 112708 15 The secret key C can then be stored using the numbers in the following components: C = XO' + (K1 * X1) + (K21 * X2 ') + (K3 * * X3') 5, that is, the figures in the three components have been changed, while the numbers X1 and K1 in the fourth component have remained unchanged. The value of C has not changed because the sum of the changed components has remained the same even though the values of the numbers included in the components have been changed.

10 Tämän jälkeen uudet luvut sekä muuttumattomat luvut tallennetaan lohkossa A" muistiin, jolloin niitä voidaan hyödyntää tulevissa laskuoperaatioissa, kunnes kertojien vaihto jälleen tulee ajankohtaiseksi.10 The new numbers as well as the unchanged numbers are then stored in block A "so that they can be utilized in future calculations until the change of the multipliers becomes relevant again.

On ymmärrettävä, että edellä oleva selitys ja siihen liittyvät kuviot on ainoastaan tarkoitettu havainnollistamaan esillä olevaa keksintöä. Alan 15 ammattimiehelle tulevat olemaan ilmeisiä erilaiset keksinnön variaatiot ja muunnelmat ilman että poiketaan oheisissa patenttivaatimuksissa esitetyn keksinnön suojapiiristä ja hengestä.It is to be understood that the foregoing description and the accompanying figures are merely intended to illustrate the present invention. Various variations and modifications of the invention will be apparent to those skilled in the art without departing from the scope and spirit of the invention set forth in the appended claims.

Claims (11)

1. Förfarande för beräkning av ett svar, i vilket förfarande: multiplikatorer, som används i ett förfarande för glidande fönster, 5 väljs och ett svar beräknas med hjälp av en inmatning, en hemlig nyckel och en beräkningsalgoritm, som använder nämnda förfarande för glidande fönster samtvalda multiplikatorer, kännetecknat avatt ätminstone en del av nämnda multiplikatorer som används i förfa-10 randet för glidande fönster väljs slumpmässigt.A method for calculating a response, in which method: multipliers used in a sliding window method are selected and a response is calculated using an input, a secret key, and a calculation algorithm using said sliding window method selected multipliers characterized by eating at least a portion of said multipliers used in the sliding window method are selected at random. 2. Förfarandeenligtpatentkrav 1, kännetecknat avatt en del av de enskilda räkneoperationerna i förfarandet för glidande fönster väljs slumpmässigt, övriga räkneoperationer förutom de som valts slumpmässigt utförs 15 genom att använda största möjliga multiplikator och de slumpmässigt valda räkneoperationerna utförs genom att använda en annan multiplikator än den största möjliga multiplikatorn.Method according to claim 1, characterized in that some of the individual counting operations in the sliding window method are selected at random, other counting operations in addition to those selected at random are carried out by using the largest possible multiplier and the randomly selected multiplier by using counting operations. the largest possible multiplier. 3. Förfarande enligt patentkrav 1 eller 2, kännetecknat av att nämnda multiplikatorer, som väljs slumpmässigt, väljs sä att de största multi- 20 plikatorernas längd är 8 -128 bitar.Method according to claim 1 or 2, characterized in that said multipliers, which are selected at random, are selected so that the length of the largest multipliers is 8 -128 bits. : 4. Förfarande enligt nagot av patentkraven 1 - 3, känneteck nat av att i förfarandet: j delas den hemliga nyckeln i delfaktorer sä att summan av delfakto- . rerna motsvarar den hemliga nyckelns värde och sä att ätminstone en av del- 25 faktorerna utgörs av tai som kan multipliceras med varandra, varav ett tai ut-görs av en multiplikator som valts slumpmässigt för förfarandet för glidande fönster och för beräkning av svaret hämtas talen som ingär i delfaktorerna frän minnet och används i förfarandet för glidande fönster för att beräkna svaret för : 30 inmatningen.A method according to any one of claims 1 to 3, characterized in that in the process: j the secret key is divided into sub-factors such that the sum of sub-factors. The values correspond to the value of the secret key and so that at least one of the sub-factors is made up of tai which can be multiplied by one another, of which a tai is made up of a multiplier selected at random for the sliding window method and for calculating the answer the numbers are retrieved. is included in the subfactors of memory and used in the sliding window method to calculate the answer for: the input. 5. Förfarande enligt nägot av patentkraven 1 -4, känneteck- ’ n a t av att räkneoperationerna, som ingär i förfarandet för glidande fönster, utförs sä att räkneoperationerna, som orsakas av förflyttning av ett fönster, och : räkneoperationerna, som orsakas av hanteringen av bitarna som ingär i fönst- 35 ret som undersöks, utförs i en förutbestämd ordning varje gäng en räkneopera-tion utförs. 19 1 12708Method according to any one of claims 1-4, characterized in that the counting operations included in the sliding window method are performed so that the counting operations caused by the movement of a window and: the counting operations caused by the handling of the bits which is part of the window being examined is performed in a predetermined order each time a counting operation is performed. 19 1 12708 6. Anordning, som omfattar: en ingäng (2) för att motta en inmatning, beräkningsmedel (P) för att beräkna ett svar med hjälp av en inmatning, en hemlig nyckel och en beräkningsaigoritm, som använder ett förfaran-5 de för glidande fönster och en utgäng (3) för att mata nämnda inmatning vidare, k ä n n e -tecknad av att anordningen dessutom omfattar en slumptalsgenerator (RND) som genererar atminstone en del av multiplikatorerna som beräkningsmedlen (P) använder i förfarandet för glidan- 10 de fönster.An apparatus comprising: an input (2) for receiving an input, computational means (P) for calculating an answer by means of an input, a secret key and a computational algorithm using a sliding window method and an output (3) for further feeding said input, characterized in that the device further comprises a random number generator (RND) which generates at least a portion of the multipliers used by the calculating means (P) in the sliding window method. 7. Anordning enligt patentkrav 6, kännetecknad av att beräkningsmedlen (P) är anordnade att slumpmässigt väljä en del av de enskilda räkneoperationerna som hör tili förfarandet för glidande fönster att utföras ge-nom att använda en annan multiplikator än den största möjliga multiplikatorn 15 samt utföra övriga räkneoperationer förutom de som valts slumpmässigt ge-nom att använda största möjliga multiplikator.Device according to claim 6, characterized in that the computational means (P) are arranged to randomly select a part of the individual counting operations belonging to the sliding window method to be performed by using a multiplier other than the largest possible multiplier and performing other counting operations except those selected at random by using the largest possible multiplier. 8. Anordning enligt nagot av patentkraven 6 - 7, kännetecknad av att slumptalsgeneratorn (RND) är anordnad att generera multiplikato-rer sa att längden för de största multiplikatorerna som används i förfarandet för 20 glidande fönster är 8-128 bitar.Device according to any one of claims 6 to 7, characterized in that the random number generator (RND) is arranged to generate multipliers such that the length of the largest multipliers used in the sliding window method is 8-128 bits. 9. Anordning enligt nagot av patentkraven 6 - 8, känneteck- : n a d av att nämnda anordning är ett smartkort.Device according to any one of claims 6 - 8, characterized in that said device is a smart card. : 10. Anordning enligt nagot av patentkraven 6-9, känneteck- : n a d av att nämnda anordning är en anordning som avkodar ett krypterat i 25 meddelande, varvid nämnda svar utgörs av meddelandet.Device according to any of claims 6-9, characterized in that said device is a device which decodes an encrypted message, said reply being the message. '; 11. Anordning enligt nagot av patentkraven 6-9, känneteck nad av att nämnda anordning är en anordning som kontrollerar en elektronisk » signerings riktighet, varvid nämnda svar indikerar huruvida den elektroniska signeringen är riktig.'; 11. Device according to any of claims 6-9, characterized in that said device is a device which checks the accuracy of an electronic signature, said response indicating whether the electronic signature is correct.
FI20002151A 2000-09-29 2000-09-29 Method and apparatus for calculating a response FI112708B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FI20002151A FI112708B (en) 2000-09-29 2000-09-29 Method and apparatus for calculating a response
PCT/FI2001/000836 WO2002028009A1 (en) 2000-09-29 2001-09-26 Method and device for calculating a response
AU2001291913A AU2001291913A1 (en) 2000-09-29 2001-09-26 Method and device for calculating a response

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20002151A FI112708B (en) 2000-09-29 2000-09-29 Method and apparatus for calculating a response
FI20002151 2000-09-29

Publications (3)

Publication Number Publication Date
FI20002151A0 FI20002151A0 (en) 2000-09-29
FI20002151A FI20002151A (en) 2002-03-30
FI112708B true FI112708B (en) 2003-12-31

Family

ID=8559195

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20002151A FI112708B (en) 2000-09-29 2000-09-29 Method and apparatus for calculating a response

Country Status (3)

Country Link
AU (1) AU2001291913A1 (en)
FI (1) FI112708B (en)
WO (1) WO2002028009A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108242994B (en) * 2016-12-26 2021-08-13 阿里巴巴集团控股有限公司 Key processing method and device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999035782A1 (en) * 1998-01-02 1999-07-15 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus

Also Published As

Publication number Publication date
FI20002151A (en) 2002-03-30
WO2002028009A1 (en) 2002-04-04
AU2001291913A1 (en) 2002-04-08
FI20002151A0 (en) 2000-09-29

Similar Documents

Publication Publication Date Title
JP4671571B2 (en) Secret information processing device and memory for storing secret information processing program
US10361854B2 (en) Modular multiplication device and method
US20070291937A1 (en) Cryptographic Processing Apparatus
EP1327932B1 (en) Encryption apparatus and method with side-channel attack resistance
EP3230921B1 (en) Multiplicative masking for cryptographic operations
EP3202079B1 (en) Exponent splitting for cryptographic operations
Courtois et al. Speed optimizations in Bitcoin key recovery attacks
WO2009091746A1 (en) Representation change of a point on an elliptic curve
US20100287384A1 (en) Arrangement for and method of protecting a data processing device against an attack or analysis
Rondepierre Revisiting atomic patterns for scalar multiplications on elliptic curves
Putranto et al. Space and time-efficient quantum multiplier in post quantum cryptography era
US20090180609A1 (en) Modular Reduction Using a Special Form of the Modulus
US7123717B1 (en) Countermeasure method in an electronic component which uses an RSA-type public key cryptographic algorithm
Koziel et al. An exposure model for supersingular isogeny Diffie-Hellman key exchange
US6609141B1 (en) Method of performing modular inversion
FI112708B (en) Method and apparatus for calculating a response
KR102491902B1 (en) Device and method for operation of encrypted data using fully homomorphic encryption
Kim et al. Invalid curve attacks in a GLS setting
Yang ECC, RSA, and DSA analogies in applied mathematics
Sun et al. An efficient modular exponentiation algorithm against simple power analysis attacks
Joye et al. GCD-free algorithms for computing modular inverses
Knežević et al. Signal processing for cryptography and security applications
Li et al. Speeding up Scalar Multiplication on Koblitz Curves Using Coordinates
FI112707B (en) A method for handling a secret key
Dugardin et al. Stochastic methods defeat regular RSA exponentiation algorithms with combined blinding methods

Legal Events

Date Code Title Description
PC Transfer of assignment of patent

Owner name: GEMALTO OY

MA Patent expired