NL1011800C2 - Method and device for cryptographically processing data. - Google Patents
Method and device for cryptographically processing data. Download PDFInfo
- Publication number
- NL1011800C2 NL1011800C2 NL1011800A NL1011800A NL1011800C2 NL 1011800 C2 NL1011800 C2 NL 1011800C2 NL 1011800 A NL1011800 A NL 1011800A NL 1011800 A NL1011800 A NL 1011800A NL 1011800 C2 NL1011800 C2 NL 1011800C2
- Authority
- NL
- Netherlands
- Prior art keywords
- data
- key
- stage
- additional
- auxiliary
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Description
f*f *
Korte aanduiding: Werkwijze en inrichting voor het cryptografisch bewerken van data.Short designation: Method and device for cryptographically processing data.
ACHTERGROND VAN DE UITVINDINGBACKGROUND OF THE INVENTION
De uitvinding heeft betrekking op een werkwijze voor het cryptografisch bewerken van data, omvattende het aan een cryptogra-fisch proces toevoeren van waarden, te weten de data en een sleutel, 5 en het uitvoeren van het proces teneinde cryptografisch bewerkte data te vormen. Een dergelijke werkwijze is in de praktijk bekend.The invention relates to a method for cryptographically processing data, comprising supplying values, namely the data and a key, to a cryptographic process, and executing the process to form cryptographically processed data. Such a method is known in practice.
Voor het cryptografisch bewerken van data worden in de praktijk vaak algemeen bekende processen toegepast. Voorbeelden van dergelijke cryptografische processen (algoritmen) zijn DES en RSA, die 10 bijvoorbeeld zijn beschreven in het boek "Applied Cryptography" door B. Schneier (2e uitgave), New York, 1996.In practice, generally known processes are often used for cryptographic processing of data. Examples of such cryptographic processes (algorithms) are DES and RSA, which are described, for example, in the book "Applied Cryptography" by B. Schneier (2nd edition), New York, 1996.
Deze processen worden gepubliceerd omdat men ervan uitging dat het, bij een voldoende grote sleutellengte, ondoenlijk zou zijn aan de hand van de bewerkte data de oorspronkelijke data en/of de sleutel te 15 achterhalen, ook al was het cryptografische proces bekend.These processes are published because it was assumed that, with a sufficiently large key length, it would be impossible to retrieve the original data and / or the key from the processed data, even if the cryptographic process was known.
Recentelijk zijn echter aanvallen ontdekt die zijn gebaseerd op kennis van het cryptografische proces. Met andere woorden, doordat het gedrag van het proces bekend is wordt het, bij bepaalde aanvallen, aanzienlijk eenvoudiger om de gebruikte sleutel en/of de 20 oorspronkelijke data te herleiden. Het zal duidelijk zijn dat dit ongewenst is.However, attacks based on knowledge of the cryptographic process have recently been discovered. In other words, because the behavior of the process is known, it becomes considerably easier, in certain attacks, to retrieve the key used and / or the original data. It will be clear that this is undesirable.
SAMENVATTING VAN DE UITVINDINGSUMMARY OF THE INVENTION
De uitvinding beoogt bovengenoemd probleem op te lossen door een 25 werkwijze en schakeling voor het uitvoeren van een cryptografisch proces aan te geven die het herleiden van de sleutel bij toepassing van een bekend (d.w.z. openbaar) cryptografisch proces aanzienlijk bemoeilijken of zelfs ondoenlijk maken. Een werkwijze van de in de aanhef genoemde soort is hiertoe overeenkomstig de uitvinding 30 gekenmerkt door het aan het proces toevoeren van hulpwaarden teneinde de in het proces gebruikte waarden te maskeren.The object of the invention is to solve the above-mentioned problem by indicating a method and circuit for performing a cryptographic process which make the retrieval of the key considerably more difficult or even impracticable when using a known (i.e. public) cryptographic process. According to the invention, a method of the type mentioned in the opening paragraph is for this purpose characterized by supplying auxiliary values to the process in order to mask the values used in the process.
Door het maskeren van de data en/of sleutel(s) wordt het aanzienlijk moeilijker deze waarden aan de hand van het gedrag van het proces te herleiden. Het resultaat van het proces, dat wil zeggen de 35 verzameling bewerkte data, kan bij een geschikte keuze van de hulpwaarden onveranderd zijn, dat wil zeggen identiek zijn aan het resultaat van het proces indien daar geen hulpwaarden aan zijn »10118 0 0 2 toegevoerd. In dit verband wordt onder een "hulpwaarde" een waarde (data of sleutel) verstaan, die in aanvulling op de corresponderende data en sleutel aan het proces wordt toegevoerd.Masking the data and / or key (s) makes it considerably more difficult to trace these values based on the behavior of the process. The result of the process, ie the set of processed data, can be unchanged with a suitable selection of the auxiliary values, that is to say identical to the result of the process if no auxiliary values are added thereto. In this context, an "auxiliary value" is understood to mean a value (data or key), which is supplied to the process in addition to the corresponding data and key.
De uitvinding is derhalve gebaseerd op het inzicht, dat het 5 herleiden van de in een cryptografisch proces gebruikte waarden aanzienlijk gecompliceerd wordt indien deze waarden door middel van hulpwaarden zijn gemaskeerd.The invention is therefore based on the insight that the conversion of the values used in a cryptographic process is considerably complicated if these values are masked by means of auxiliary values.
De uitvinding is mede gebaseerd op het verdere inzicht, dat het gebruik van hulpwaarden het resultaat van het proces niet 10 noodzakelijkerwijs beïnvloedt.The invention is partly based on the further insight that the use of auxiliary values does not necessarily influence the result of the process.
In een eerste uitvoeringsvorm van de uitvinding omvat een hulpwaarde een aanvullende sleutel die aan een aanvullend proces wordt toegevoerd teneinde de sleutel te vormen.In a first embodiment of the invention, an auxiliary value comprises an additional key that is supplied to an additional process to form the key.
Door een combinatie van een bekend proces en een aanvullend 15 proces toe te passen wordt een nieuw, op zich onbekend cryptografisch proces gevormd, zelfs indien het aanvullende proces ook op zich bekend is.By applying a combination of a known process and an additional process, a new, per se unknown cryptographic process is formed, even if the additional process is also known per se.
Door de voor het bekende proces gebruikte sleutel (primaire sleutel) af te leiden uit een aanvullende sleutel (secundaire sleutel) 20 met behulp van een aanvullend proces wordt bereikt dat niet de (primaire) sleutel van het bekende proces maar de aanvullende (secundaire) sleutel aan de combinatie van processen wordt aangeboden. Met andere woorden, extern wordt de aanvullende (secundaire) sleutel en niet de werkelijke (primaire) sleutel van het eigenlijke proces 25 gebruikt. Het afleiden van de sleutel uit de oorspronkelijke data en de bewerkte data is daarmee ondoenlijk geworden. Tevens is het aflelden van de aanvullende sleutel ernstig bemoeilijkt, omdat de combinatie van het oorspronkelijke proces en het aanvullende proces niet bekend is.By deriving the key (primary key) used for the known process from an additional key (secondary key) 20 by means of an additional process, it is achieved that not the (primary) key of the known process but the additional (secondary) key is offered to the combination of processes. In other words, externally the additional (secondary) key and not the actual (primary) key of the actual process is used. Deriving the key from the original data and the edited data has therefore become impossible. It is also very difficult to cancel the additional key, because the combination of the original process and the additional process is unknown.
30 Deze uitvoeringsvorm van de uitvinding is derhalve onder meer gebaseerd op het inzicht, dat het bekend zijn van een cryptografisch proces ongewenst is, dit in tegenstelling tot wat tot dusver werd aangenomen. Deze uitvoeringsvorm is tevens gebaseerd op het verdere inzicht, dat aanvallen die voortbouwen op kennis van het proces aan-35 zienlijk moeilijker worden indien het proces onbekend is.This embodiment of the invention is therefore based, inter alia, on the insight that the knowledge of a cryptographic process is undesirable, contrary to what has hitherto been assumed. This embodiment is also based on the further understanding that attacks that build on process knowledge become significantly more difficult if the process is unknown.
Bij voorkeur omvat het aanvullende proces een cryptografisch proces. Dit maakt het herleiden van de aanvullende sleutel moeilijker. In principe kan echter bijvoorbeeld een eenvoudige codering als 6Ί18 0 0 3 aanvullend proces worden toegepast. Bij een cryptografisch proces wordt bij voorkeur een hulpsleutel toegepast.Preferably, the additional process includes a cryptographic process. This makes it easier to trace the additional key. In principle, however, for example, a simple coding such as 6Ί18 0 0 3 additional process can be used. An auxiliary key is preferably used in a cryptographic process.
Met voordeel is het aanvullende proces een inverteerbaar proces. Dit maakt het mogelijk de werkwijze volgens de uitvinding bij 5 bestaande apparatuur met minimale wijzigingen toe te passen. Indien bijvoorbeeld een eerste inrichting een (aanvullende) sleutel afgeeft die in een tweede inrichting overeenkomstig de uitvinding wordt toegepast, kan in de eerste inrichting de inverse van het aanvullende proces worden gebruikt om de aanvullende sleutel uit de 10 oorspronkelijke sleutel af te leiden. Met andere woorden, hoewel in zowel de eerste als de tweede inrichting intern de oorspronkelijke (primaire) sleutel wordt gebruikt, wordt tussen de inrichtingen de aanvullende (secundaire) sleutel uïtgewisseld. Het onderscheppen van de aanvullende sleutel leidt echter niet tot kennis van de oorspronke-15 lijke sleutel.Advantageously, the additional process is an invertible process. This makes it possible to apply the method according to the invention to existing equipment with minimal changes. For example, if a first device issues an (additional) key that is used in a second device according to the invention, in the first device the inverse of the additional process can be used to derive the additional key from the original key. In other words, although the original (primary) key is used internally in both the first and second devices, the additional (secondary) key is exchanged between the devices. However, intercepting the additional key does not lead to knowledge of the original key.
Het kan voordelig zijn als het uitvoeren van het aanvullende proces uitsluitend plaatsvindt indien de data vooraf bepaalde eigenschappen bezitten. Op deze wijze kan het cryptografisch bewerken alleen voor bepaalde, geselecteerde data worden uitgevoerd, terwijl 20 dit voor alle andere data is geblokkeerd. Op deze wijze wordt een aanvullende bescherming bereikt.It may be advantageous if the additional process is performed only if the data has predetermined properties. In this way, cryptographic editing can be performed only for certain, selected data, while it is blocked for all other data. In this way, additional protection is achieved.
Een optimale beveiliging wordt geboden indien het proces en het aanvullende proces elk uit een aantal stappen zijn opgebouwd, en waarin afwisselend stappen van het proces en het aanvullende proces 25 worden uitgevoerd. Hierdoor worden de eigenschappen van het bekende proces verder versluierd, waardoor het herleiden van de sleutels verder wordt bemoeilijkt.Optimum security is provided if the process and the additional process are each composed of a number of steps, and in which steps of the process and the additional process are alternately carried out. This further obscures the properties of the known process, making it even more difficult to trace back the keys.
In een tweede uitvoeringsvorm van de uitvinding omvat het proces een aantal trappen met elk een cryptografische bewerking voor het 30 bewerken van uit de data afgeleide rechter data en een combinatiebewerking voor het met uit de data afgeleide linker data combineren van de bewerkte rechter data teneinde gemodificeerde linker data te vormen, waarin voorafgaande aan de eerste trap de rechter data met een primaire hulpwaarde en de linker data met een additionele 35 hulpwaarde worden gecombineerd. Daardoor worden de in de trappen gebruikte en tussen de trappen ovérgedragen data gemaskeerd.In a second embodiment of the invention, the process comprises a number of stages, each including a cryptographic operation for processing the data derived right data and a combining operation for combining the processed right data with data derived left data to form modified left data. data, in which the right data with a primary auxiliary value and the left data with an additional auxiliary value are combined prior to the first stage. As a result, the data used in the stages and transferred between the stages are masked.
Teneinde mögelijk te maken dat de primaire en additionele hulpwaarden niet in het eindresultaat van het proces doorwerken pi 0 i 18 00 4 worden, bij voorkeur onmiddellijk na de laatste trap, de rechter data met een verdere primaire hulpwaarde en de gemodificeerde linker data met een verdere additionele hulpwaarde gecombineerd.In order to make it possible that the primary and additional auxiliary values do not affect the final result of the process pi 0 i 18 00 4, preferably immediately after the last stage, the right data with a further primary auxiliary value and the modified left data with a further additional auxiliary value combined.
Om het resultaat van de bewerkingen niet door de primaire 5 hulpwaarden te laten beïnvloeden wordt de werkwijze volgens de uitvinding bij voorkeur zodanig uitgevoerd, dat de rechter data, in elke trap en voorafgaand aan de bewerking, met de primaire hulpwaarde van die trap worden gecombineerd.In order not to allow the result of the operations to be influenced by the primary auxiliary values, the method according to the invention is preferably carried out in such a way that the right-hand data, in each stage and prior to the operation, are combined with the primary auxiliary value of that stage.
Een verdere bescherming wordt bereikt indien de bewerkte rechter 10 data, volgend op de bewerking, met een secundaire hulpwaarde van die trap worden gecombineerd.A further protection is achieved if the processed right 10 data, after the processing, is combined with a secondary auxiliary value of that stage.
Met voordeel is de secundaire hulpwaarde van een trap gevormd uit de combinatie van de primaire hulpwaarde van de voorgaande trap en 15 de primaire hulpwaarde van de volgende trap. Hierdoor wordt het mogelijk de hulpwaarde in de telkens volgende trap te compenseren, waardoor deze hulpwaarde niet in het eindresultaat van het proces zal doorwerken.Advantageously, the secondary auxiliary value of a stage is formed from the combination of the primary auxiliary value of the previous stage and the primary auxiliary value of the next stage. This makes it possible to compensate the auxiliary value in the subsequent stage, so that this auxiliary value will not affect the end result of the process.
Het is mogelijk de werkwijze volgens de uitvinding zodanig uit 20 te voeren, dat alle primaire hulpwaarden gelijk zijn. Hierdoor is een zeer eenvoudige praktische realisatie mogelijk. Het gebruik van verschillende hulpwaarden, die bij voorkeur toevalsgetallen zijn en voor elke keer dat het proces wordt uitgevoerd opnieuw worden gegenereerd, biedt echter een grotere cryptografische beveiliging.It is possible to carry out the method according to the invention in such a way that all primary auxiliary values are equal. This makes a very simple practical realization possible. However, the use of different auxiliary values, which are preferably random numbers and regenerated each time the process is run, provides greater cryptographic security.
25 Een verdere vereenvoudiging van deze uitvoeringsvorm kan worden verkregen indien de primaire hulpwaarden en/of secundaire hulpwaarden telkens vooraf met de respectieve bewerking zijn gecombineerd. Dat wil zeggen, het combineren met hulpwaarden wordt in de betreffende bewerking (bijvoorbeeld een substitutie) verwerkt, zodat het resultaat 30 van de respectieve bewerking gelijk is aan dat van de oorspronkelijke bewerking plus een of twee combinatiebewerkingen met hulpwaarden. Door het vooraf in de bewerking opnemen van de combinatiebewerkingen is een eenvoudiger en snellere praktische realisatie mogelijk.A further simplification of this embodiment can be obtained if the primary auxiliary values and / or secondary auxiliary values are each time combined with the respective operation. That is, combining with auxiliary values is processed in the respective operation (for example, a substitution) so that the result of the respective operation is equal to that of the original operation plus one or two auxiliary value combination operations. By including the combination operations in the machining in advance, a simpler and faster practical realization is possible.
De genoemde combinatiebewerkingen worden bij voorkeur door 35 middel van een exclusief-of-bewerking uitgevoerd. Andere combinatiebewerkingen, zoals binair optellen, zijn in principe echter ook mogelijk.Said combination operations are preferably performed by means of an exclusive or operation. However, other combination operations, such as binary addition, are also possible in principle.
De uitvinding verschaft verder een schakeling voor het uitvoeren »101.1,8 0 0 5 van een werkwijze voor het cryptografisch bewerken van data. De uitvinding verschaft bovendien een betaalkaart en een betaalterminal die van een dergelijke schakeling zijn voorzien.The invention further provides a circuit for performing a method for cryptographically processing data. The invention also provides a payment card and a payment terminal which are provided with such a circuit.
De uitvinding zal in het onderstaande aan de hand van in de 5 figuren weergegeven uitvoeringsvoorbeelden nader worden toegelicht.The invention will be explained in more detail below with reference to illustrative embodiments shown in the figures.
KORTE BESCHRIJVING VAN DE TEKENINGENBRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 toont schematisch een cryptografisch proces volgens de stand van de techniek.Fig. 1 schematically shows a prior art cryptographic process.
10 Fig. 2 toont schematisch een eerste cryptografisch proces volgens een eerste uitvoeringsvorm van de uitvinding.FIG. 2 schematically shows a first cryptographic process according to a first embodiment of the invention.
Fig. 3 toont schematisch een tweede cryptografisch proces volgens een eerste uitvoeringsvorm van de uitvinding.Fig. 3 schematically shows a second cryptographic process according to a first embodiment of the invention.
Fig. 4 toont schematisch een wijze waarop de processen van Fig. 15 1 en 2 kunnen worden uitgevoerd.Fig. 4 schematically shows a way in which the processes of FIG. 15 1 and 2 can be performed.
Fig. 5 toont schematisch een cryptografisch proces met meerdere trappen volgens de stand van de techniek.Fig. 5 schematically shows a multistage cryptographic process of the prior art.
Fig. 6 toont schematisch een eerste cryptografisch proces volgens een tweede uitvoeringsvorm van de uitvinding.Fig. 6 schematically shows a first cryptographic process according to a second embodiment of the invention.
20 Fig. 7 toont schematisch een tweede cryptografisch proces volgens een tweede uitvoeringsvorm van de uitvinding.FIG. 7 schematically shows a second cryptographic process according to a second embodiment of the invention.
Fig. 8 toont schematisch een derde cryptografisch proces volgens een tweede uitvoeringsvorm van de uitvinding.Fig. 8 schematically shows a third cryptographic process according to a second embodiment of the invention.
Fig. 9 toont schematisch een schakeling waarin de uitvinding 25 wordt toegepast.Fig. 9 schematically shows a circuit in which the invention is applied.
Fig. 10 toont schematisch een betaalsysteem waarin de uitvinding wordt toegepast.Fig. 10 schematically shows a payment system in which the invention is applied.
VOORKEURSUITVOERINGSVORMENPREFERRED EMBODIMENTS
30 Een (cryptografisch) proces P volgens de stand van de techniek is in figuur 1 schematisch weergegeven. Aan het proces P worden ingangsdata X en een sleutel K toegevoerd. Aan de hand van de sleutel K zet het proces P de ingangsdata X om in (cryptografisch) bewerkte uitgangsdata Y: Y - PK(X) . Het proces P kan een bekend cryptografisch 35 proces zijn, zoals DES (Data Encryption Standard), drievoudige DES, of 'ESA (Rivest, Shamir & Adleman).A (cryptographic) process P according to the prior art is schematically shown in figure 1. Input data X and a key K are applied to the process P. Using the key K, the process P converts the input data X into (cryptographically) processed output data Y: Y - PK (X). Process P can be a known cryptographic process, such as DES (Data Encryption Standard), triple DES, or 'ESA (Rivest, Shamir & Adleman).
Indien de Ingangsdata X en de uitgangsdata Y bekend zijn is het in principe mogelijk de gebruikte sleutel K te herleiden. Bij een •10118 0 0 ’ } , v 6 sleutel met een voldoende grote lengte (d.w.z., een voldoend groot aantal bits) werd het tot nu toe ondoenlijk geacht deze sleutel te herleiden, zelfs indien het proces P bekend was. Ondoenlijk wil in dit geval zeggen dat het in theorie weliswaar mogelijk is, bijvoorbeeld 5 door het proberen van alle mogelijke sleutels, om de gebruikte sleutel te achterhalen, maar dat dit een onbruikbaar lange rekentijd vergt.If the Input data X and the output data Y are known, it is in principle possible to trace the key K used. With a key of sufficiently long length (ie, a sufficiently large number of bits), it has hitherto been considered impossible to retrieve this key, even if the process P was known. Implausible in this case means that while it is theoretically possible, for example 5 by trying all possible keys, to find out the key used, this requires an unusually long calculation time.
Een dergelijke aanval met brute kracht ("brute force attack”) is daarom nauwelijks een bedreiging voor de cryptografische beveiliging.Such a brute force attack ("brute force attack") is therefore hardly a threat to cryptographic security.
Recent ontdekte aanvallen maken echter gebruik van kennis van 10 het proces, waardoor het aantal mogelijke sleutels drastisch kan worden gereduceerd. Het herleiden van de gebruikte sleutel K en/of de ingangsdata X uit de uitgangsdata Y wordt daardoor binnen aanvaardbare rekentijden mogelijk.Recently discovered attacks, however, use knowledge of the process, which can drastically reduce the number of possible keys. This enables the used key K and / or the input data X to be derived from the output data Y within acceptable calculation times.
Het principe van de uitvinding, die beoogt dergelijke aanvallen 15 aanzienlijk moeilijker en tijdrovender te maken, is in Fig. 2 schematisch weergegeven. Evenals in Fig. 1 worden aan een (bekend) proces P ingangsdata X en een (geheime) sleutel K toegevoerd om uitgangsdata Y te genereren.The principle of the invention, which aims to make such attacks considerably more difficult and time-consuming, is shown in FIG. 2 shown schematically. As in fig. 1 input data X and a (secret) key K are supplied to a (known) process P to generate output data Y.
In tegenstelling tot de situatie van Fig. 1 wordt in de situatie 20 van Fig. 2 de sleutel K vanuit een aanvullend proces P* aan het proces P toegevoerd. Het aanvullende proces P* heeft een aanvullende (secundaire) sleutel K* als ingangsdata om, onder invloed van een hulpsleutel K', de (primaire) sleutel K als uitgangsdata te produceren. De sleutel K wordt dus niet, zoals in de situatie van Fig. 25 1, vanuit een externe bron (bijvoorbeeld een geheugen) aan het proces P toegevoerd, maar wordt door het proces P* voortgebracht uit de aanvullende (secundaire) sleutel K*: K - P*K,(K)In contrast to the situation of fig. 1 in the situation 20 of FIG. 2 the key K is supplied from an additional process P * to the process P. The additional process P * has an additional (secondary) key K * as input data to produce, under the influence of an auxiliary key K ', the (primary) key K as output data. Thus, the key K is not turned, as in the situation of FIG. 25 1, supplied from an external source (for example, a memory) to the process P, but is generated by the process P * from the additional (secondary) key K *: K - P * K, (K)
Het is dus de secundaire sleutel K* in plaats van de primaire 30 sleutel K die vooraf is bepaald en die bijvoorbeeld in een sleutelgeheugen (niet getoond) wordt opgeslagen. Overeenkomstig de uitvinding is de primaire sleutel K die aan het proces P wordt toegevoerd niet vooraf bepaald.Thus, it is the secondary key K * instead of the primary key K which is predetermined and stored, for example, in a key memory (not shown). In accordance with the invention, the primary key K supplied to the process P is not predetermined.
De hulpsleutel K' kan een vast opgeslagen, vooraf bepaalde 35 sleutel zijn. Het is ook mogelijk een aanvullend proces P* toe te passen waarin geen hulpsleutel K' wordt gebruikt.The auxiliary key K 'may be a permanently stored predetermined key. It is also possible to use an additional process P * in which no auxiliary key K 'is used.
De combinatie van de processen P en P* vormt een nieuw proces, dat schematisch is aangeduid als Q. Aan het proces Q, dat vanwege het i*t0118 0 0 7 aanvullende proces P* op zich onbekend is, worden de ingangsdata X en de (secundaire) sleutel K* toegevoerd om de uitgangsdata Y te produceren. De relatie tussen de secundaire sleutel K* en de primaire sleutel K wordt door het aanvullende proces P* versluierd.The combination of the processes P and P * forms a new process, which is schematically indicated as Q. The process Q, which is unknown per se because of the additional process P *, is the input data X and the (secondary) key K * supplied to produce the output data Y. The relationship between the secondary key K * and the primary key K is obscured by the additional process P *.
5 Het aanvullende proces P* is bij voorkeur de inverse van een ander, inverteerbaar proces R. Dat wil zeggen: P* - R'1.The additional process P * is preferably the inverse of another invertible process R. That is, P * - R'1.
Dit maakt het mogelijk de secundaire sleutel K* met behulp van R en de hulpsleutel K' voort te brengen uit de primaire sleutel K: 10 K* - RK, (K), zoals later aan de hand van figuur 5 nader zal worden toegelicht. Eventueel kan het nieuwe proces Q worden uitgebreid met het proces R, zodat de primaire sleutel K in plaats van de secundaire sleutel K* aan het proces Q wordt toegevoerd. De primaire sleutel K wordt in dat 15 geval in het proces Q afgeleid uit: K - P*K,(K*) - P*K,(RK, (K)).This makes it possible to generate the secondary key K * with the aid of R and the auxiliary key K 'from the primary key K: 10 K * - RK, (K), as will be explained in more detail later with reference to Figure 5. Optionally, the new process Q can be extended with the process R, so that the primary key K is supplied to the process Q instead of the secondary key K *. In that case, the primary key K is derived in the process Q from: K - P * K, (K *) - P * K, (RK, (K)).
Dit maakt het mogelijk dezelfde (primaire) sleutel te gebruiken als in de stand van de techniek.This makes it possible to use the same (primary) key as in the prior art.
Het in Fig. 3 schematisch weergegeven cryptografische proces Q 20 volgens de uitvinding omvat eveneens een proces P met een primaire sleutel K en een aanvullende proces P* met een hulpsleutel K', waarbij de primaire sleutel K door het aanvullende proces P* uit de aanvullende sleutel K* wordt afgeleid. In aanvulling op het proces van Fig. 1 worden in dit geval ook de ingangsdata X aan het aanvullende proces P* 25 toegevoerd, zodat de primaire sleutel K mede in afhankelijkheid van de ingangsdata X wordt bepaald: K - P*R,(K*,X)The process shown in FIG. 3 schematically shown cryptographic process Q 20 according to the invention also comprises a process P with a primary key K and an additional process P * with an auxiliary key K ', wherein the primary key K is extracted from the additional key K * by the additional process P * distracted. In addition to the process of Fig. 1, in this case, the input data X is also supplied to the additional process P * 25, so that the primary key K is determined partly in dependence on the input data X: K - P * R, (K *, X)
Hierdoor wordt een aanvullende cryptografische bescherming gekregen. Bovendien wordt hierdoor de mogelijkheid geboden het 30 aanvullende proces P* uitsluitend uit te voeren indien bepaalde ingangsdata worden aangeboden. Dat wil zeggen, het aanvullende proces P* kan een test van de ingangsdata X omvatten en het uitvoeren van het aanvullende proces P* kan afhangen van het resultaat van die test. Zo kan het aanvullende proces P* bijvoorbeeld slechts worden uitgevoerd 35 als de laatste twee bits van de invoerdata X gelijk zijn aan nul. Het effect van een dergelijke ingangsdata-afhankelijke bewerking is, dat slechts voor bepaalde ingangsdata X de juiste primaire sleutel K zal worden geproduceerd, zodat alleen die ingangsdata de gewenste >1011800 8 uitgangsdata Y opleveren. Het zal duidelijk zijn dat de cryptografische veiligheid hierdoor verder wordt vergroot.This provides additional cryptographic protection. Moreover, this offers the possibility of executing the additional process P * only if certain input data are offered. That is, the additional process P * may include a test of the input data X and the execution of the additional process P * may depend on the result of that test. For example, the additional process P * can only be performed if the last two bits of the input data X are zero. The effect of such input data dependent operation is that the correct primary key K will be produced only for certain input data X, so that only those input data yield the desired> 1011800 uitgang output data Y. It will be clear that this further enhances cryptographic security.
In Fig, 4 is schematisch de wijze weergegeven waarop deelstappen van de processen P en P* afwisselend kunnen worden uitgevoerd 5 ("interleaving") teneinde de bescherming tegen aanvallen verder te vergroten. De deelstappen kunnen zogenaamde "rondes" omvatten, zoals bijvoorbeeld bij DES het geval is. Bij voorkeur omvatten de deelstappen echter slechts een of enkele instructies van een programma, waarmee de processen worden uitgevoerd.Fig. 4 schematically shows the manner in which sub-steps of processes P and P * can be performed alternately (interleaving) in order to further increase the protection against attacks. The sub-steps can comprise so-called "rounds", as is the case with DES, for example. Preferably, however, the sub-steps comprise only one or a few instructions from a program with which the processes are executed.
10 In een eerste stap 101 wordt een eerste deelstap Pj van het proces P uitgevoerd. Vervolgens wordt in een tweede stap 102 de eerste deelstap Pj* van het aanvullende proces P* uitgevoerd. Evenzo wordt in een derde stap 103 de tweede deelstap P2 van het proces P uitgevoerd enz. Dit gaat door totdat in stap 110 de laatste deelstap Pn* van het 15 aanvullende proces P* is uitgevoerd, waarbij omwille van het voorbeeld ervan is uitgegaan dat de processen P en P* evenveel deelstappen omvatten. Indien dat niet het geval is, wordt in stap 110 de laatste overeenkomstige deelstap uitgevoerd, en worden in verdere stappen de resterende deelstappen uitgevoerd.In a first step 101, a first sub-step Pj of the process P is performed. Then, in a second step 102, the first sub-step Pj * of the additional process P * is performed. Likewise, in a third step 103, the second sub-step P2 of the process P is carried out, etc. This continues until the last sub-step Pn * of the additional process P * is performed in step 110, assuming for the sake of the example that the processes P and P * comprise the same number of sub-steps. If not, the last corresponding sub-step is performed in step 110, and the remaining sub-steps are performed in further steps.
20 Door het afwisselen van de deelstappen van het op zich bekende proces P en het (mogelijk eveneens op zich bekende) proces P* kan een reeks van deelstappen worden verkregen, die niet overeenkomt met die van een bekend proces. De aard van het proces is hierdoor moeilijker te herkennen.By alternating the sub-steps of the process P known per se and the (possibly also known per se) process P *, a series of sub-steps can be obtained which does not correspond to that of a known process. This makes the nature of the process more difficult to recognize.
25 Het in Fig. 5 schematisch en slechts bij wijze van voorbeeld weergegeven cryptografische proces P volgens de stand van de techniek omvat een aantal trappen (d.w.z. Sj, S2.......Sn) . In elke trap worden (rechter) data RDj^ toegevoerd aan een cryptograf ische bewerking Fj_. Deze cryptograf ische bewerking kan zelf een aantal deelstappen 30 omvatten, zoals een expansie, een combinatie met een sleutel, een substitutie en een permutatie, die echter omwille van de eenvoud van de tekening niet afzonderlijk zijn aangegeven. De cryptografische bewerking Fj^ levert bewerkte data FDj_: FD1 - F^RD^ .The process shown in FIG. 5 The schematic and prior art cryptographic process P shown only by way of example comprises a number of stages (i.e. Sj, S2 ....... Sn). In each stage, (right) data RDj ^ are applied to a cryptographic operation Fj_. This cryptographic operation can itself comprise a number of sub-steps 30, such as an expansion, a combination with a key, a substitution and a permutation, which, however, are not indicated separately for the sake of simplicity of the drawing. The cryptographic operation Fj ^ provides processed data FDj_: FD1 - F ^ RD ^.
35 In een comb inat iebewerking CC^ (CCj, CC2......de index i geeft steeds de betreffende trap S aan) worden de bewerkte data FDj^ met linker data LDj^ gecombineerd tot gemodificeerde (linker) data SD^ die evenals de oorspronkelijke rechter data RD worden doorgegeven aan de volgende ,1 »1011800 9 trap. De combinatïebewerkingen CC^ zijn bij voorkeur exclusief-of-bewerkingen (symbool: ®).In a combination operation CC ^ (CCj, CC2 ...... the index i always indicates the relevant stage S), the processed data FDj ^ with left data LDj ^ are combined into modified (left) data SD ^ as well as the original right data RD are passed to the next, 1 »1011800 9 stage. The combination operations CC ^ are preferably exclusive-of-operations (symbol: ®).
Zoals in Fig. 5 is getoond, wisselen aan het eind van elke trap St de gemodificeerde linker data en de rechter data RDt van posi-5 tie, zodat deze respectievelijk de rechter data RD1+1 en de linker data LDi+i van de volgende trap S1+1 vormen.As shown in Fig. 5, at the end of each stage St, the modified left data and the right data RDt change position 5 so that they respectively change the right data RD1 + 1 and the left data LDi + i of the next stage S1 + 1 to shape.
De linker data LDj en de rechter data RDX van de eerste trap Sj zijn in een voorafgaande bewerking afgeleid uit ingangsdata X en kunnen daarbij een voorbereidende bewerking, zoals een ingangspermutatie 10 PP, ondergaan. De uitgangsdata SDn en RDn van de laatste trap Sn vormen de bewerkte data Y van het proces P, eventueel nadat deze een eindbewerking, zoals een uitgangspermutatie PP'1, hebben ondergaan.The left data LDj and the right data RDX of the first stage Sj are derived in a preliminary operation from input data X and may thereby undergo a preparatory operation, such as an input permutation PP. The output data SDn and RDn of the last stage Sn constitute the processed data Y of the process P, possibly after they have undergone a final processing, such as an output permutation PP'1.
Het cryptografische proces van Fig. 6 komt voor een groot deel overeen met dat van Fig. 5. Overeenkomstig de uitvinding worden de in 15 en tussen de trappen aanwezige data gemaskeerd met hulpwaarden.The cryptographic process of FIG. 6 largely corresponds to that of FIG. 5. According to the invention, the data present in and between the stages are masked with auxiliary values.
Hiertoe gaan in deze uitvoeringsvorm aan de eerste trap Sj (voorbereidende) combinatïebewerkingen DC en EC vooraf, die bij voorkeur eveneens exclusief-of-bewerkingen zijn. Deze combineren respectievelijk de linker data LDj en de rechter data RDj, die uit de 20 voorbereidende bewerking (PP) afkomstig zijn, met respectievelijk een nulde hulpwaarde A0 en een eerste hulpwaarde Aj. De resultaten van de combinatïebewerkingen DC en EC zijn respectievelijk linker gemaskeerde data LD'j en rechter gemaskeerde data RDj' (in het vervolg van deze tekst zullen gemaskeerde data met een accent worden aangeduid). De 25 maskeringen werken door in de volgende trappen. Aangezien de linker data van de tweede trap S2 gelijk zijn aan de gemaskeerde rechter data van de eerste trap Sj, zijn deze linker data LD'2 eveneens gemaskeerd. De rechter data RD2' van de tweede trap zijn gemaskeerd, aangezien deze gelijk zijn aan de gemaskeerde gemodificeerde data SDj'.To this end, in this embodiment, the preliminary stage Sj precedes (preparatory) combination operations DC and EC, which are preferably also exclusive or operations. These combine, respectively, the left data LDj and the right data RDj, which come from the preliminary operation (PP), with a zero auxiliary value A0 and a first auxiliary value Aj, respectively. The results of the combination operations DC and EC are left-masked data LD'j and right-masked data RDj ', respectively (in the remainder of this text, masked data will be marked with an accent). The 25 masks have an effect in the following steps. Since the left data of the second stage S2 is equal to the masked right data of the first stage S1, this left data LD'2 is also masked. The second stage right hand data RD2 'is masked since it is the same as the masked modified data SDj'.
30 Het combineren van de data LDj^ en RDt met de hulpwaarden At heeft dus tot gevolg, dat de gemodificeerde data LD^ en RD^ gemaskeerd zijn, waardoor het aanzienlijk moeilijker is de oorspronkelijke data X of de gebruikte sleutel uit de gemaskeerde data LD^ en RD^ te herleiden.Combining the data LDj ^ and RDt with the auxiliary values At thus results in the modified data LD ^ and RD ^ being masked, making it considerably more difficult to extract the original data X or the key used from the masked data LD ^ and RD ^.
35 Teneinde de hulpwaarden Aj^ voorafgaand aan de eindbewerking (PP* x) te^jvgrwijderen zijn afsluitende combïnatiebewerkingen FC en GC ^voorzien, die de gemodificeerde en gemaskeerde linker data SD'n van de r*Tï!· laatste trap Sn met een hulpwaarde A^j respectievelijk de gemaskeerde V» · . . · pt011 800 10 rechter data RDn' met een hulpwaarde Ajj combineren. Wegens ® A1 « 0 worden op deze wijze de maskeringen door de hulpwaarden Aj^ verwijderd. Hierdoor is het mogelijk de werkwijze zodanig uit te voeren, dat ondanks het gebruik van de hulpwaarden At de einddata Y gelijk zijn aan 5 die welke met de conventionele werkwijze volgens Fig. 5 zouden zijn verkregen.In order to remove the auxiliary values Aj ^ prior to the final operation (PP * x), final combining operations FC and GC ^ are provided, which store the modified and masked left data SD'n of the final stage Sn with an auxiliary value A ^ j respectively the masked V »·. . · Pt011 800 Combine 10 right data RDn 'with an auxiliary value Ajj. Due to ® A1 «0, the masks are removed in this way by the auxiliary values Aj ^. This makes it possible to carry out the method in such a way that, despite the use of the auxiliary values Δt, the end dates Y are equal to those used with the conventional method according to FIG. 5 would have been obtained.
Teneinde de invloed van de hulpwaarden AL op de resultaten FD^ van de bewerkingen Ft uit te sluiten, is bij voorkeur in elke trap een aanvullende combinatiebewerking AC^ aanwezig die de rechter data 10 RDt combineert met een (primaire) hulpwaarde A^ voordat deze data aan de cryptografische bewerking Fj^ worden toegevoerd. Het resultaat van elke aanvullende combinatiebewerking ACj^ is niet-gemaskeerde rechter data RDj^, zodat de cryptograf ische bewerking Ft op dezelfde data werkt als in het proces van Fig. 5.In order to exclude the influence of the auxiliary values AL on the results FD ^ of the operations Ft, an additional combination operation AC ^ is preferably present in each stage which combines the right-hand data 10 RDt with a (primary) auxiliary value A ^ before these data are fed to the cryptographic operation Fj ^. The result of each additional combination operation ACj ^ is unmasked right data RDj ^, so that the cryptographic operation Ft operates on the same data as in the process of FIG. 5.
15 Met voordeel kan een verdere combinatiebewerking tussen de cryptograf ische bewerking FA en de combinatiebewerking CC^ zijn ingevoegd met het doel de bewerkte (rechter) data FDj^ met een verdere (secundaire) hulpwaarde Bj^ te combineren. Hierdoor kan een maskering van de bewerkte data FDj^ en een verdere maskering van de (gemodifi-20 ceerde) linker data SD^ worden bereikt. Bij voorkeur zijn ook de com-binatiebewerkingen ACt en BC^ exclusief-of-bewerkingen.Advantageously, a further combination operation between the cryptographic operation FA and the combination operation CC ^ may be inserted for the purpose of combining the processed (right) data FDj ^ with a further (secondary) auxiliary value Bj ^. As a result, a masking of the processed data FDj ^ and a further masking of the (modified) left data SD ^ can be achieved. Preferably, the combination operations ACt and BC ^ are also exclusive or operations.
Overeenkomstig een verder aspect van de uitvinding zijn de hulpwaarden Aj^ en Bj^ gerelateerd. De secundaire hulpwaarden Bt zijn bij voorkeur door middel van een exclusief-of-bewerking gevormd uit de 25 primaire hulpwaarde A^j van de vorige trap en de primaire hulpwaarde A1+i van de volgende trap:In accordance with a further aspect of the invention, the auxiliary values Aj ^ and Bj ^ are related. The secondary auxiliary values Bt are preferably formed by means of an exclusive or operation from the primary auxiliary value A ^ j of the previous stage and the primary auxiliary value A1 + i of the following stage:
Bi = Ai-1 ® Al+1·Bi = Ai-1 ® Al + 1
Dit heeft tot gevolg, dat elke primaire hulpwaarde A1+1 die middels een verdere aanvullende combinatiebewerking BCL als bestanddeel van de 30 secundaire hulpwaarde Bt met de bewerkte rechter data FDi is gecombineerd telkens in de volgende trap, d.w.z. in trap Si+1, door een combinatiebewerking AC^ wordt gecompenseerd voordat de betreffende rechter data RD1+1 aan de bewerking Fj^ worden onderworpen. De (gemaskeerde) rechter data RD^ die de (gemaskeerde) linker data LDi+1' 35 van de weer volgende trap St+2 vormen worden daar met de primaire hulpwaarde Ai+1 gecombineerd en aldus gecompenseerd. De hulpwaarde A1+1 werkt door in de gemodificeerde data SDj/ , zodat deze tussen twee trappen gemaskeerd blijven.As a result, each primary auxiliary value A1 + 1 which, by means of a further additional combination operation BCL, as a component of the secondary auxiliary value Bt, is combined with the processed right-hand data FDi in each case in the next stage, ie in stage Si + 1, by a combination operation AC ^ is compensated before the respective right hand data RD1 + 1 is subjected to the processing Fj ^. The (masked) right data RD ^ constituting the (masked) left data LDi + 1 '35 of the next stage St + 2 are combined there with the primary auxiliary value Ai + 1 and thus compensated. The auxiliary value A1 + 1 works through in the modified data SDj /, so that it remains masked between two stages.
0 11 8 0 0 110 11 8 0 0 11
De linker data LDj van de eerste trap Sx zijn gemaskeerd met de additionele of nulde (primaire) hulpwaarde Ag. Door het combineren met de secundaire hulpwaarde Bj — Aq ® Az wordt de aanvankelijke hulpwaarde A0 verwijderd (wegens A0 « A0 - 0) , maar blijft de hulpwaarde A2 en de 5 daarmee bereikte maskering behouden. De nulde hulpwaarde Ag wordt in deze uitvoeringsvorm bij voorkeur gelijk gekozen aan de eerste hulpwaarde Ax.The left data LDj of the first stage Sx are masked with the additional or zero (primary) auxiliary value Ag. By combining with the secondary auxiliary value Bj - Aq ® Az, the initial auxiliary value A0 is removed (due to A0 «A0 - 0), but the auxiliary value A2 and the 5 masking thereby achieved are retained. The zero auxiliary value Ag in this embodiment is preferably chosen equal to the first auxiliary value Ax.
Hoewel bij voorkeur alle primaire hulpwaarden At verschillend worden gekozen, met uitzondering van Ag - Aj, is het mogelijk alle 10 primaire hulpwaarden Aj^ gelijk te kiezen. In dat geval zijn alle secundaire hulpwaarden Bj^ in de weergegeven uitvoeringsvorm gelijk aan nul, zodat de verdere combinatiebewerkingen BC^ achterwege kunnen blijven. Verder is de uitvinding ook van toepassing op processen P die slechts één trap S omvatten, of die een afwijkende structuur bezitten. 15 In het proces van Fig. 7, dat grotendeels overeenkomt met dat van Fig. 6, zijn de combinatiebewerkingen ACt en BCt en de cryp-tografische bewerking Ft in elke trap geïntegreerd tot een gecombineerde bewerking F^ . Het integreren van de combinatiebewerkingen in de bewerkingen Ft is mogelijk door 20 bijvoorbeeld een substitutietabel van de bewerking F± op geschikte wijze aan te passen. Hierdoor kunnen de aanvullende combinatiebewerkingen ACt en BC^ achterwege blijven en is het resultaat van de aangepaste bewerking F^ gelijk aan het resultaat van het totaal van de eigenlijke bewerking Fj^ en de combinatiebewerkingen: 25 FDt' - F1'(RD1') - Bt · Ft (A1 e RDi').Although all primary auxiliary values At are preferably chosen differently, with the exception of Ag - Aj, it is possible to choose all 10 primary auxiliary values Aj ^ equally. In that case, all secondary auxiliary values Bj ^ in the illustrated embodiment are zero, so that the further combination operations BC ^ can be omitted. Furthermore, the invention also applies to processes P which comprise only one stage S, or which have a different structure. In the process of FIG. 7, which largely corresponds to that of FIG. 6, the combination operations ACt and BCt and the cryptographic operation Ft are integrated in each stage into a combined operation F ^. Integration of the combination operations into the operations Ft is possible, for example, by appropriately adjusting a substitution table of the operation F ±. Therefore, the additional combination operations ACt and BC ^ can be omitted, and the result of the modified operation F ^ is equal to the result of the total of the actual operation Fj ^ and the combination operations: 25 FDt '- F1' (RD1 ') - Bt Ft (A1 e RDi ').
In principe is voor elke trap een verschillende gecombineerde bewerking Fa nodig, waarin verschillende hulpwaarden zijn geïntegreerd (zie Fig. 6). Slechts indien de hulpwaarden At gelijk worden gekozen, d.w.z. Aj-Aj- .... “Ajj, kunnen de gecombineerde bewerkingen FA in 30 deze uitvoeringsvorm gelijk zijn.In principle, each stage requires a different combined operation Fa, in which different auxiliary values are integrated (see Fig. 6). Only if the auxiliary values Δt are chosen equal, ie Aj-Aj- .... Ajj, the combined operations FA in this embodiment can be the same.
Bij voorkeur worden, elke keer dat het proces wordt uitgevoerd, de waarden Ai opnieuw gekozen. Dit betekent voor het proces van Fig. 7 dat dan ook de gecombineerde bewerkingen F1' opnieuw worden bepaald. Aangezien de bewerkingen F^ in vele implementaties het gebruik van 35 meerdere tabellen zullen omvatten, zoals substitutietabellen, zullen _____ __—— deze tabellen, elke keer dat het proces P wordt uitgevoerd, opnieuw worden bepaald. Teneinde een aanvullende bescherming tegen aanvallen te bieden worden volgens een verder aspect van uitvinding de tabellen '*1011800 12Preferably, the values Ai are selected again each time the process is performed. This means for the process of Fig. 7 that then also the combined operations F1 'are redetermined. Since the operations F ^ in many implementations will involve the use of multiple tables, such as substitution tables, these tables will be redetermined each time the process P is run. In order to provide additional protection against attacks, according to a further aspect of the invention, the tables * 1011800 12
In een willekeurige volgorde bepaald. Indien een gecombineerde bewerking bijvoorbeeld acht tabellen omvat, worden deze acht tabellen, iedere keer dat deze bewerking Fj/ opnieuw wordt uitgevoerd, in een andere volgorde bepaald. Deze volgorde kan worden bepaald aan de 5 hand van de inhoud van een volgorderegister, welke inhoud telkens door een toevalsgetal, afkomstig van een toevalsgenerator, kan worden gevormd. Op basis van de inhoud van het volgorderegister kan verder telkens opnieuw een opzoektabel worden samengesteld. Met de opzoektabel kunnen de tabellen in een geheugen worden weggeschreven en 10 later worden uitgelezen.Determined in a random order. For example, if a combined operation includes eight tables, these eight tables are determined in a different order each time this Fj / operation is performed. This sequence can be determined on the basis of the contents of a sequence register, which contents can each be formed by a random number from a random generator. On the basis of the contents of the sequence register, a look-up table can be compiled again and again. With the look-up table, the tables can be written to a memory and read out 10 later.
Volgens een verder aspect van de uitvinding kunnen in aanvulling hierop of in plaats hiervan de elementen van elke tabel in een willekeurige volgorde worden bepaald en/of opgeslagen. Ook met deze maatregel wordt bereikt dat de bescherming tegen aanvallen wordt 15 verbeterd. Ook in dit geval kan een opzoektabel worden toegepast, aan de hand waarvan de elementen later kunnen worden opgevraagd.According to a further aspect of the invention, in addition to or instead of, the elements of each table can be determined and / or stored in any order. This measure also ensures that protection against attacks is improved. In this case, too, a look-up table can be used, by means of which the elements can be retrieved later.
De hiervoor genoemde maatregelen kunnen ook worden toegepast in andere uitvoeringsvormen van de uitvinding, zoals die van Fig. 8, of in geheel andere al dan niet cryptografische processen.The aforementioned measures can also be applied in other embodiments of the invention, such as that of Figs. 8, or in entirely other cryptographic or non-cryptographic processes.
20 De uitvoeringsvorm van Fig. 8 komt grotendeels overeen met die van Fig. 7. In aanvulling op Fig. 7 is in elke trap Slt met uitzondering van de laatste trap Sn, een combinatiebewerking HC^ opgenomen die de rechter data RDA met een tertiaire hulpwaarde W± combineert. Bij voorkeur is de tertiaire hulpwaarde gelijk aan de 25 exclusief-of - combinatie van de hulpwaarden Aq en Aj: W - Aq ® Aj, waarbij Aq * Aj.The embodiment of FIG. 8 largely corresponds to that of FIG. 7. In addition to Fig. 7, in each stage Slt, except for the last stage Sn, a combination operation HC ^ is included which combines the right hand data RDA with a tertiary auxiliary value W ±. Preferably, the tertiary auxiliary value is equal to the exclusive or combination of the auxiliary values Aq and Aj: W - Aq ® Aj, where Aq * Aj.
Dit heeft het resultaat dat de bewerking HCj^ steeds de nulde hulpwaarde A0 toevoegt en de eerste hulpwaarde Aj compenseert. Hierdoor 30 is het mogelijk dat alle cryptografische bewerkingen Ft in wezen identiek zijn, hetgeen een veel geringere verwerkings- en/of opslagcapaciteit vereist van een processorsysteem waarmee de werkwijze wordt uitgevoerd. In de uitvoeringsvorm van Fig. 8 zijn de bewerkingen F/' zodanige aanpassingen van de oorspronkelijke bewerkingen F1( dat 35 deze gecorrigeerd zijn voor de hulpwaarde Aj en bovendien de tertiaire hulpwaarde W = Aq ® Aj met hun resultaat combineren. MetTandere "woorden, indien RDt ® Aj aan F" wordt toegevoerd, is het resultaat gelijk aan FDj/ — F1(RD1) s W.This results in the operation HCj ^ always adding the zero auxiliary value A0 and compensating the first auxiliary value Aj. This allows all cryptographic operations Ft to be essentially identical, requiring much less processing and / or storage capacity of a processor system with which the method is performed. In the embodiment of FIG. 8, the operations F / 'are such adaptations of the original operations F1 (that they are corrected for the auxiliary value Aj and additionally combine the tertiary auxiliary value W = Aq ® Aj with their result. With other "words, if RDt ® Aj to F" the result is equal to FDj / - F1 (RD1) s W.
«•1011800 * 131011800 * 13
Het zal deskundigen duidelijk zijn dat de combinatiebewerkingen ACj^ BCt en Η0± op andere plaatsen in het cryprografische proces P kunnen worden uitgevoerd om een vergelijkbaar of zelfs identiek effect te bereiken.Those skilled in the art will appreciate that the combination operations ACj ^ BCt and Η0 ± can be performed at other locations in the cryprographic process P to achieve a similar or even identical effect.
5 In Fig. 9 is schematisch een schakeling 10 voor het ten uitvoer leggen van de werkwijze volgens de uitvinding getoond. De schakeling 10 omvat een eerste geheugen 11, een tweede geheugen 12 en een processor 13, waarbij de geheugens 11 en 12 en de processor 13 door middel van een databus 14 zijn gekoppeld. Door het verschaffen van 10 twee geheugens is het mogelijk telkens een deelstap van een van de processen P en P* uit te voeren (zie Fig. 4), het resultaat van die deelstap in bijvoorbeeld het eerste geheugen 11 op te slaan, en vanuit het tweede geheugen 12 een vorig tussenresultaat van het andere proces naar de processor 13 over te brengen. Op deze wijze is het mogelijk 15 het afwisselend berekenen van deelstappen van twee verschillende processen efficiënt uit te voeren.In FIG. 9 schematically shows a circuit 10 for implementing the method according to the invention. The circuit 10 comprises a first memory 11, a second memory 12 and a processor 13, the memories 11 and 12 and the processor 13 being coupled by means of a data bus 14. By providing two memories, it is possible in each case to perform a partial step of one of the processes P and P * (see Fig. 4), to store the result of that partial step in, for example, the first memory 11, and from the second memory 12 to transfer a previous intermediate result of the other process to the processor 13. In this way it is possible to efficiently carry out the alternating calculation of sub-steps of two different processes.
Het in Fig. 10 schematisch weergegeven betaalsysteem omvat een elektronisch betaalmiddel 1 en een betaalstation 2. Het elektronische betaalmiddel 1 is bijvoorbeeld een zogenaamde "smart card", d.w.z. een 20 kaart die van een geïntegreerde schakeling voor het opslaan en verwerken van betaalgegevens is voorzien. Het betaalstation 2 omvat een kaartlezer 21 en een processorschakeling 22. De pro-cessorschakeling 22 kan overeenkomen met de schakeling 10 van Fig. 9.The process shown in FIG. 10 a schematically shown payment system comprises an electronic payment means 1 and a payment station 2. The electronic payment means 1 is, for example, a so-called "smart card", i.e. a card which is provided with an integrated circuit for storing and processing payment data. The payment station 2 comprises a card reader 21 and a processor circuit 22. The processor circuit 22 can correspond to the circuit 10 of FIG. 9.
Aan het begin van een transactie draagt het betaalmiddel 1 een 25 identificatie (kaartidentificatie) ID over naar het betaalstation 2. Aan de hand van deze identificatie bepaalt het betaalstation 2 een sleutel die voor deze transactie zal worden gebruikt. Deze identificatie ID kan als ingangsdata X (zie de figuren 1-3) aan een cryptografisch proces worden toegevoerd dat aan de hand van een 30 meestersleutel MK een identificatie-afhankelijke transactiesleutel KID als uitgangsdata Y produceert. Overeenkomstig de uitvinding wordt hiervoor het in de figuren 2 en 3 weergegeven proces gebruikt, waarbij de meestersleutel MK vooraf met behulp van een proces R is omgezet in een aanvullende meestersleutel MK*. Deze aanvullende meestersleutel 35 MK* wordt nu, bij voorkeur samen met de identificatie IDAt the beginning of a transaction, the payment means 1 transfers an identification (card identification) ID to the payment station 2. On the basis of this identification, the payment station 2 determines a key that will be used for this transaction. This identification ID can be applied as input data X (see Figures 1-3) to a cryptographic process which produces an identification-dependent transaction key KID as output data Y on the basis of a master key MK. In accordance with the invention, the process shown in Figures 2 and 3 is used for this purpose, in which the master key MK is previously converted into an additional master key MK * by means of a process R. This additional master key 35 MK * is now, preferably together with the identification ID
overeenkomstig Fig. 3, toegevoerd aan het aanvullende proces P* teneinde de oorspronkelijke meestersleutel MK te reproduceren en de transactiesleutel K1D uit de identificatie ID af te leiden.according to fig. 3, fed into the additional process P * to reproduce the original master key MK and derive the transaction key K1D from the identification ID.
10118001011800
IAIA
Hoewel in de figuren 2 en 3 steeds een enkel aanvullend proces P* is getoond, kunnen eventueel meerdere processen P*, P**, p***, ... in serie en/of parallel worden gebruikt om de primaire sleutel K af te leiden.Although a single additional process P * is shown in Figures 2 and 3, multiple processes P *, P **, p ***, ... may be used in series and / or parallel to complete the primary key K to lead.
5 Het zal deskundigen duidelijk zijn dat vele wijzigingen en aanvullingen mogelijk zijn zonder buiten het kader van de uitvinding te treden.It will be clear to those skilled in the art that many modifications and additions are possible without departing from the scope of the invention.
10118001011800
Claims (25)
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP1999/010208 WO2000041356A1 (en) | 1998-12-30 | 1999-12-16 | Method and device for cryptographically processing data |
US09/787,648 US7162031B1 (en) | 1998-12-30 | 1999-12-16 | Method and device for cryptographically processing data |
AT99963594T ATE336122T1 (en) | 1998-12-30 | 1999-12-16 | METHOD AND DEVICE FOR CRYPTOGRAPHIC DATA PROCESSING |
ES99963594T ES2270628T3 (en) | 1998-12-30 | 1999-12-16 | METHOD AND DEVICE FOR PROCESSING CRYPTOGRAPHY DATA. |
AU19833/00A AU1983300A (en) | 1998-12-30 | 1999-12-16 | Method and device for cryptographically processing data |
DE69932740T DE69932740T2 (en) | 1998-12-30 | 1999-12-16 | METHOD AND DEVICE FOR CRYPTOGRAPHIC DATA PROCESSING |
EP99963594A EP1142191B1 (en) | 1998-12-30 | 1999-12-16 | Method and device for cryptographically processing data |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL1010921A NL1010921C2 (en) | 1998-12-30 | 1998-12-30 | Encryption system for digital data, uses secondary key to mask primary key, is more difficult to decrypt by Brute Force Attack than data encrypted with conventional single key |
NL1010921 | 1998-12-30 | ||
NL1011544 | 1999-03-12 | ||
NL1011544A NL1011544C1 (en) | 1998-12-30 | 1999-03-12 | Encryption system for digital data, uses secondary key to mask primary key, is more difficult to decrypt by Brute Force Attack than data encrypted with conventional single key |
Publications (2)
Publication Number | Publication Date |
---|---|
NL1011800A1 NL1011800A1 (en) | 1999-06-03 |
NL1011800C2 true NL1011800C2 (en) | 1999-11-24 |
Family
ID=26642898
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NL1011544A NL1011544C1 (en) | 1998-12-30 | 1999-03-12 | Encryption system for digital data, uses secondary key to mask primary key, is more difficult to decrypt by Brute Force Attack than data encrypted with conventional single key |
NL1011800A NL1011800C2 (en) | 1998-12-30 | 1999-04-15 | Method and device for cryptographically processing data. |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NL1011544A NL1011544C1 (en) | 1998-12-30 | 1999-03-12 | Encryption system for digital data, uses secondary key to mask primary key, is more difficult to decrypt by Brute Force Attack than data encrypted with conventional single key |
Country Status (1)
Country | Link |
---|---|
NL (2) | NL1011544C1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1109350A1 (en) * | 1999-12-15 | 2001-06-20 | Sagem Sa | Apparatus for implementing a block encryption algorithm using round repetition |
FR2804524A1 (en) * | 2000-01-31 | 2001-08-03 | Oberthur Card Systems Sas | METHOD FOR EXECUTING A CRYPTOGRAPHIC PROTOCOL BETWEEN TWO ELECTRONIC ENTITIES |
WO2001061915A2 (en) * | 2000-02-18 | 2001-08-23 | Cloakware Corporation | Method and system for resistance to statistical power analysis |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724428A (en) * | 1995-11-01 | 1998-03-03 | Rsa Data Security, Inc. | Block encryption algorithm with data-dependent rotations |
US5745577A (en) * | 1996-07-25 | 1998-04-28 | Northern Telecom Limited | Symmetric cryptographic system for data encryption |
-
1999
- 1999-03-12 NL NL1011544A patent/NL1011544C1/en not_active IP Right Cessation
- 1999-04-15 NL NL1011800A patent/NL1011800C2/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724428A (en) * | 1995-11-01 | 1998-03-03 | Rsa Data Security, Inc. | Block encryption algorithm with data-dependent rotations |
US5745577A (en) * | 1996-07-25 | 1998-04-28 | Northern Telecom Limited | Symmetric cryptographic system for data encryption |
Non-Patent Citations (1)
Title |
---|
ELI BIHAM ET AL: "HOW TO STRENGTHEN DES USING EXISTING HARDWARE", ADVANCES IN CRYPTOLOGY - ASIACRYPT '94, 4TH. INTERNATIONAL CONFERENCE ON THE THEORY AND APPLICATIONS OF CRYPTOLOGY, WOLLONGONG, AUSTRALIA, NOV. 28 - DEC. 1, 1994 PROCEEDINGS, no. CONF. 4, 28 November 1994 (1994-11-28), PIEPRZYK J;SAFAVI-NAINI R (EDS ), pages 398 - 412, XP000527605, ISBN: 3-540-59339-X * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1109350A1 (en) * | 1999-12-15 | 2001-06-20 | Sagem Sa | Apparatus for implementing a block encryption algorithm using round repetition |
FR2802741A1 (en) * | 1999-12-15 | 2001-06-22 | Sagem | DEVICE USING A ROUND REPETITION BLOCK ENCRYPTION ALGORITHM |
FR2804524A1 (en) * | 2000-01-31 | 2001-08-03 | Oberthur Card Systems Sas | METHOD FOR EXECUTING A CRYPTOGRAPHIC PROTOCOL BETWEEN TWO ELECTRONIC ENTITIES |
EP1122909A1 (en) * | 2000-01-31 | 2001-08-08 | Oberthur Card Systems Sa | Method for performing a cryptographic protocol between two electronic units |
WO2001061915A2 (en) * | 2000-02-18 | 2001-08-23 | Cloakware Corporation | Method and system for resistance to statistical power analysis |
WO2001061915A3 (en) * | 2000-02-18 | 2001-12-27 | Cloakware Corp | Method and system for resistance to statistical power analysis |
Also Published As
Publication number | Publication date |
---|---|
NL1011544C1 (en) | 2000-07-03 |
NL1011800A1 (en) | 1999-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1142191B1 (en) | Method and device for cryptographically processing data | |
CN107005404B (en) | Processor apparatus implementing executable white-box mask implementations of cryptographic algorithms | |
US6925564B1 (en) | Digital signatures on a smartcard | |
CN110689349B (en) | Transaction hash value storage and searching method and device in blockchain | |
US6658569B1 (en) | Secret key cryptographic process for protecting a computer system against attacks by physical analysis | |
DE102008016530B4 (en) | Efficient Advanced Encryption Standard (AES) data transfer using a hybrid Rijndael S-Box | |
KR100674550B1 (en) | Information processing equipment | |
US7590846B2 (en) | Public key cryptographic method of protecting an electronic chip against fraud | |
JP2011103686A (en) | Method for making secure electronic entity with encrypted access | |
EP3115887B1 (en) | Method, device and non-transitory computer-readable medium for cryptographic computation | |
US8666067B2 (en) | Cryptographic countermeasure method by deriving a secret data | |
US6820814B1 (en) | Countermeasure method in an electric component using a secret key cryptographic algorithm | |
NL1011800C2 (en) | Method and device for cryptographically processing data. | |
RU2680761C1 (en) | Secure data transformations | |
US8612761B2 (en) | Method of executing a cryptographic protocol between two electronic entities | |
Ahmadi et al. | Generalized meet in the middle cryptanalysis of block ciphers with an automated search algorithm | |
CN100393029C (en) | Method for countermeasure in an electronic component using a secret key algorithm | |
DE10164416A1 (en) | Method for multiplying two factors from the Galois field and multipliers for performing the method | |
EP1119940B1 (en) | Countermeasure method in an electronic component using a secret key cryptographic algorithm | |
DE60022840T2 (en) | METHOD FOR SECURING ONE OR MORE ELECTRONIC ASSEMBLIES, ASSISTING A PRIVATE KEY CYPRUS ALGORITHM, AND ELECTRONIC ASSEMBLY | |
DE10328860B4 (en) | Device and method for encrypting data | |
NL1010921C2 (en) | Encryption system for digital data, uses secondary key to mask primary key, is more difficult to decrypt by Brute Force Attack than data encrypted with conventional single key | |
EP1180260B1 (en) | Countermeasure method in an electronic component using a dynamic secret key cryptographic algorithm | |
US7474748B2 (en) | Modular inversion that is protected against espionage | |
EP3531612A1 (en) | Method and device for performing substitution table operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AD1A | A request for search or an international type search has been filed | ||
RD2N | Patents in respect of which a decision has been taken or a report has been made (novelty report) |
Effective date: 19990915 |
|
PD2B | A search report has been drawn up | ||
SD | Assignments of patents |
Owner name: NOKIA CORPORATION Effective date: 20050722 |
|
VD1 | Lapsed due to non-payment of the annual fee |
Effective date: 20081101 |