FI112707B - A method for handling a secret key - Google Patents

A method for handling a secret key Download PDF

Info

Publication number
FI112707B
FI112707B FI20002152A FI20002152A FI112707B FI 112707 B FI112707 B FI 112707B FI 20002152 A FI20002152 A FI 20002152A FI 20002152 A FI20002152 A FI 20002152A FI 112707 B FI112707 B FI 112707B
Authority
FI
Finland
Prior art keywords
sub
factors
secret key
tai
sum
Prior art date
Application number
FI20002152A
Other languages
Finnish (fi)
Swedish (sv)
Other versions
FI20002152A (en
FI20002152A0 (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 FI20002152A priority Critical patent/FI112707B/en
Publication of FI20002152A0 publication Critical patent/FI20002152A0/en
Priority to AU2001291912A priority patent/AU2001291912A1/en
Priority to PCT/FI2001/000835 priority patent/WO2002028008A1/en
Publication of FI20002152A publication Critical patent/FI20002152A/en
Application granted granted Critical
Publication of FI112707B publication Critical patent/FI112707B/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

Ί12707Ί12707

Menetelmä salaisen avaimen käsittelemiseksi Tämä keksintö liittyy salaisen avaimen käsittelyyn sellaisella tavalla, jolla varmistetaan, että salaisen avaimen käsittelyn yhteydessä ei ulkopuolisel-5 le hyökkääjälle vuoda tietoja, joiden avulla hän voisi selvittää salaisen avaimen.The present invention relates to the processing of a secret key in such a way as to ensure that, in the course of processing the secret key, no information can be leaked to an outside attacker which would allow him to determine the secret key.

Salaisia avaimia käytetään tyypillisesti esimerkiksi autentikointiope-raatioissa, jolloin varmistetaan esimerkiksi, että tietty toimikortti on autenttinen syöttämällä toimikortille syöte, johon toimikortti tuottaa vasteen ennalta mää-10 rättyä laskenta-algoritmia ja toimikorttikohtaista salaista avainta hyödyntämällä. Muita salaisen avaimen käyttökohteita ovat esimerkiksi kryptaus ja elektroninen allekirjoitus. Kryptauksessa lähettäjä kryptaa lähetettävän viestin julkisella avaimella ja vastaanottaja purkaa kryptauksen salaisella avaimella. Elektronisessa allekirjoituksessa lähetettävä viesti allekirjoitetaan käyttämällä salaista 15 avainta, kun taas vastaanottaja voi tarkistaa julkisella avaimella onko elektroninen allekirjoitus oikein. Kryptauksessa ja elektronisessa allekirjoituksessa käytetään yleisesti ns. RSA-algoritmia. Kyseinen algoritmi on kehitetty vuonna 1977 Ronald Rivestin, Adi Shamirin ja Leonadr Adelmanin toimesta.Secret keys are typically used, for example, in authentication operations to ensure, for example, that a particular smart card is authentic by providing the smart card with an input into which the smart card responds by utilizing a predetermined counting algorithm and smart card specific secret key. Other uses of a secret key include encryption and electronic signature. In encryption, the sender encrypts the message to be sent with the public key and the recipient decrypts with the private key. The message to be sent in the electronic signature is signed using the secret 15 keys, while the recipient can check with the public key whether the electronic signature is correct. Cryptography and electronic signatures are commonly referred to as so-called. RSA algorithm. This algorithm was developed in 1977 by Ronald Rivest, Adi Shamir and Leonadr Adelman.

Eräs salaisen avaimen käsittelyyn liittyvä ongelma on se, että salai-20 sen avaimen lukeminen muistista sekä hyödyntäminen laskuoperaatioissa saattaa antaa ulkopuoliselle hyökkääjälle sellaista informaatiota, jonka avulla : hän kykenee selvittämään salaisen avaimen. Eli mikäli ulkopuolinen hyökkääjä pääsee syöttämään esimerkiksi useita tuhansia syötteitä toimikortille sekä tilastoimaan toimikortin tuottamia vasteita, vasteiden tuottamiseen kulunutta 25 virtaa sekä vasteen tuottamisesta aiheutunutta säteilyä, on vaarana se, että salainen avain saattaa paljastua.One problem with the processing of a secret key is that reading the secret key from memory and utilizing it in counting operations may provide the outside attacker with information that enables him / her to: retrieve the secret key. That is, if an outside attacker could, for example, feed several thousand inputs to the smart card and statistics on the responses generated by the smart card, the 25 currents used to generate the responses, and the radiation generated by the response, there is a risk that the secret key could be revealed.

Tämän keksinnön tarkoitus on ratkaista edellä selostettu ongelma ja tarjota käyttöön ratkaisu, jonka ansiosta salaisen avaimen käsittely on entistä turvallisempaa, ja jonka ansiosta salaisen avaimen selvittäminen on ulkopuoli-; : 30 selle hyökkääjälle entistä vaikeampaa. Tämä päämäärä saavutetaan keksin- * : nön mukaisella menetelmällä salaisen avaimen käsittelemiseksi, jolle on tun nusomaista, että jaetaan salainen avain osatekijöihin siten, että osatekijöiden summa vastaa salaisen avaimen arvoa, ja että ainakin yksi osatekijä muodostuu toistensa kanssa kerrottavista luvuista, joista luvuista ainakin yksi luku on 35 satunnaisluku, tallennetaan mainitut osatekijät muistiin, jolloin mainittu ainakin yksi osatekijä tallennetaan muistiin siten, että mainitut toistensa kanssa kerrot- 112707 2 tavat luvut tallennetaan erikseen muistiin, ja vasteen tuottamiseksi haetaan osatekijät muistista, sekä lasketaan syötteelle vaste osatekijöiden sekä ennalta määrätyn laskenta-algoritmin avulla.The object of the present invention is to solve the problem described above and to provide a solution which makes the handling of the secret key more secure and which results in the outsourcing of the secret key; : 30 for the attacker tougher. This object is achieved by a method for processing a secret key according to the invention, characterized by dividing the secret key into components such that the sum of the components corresponds to the value of the secret key and that at least one element consists of mutually multiplicative numbers. is a random number 35, storing said components in memory, wherein said at least one component is stored in memory, said numbers which are multiplied with each other are separately stored in memory, and the components are retrieved from the memory to produce a response, and through.

Keksinnön kohteena on lisäksi laitteisto, jolla keksinnön mukaista 5 menetelmää voidaan soveltaa. Keksinnön mukainen laitteisto käsittää tulon syötteen vastaanottamiseksi, lähdön vasteen syöttämiseksi edelleen, ja las-kinvälineitä, jotka vasteena tulon kautta vastaanotetulle syötteelle tuottavat vasteen ennalta määrättyä laskenta-algoritmia hyödyntämällä. Keksinnön mukaiselle laitteistolle on tunnusomaista, että laitteisto käsittää muistin, johon on 10 tallennettu salaisen avaimen osatekijöitä, jolloin mainittujen osatekijöiden summan vastaa salaisen avaimen arvoa, ja ainakin yksi mainituista osatekijöistä muodostuu toistensa kanssa kerrottavista luvuista, joista luvuista ainakin yksi luku on satunnaisluku, mainitun toistensa kanssa kerrottavista luvuista muodostuvan osatekijän ollessa tallennettuna muistiin erillisinä lukuina, ja että 15 laskinvälineet on järjestetty hyödyntämään mainittuja mustiin tallennettuja osatekijöitä vasteen laskemiseksi mainitulla laskenta-algoritmilla.The invention further relates to apparatus for applying the method according to the invention. The apparatus of the invention comprises an input for receiving an input, an output for further transmitting the response, and calculation means which produce a response in response to an input received through the input by utilizing a predetermined calculation algorithm. The apparatus of the invention is characterized in that the apparatus comprises a memory having 10 secret key components stored therein, the sum of said components corresponding to the secret key value, and at least one of said components consisting of mutually multiplied numbers, at least one of which is a random number the multiplicative component being stored in the memory as discrete numbers, and that the calculating means 15 are arranged to utilize said black stored components for calculating the response by said computation algorithm.

Keksintö perustuu siihen ajatukseen, että salaisen avaimen käsittelystä tulee entistä turvallisempaa, kun salainen avain jaetaan osatekijöihin jotka tallennetaan muistiin, ja joita hyödyntämällä vaste lasketaan. Näin ollen 20 salaista avainta ei tarvitse tallentaa tai käsitellä selväkielisessä muodossa, vaan riittää että tarvittavat operaatiot suoritetaan salaisen avaimen osatekijöi-: den avulla. Vasteen laskenta tapahtuu näin ollen ikäänkuin paloittain, jolloin ; lopullisen vasteen arvo on riippuvainen yksittäisten osatekijöiden avulla suori- : tetuista laskuoperaatioista.The invention is based on the idea that processing a secret key becomes more secure by dividing the secret key into components that are stored in memory and utilized to calculate the response. Thus, the 20 secret keys do not need to be stored or processed in plain language, but it is sufficient that the necessary operations are performed by the components of the secret key. The response calculation is thus performed as if by pieces, in which; the value of the final response depends on the calculation operations performed on the individual components:

i 25 Keksinnön mukaisen ratkaisun merkittävin etu on näin ollen, että ulkopuolisen hyökkääjän on entistä vaikeampaa selvittää salainen avain vas-; . teen laskennan yhteydessä saatavan informaation perusteella, koska edes vasteen laskennassa ei ole tarpeen käsitellä salaista avainta, vaan ainoastaan : , sen osatekijöitä.The major advantage of the solution according to the invention is thus that it is more difficult for an outside attacker to find out the secret key against; . based on the information available in the computation, since even in the computation of the response it is not necessary to deal with the secret key, but only:, its components.

’ 30 Eräässä keksinnön mukaisen menetelmän edullisessa suoritus muodossa salainen avain uudelleenkoodataan muuttamalla ainakin kahta sen osatekijää siten, että osatekijöiden arvot muuttuvat mutta muuttuneiden osate-: kijöiden yhteenlaskettu arvo vastaa kyseisten osatekijöiden arvoa ennen muu tosta. Näin ollen salaisen avaimen osatekijöitä on mahdollista muuttaa halut-35 tuina ajankohtina, esimerkiksi jokaisen vasteen laskennan yhteydessä, mutta tästä muutoksesta huolimatta salainen avain, joka muodostuu osatekijöiden 112707 3 summasta, pysyy muuttumattomana. Tämän keksinnön mukaisen edullisen suoritusmuodon ansiosta saadaan aikaan ratkaisu, jossa vasteen lasketa muuttuu haluttaessa jopa jokaisen laskentakerran yhteydessä, jolloin ulkopuoliselle hyökkääjälle ei enää ole hyötyä siitä, vaikka hän kykenisikin tilastoimaan 5 tietoja laskennan aikana, koska eri laskentakertoina kerätyt tiedot eivät ole keskenään vertailukelpoisia.In a preferred embodiment of the method of the invention, the secret key is recoded by changing at least two of its components such that the values of the components change but the sum of the changed components corresponds to the value of those components before the change. Thus, it is possible to change the components of a secret key at desired times, for example in the calculation of each response, but despite this change, the secret key consisting of the sum of the components of 112707 remains unchanged. The preferred embodiment of the present invention provides a solution in which the response count changes, if desired, even with each count, whereby an outside attacker will no longer benefit from it even if he is able to compile data during the count because the data collected at different counts are not comparable.

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

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, ja 15 kuvio 3 esittää lohkokaaviota keksinnön mukaisen laitteiston en simmäisestä edullisesta suoritusmuodosta.The invention will now be described, by way of example, in greater detail with reference to the accompanying drawings, in which: Figure 1 is a flowchart of a first preferred embodiment of the method of the invention, Figure 2 is a flowchart of a second preferred embodiment of the method

Kuvio 1 esittää vuokaaviota keksinnön mukaisen menetelmän ensimmäisestä edullisesta suoritusmuodosta. Kuvion 1 vuokaavio soveltuu hyödynnettäväksi esimerkiksi toimikortin autentikoinnissa haaste/vaste-menette-20 lyllä.Figure 1 shows a flow chart of a first preferred embodiment of the method according to the invention. The flowchart of Figure 1 is suitable for use in, for example, smart card authentication with a challenge / response procedure.

Lohkossa A salainen avain jaetaan osatekijöihin K0...Kn, jotka vali-: taan siten, että salaisen avaimen C arvo vastaa osatekijöiden summaa. Osa- ; tekijät valitaan siten, että niiden joukkoon sisältyy osatekijöitä, jotka muodostu- : vat kahdesta keskenään kerrottavasta luvusta, joista toinen on satunnaisluku.In block A, the secret key is divided into components K0 ... Kn, which are selected such that the value of the secret key C corresponds to the sum of the components. Partial; the factors are selected so as to include elements consisting of two mutually exclusive numbers, one of which is a random number.

; 25 Lohkossa B osatekijät tallennetaan toimikortin tai vastaavan muistiin. Se tai ne ‘ osatekijät jotka muodostuvat toistensa kanssa kerrottavista luvuista tallenne taan siten, että yksittäisen osatekijöiden luvut tallennetaan erikseen. Lohkojen A ja B toimenpiteet suoritetaan esimerkiksi toimikortin valmistuksen yhteydessä. Näin ollen salaista avainta ei ole tarpeen tallentaa toimikortin muistiin, : : 30 vaan sitävastoin riittää, että toimikortin muistiin tallennetaan edellä mainitut ,: osatekijät.; In block B, the components are stored in the memory of the smart card or the like. It or those 'components that consist of multiplicative numbers are stored so that the individual component numbers are stored separately. The operations in blocks A and B are performed, for example, in connection with the manufacture of a smart card. Therefore, it is not necessary to store the secret key in the smart card memory:: 30 but it is sufficient for the smart card memory to store the aforementioned: components.

Lohkossa C odotetaan kunnes vastaanotetaan syöte. Tällöin haetaan lohkossa D toimikortin muistista sinne tallennetut salaisen avaimen osatekijät. Lohkossa E näiden osatekijöiden avulla lasketaan vaste ennalta mää-35 rättyä laskenta-algoritmia hyödyntämällä.In block C, a wait is received until an input is received. Then, in section D, the secret key components stored therein are retrieved from the smart card memory. In block E, these components compute the response using a predetermined computation algorithm.

112707 4112707 4

Kuvio 2 esittää vuokaaviota keksinnön mukaisen menetelmän toisesta edullisesta suoritusmuodosta.Figure 2 shows a flow chart of another preferred embodiment of the method according to the invention.

Kuvion 2 lohkossa A' salainen avain jaetaan osatekijöihin. Tällöin osatekijät valitaan siten, että niiden joukkoon sisältyy osatekijöitä, jotka muo-5 dostuvat kahdesta keskenään kerrottavasta luvusta, joista toinen on satunnaisluku. Kuvion 2 tapauksessa oletetaan, että osatekijöitä on kolme, eli KO, K1, joka arvo muodostuu satunnaisluvusta RND1 kerrottuna luvulla L1, ja K2, jonka arvo muodostuu satunnaisluvusta RND2 kerrottuna luvulla L2. Osatekijöiden valinta tapahtuu käytännössä siten, että ensi arvotaan satunnaisluvut 10 RND1 ja RND2, jonka jälkeen valitaan muut luvut, eli KO, L1 ja L2, siten, että osatekijöiden summa vastaa salaista avainta C. Näin ollen C=K0+(RND1*L1 )+(RND2*L2).In block A 'of Figure 2, the secret key is divided into components. In this case, the components are selected so as to include elements which consist of two mutually exclusive numbers, one of which is a random number. In the case of Fig. 2, it is assumed that there are three components, i.e., K0, K1, the value of which is a random number RND1 multiplied by L1, and K2, the value of which is a random number RND2 multiplied by L2. In practice, the selection of the components is done by first randomizing 10 RND1 and RND2, followed by the other numbers, KO, L1 and L2, so that the sum of the components corresponds to the secret key C. Hence C = K0 + (RND1 * L1) + ( RND2 * L2).

Lohkossa B' tallennetaan osatekijät muistiin. Tällöin kaikki osatekijöihin sisältyvät luvut tallennetaan erikseen. Esillä olevassa esimerkkitapauk-15 sessa tallennetaan näin ollen KO, RND1, L1, RND2 ja L2.In block B ', the components are stored in memory. In this case, all the figures included in the components are stored separately. KO, RND1, L1, RND2 and L2 are thus stored in the present example case.

Lohkossa C odotetaan kunnes vastaanotetaan syöte. Kun syöte on vastaanotettu haetaan lohkossa D' muistiin tallennetut osatekijät. Näitä osatekijöitä sekä ennalta määrättyä laskenta-algoritmia käyttämällä tuotetaan tämän jälkeen lohkossa E' vaste syötteelle.In block C, a wait is received until an input is received. When the input is received, the components stored in memory in block D 'are retrieved. Using these elements and a predetermined computation algorithm, a response to the input is then generated in block E '.

20 Lohkossa F' tarkistetaan onko salaisen avaimen uudelleenkoodaus ajankohtainen. Keksinnön mukaisesti salainen avain voidaan uudelleenkooda-·; ta esimerkiksi jokaisen laskentakerran jälkeen, ennalta määrättyjen laskenta- I kertojen jälkeen, tai satunnaisesti. Pääasia on se, että vältetään tilanne, jossa i samaa salaista avainta tai oikeastaan samoja salaisen avaimen osatekijöitä : 25 käytetään toistuvasti kerrasta toiseen vasteen tuottamisessa. Tällöin nimittäin ulkopuoliselle hyökkääjälle saattaa tarjoutua mahdollisuus selvittämään salai- ·. nen avain vasteen tuottamisen yhteydessä syntyvien tietojen tilastoinnin kaut ta.In block F ', it is checked whether the re-encoding of the secret key is current. According to the invention, the secret key may be re-encoded ·; for example, after each count, at predetermined count times, or randomly. The main thing is to avoid a situation where i share the same secret key or, in fact, the same components of the secret key: 25 are repeatedly used to generate a response. In that case, an outside attacker may be offered the opportunity to investigate the secret. key to compiling response data.

. Lohkossa G' aloitetaan salaisen avaimen uudelleenkoodaus. Uudel- 30 leenkoodaus suoritetaan keksinnön mukaisesti muuttamalla ainakin kahden ; ‘ salaisen avaimen osatekijän arvoa sellaisella tavalla, että muutettujen osateki- :, : joiden summa vastaa kyseisten osatekijöiden summaa ennen muutosta. Näin ; : ollen salaisen avaimen arvo pysyy muuttumattomana. Laskut tulisi keksinnön mukaisesti lisäksi suorittaa sellaisella tavalla, että missään vaiheessa ei ole 35 tarvetta laskea salaisen avaimen arvoa.. In block G ', the secret key is re-encoded. The re-coding is carried out according to the invention by modifying at least two; 'Secret key component value in such a way that the sum of the modified components is equal to the sum of those components before the change. That's it; : thus, the value of the secret key remains unchanged. In addition, the calculations according to the invention should be performed in such a way that there is no need at any time to calculate the value of the secret key.

5 ί 10 η n r7 I I Li U/5 ί 10 η n r7 I I Li U /

Seuraavassa oletetaan, että lohkon A' yhteydessä selostettua ensimmäistä ja viimeistä osatekijää muutetaan. Eli muutettavat osatekijät ovat KO ja (RND2*L2). Aluksi valitaan uusi satunnaisluku aikaisemman satunnaisluvun RND2 tilalle. Oletetaan, että valitaan RND2'.In the following, it is assumed that the first and last components described in connection with block A 'are modified. That is, the components to be changed are KO and (RND2 * L2). Initially, a new random number is selected to replace the previous random number RND2. Suppose RND2 'is selected.

5 Lohkossa H' valitaan muut muutettaviin osatekijöihin sisältyvät lu vut. Aluksi valitaan L2:n tilalle uusi L2' siten, että (L2'*RND2')<K0+(RND2*L2). Lopuksi lasketaan KO:n tilalle uusi KO'. Tämä tapahtuu seuraavan laskutoimituksen avulla: K0,=K0+(RND2*L2)-(L2,*RND2').5 In block H ', the other numbers included in the components to be changed are selected. Initially, a new L2 'is selected in place of L2 such that (L2' * RND2 ') <K0 + (RND2 * L2). Finally, a new KO 'is replaced with a KO. This is done by the following calculation: K0, = K0 + (RND2 * L2) - (L2, * RND2 ').

Näin ollen salaisen avaimen osatekijät ovat muuttuneet sellaisella 10 tavalla, että salaisen avaimen arvo ei ole muuttunut, minkä vuoksi myös salaisella avaimella tuotetut vasteet ovat vertailukelpoisia aikaisemmilla osatekijöillä tuotetuille vasteille. Tämän jälkeen voidaan muistiin tallentaa osatekijät siten, että yksittäiset osatekijöihin sisältyvät luvut KO', RND1, L1, RND2' ja L2' tallennetaan erikseen.Thus, the components of the secret key have changed in such a way that the value of the secret key has not changed, so that the responses produced by the secret key are also comparable to those produced by the previous components. The components can then be stored in the memory so that the individual numbers K0 ', RND1, L1, RND2' and L2 'contained in the components are stored separately.

15 Seuraavassa esitetään käytännön laskuesimerkki siitä, miten kuvion 2 suoritusmuotoa voidaan soveltaa. Oletetaan että toimikortin autentikointi suoritetaan laskenta-algoritmilla, joka hyödyntää liukuvan ikkunan menetelmää yksittäisten laskuoperaatioiden läpiviemiseksi. Liukuvan ikkunan menetelmä on tunnettu tapa kertolaskun tai exponentoinnin laskemiseksi binäärijärjestel-20 mässä. Seuraavassa esitetään esimerkki kertolaskun C*B suorittamiseksi liukuvan ikkunan menetelmällä, kun käytössä on yksinomaan yhteenlasku, ja • kun 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 a practical calculation example of how the embodiment of Figure 2 can be applied. Suppose that smart card authentication is performed by a computational algorithm that utilizes a sliding window method to perform individual count operations. 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 the multiplication C * B using the sliding window method when using only summation, and • to prevent an outside attacker from gaining access to: information that would allow him to determine the secret key C.

: Salaisen avaimen arvoksi oletetaan C=11010101. Salainen avain ; 25 halutaan jakaa kahteen osatekijään osatekijöihin siten, että sen muoto on ' . C=K0+RND1*L1. Arvotaan liukuvan ikkunan menetelmässä käytettävän kerto- . jän, eli satunnaisluvun RND1 arvoksi 5 (101 binäärijärjestelmässä). Tämän jälkeen yritetään löytää lukujen KO ja L1 arvot seuraavalla laskutoimituksella:: The value of the secret key is assumed to be C = 11010101. Secret key; It is desirable to divide 25 into two components such that it has the form '. C = K0 + RND1 * L1. The multiplier used in the sliding window method is drawn. ice, that is, a random number RND1 of 5 (101 in the binary system). Then try to find the values of KO and L1 by the following calculation:

TARKASTELTAVAT BITIT SELITYS IKKUNAN PAIKKAEXAMINED BITS EXPLANATION WINDOW POSITION

: ' ALLEVIIVATTU___ . : 11010101_Vähennetään kertoja 101 J_ ; : 00110101_Vähennetään 001__ 00010101_Siirretään ikkunaa__ . , 00010101_Vähennetään 001_2_ 00000101_Siirretään ikkunaa__ 112707 6 00000101_Siirretään ikkunaa_3_ 00000101_Siirretään ikkunaa_4_ 00000101_Siirretään ikkunaa_5_ 00000101_Vähennetään kertoja 101 6: 'UNDERWRITTEN___. : 11010101_Reduce multiplier by 101 J_; : 00110101_Reduce 001__ 00010101_Move window__. , 00010101_Download 001_2_ 00000101_Move window__ 112707 6 00000101_Move window_3_ 00000101_Move window_4_ 00000101_Move window_5_ 00000101_Room out 101 6

Edellä olevasta taulukosta havaitaan, että satunnaisesti valittua kertojaa RND1=101 on käytetty kun ikkuna on ollut paikassa 1 ja 6. Tällöin asetetaan luvun L1 bitit 1 ja 6 arvoon "1" ja muut bitit arvoon "0", eli L1=1000001. 5 Vastaavasti havaitaan, 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 KO kun taas muut bitit asetetaan arvoon "0”, eli K0=110000. Muistiin tallennettaviin salaisen avaimen osatekijöihin (kuvion 2 lohko B') sisältyy näin ollen luvut: K0=110000, RND1 =101, ja L1=1000001.From the above table it is observed that the randomly selected multiplier RND1 = 101 has been used when the window was in positions 1 and 6. The bits 1 and 6 of L1 are then set to "1" and the other bits to "0", i.e. L1 = 1000001. Correspondingly, it is found that the number 001 has been used when the window was in positions 1 and 2. In this case, bits 1 and 6 are set to "1" in KO, while other bits are set to "0", i.e. K0 = 110000. (block B 'of Figure 2) thus includes the numbers: K0 = 110000, RND1 = 101, and L1 = 1000001.

10 Kun salainen avain C on purettu osatekijöihin kuten edellä on esitet ty, eli C= KO + (RND1* L1), ja kun laskettavana on kertolasku A=C*B, vastaa tämä seuraavan laskutoimituksen suorittamista: A= B*K0+(RND1*B). Eli jos kerrottavana on luvut C*B, kun salainen avain C on tallennettu edellä esitetyssä muodossa, eli edellä mainituilla luvuilla, joiden arvot ovat K0=110000, 15 RND1 =101 ja L1=1000001, päädytään seuraavaan laskuun, kun oletetaan että B=101.10 When the secret key C is decomposed into the components as described above, i.e. C = KO + (RND1 * L1), and when the multiplication A = C * B is computed, this corresponds to the following calculation: A = B * K0 + (RND1 * B). 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 K0 = 110000, 15 RND1 = 101 and L1 = 1000001, the next calculation is made assuming B = 101 .

; BITTI NRO KO L1 LASKUTOIMITUS VÄLITULOS; BIT NO L1 L1 CALCULATION INTERIM RESULT

: 1 11 B+5B 6B = i____11110_ 2 1 0 2*6B+B 13B = : j____ 1000001 3 0 0 2*13B 26B = : · ;____ 10000010 ; . 4 0 0 2*26B 52B = ____ 100000100 5 0 0 2*52B 104B = : ‘ :____ 1000001000 I · . 6 0 1 2M04B+5B 213B = lii [10000101001 112707 7: 1 11 B + 5B 6B = i____11110_ 2 1 0 2 * 6B + B 13B =: j____ 1000001 3 0 0 2 * 13B 26B =: ·; ____ 10000010; . 4 0 0 2 * 26B 52B = ____ 100000100 5 0 0 2 * 52B 104B =: ': ____ 1000001000 I ·. 6 0 1 2M04B + 5B 213B = lii [10000101001 112707 7

Edellä olevassa taulukossa laskut on merkitty kymmenjärjestelmää ja kertolaskua hyödyntämällä jotta laskujen etenemistä olisi helpompi seurata. Käytännössä kaikki laskut kuitenkin suoritetaan binäärijärjestelmän luvuilla ja 5 ainoastaan yhteenlaskuoperaatioilla. Laskut etenevät siten, että: - kun siirrytään tarkastelemaan seuraavana vuorossa olevaa bittiä luvuissa KO ja L1 kerrotaan aikaisempi välitulos kahdella, - kun luvun KO tarkasteltavan bitin arvo on 1 lisätään välitulokseen 001, ja - kun luvun L1 tarkasteltavan bitin arvo on 1 lisätään välitulokseen lukua L1 10 vastaavan kertojan arvo 5 (RND1=101, eli 5 kymmenjärjestelmässä).In the table above, invoices are denoted by decimal and multiplication to make it easier to track the progress of the invoices. However, in practice, all calculations are performed with binary system numbers and 5 only with addition operations. The calculations proceed as follows: - when moving to the next bit in the turn, KO and L1 multiply the previous intermediate result by two, - when the value of the bit under KO is 1 is added to intermediate 001, and - when the value of The value of 10 corresponding multipliers is 5 (RND1 = 101, ie 5 in decimal system).

Sen lisäksi, että keksinnön mukaisella ratkaisulla jakaa salainen avain osatekijöihin saavutetaan etuja salaisen avaimen suojaamisen kannalta, helpottaa lisäksi tämä jako myös salaisen avaimen hyödyntämistä liukuvan ikkunan menetelmää käyttävissä algoritmeissa, kuten edellisestä laskuesimer-15 kistä ilmenee.Not only does the solution of the invention divide the secret key into components by providing advantages in terms of protecting the secret key, this division also facilitates the utilization of the secret key in algorithms using the sliding window method, as shown in the previous calculation example.

Kuvio 3 esittää lohkokaaviota keksinnön mukaisen laitteiston ensimmäisestä edullisesta suoritusmuodosta. Kuvion 3 tapauksessa laitteiston 1 oletetaan olevan toimikortti, jonka yhteydessä voidaan soveltaa kuvioiden 1 tai 2 yhteydessä selostettu menetelmää toimikortin autentikoimiseksi.Fig. 3 is a block diagram of a first preferred embodiment of the apparatus according to the invention. In the case of Figure 3, the hardware 1 is assumed to be a smart card, in which case the method described in Figure 1 or 2 for authenticating the smart card may be applied.

20 Laitteiston 1 valmistuksen yhteydessä laitteiston 1 salainen avain C20 When manufacturing hardware 1, the secret key C of hardware 1

on purettu osatekijöihin siten, että C=K0+(RND1*L1)+...+(RNDn*Ln). Tämän ! jälkeen muistiin M on tallennettu osatekijöihin sisältyvät luvut KO, RND1, L1,..., j RNDn, Ln. Laitteiston autentikoinnin yhteydessä tuloon 2 syötetään syöte. Täl-is decomposed into components such that C = K0 + (RND1 * L1) + ... + (RNDn * Ln). This! thereafter, the numbers K0, RND1, L1, ..., j RNDn, Ln included in the components are stored in the memory M. When hardware is authenticated, input 2 is input. such

i löin prosessori P laskee ennalta määrätyn laskenta-algoritmin sekä muistiin Mi the processor P computes a predetermined computation algorithm as well as the memory M

• 25 tallennettujen salaisen avaimen osatekijöiden avulla vasteen, jonka laitteisto 1 syöttää edelleen lähdön 3 kautta.• 25 stored secret key components, a response which is further provided by the hardware 1 via the output 3.

,Mikäli salaisen avaimen uudelleenkoodaus tulee ajankohtaiseksi suorittaa prosessori P tarvittavat laskutoimituksen salaisen avaimen jakami-seksi uusiin osatekijöihin esimerkiksi kuten kuvion 2 vuokaavion yhteydessä 30 on selostettu. Uudet satunnaisluvut prosessori P saa satunnaislukugeneraatto-’ ; ' riita RND. Kun salaisen avaimen uudet osatekijät on laskettu tallentaa laitteisto * : 1 ne muistiin M aikaisempien osatekijöiden tilalle.If the re-encoding of the secret key becomes timely, the processor P will perform the necessary computation to divide the secret key into new components, for example, as described in connection with the flow chart of Figure 2. New random numbers processor P gets random number generator; 'dispute RND. After calculating the new components of the secret key, store the hardware *: 1 in memory M to replace the previous components.

• : Edellä selostetusta poiketen voi kuvion 3 laitteisto 1 olla jokin muu / laitteisto kuin toimikortti. Keksintöä voidaan soveltaa myös esimerkiksi luotta- 35 muksellisten tietojen välittämiseen epäluotettavan tiedonsiirtokanavan, kuten *’ Internetin yli. Tällöin on tarpeen voida joko kryptata viesti siten, että ulkopuoli- 112707 8 nen ei voi sitä lukea, tai vaihtoehtoisesti varustaa viesti elektronisella allekirjoituksella, jolloin viestin vastaanottaja voi varmistaa, että viesti on oikeasta lähteestä.•: Unlike the above, the hardware 1 of Figure 3 may be other than a smart card. The invention can also be applied, for example, to the transmission of confidential information over an unreliable communication channel such as the Internet. In this case, it may be necessary to either encrypt the message in such a way that it cannot be read by an external party, or alternatively, provide the message with an electronic signature so that the recipient of the message can verify that the message is from the correct source.

Vastaavasti elektroninen allekirjoitus tuotetaan salaisella avaimella, 5 ja allekirjoituksen oikeellisuus tarkistetaan julkisella avaimella. Keksinnön mukaisesti kuvion 3 laitteisto 1 voi näin ollen olla esimerkiksi tietokone, joka vastaanottaa elektronisella allekirjoituksella varustetun viestin, sekä keksinnön mukaista menetelmää ja salaista avainta hyödyntämällä tarkistaa onko elektronien allekirjoitus oikein. Tällöin vaste muodostuu tiedosta, joka osoittaa onko 10 allekirjoitus oikein.Similarly, the electronic signature is produced with a secret key, 5 and the correctness of the signature is verified with a public key. Thus, according to the invention, the apparatus 1 of Figure 3 can be, for example, a computer receiving a message with an electronic signature, and using the method and secret key of the invention to check whether the electron signature is correct. The response then consists of information indicating whether the 10 signatures are correct.

Edelleen on eräs toinen vaihtoehto, että kuvion 3 laitteisto 1 on tietokone, joka salaisella avaimella purkaa vastaanottamansa kryptatun viestin, joka on kryptattu salaista avainta vastaavalla julkisella avaimella. Näin ollen vaste muodostuu selväkielisestä viestistä.Yet another alternative is that the hardware 1 of Figure 3 is a computer that uses a secret key to decrypt the received encrypted message encrypted with a public key corresponding to the secret key. Therefore, the response consists of a plain language message.

15 On ymmärrettävä, että edellä oleva selitys ja siihen liittyvät kuviot on ainoastaan tarkoitettu havainnollistamaan esillä olevaa keksintöä. Alan 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 drawings 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.

> I> I

s ts t

Claims (6)

1. Förfarande för att hantera en hemlig nyckel, kännetecknat av att 5 den hemliga nyckeln indelas i delfaktorer sä, att delfaktorernas summa motsvarar den hemliga nyckels värde, och sä att ätminstone en del-faktor utgörs av tai som ska multipliceras med varandra, av vilka tai ätminstone ett är ett slumptal, nämnda delfaktorer lagras i ett minne, varvid nämnda ätminstone 10 ena delfaktor lagras i minnet sä, att nämnda tai som ska multipliceras med varandra lagras separat i minnet, och för att generera ett svar söks delfaktorerna frän minnet, samt pä indata räknas svaret med hjälp av delfaktorerna och en förutbe-stämd räknealgoritm. 15 2. Förfarande enligt patentkrav 1, k ä n n e t e c k n a t av att för omkodning av den hemliga nyckeln ändras ätminstone tvä delfaktorer sä, att delfaktorernas värde ändras men de ändrade delfaktorernas summa motsvarar nämnda delfaktorers summa före ändringen.A method of handling a secret key, characterized in that the secret key is subdivided into sub-factors, such that the sum of the sub-factors corresponds to the value of the secret key, and that at least a sub-factor consists of tai to be multiplied by one another, of which said at least one is a random number, said subfactors being stored in a memory, said eating at least one subfactor being stored in memory such that said tai to be multiplied with each other is stored separately in memory, and to generate a response, the subfactors are searched from memory, and On the input data, the response is calculated using the sub-factors and a predetermined calculation algorithm. 2. A method according to claim 1, characterized in that for encoding the secret key, at least two sub-factors are changed, such that the value of the sub-factors changes but the sum of the changed sub-factors corresponds to the sum of said sub-factors before the change. 3. Förfarande enligt patentkrav 1 eller 2, kännetecknat av att 20 de delfaktorer som utgörs av tai som ska multipliceras med varandra, av vilka tai ätminstone ett är ett slumptal, ändras genom att nya slumptal tas i bruk : istället för de tidigare, varefter de övriga talen väljs sä, att de ändrade delfakto- , rernas summa motsvarar nämnda delfaktorers summa före ändringen. : 4. Anordning (1) som omfattar: 25 en ingäng (2) för att mottaga indata, en utgäng (3) för att mata vidare ett gensvar, och räknedon (P) som i gensvar pä indata som mottagits via ingängen genererar ett gensvar genom att utnyttja en förutbestämd räknealgoritm, kännetecknad av 30 att anordningen (1) omfattar ett minne (M) i vilket har lagrats en hemlig nyckels delfaktorer, varvid nämnda delfaktorers summa motsvarar vär-det pä den hemliga nyckeln och ätminstone en av nämnda delfaktorer utgörs av tai som ska multipliceras med varandra, av vilka tai ätminstone ett tai är ett slumptal, varvid nämnda delfaktor som utgörs av tai som ska multipliceras 35 med varandra har lagrats i minnet som separata tai, och 112707 att räknedonen (P) anordnats att utnyttja nämnda i minnet (M) lag-rade delfaktorer i beräknandet av gensvaret med nämnda räknealgoritm.Method according to Claim 1 or 2, characterized in that the sub-factors consisting of tai to be multiplied, of which tai at least one is a random number, are changed by using new random numbers: instead of the former, after which the the other numbers are chosen so that the sum of the changed sub-factors corresponds to the sum of the sub-factors before the change. A device (1) comprising: an input (2) for receiving input, an output (3) for passing on a response, and counters (P) which, in response to input received via the input, generate a response using a predetermined counting algorithm, characterized in that the device (1) comprises a memory (M) in which has been stored a secret key's subfactors, the sum of said subfactors corresponding to the value of the secret key and at least one of said subfactors being tai to be multiplied by each other, of which tai is at least one tai is a random number, said sub-factor comprising tai to be multiplied with each other has been stored in memory as separate tai, and the counters (P) are arranged to utilize the the memory (M) stored subfactors in the computation of the response by said counting algorithm. 5. Anordning enligt patentkrav 4, k ä n n e t e c k n a d av att för omkodning av den hemliga nyckeln är anordningen (1) anordnad att ändra 5 ätminstone tvä delfaktorer sä, att delfaktorernas värde ändras men de ändrade delfaktorernas summa motsvarar summan pa de delfaktorer som ska ändras före ändringen, och att lagra nämnda ändrade delfaktorer i minnet (M) istället för de tidigare delfaktorerna.5. Device according to claim 4, characterized in that for encoding the secret key, the device (1) is arranged to change at least two sub-factors, such that the value of the sub-factors changes but the sum of the changed sub-factors corresponds to the sum of the sub-factors to be changed before the change, and storing said changed subfactors in memory (M) instead of the previous subfactors. 6. Anordning enligt patentkrav 4,kännetecknad av att ifall till 10 de delfaktorer som ska ändras hör sädana delfaktorer som utgörs av tai som ska multipliceras med varandra, av vilka tai ätminstone ett är ett slumptal, är anordningen anordnad att ändra nämnda delfaktorer genom att väljä i bruk nya slumptal istället för de tidigare slumptalen, och efter detta väljä de övriga talen sä, att de ändrade delfaktorernas summa motsvarar summan pä de del-15 faktorer som ska ändras före ändringen. I · t * I tApparatus according to claim 4, characterized in that in case of the sub-factors to be changed belong to such sub-factors consisting of tai to be multiplied, of which tai at least one is a random number, the device is arranged to change said sub-factors by selecting in use new random numbers instead of the previous random numbers, and after that the other numbers say that the sum of the changed sub-factors corresponds to the sum of the sub-factors to be changed before the change. I · t * I t 1 I 1 « (1 I 1 «(
FI20002152A 2000-09-29 2000-09-29 A method for handling a secret key FI112707B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FI20002152A FI112707B (en) 2000-09-29 2000-09-29 A method for handling a secret key
AU2001291912A AU2001291912A1 (en) 2000-09-29 2001-09-26 Method for handling a secret key
PCT/FI2001/000835 WO2002028008A1 (en) 2000-09-29 2001-09-26 Method for handling a secret key

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20002152 2000-09-29
FI20002152A FI112707B (en) 2000-09-29 2000-09-29 A method for handling a secret key

Publications (3)

Publication Number Publication Date
FI20002152A0 FI20002152A0 (en) 2000-09-29
FI20002152A FI20002152A (en) 2002-03-30
FI112707B true FI112707B (en) 2003-12-31

Family

ID=8559196

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20002152A FI112707B (en) 2000-09-29 2000-09-29 A method for handling a secret key

Country Status (3)

Country Link
AU (1) AU2001291912A1 (en)
FI (1) FI112707B (en)
WO (1) WO2002028008A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5984625B2 (en) * 2012-10-31 2016-09-06 ルネサスエレクトロニクス株式会社 Semiconductor device and encryption key writing method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586186A (en) * 1994-07-15 1996-12-17 Microsoft Corporation Method and system for controlling unauthorized access to information distributed to users
US5588061A (en) * 1994-07-20 1996-12-24 Bell Atlantic Network Services, Inc. System and method for identity verification, forming joint signatures and session key agreement in an RSA public cryptosystem
US5974151A (en) * 1996-11-01 1999-10-26 Slavin; Keith R. Public key cryptographic system having differential security levels
CA2316227C (en) * 1998-01-02 2009-08-11 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus

Also Published As

Publication number Publication date
WO2002028008A1 (en) 2002-04-04
FI20002152A (en) 2002-03-30
AU2001291912A1 (en) 2002-04-08
FI20002152A0 (en) 2000-09-29

Similar Documents

Publication Publication Date Title
Courtois et al. Stealth address and key management techniques in blockchain systems
US7940927B2 (en) Information security device and elliptic curve operating device
US7706528B2 (en) Prime calculating apparatus, key issuing system, and prime calculation method
US7020281B2 (en) Timing attack resistant cryptographic system
US20090228717A1 (en) System for making program difficult to read, device for making program difficult to read, and method for making program difficult to read
KR20020025630A (en) The processing device of secret information, program or system thereof
EP3202079B1 (en) Exponent splitting for cryptographic operations
JP5648177B2 (en) Protection of prime generation against side channel attacks
JP2008252299A (en) Encryption processing system and encryption processing method
Barker et al. Sp 800-90a. recommendation for random number generation using deterministic random bit generators
WO2019110399A1 (en) Two-party signature device and method
CN109818752A (en) Credit scoring generation method, device, computer equipment and storage medium
CN114647857A (en) Data processing method, device, equipment, storage medium and program product
JP2010164904A (en) Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method
JP2004519132A (en) How to hide the secret multiplicand
US7248692B2 (en) Method of and apparatus for determining a key pair and for generating RSA keys
JP2004512570A (en) Method and apparatus using an insecure cryptographic accelerator
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
KR20060013124A (en) A modular exponentiation algorithm, a record device including the algorithm and a system using the algorithm
US7123717B1 (en) Countermeasure method in an electronic component which uses an RSA-type public key cryptographic algorithm
US7903814B2 (en) Enhancing the security of public key cryptosystem implementations
CN1985458B (en) Enhanced natural Montgomery exponent masking
FI112707B (en) A method for handling a secret key
EP3707593B1 (en) A computation device and method
Yang ECC, RSA, and DSA analogies in applied mathematics

Legal Events

Date Code Title Description
PC Transfer of assignment of patent

Owner name: GEMALTO OY

MA Patent expired