ITRM20110061A1 - METHOD FOR THE SECURE EXCHANGE OF DATA IN SYMMETRICAL COMMUNICATIONS. - Google Patents
METHOD FOR THE SECURE EXCHANGE OF DATA IN SYMMETRICAL COMMUNICATIONS. Download PDFInfo
- Publication number
- ITRM20110061A1 ITRM20110061A1 IT000061A ITRM20110061A ITRM20110061A1 IT RM20110061 A1 ITRM20110061 A1 IT RM20110061A1 IT 000061 A IT000061 A IT 000061A IT RM20110061 A ITRM20110061 A IT RM20110061A IT RM20110061 A1 ITRM20110061 A1 IT RM20110061A1
- Authority
- IT
- Italy
- Prior art keywords
- vector
- key
- function
- starting
- orbit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 56
- 239000013598 vector Substances 0.000 claims description 73
- 230000006870 function Effects 0.000 claims description 41
- 238000004422 calculation algorithm Methods 0.000 claims description 38
- 239000011159 matrix material Substances 0.000 claims description 16
- 238000005520 cutting process Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 6
- 230000002441 reversible effect Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 2
- 230000000739 chaotic effect Effects 0.000 description 7
- 238000010276 construction Methods 0.000 description 7
- 238000005183 dynamical system Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000000528 statistical test Methods 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/001—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
-
- 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
- H04L9/0668—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
Metodo per lo scambio di dati sicuro nelle comunicazioni simmetriche Method for secure data exchange in symmetrical communications
La presente invenzione riguarda un metodo per lo scambio di dati sicuro nelle comunicazioni simmetriche. The present invention relates to a method for secure data exchange in symmetrical communications.
Più precisamente, la presente invenzione riguarda un metodo per le comunicazioni simmetriche, in particolare per crittare e decrittare messaggi con lunghezza non stabilita a priori. Perciò il metodo permette la comunicazione crittata di flussi di dati (stream) generati in tempo reale, ovvero di dati la cui lunghezza finale non è predicibile. More precisely, the present invention relates to a method for symmetric communications, in particular for encrypting and decrypting messages with a length not established a priori. Therefore the method allows the encrypted communication of data streams (streams) generated in real time, ie of data whose final length is not predictable.
La denominazione comune QP-DYN si riferisce ad una famiglia di algoritmi crittografici a flusso, basati su una struttura matematica comune, ma che differiscono nei protocolli specifici. The common name QP-DYN refers to a family of stream cryptographic algorithms, based on a common mathematical structure, but which differ in specific protocols.
La limpidità della loro struttura matematica permette di introdurre una molteplicità praticamente infinita di varianti, mantenendo le caratteristiche di robustezza. The clarity of their mathematical structure allows to introduce a practically infinite multiplicity of variants, while maintaining the characteristics of robustness.
Gli algoritmi QP-DYN sono simmetrici, ma la chiave privata è composta di due parti, una fissa (parte simmetrica), che ha il ruolo di generatore di chiavi segrete condivise (SSK nel seguito) e una che può essere resa pubblica (parte asimmetrica). The QP-DYN algorithms are symmetric, but the private key is composed of two parts, one fixed (symmetrical part), which has the role of shared secret key generator (SSK in the following) and one that can be made public (asymmetric part) ).
I due interlocutori possono cambiare arbitrariamente e a costo zero la parte potenzialmente pubblica della chiave ottenendo ogni volta delle chiavi segrete condivise (SSK) differenti. The two interlocutors can arbitrarily and at no cost change the potentially public part of the key, obtaining different shared secret keys (SSK) each time.
Ciò esclude gli attacchi per accumulazione di informazioni attraverso l'uso ripetuto della stessa chiave. This excludes information accumulation attacks through repeated use of the same key.
Come tutti gli algoritmi crittografici a flusso anche i protocolli QP-DYN sono costituiti da tre fasi indipendenti: Like all cryptographic flow algorithms, QP-DYN protocols also consist of three independent phases:
(I) Algoritmo di inizializzazione; (I) Initialization algorithm;
(II) Algoritmo per la produzione della chiave segreta condivisa (SSK) data 1'inizializzazione; (II) Algorithm for the production of the shared secret key (SSK) given the initialization;
(III) Algoritmo di codifica e decodifica, cioè uso della SSK per scambiare messaggi. (III) Encoding and decoding algorithm, i.e. use of the SSK to exchange messages.
Gli algoritmi della classe (III) possono essere qualsiasi tuttavia, dato che nel caso dei metodi QP-DYN la SSK è lunga quanto il testo ed ha ottime proprietà statistiche, mentre la parte potenzialmente pubblica della chiave può essere cambiata per ogni testo a costo zero, come algoritmo di codifica e decodifica è sufficiente usare lo XOR in modalità "one time pad" che, per il teorema di Shannon, è quella di massima sicurezza. The algorithms of class (III) can be any however, since in the case of QP-DYN methods the SSK is as long as the text and has excellent statistical properties, while the potentially public part of the key can be changed for each text at no cost. , as an encoding and decoding algorithm it is sufficient to use the XOR in "one time pad" mode which, according to Shannon's theorem, is the maximum security one.
Il rapporto [Gabler07], basato su una parte della tesi di Ph.D. di Markus Gàbler (Cottbus), discute i risultati di un'analisi statistica dei generatori QP-DYN di sequenze pseudo-casuali. The report [Gabler07], based on a part of the Ph.D. thesis by Markus Gàbler (Cottbus), discusses the results of a statistical analysis of the QP-DYN generators of pseudo-random sequences.
Questa analisi è stata ripetuto ormai molte volte dal gruppo di ricerca della Richiedente confermando i risultati ottenuti. This analysis has now been repeated many times by the Applicant's research group, confirming the results obtained.
Il rapporto [ItaOttGrilLent09] è stato realizzato dal gruppo di ricerca diretto dal prof. Giuseppe Italiano del Dipartimento di Informatica, Sistemi e Produzione, dell'Università di Roma Tor Vergata e confronta le prestazioni della esecuzione su telefoni cellulari i metodi QP-DYN con parecchie varianti di suite di metodi crittografici attualmente più usate sia a livello di crittografia a chiave pubblica (RSA, Diffie-Hellmann, curve ellittiche) che di flusso (AES, RC5). The report [ItaOttGrilLent09] was created by the research group headed by prof. Giuseppe Italiano of the Department of Computer Science, Systems and Production, of the University of Rome Tor Vergata and compares the performance of the execution on mobile phones of the QP-DYN methods with several variants of the currently most used cryptographic method suite both at the key cryptography level public (RSA, Diffie-Hellmann, elliptic curves) and flow (AES, RC5).
Il risultato è che i metodi sviluppati dalla Richiedente sono teoricamente più robusti e producono SSK più lunghe in tempi più brevi. The result is that the methods developed by the Applicant are theoretically more robust and produce longer SSKs in shorter times.
Cenni sulle basi teoriche degli algoritmi QP-DYN Notes on the theoretical basis of QP-DYN algorithms
Le basi teoriche degli algoritmi QP-DYN sono nella teoria dei sistemi dinamici caotici e sono descritte nel lavoro [AbAcAu91] che sviluppa il lavoro precedente [AcdeTiDiLi81], nel quale viene introdotta l'idea principale del metodo, aggiungendo una dimostrazione costruttiva del fatto che, scegliendo opportunamente il dato iniziale, è possibile ottenere periodi arbitrariamente lunghi e fornisce una stima della lunghezza del periodo in funzione del dato iniziale. Questi lavori contengono anche (sia pure in forma implicita) la spiegazione del perché il passaggio dal metodo di generazione di vettori pseudo-casuali all'algoritmo crittografico sia tutt'altro che banale: il fatto è che, mentre i computer possono lavorare solo su numeri razionali, la quasi totalità dei risultati sui sistemi dinamici caotici (in particolare la dimostrazione delle loro proprietà di caoticità) usano tecniche di teoria della misura e quindi escludono insiemi di misura nulla quali i numeri razionali. The theoretical basis of QP-DYN algorithms are in the theory of chaotic dynamical systems and are described in the work [AbAcAu91] that develops the previous work [AcdeTiDiLi81], in which the main idea of the method is introduced, adding a constructive demonstration of the fact that by appropriately choosing the initial data, it is possible to obtain arbitrarily long periods and provides an estimate of the length of the period as a function of the initial data. These works also contain (albeit in implicit form) the explanation of why the transition from the method of generating pseudo-random vectors to the cryptographic algorithm is anything but trivial: the fact is that, while computers can only work on numbers almost all of the results on chaotic dynamical systems (in particular the demonstration of their chaotic properties) use measurement theory techniques and therefore exclude sets of zero measure such as rational numbers.
A questo c'è da aggiungere che una pedissequa implementazione software del sistema dinamico alla base dell'algoritmo darebbe luogo ad un protocollo crittografico facilmente rompibile (per maggiori dettagli si veda la sezione il). Quindi la simulazione del sistema dinamico caotico deve essere integrata con accorgimenti di natura specificamente crittografica. To this we must add that a slavish software implementation of the dynamic system at the base of the algorithm would give rise to an easily breakable cryptographic protocol (for more details see section II). Therefore the simulation of the chaotic dynamic system must be integrated with measures of a specifically cryptographic nature.
Dopo la proposta originaria contenuta nel lavoro [AcdeTiDiLi 81 ], altri autori (alcuni anche recentemente) hanno sviluppato l'idea di utilizzare gli automorfismi iperbolici del toro (o loro varianti) per la generazione di vettori casuali, tuttavia alla Richiedente non risulta la presenza in letteratura di un'applicazione crittografica di tali metodi e algoritmi. Il fine di ogni algoritmo della famiglia QP-DYN è il seguente: “dato in input un testo Γ di lunghezza binaria lTe N,produrre una chiave di lunghezza binaria uguale ad lTAfter the original proposal contained in the work [AcdeTiDiLi 81], other authors (some even recently) have developed the idea of using the hyperbolic automorphisms of the torus (or their variants) for the generation of random vectors, however the Applicant does not find the presence in the literature of a cryptographic application of such methods and algorithms. The purpose of each algorithm of the QP-DYN family is the following: "given in input a text Γ of binary length lTe N, produce a key of binary length equal to lT
Tale metodo viene usato in due situazioni concettualmente diverse: This method is used in two conceptually different situations:
(i) la lunghezza del testo è nota a priori; oppure (ii) la lunghezza del testo non è nota a priori. (i) the length of the text is known a priori; or (ii) the length of the text is not known a priori.
Il primo caso si presenta tipicamente nell'archiviazione di dati, il secondo nella crittazione di flussi di informazioni. The first case typically occurs in data storage, the second in the encryption of information flows.
3. Sistemi dinamici alla base degli algoritmi QP-DYN Gli algoritmi crittografici QP-DYN vengono realizzati utilizzando varianti della classe dei sistemi dinamici caotici a tempo discreto descritta nella presente sezione, che sono determinati da: 3. Dynamic systems underlying the QP-DYN algorithms The QP-DYN cryptographic algorithms are implemented using variants of the class of discrete-time chaotic dynamical systems described in this section, which are determined by:
(11) un intero naturale d≡ N, ove N è l'insieme dei numeri naturali positivi, denominato "dimensione dell'algoritmo"; (11) a natural integer d≡ N, where N is the set of positive natural numbers, called the "size of the algorithm";
(12) una matrice quadrata M a coefficienti interi naturali e di dimensione dxd (scriveremo nel seguito sinteticamente M e M (d;N)), che rappresenta la legge del moto del sistema dinamico e che viene scelta invertibile (sistema dinamico reversibile); (12) a square matrix M with natural integer coefficients and of dimension dxd (we will briefly write M and M (d; N) in the following), which represents the law of motion of the dynamic system and which is chosen as invertible (reversible dynamic system);
(13) un intero naturale peN,detto "modulo". (13) a natural integer peN, called "modulo".
Quindi un tale sistema dinamico è determinato essenzialmente da 3 oggetti: So such a dynamic system is essentially determined by 3 objects:
p è tipicamente è un numero primo che, per cautelarsi contro ricerche esaustive, conviene sia grande. Se p è mantenuto segreto, gli attacchi che cercano di rompere il metodo crittografico sono molto più difficili. Inoltre, se p non è primo, allora il campo Zpdei numeri a modulo p non è più un campo ma solo un anello e non tutti i numeri (modulo p) diversi da zero sono invertibili, ciò che rende più difficile il calcolo e la costruzione di matrici invertibili. p is typically a prime number which, to guard against exhaustive searches, should be large. If p is kept secret, attacks that try to break the cryptographic method are much more difficult. Furthermore, if p is not prime, then the field Zp of the modulo p numbers is no longer a field but only a ring and not all numbers (modulo p) other than zero are invertible, which makes the calculation and construction more difficult. of invertible matrices.
Nel seguito, ci si servirà della seguente: Definizione 1. Dato un vettore v0a d componenti in N In the following, we will use the following: Definition 1. Given a vector v0a d components in N
(sinteticamente, chiamato "vettore iniziale", si definisce orbita del sistema dinamico {d,M,p}M con vettore iniziale v01'insieme: (briefly, called "initial vector", we define the orbit of the dynamic system {d, M, p} M with initial vector v01 'together:
dove l'indice «eTV viene interpretato come parametro temporale discreto: ogni unità di tempo etichetta un passo dell'algoritmo crittografico associato al sistema dinamico, e dove Z d è lo spazio dei vettori di where the index «eTV is interpreted as a discrete time parameter: each unit of time labels a step of the cryptographic algorithm associated with the dynamic system, and where Z d is the space of the vectors of
dimensione d a componenti nei numeri interi modulo p. dimension d to components in integers modulo p.
Poiché ci sono esattamente pd vettori differenti Since there are exactly pd different vectors
in Z^,ogni orbita θ(Μ,ν0)è un insieme finito. Inoltre, se in Z ^, each orbit θ (Μ, ν0) is a finite set. Also, if
allora per ogni vettore v0esiste un P≡N tale che vT—vQ. then for every vector v0 there exists a P≡N such that vT — vQ.
Se P è il più piccolo di tali numeri, si dice che l'orbita ha periodo/3. If P is the smallest of these numbers, the orbit is said to have period / 3.
Poiché il sistema dinamico è deterministico e reversibile, un'orbita può intersecare se stessa soltanto se ritorna al vettore iniziale v0 ed in questo caso si ripete. Since the dynamic system is deterministic and reversible, an orbit can intersect itself only if it returns to the initial vector v0 and in this case it repeats itself.
Scopo della presente invenzione è quello di fornire un metodo di crittografia che risolva i problemi e superi gli inconvenienti della tecnica anteriore. The object of the present invention is to provide an encryption method which solves the problems and overcomes the drawbacks of the prior art.
E' ulteriore scopo specifico della presente invenzione quello di fornire i mezzi e gli apparati per 1'implementazione del metodo scopo dell'invenzione. E' oggetto della presente invenzione un metodo di crittografia per lo scambio di dati tra due interlocutori, che utilizza i vettori di un sistema dinamico a tempo discreto determinato da: A further specific aim of the present invention is to provide the means and apparatuses for implementing the method which is the object of the invention. The object of the present invention is an encryption method for exchanging data between two interlocutors, which uses the vectors of a discrete-time dynamic system determined by:
(11) un intero naturale d ≡ N, ove N è l'insieme dei numeri naturali positivi, chiamato "dimensione dell'algoritmo"; (11) a natural integer d ≡ N, where N is the set of positive natural numbers, called the "size of the algorithm";
(12) una matrice quadrata M a coefficienti interi naturali e di dimensione dxd ,che rappresenta la legge del moto del sistema dinamico; (12) a square matrix M with natural integer coefficients and of dimension dxd, which represents the law of motion of the dynamic system;
(i3) un intero naturale p≡N, chiamato "modulo", preferibilmente un numero primo; (i3) a natural integer p≡N, called "modulo", preferably a prime number;
(13) un intero naturale neN, che rappresenta il contatore del passo «-esimo di iterazione della legge del moto; (13) a natural integer neN, which represents the counter of the «-th iteration step of the law of motion;
(i4) un vettore iniziale v0, ed un vettore (i4) an initial vector v0, and a vector
relativo al passo di iterazione «-esimo, relative to the iteration step «-th,
per generare una chiave binaria di crittazione k, definendo, per ogni neN, una funzione to generate a binary encryption key k, defining, for each nn, a function
denominata "funzione generatrice della chiave di ordine «" o "KGF" che usa l'espansione binaria delle componenti degli n vettori prodotti nei primi n passi di interazione della legge del moto per costruire la chiave parziale n-esima, il metodo comprendendo l'esecuzione delle seguenti fasi successive: called "generating function of the order key" or "KGF" which uses the binary expansion of the components of the n vectors produced in the first n interaction steps of the law of motion to construct the n-th partial key, the method comprising the execution of the following successive phases:
A. cominciando da v0al primo passo 0, calcolare n passi di iterazione della legge del moto calcolando sempre le componenti dei vettori modulo p, avendo così all'«-esimo i vettori {v0,Vp...,vn}; B. calcolare il vettore al passo («+l)-esimo: A. starting from v0 in the first step 0, calculate n iteration steps of the law of motion by always calculating the components of the vectors modulo p, thus having at the «- th the vectors {v0, Vp ..., vn}; B. calculate the vector at the («+ l) -th step:
C. calcolare la chiave parziale («+1)-esima: C. calculate the partial key («+1) -th:
D. procedere al calcolo della funzione KGF al passo successivo ripetendo le fasi B e C, fino al passo n = //eN in cui la chiave crittografica kn= k ha la lunghezza desiderata; D. proceed to the calculation of the KGF function in the next step by repeating steps B and C, up to step n = // eN in which the cryptographic key kn = k has the desired length;
il metodo essendo caratterizzato dal fatto che: the method being characterized by the fact that:
I. nella fase C, data una funzione: I. in phase C, given a function:
con b≡N e che associa ad un intero naturale di b bit una sotto-stringa della sua espansione binaria, la KGF è la funzione with b≡N and associating a substring of its binary expansion to a natural integer of b bit, the KGF is the function
essendo le componenti del vettore v„+1; being the components of the vector v „+1;
II. si sceglie un numero q≡N tale che: II. we choose a number q≡N such that:
e per ogni componente di vettore, nelle fasi A e B, si effettua un'operazione di modulo q prima della suddetta operazione modulo p, preferibilmente q ~32 and for each vector component, in phases A and B, an operation of modulo q is carried out before the aforementioned operation modulo p, preferably q ~ 32
con = 2 ; with = 2;
III. nella fase B: III. in phase B:
- si confronta il vettore corrente vn+1con il vettore iniziale v0; - compare the current vector vn + 1 with the initial vector v0;
se vn+1≠v0, si passa direttamente alla fase C; if vn + 1 ≠ v0, one passes directly to phase C;
se vn+1=v0, si ridefinisce: if vn + 1 = v0, we redefine:
dove J:N<d>—>N<d>è una funzione di salto d'orbita, e si passa alla fase C, l'operazione essendo equivalente a ricominciare una nuova orbita dal vettore J(vn), che quindi diventa il nuovo punto iniziale; where J: N <d> -> N <d> is an orbit jump function, and we pass to phase C, the operation being equivalent to starting a new orbit from vector J (vn), which then becomes the new starting point;
IV. si effettuano: IV. are carried out:
- le fasi da A a C per almeno due sistemi dinamici definiti da corrispondenti differenti insiemi {d,M,P,kn,J} e {d\M \p\k'n,J'} che danno luogo ad almeno due rispettive chiavi parziali - alla fine della fase C la chiave parziale (n+1)-esima è la chiave parziale combinata kn+1 (v1,...,v(!+1;v1',...,v(!+1') ottenuta effettuando l'operazione di XOR tra dette almeno due chiavi parziali, dove, se dette almeno due chiavi parziali sono di lunghezza differente, si rendono della stessa lunghezza aggiungendo o eliminando cifre, ed n può essere arbitrario oppure n-H. - the phases from A to C for at least two dynamic systems defined by corresponding different sets {d, M, P, kn, J} and {d \ M \ p \ k'n, J '} which give rise to at least two respective partial keys - at the end of phase C the partial key (n + 1) -th is the combined partial key kn + 1 (v1, ..., v (! + 1; v1 ', ..., v (! + 1 ') obtained by carrying out the XOR operation between said at least two partial keys, where, if said at least two partial keys are of different length, they become the same length by adding or deleting digits, and n can be arbitrary or n-H.
Preferibilmente secondo l'invenzione, le matrici M e M’ di detti almeno due sistemi dinamici sono invertibili e selezionano pertanto corrispondenti sistemi dinamici reversibili. Preferably according to the invention, the matrices M and M 'of said at least two dynamic systems are invertible and therefore select corresponding reversible dynamic systems.
Preferibilmente secondo l'invenzione, la KGF è la funzione di accodamento sinistro: Preferably according to the invention, the KGF is the left queuing function:
definita da: defined by:
dove il membro più a destra denota la stringa binaria ottenuta accostando nel modo indicato le stringhe binarie λ(3⁄4),...,Afo),/!, ηλ,...,ηάessendo le componenti del vettore v„+1. where the rightmost member denotes the binary string obtained by combining in the indicated way the binary strings λ (3⁄4), ..., Afo), / !, ηλ, ..., ηά being the components of the vector v „+1 .
Preferibilmente secondo l'invenzione, nell'operazione I detta sotto-stringa risulta da un taglio di un numero di cifre, partendo dai bit di potenza maggiore, pari ad un numero intero τjvariabile da 0 a q e che dipende da n e dalla j-esima componente del vettore v„, ottenendo così una chiave k con Y,V _/.=,l(ΰ-τ «,v„j) ' bit. Preferably according to the invention, in operation I said substring results from a cut of a number of digits, starting from the bits of greater power, equal to an integer τj variable from 0 to q and which depends on n and on the j-th component of the vector v „, thus obtaining a key k with Y, V _ /. =, l (ΰ-τ«, v „j) 'bit.
Preferibilmente secondo l'invenzione, nell'operazione I detta sotto-stringa risulta da un troncamento deterministico di ordine T, T essendo un numero intero positivo, che consiste nel taglio dei primi τ = T bit di ogni componente del vettore vnPreferably according to the invention, in operation I said substring results from a deterministic truncation of order T, T being a positive integer, which consists in cutting the first τ = T bits of each component of the vector vn
partendo da sinistra o da destra. starting from the left or right.
Preferibilmente secondo l'invenzione, nell'operazione I detta sotto-stringa risulta dal taglio dei primi zeri da sinistra fino al primo "1" incluso di ogni componente del vettore v„+ipartendo da sinistra o da destra, e/o, alla fine dell'operazione IV, la chiave parziale combinata risulta da detta operazione di XOR e dal successivo taglio dei primi zeri da sinistra fino al primo "1" incluso partendo da sinistra o da destra. Preferably according to the invention, in operation I said substring results from the cutting of the first zeros from the left up to the first "1" included of each component of the vector v "+ i starting from the left or from the right, and / or, at the end of operation IV, the combined partial key results from said XOR operation and from the subsequent cutting of the first zeros from the left up to the first "1" included starting from the left or from the right.
Preferibilmente secondo l'invenzione, la funzione J:lS<d>—>N<d>è definita da: Preferably according to the invention, the function J: lS <d> -> N <d> is defined by:
o or
dove l'uguagl ianza è intesa modulop. where equality is understood modulop.
Preferibilmente secondo 1'invenzione , nell'operazione IV il campo ambiente i duplicato, ovvero d = d’ , M = M’ e p Φ p’, ed inoltre J J e k = k Preferably according to the invention, in operation IV the duplicated environment field i, i.e. d = d ', M = M' and p Φ p ', and also J J and k = k
Preferibilmente secondo l'invenzione, la chiave privata ha una parte potenzialmente pubblica ed una segreta, caratterizzato dal fatto che la parte potenzialmente pubblica è costituita dal vettore iniziale vo, e la parte segreta, anche detta parte simmetrica, è costituita dalla matrice M, mentre la SSK è la chiave crittografica k, detti due interlocutori cambiando arbitrariamente la parte potenzialmente pubblica della chiave privata al fine di ottenere, per differenti comunicazioni di dati, di volta in volta delle chiavi segrete condivise SSK differenti . Preferably according to the invention, the private key has a potentially public and a secret part, characterized by the fact that the potentially public part is constituted by the initial vector vo, and the secret part, also called symmetric part, is constituted by the matrix M, while the SSK is the cryptographic key k, called two interlocutors arbitrarily changing the potentially public part of the private key in order to obtain, for different data communications, from time to time different SSK shared secret keys.
Preferibilmente secondo l'invenzione, il metodo comprende una procedura di inizializzazione, in cui il vettore iniziale vo è arbitrariamente definito, attraverso una funzione arbitraria f(vo) , che è tenuta segreta, e/o si scartano i primi 3⁄4eN passi dell 'orbita . Preferably according to the invention, the method comprises an initialization procedure, in which the initial vector vo is arbitrarily defined, through an arbitrary function f (vo), which is kept secret, and / or the first 3⁄4eN steps of the orbit.
E' ulteriore oggetto specifico della presente invenzione un programma per elaboratore caratterizzato dal fatto di comprendere mezzi a codice atti ad eseguire, quando operano su un elaboratore, il metodo oggetto dell'invenzione. A further specific object of the present invention is a computer program characterized in that it comprises code means suitable for executing, when operating on a computer, the method object of the invention.
E' ulteriore oggetto specifico della presente invenzione un supporto di memoria leggibile da un elaboratore, avente un programma memorizzato su di esso, caratterizzato dal fatto che il programma è il programma oggetto dell'invenzione. A further specific object of the present invention is a memory medium that can be read by a computer, having a program memorized on it, characterized in that the program is the program object of the invention.
L'invenzione verrà ora descritta a titolo illustrativo ma non limitativo, con particolare riferimento alle sue preferite forme realizzative. The invention will now be described for illustrative but not limitative purposes, with particular reference to its preferred embodiments.
4. Uso di una molteplicità di sistemi dinamici 4. Use of a multiplicity of dynamic systems
La robustezza crittografica della SSK, costruita nelle sezioni seguenti, si basa sul fatto che, nei casi generici, la ricostruzione della legge dinamica di un sistema dinamico (nel nostro caso la chiave segreta M) , a partire dalle informazioni parziali sulle relative orbite, è un problema molto difficile anche se il sistema produce orbite relativamente semplici. The cryptographic robustness of the SSK, built in the following sections, is based on the fact that, in generic cases, the reconstruction of the dynamic law of a dynamic system (in our case the secret key M), starting from the partial information on its orbits, is a very difficult problem even if the system produces relatively simple orbits.
Per esempio, risalire alla legge gravitazionale di Newton dalle orbite ellittiche del sistema solare (Kepler) ha richiesto quasi un secolo di duro lavoro dei migliori matematici, fisici ed astronomi di quel tempo. Per i sistemi caotici il problema è notoriamente ancor più difficile. La difficoltà è enormemente aumentata se le informazioni sono espresse in funzione delle orbite di due o più sistemi dinamici. Questa osservazione intuitiva è alla base della costruzione descritta nella sezione 10. Il sistema dinamico sopra descritto ha discrete proprietà caotiche ma, come descritto nelle prime righe della sezione 11, dove viene descritto un attacco che permette di ricostruire esattamente la matrice che genera la sequenza pseudo -casuale, esso è facilmente attaccabile dal punto di vista crittografico. For example, tracing Newton's law of gravity from the elliptical orbits of the solar system (Kepler) required nearly a century of hard work by the best mathematicians, physicists and astronomers of that time. For chaotic systems the problem is notoriously even more difficult. The difficulty is enormously increased if the information is expressed as a function of the orbits of two or more dynamical systems. This intuitive observation is the basis of the construction described in section 10. The dynamic system described above has discrete chaotic properties but, as described in the first lines of section 11, where an attack is described that allows to reconstruct exactly the matrix that generates the pseudo sequence - random, it is easily attackable from the cryptographic point of view.
Ciò dimostra che il meccanismo di generazione pseudocasuale non può essere usato da solo come algoritmo crittografico. This shows that the pseudorandom generation mechanism cannot be used alone as a cryptographic algorithm.
Al fine di ottenere un algoritmo crittografico robusto sono state introdotte le seguenti ulteriori operazioni il cui ruolo è quello di distruggere le informazioni algebriche presenti nel meccanismo di generazione pseudo-casuale: In order to obtain a robust cryptographic algorithm, the following additional operations have been introduced whose role is to destroy the algebraic information present in the pseudo-random generation mechanism:
(i) il taglio di bit (si veda la sezione 9.1); (i) bit cut (see section 9.1);
(ii) lo XOR con un'altra sequenza prodotta in modo analogo (si veda la sezione 9); (ii) the XOR with another similarly produced sequence (see section 9);
(iii) il troncamento macchina (si veda la sezione 7); (iv) il salto d'orbita (si veda la sezione 6.1). (iii) machine truncation (see section 7); (iv) the jump of orbit (see section 6.1).
La sezione 10 è dedicata a stimare precisamente quanta parte della struttura algebrica può essere recuperata dopo la sola operazione di taglio e a quale costo computazionale. La stima viene qui fatta per semplicità nel caso di taglio fisso. Nel caso di taglio casuale, la complessità cresce. Section 10 is devoted to estimating precisely how much of the algebraic structure can be recovered after the cutting operation alone and at what computational cost. The estimate is made here for simplicity in the case of a fixed cut. In the case of a random cut, the complexity increases.
5. Produzione della chiave segreta condivisa (SSK) 5. Production of the shared secret key (SSK)
Il sistema dinamico viene usato secondo l'invenzione per produrre una chiave segreta condivisa (SSK) nel modo descritto nel seguito. Ogni passo del metodo secondo l'invenzione produce un vettore bidimensionale a componenti intere (più precisamente nell'insieme {0,1,...,p-l}ì. The dynamic system is used according to the invention to produce a shared secret key (SSK) in the manner described below. Each step of the method according to the invention produces a two-dimensional vector with integer components (more precisely as a whole {0,1, ..., p-l} ì.
Ciascuna di queste componenti viene rappresentata in base 2 con c cifre binarie (tipicamente c=32). Quindi ogni passo dell'algoritmo produce una stringa di de bit. Di conseguenza, dopo n passi dell'algoritmo si avrà una stringa di ndc bit. Tale stringa viene usata per costruire una SSK. Each of these components is represented in base 2 with c binary digits (typically c = 32). So each step of the algorithm produces a string of de bits. Consequently, after n steps of the algorithm we will have a string of ndc bits. This string is used to build an SSK.
Identificando un intero naturale alla sua espansione binaria, tale costruzione si realizza costruendo, per ogni neN, una funzione kn iN'*<1>—> N, detta "funzione generatrice della chiave (KGF) di ordine «”che usa glinvettori prodotti nei priminpassi dell'algoritmo per costruire la chiave parziale «-esima (si veda la sezione 9.1 per la scelta effettuata concretamente in una forma realizzativa dell'invenzione) . By identifying a natural integer to its binary expansion, this construction is accomplished by constructing, for each nN, a function kn iN '* <1> -> N, called "key generating function (KGF) of order« "which uses the vectors produced in first steps of the algorithm for constructing the partial key «-th (see section 9.1 for the choice made concretely in an embodiment of the invention).
6. Funzione di salto di orbita 6. Jump orbit function
Si è visto che, dato che si lavora modulo p,lo spazio dei possibili vettori, e a fortiori ogni singola orbita di ogni sistema dinamico il cui spazio degli stati è uno spazio vettoriale di dimensione finita sul campo Zp, contiene un numero finito di punti. Per ottenere buone proprietà statistiche, condizione desiderabile per una buona sequenza crittografica, occorre fare in modo che tali orbite siano molto lunghe. We have seen that, given that we work modulo p, the space of possible vectors, and a fortiori every single orbit of every dynamic system whose state space is a finite dimensional vector space on the field Zp, contains a finite number of points. To obtain good statistical properties, a desirable condition for a good cryptographic sequence, such orbits must be very long.
A tal ffine l'originario sistema dinamico viene modificato come segue. L'algoritmo confronta, ad ogni passo, il vettore corrente vncon il vettore iniziale (è inutile memorizzare tutta l'orbita poiché il sistema è reversibile). Se i due coincidono, sostituisce vncon To this end the original dynamic system is modified as follows. The algorithm compares, at each step, the current vector vn with the initial vector (it is useless to memorize the whole orbit since the system is reversible). If the two coincide, it replaces vncon
7(v„_i)dove J :N<d>→ N<d>è una funzione, detta "funzione di 7 (v „_i) where J: N <d> → N <d> is a function, called" function of
salto di orbita". jump of orbit ".
Ciò è equivalente a ricominciare una nuova orbita dal vettore J{vn-ih che quindi diventa il nuovo punto iniziale. È chiaro dalla descrizione qui sopra che il ruolo della funzione J, di salto di orbita, è di impedire, il più a lungo possibile, 1'occorrenza di un'orbita periodica, migliorando in questo modo la caoticità delle sequenze generate. This is equivalent to starting a new orbit from the vector J {vn-ih which then becomes the new starting point. It is clear from the description above that the role of the J function, of jump of orbit, is to prevent, as long as possible, the occurrence of a periodic orbit, thus improving the chaos of the generated sequences.
6.1 Scelta della funzione di salto d'orbita 6.1 Choice of the orbit jump function
Si fornisce qui di seguito una preferita forma di realizzazione del metodo secondo l'invenzione, che usa la seguente funzione di salto d'orbita. A preferred embodiment of the method according to the invention is provided below, which uses the following jump orbit function.
Denotando con F il campo ambiente (nella presente implementazione un Zp), Denoting with F the environment field (in the present implementation a Zp),
Ovvero esplicitamente: That is explicitly:
Questa preferita forma di realizzazione dell'invenzione ha il vantaggio che è molto facile da implementare perché "2" è uno shift e aggiungere "1" vuol dire cambiare la prima cifra. Oltre alla facilità di implementazione, il metodo è reso anche sensibilmente più veloce. This preferred embodiment of the invention has the advantage that it is very easy to implement because "2" is a shift and adding "1" means changing the first digit. In addition to the ease of implementation, the method is also made significantly faster.
7. Troncamento di macchina 7. Machine parting
Il fatto che le macchine calcolatrici usuali trattano interi naturali con un numero pre-definito di bit, diciamo m (tipicamente m=32), può essere sfruttato per introdurre una non linearità supplementare che aumenta la complessità del sistema e la sua robustezza agli attacchi. Se m è il numero delle cifre binarie (precisione) disponibili per il calcolo, allora il numero primo p (modulo) è scelto in modo tale da soddisfare la seguente relazione: The fact that the usual calculating machines deal with natural integers with a pre-defined number of bits, say m (typically m = 32), can be exploited to introduce an additional non-linearity that increases the complexity of the system and its robustness to attacks. If m is the number of binary digits (precision) available for the calculation, then the prime number p (modulo) is chosen in such a way as to satisfy the following relationship:
e i coefficienti della matrice M (chiave segreta), usata per generare l'orbita, non sono presi subito modulo p. Questo accorgimento fa sì che qualcuna delle sommatorie che intervengono nelle moltiplicazioni matrice-vettore, effettuate per la costruzione dell'orbita, possano condurre a vettori qualcuna delle cui componenti superano i 2m bit. Quando questo accade la macchina tronca il risultato a m bit, prima di calcolare il modulo p perM secondo lo schema: and the coefficients of the matrix M (secret key), used to generate the orbit, are not immediately taken modulo p. This device means that some of the summations involved in the matrix-vector multiplications, carried out for the construction of the orbit, can lead to vectors some of whose components exceed 2m bits. When this happens the machine truncates the result to m bits, before calculating the modulo p perM according to the scheme:
dove M [Z,&](rispettivamente v[&]) sono i coefficienti della matrice M (rispettivamente le componenti del vettore v). where M [Z, &] (respectively v [&]) are the coefficients of the matrix M (respectively the components of the vector v).
Sebbene si sfrutti questa caratteristica delle macchine calcolatrici, il taglio può anche essere implementato come specifico calcolo; in tal caso, si sceglie un numero ge tale che: Although this feature of calculating machines is exploited, the cut can also be implemented as a specific calculation; in this case, a ge number is chosen such that:
e per ogni componente di vettore, nelle operazioni del metodo secondo la presente invenzione, si effettua l'operazione di modulo q prima dell'operazione modulo p, preferibilmente q = 2 . Le due operazioni di modulo non commutano. and for each vector component, in the operations of the method according to the present invention, the modulo operation q is carried out before the modulo p operation, preferably q = 2. The two form operations do not switch.
In tal modo l'eventuale attaccante non può sapere se, su una data componente di un dato vettore dell'orbita la legge dinamica ha agito solo con il modulo p ovvero prima con il modulo m=32 e poi con il modulo p. Tenendo conto del fatto che tipicamente conviene tenere p segreto, ciò mostra che un attacco al sistema, anche solo teorico, diventa in tali condizioni non concepibile. Affinché questo troncamento sia efficace, i coefficienti delle matrici devono essere scelti abbastanza grandi (tipicamente numeri a m —1 o m bit) per poter generare quei resti che la macchina taglia automaticamente. L'efficacia di questa ulteriore non linearità è stata verificata sperimentalmente. In this way the possible attacker cannot know if, on a given component of a given vector of the orbit, the dynamic law has acted only with the module p, that is, first with the module m = 32 and then with the module p. Taking into account the fact that it is typically better to keep p secret, this shows that an attack on the system, even if only theoretical, becomes in such conditions inconceivable. For this truncation to be effective, the coefficients of the matrices must be chosen large enough (typically numbers in m —1 or m bits) to be able to generate those remainders that the machine cuts automatically. The effectiveness of this further non-linearity was experimentally verified.
Infatti una forma realizzativa del metodo della presente invenzione, in cui tale funzione venga rimossa, non supera tutti i test statistici (seppur fornendo dei risultati apprezzabili), mentre introducendo questa operazione tutti i test vengono superati . In fact, an embodiment of the method of the present invention, in which this function is removed, does not pass all the statistical tests (albeit providing appreciable results), while by introducing this operation all the tests are passed.
8. Sintesi dei passi dell'algoritmo di base Cominciando da v0al primo passo 0, dopo n passi o l'algoritmo si è fermato (perché è stata calcolata la chiave crittografica per la crittazione dell'intero testo) o ha prodotto i vettori {v0,vp...,vn}. Il passo («+l)-esimo dell'algoritmo è il seguente: 8. Summary of the basic algorithm steps Starting from v0 at the first step 0, after n steps either the algorithm has stopped (because the cryptographic key for the encryption of the whole text has been calculated) or has produced the vectors {v0 , vp ..., vn}. The («+ l) -th step of the algorithm is the following:
(i) paragonare &n(vp...,vn) alla lunghezza del testo lr(questo passo non si effettua nel caso di crittografia di flusso di dati); (i) compare & n (vp ..., vn) to the length of the text lr (this step is not performed in the case of data stream encryption);
(ii-a) si arresta se (ii-a) stops if
(ii-b) altrimenti calcola (ii-b) otherwise calculate
(iii) verifica se (iii) check if
(3) (3)
(iv-a) se questo accade, va al passo (v); (iv-a) if this happens, go to step (v);
(iv-b) se (3) non accade, definisce (iv-b) if (3) doesn't happen, define
(4) (4)
( V ) calcola la chiave relativa all'(«+1)-passo (V) computes the key relative to the («+ 1) -pass
(vi) itera il procedimento ricominciando dal punto (i) con la nuova sequenza. (vi) iterates the procedure starting from point (i) with the new sequence.
Nel caso di crittografia di flussi di dati, ovviamente la crittazione si effettua finché il flusso continua. Nel caso del metodo implementato su una macchina calcolatrice, il comando per iniziare la crittazione viene dato a mano oppure attivato tramite un meccanismo di rilevamento di flusso di dati. In questa condizione, quando il flusso si interrompe, si interrompe anche la crittazione. Il computer si mette in stand-by e poi, nel caso il flusso di dati riprenda, la crittazione ricomincia utilizzando un accorgimento che verrà descritto più in là nella presente descrizione. In the case of encryption of data streams, the encryption is obviously carried out as long as the stream continues. In the case of the method implemented on a calculating machine, the command to initiate encryption is either given by hand or activated via a data flow detection mechanism. In this condition, when the flow stops, encryption also stops. The computer goes into stand-by and then, if the data flow resumes, the encryption restarts using a device that will be described later in this description.
9. Costruzione ricorsiva della successione (k„ ) 9. Recursive construction of the sequence (k „)
Nello schema generale dei protocolli QP-DYN le funzioni (KGF) possono essere arbitrarie. Esistono molte classi computazionalmente interessanti di KGF binarieJ-dimensionali. In the general scheme of QP-DYN protocols the (KGF) functions can be arbitrary. There are many computationally interesting classes of J-dimensional binary KGFs.
La scelta di tali funzioni può essere utilizzata: (i) per personalizzare ulteriormente l'algoritmo; The choice of these functions can be used: (i) to further customize the algorithm;
(ii) per aumentarne la robustezza mantenendo segreta tale scelta. (ii) to increase its robustness by keeping this choice secret.
Nella sezione seguente descriveremo una scelta preferita, nel senso che molte altre scelte possono essere realizzate come varianti di questa. In the following section we will describe a preferred choice, meaning that many other choices can be made as variations of this one.
Tale scelta è basata sull'osservazione che un modo computazionalmente efficiente per costruire la successione (&n) consiste nel calcolare ricorsivamente ciascuna k„fissando una funzione: This choice is based on the observation that a computationally efficient way to construct the sequence (& n) is to recursively compute each k "by fixing a function:
e definendo la KGF al primo passo k :N<d>—> N mediante la prescrizione: and defining the KGF in the first step k: N <d> -> N by prescribing:
La successione (&n) viene poi definita induttivamente nel modo seguente: The sequence (& n) is then defined inductively as follows:
Ricordando che un intero naturale è identificato ad una stringa binaria, la SSK all'(n+1)-esimo passo (cioè kn+i(vn+1, vn) ) è ottenuta combinando la SSK all'nesimo passo (cioè kn(vn,vn-l) ) con il nuovo dato prodotto dall'algoritmo all'(n+l)-esimo passo (cioè vn+1 ). Recalling that a natural integer is identified as a binary string, the SSK at the (n + 1) -th step (i.e. kn + i (vn + 1, vn)) is obtained by combining the SSK at the nth step (i.e. kn ( vn, vn-l)) with the new datum produced by the algorithm at the (n + l) -th step (i.e. vn + 1).
Definizione 2. Una funzione k : N<d>xN— > N che soddisfa la condìzione: Definition 2. A function k: N <d> xN—> N satisfying the condition:
sarà detta una KGF binaria d-dimensionale. it will be called a d-dimensional binary KGF.
9 . 1 KGF per accodamento 9. 1 KGF for queuing
Come di consueto identificheremo un intero naturale alla stringa di 0 e di 1 definita dalla sua espansione binaria. Useremo interi dib bit, con As usual we will identify a natural integer to the string of 0 and 1 defined by its binary expansion. We will use integers dib bits, with
cioè b è un multiplo di 32. that is, b is a multiple of 32.
Definizione3.Data una funzione: Definition 3. Give a function:
che associa, ad un intero naturale di b bit,una sotto-stringa della sua espansione binaria) la funzione di accodamento sinistro: which associates, to a natural b bit integer, a substring of its binary expansion) the left appending function:
è definita da is defined by
dove il membro destro denota la stringa binaria ottenuta accostando nel modo indicato le stringhe binarie À{nd),...,À{nl),n. where the right member denotes the binary string obtained by juxtaposing the binary strings À {nd), ..., À {nl), n as indicated.
Si osserva che la funzione di accodamento sinistro kÀ, definita dalla relazione (6), dipende dalla scelta della funzione λ . Le due scelte preferite secondo la presente invenzione sono: It is observed that the left appending function kÀ, defined by the relation (6), depends on the choice of the function λ. The two preferred choices according to the present invention are:
(i) il troncamento casuale: si taglia il segmento di bit compreso tra i primi due 1 (inclusi) di ogni componente del vettore partendo da sinistra; (i) random truncation: the bit segment between the first two 1s (included) of each component of the vector is cut starting from the left;
(ii) il troncamento deterministico di ordine c: si tagliano i primi c bit di ogni componente del vettore partendo da sinistra. (ii) the deterministic truncation of order c: the first c bits of each component of the vector are cut starting from the left.
Il ruolo del taglio dei bit è quello di scoraggiare la ricerca esaustiva. The role of bit cutting is to discourage exhaustive research.
Tenere segreta la funzione λ aumenta la sicurezza dell 'algoritmo . Keeping the λ function secret increases the security of the algorithm.
10. Il protocollo a 2 primi 10. The 2 first protocol
Il vantaggio computazionale del protocollo descritto nella la sezione 8 consiste nel fatto che la non linearità è dovuta soltanto all'operazione consistente nel ridurre mod(p) il risultato di una funzione lineare. Le operazioni di taglio, salto di orbita e taglio di macchina introducono ulteriori non linearità che, da sole, rendono impossibile concepire un credibile attacco al metodo. The computational advantage of the protocol described in section 8 consists in the fact that the non-linearity is due only to the operation consisting in reducing mod (p) the result of a linear function. The operations of cutting, jumping of orbit and machine cutting introduce further non-linearities which, by themselves, make it impossible to conceive a credible attack on the method.
Un ulteriore rafforzamento della sicurezza si può ottenere replicando il sistema dinamico originale. A tal fine ci sono due principali scelte possibili: A further strengthening of security can be achieved by replicating the original dynamic system. To this end, there are two main possible choices:
(i) replicare la legge dinamica (matrice) lasciando l'ambiente, cioè il campoZp, invariato; (i) replicate the dynamic law (matrix) leaving the environment, ie the field Zp, unchanged;
(ii) replicare l'ambiente, cioè il campo , lasciando la legge dinamica invariata. (ii) replicate the environment, ie the field, leaving the dynamic law unchanged.
Dal punto di vista qualitativo entrambi i casi conducono a sistemi dinamici differenti, cioè a orbite differenti. Poiché la scelta (ii) presenta il vantaggio, rispetto al calcolo e alla memoria, di utilizzare ad ogni punto dell'iterazione una sola matrice, scelta tale scelta risulta preferita secondo 1'invenzione . In quanto segue illustreremo questa realizzazione forma realizzativa del metodo secondo 1'invenzione . From the qualitative point of view, both cases lead to different dynamical systems, that is to different orbits. Since choice (ii) has the advantage, with respect to calculation and memory, of using a single matrix at each point of the iteration, this choice is preferred according to the invention. In what follows we will illustrate this embodiment of the method according to the invention.
Inoltre, poiché il livello di sicurezza realizzato con una semplice duplicazione è abbastanza accettabile, limiteremo la nostra discussione a questo caso, sebbene sia possibile replicare il sistema dinamico quante volte si vuole seguendo la stessa procedura. Furthermore, since the level of security achieved by simple duplication is quite acceptable, we will limit our discussion to this case, although it is possible to replicate the dynamic system as many times as you want by following the same procedure.
Dato un testo T di lunghezza pari a lTbit, consideriamo due sistemi dinamici: Given a text T of length equal to lTbit, we consider two dynamic systems:
con with
(il) la stessa dimensione JeN (the) the same dimension JeN
(i2) la stessa legge dinamica MeM(d; N) (i2) the same dynamic law MeM (d; N)
(±3) lo stesso vettore iniziale v0eN<d>(± 3) the same initial vector v0eN <d>
(i4) la stessa funzione di salto di orbita J :N<d>x N<d>→ N<d>(i4) the same jump orbit function J: N <d> x N <d> → N <d>
(15) la stessa funzione generatrice della chiave (KGF) kn:N<d>→ N IKEN) (15) the same key generating function (KGF) kn: N <d> → N IKEN)
(16) due numeri primi p',peN detti "moduli". (16) two prime numbers p ', p and N called "modules".
Poi si esegue il metodo descritto nella sezione 8 fino al punto (v) escluso (calcolo della («+l)-ma chiave), che viene modificato come segue. Then the method described in section 8 is carried out up to the point (v) excluded (calculation of the («+ l) -th key), which is modified as follows.
Avendo prodotto due chiavi all'(«+l)-mo passo: Having produced two keys at the («+ l) -th step:
(si ricordi che le KGF knsono le stesse) 1'algoritmo calcola : (remember that the KGF kns are the same) the algorithm computes:
dove, per due qualsiasi stringhe binarie x, y , denota la stringa jcXORy e se necessario le due stringhe sono rese della stessa lunghezza aggiungendo degli zeri a sinistra . where, for any two binary strings x, y, denotes the string jcXORy and if necessary the two strings are made the same length by adding zeros to the left.
Poi il metodo rimuove dai bit di (8) tutti gli 0 principali (corrispondenti cioè alle potenze più alte di 2) ed il primo 1. Then the method removes from the bits of (8) all the main 0s (i.e. corresponding to powers higher than 2) and the first 1.
Il risultato è la chiave all '(n+1)-esimo passo dell'algoritmo modificato: The result is the key to the (n + 1) -th step of the modified algorithm:
La regola d'arresto delle fasi del metodo è la stessa di quella della sezione 8. The stopping rule of the method steps is the same as that of section 8.
Si osserva che può accadere che la stringa (8) abbia alcuni dei bit principali (potenze superiori di 2) uguali a zero, perché le operazioni di modulo p e p’ entrano in gioco solo dopo un certo numero di punti dell'orbita, e quindi, in questi passi, le due chiavi parziali sono identiche. It is observed that it can happen that the string (8) has some of the main bits (powers greater than 2) equal to zero, because the operations of modulo p and p 'come into play only after a certain number of points of the orbit, and therefore , in these steps, the two partial keys are identical.
Questa considerazione riguarda la procedura di inizializzazione, in cui si definisce Vo. Vo è pubblico, mentre la matrice M è segreta ed è essa che fa perdere memoria dello stato iniziale, in modo da proteggere il testo crittato contro un attaccante. This consideration concerns the initialization procedure, in which Vo is defined. Vo is public, while matrix M is secret and it is it that makes you lose memory of the initial state, in order to protect the encrypted text against an attacker.
Si può certamente partire non da Vo, ma da una funzione arbitraria f(vo) , che è tenuta segreta. One can certainly start not from Vo, but from an arbitrary function f (vo), which is kept secret.
In aggiunta, o in alternativa, si possono scartare i primi h passi dell'orbita così che, non conoscendo la legge del moto, si perde memoria di Vo. In addition, or alternatively, the first h steps of the orbit can be discarded so that, not knowing the law of motion, memory of Vo is lost.
La procedura di inizializzazione è in ogni caso arbitraria. The initialization procedure is in any case arbitrary.
11. Attacco al caso di una matrice e considerazioni di complessità 11. Attack to the case of a matrix and complexity considerations
Si fornisce qui una prova di robustezza del metodo secondo la presente invenzione. Le analisi di robustezza che seguono sono state sviluppate nelle ipotesi peggiori possibili per il difensore, ovvero: A robustness test of the method according to the present invention is provided here. The following robustness analyzes have been developed in the worst possible cases for the defender, namely:
- si considera il caso a una sola matrice (escludendo quindi il più rilevante fattore di sicurezza); - the single matrix case is considered (thus excluding the most relevant safety factor);
- si esclude il taglio di macchina; - machine cutting is excluded;
- si suppone che l'unica chiave segreta sia la matrice M mentre sono considerate pubbliche le informazioni seguenti: - it is assumed that the only secret key is the matrix M while the following information is considered public:
- il numero primop (modulo), - the primop number (form),
- la dimensione d, - the dimension d,
- il dato iniziale v0, - the initial data v0,
- le KGF kn, - the KGF kn,
- il taglio dei bit (si veda la fine della sezione 9.1) è considerato fisso e pubblico. - bit cutting (see end of section 9.1) is considered fixed and public.
Oltre a ciò si considera il caso più favorevole per l'attaccante, ovvero l'attacco a testo in chiaro, in cui sia il testo originario T, che il testo codificato sono noti all'attaccante, e quindi la SSK è nota (la quale viene però cambiata ad ogni messaggio!). Ci si chiede allora: l'attaccante può ricostruire la chiave segreta ovvero la matrice Mi. In addition to this, the most favorable case for the attacker is considered, i.e. the plaintext attack, in which both the original text T and the encoded text are known to the attacker, and therefore the SSK is known (which however, it is changed with each message!). The question then arises: can the attacker reconstruct the secret key or the Mi matrix.
L'attaccante, nel seguito, sarà denotato con E. Il grado di inviolabilità naturalmente cresce enormemente se, come è sempre possibile, qualcuna di queste informazioni è tenuta segreta (e condivisa). Infatti, conoscendo T e C = T xor S e usando 1'idempotenza dell'operazione ∞r,Epuò recuperare5= C w Γ. The attacker, in the following, will be denoted with E. The degree of inviolability naturally increases enormously if, as is always possible, some of this information is kept secret (and shared). Indeed, knowing T and C = T xor S and using the idempotence of the operation ∞r, E can recover 5 = C w Γ.
Ciò aiuterà a intuire perché finora la Richiedente non sia riuscita a trovare, neppure a livello teorico, attacchi alla versione a 2 matrici dell'algoritmo. This will help to understand why so far the Applicant has not been able to find, even at a theoretical level, attacks on the 2-matrix version of the algorithm.
Si suppone: It is supposed:
(i) che E conoscad+\ vettori consecutivi dell'orbita; (ii) che i primi d tra tali vettori siano linearmente indipendenti e si definiscono le seguenti matrici per accostamento di vettori colonna: (i) that E knows d + \ consecutive vectors of the orbit; (ii) that the first d among these vectors are linearly independent and the following matrices are defined by juxtaposition of column vectors:
alloraMV = V’e ciò permette di ottenereM = V’V<1>. then MV = V and this allows us to obtain M = V’V <1>.
Tuttavia E ha l'intera stringa S, ma non la corrispondente suddivisione indicata dall'equazione (9) (si veda più oltre), necessaria per recuperare le componenti dei vettori v;. E deve tentare di indovinare quale sia la suddivisione corretta. A tal fine E può sfruttare la sua conoscenza della struttura dell'algoritmo, che è pubblica, vale a dire la costruzione: However E has the entire string S, but not the corresponding subdivision indicated by equation (9) (see below), necessary to retrieve the components of the vectors v ;. And he must try to guess which is the correct subdivision. For this purpose E can exploit his knowledge of the algorithm structure, which is public, namely the construction:
• calcolo iterativo dei vettori dell'orbita: • iterative calculation of the vectors of the orbit:
v0,V[,v2,... usando M come descritto sopra; v0, V [, v2, ... using M as described above;
• per ogni componente j=l,...,d di ciascun vettore v;, considerare la corrispondente rappresentazione in base 2 conccifre binarie: • for each component j = l, ..., d of each vector v ;, consider the corresponding base 2 representation with binary digits:
nella quale i principali 0 e 1 sono messi in evidenza, e i rimanenti bit in which the main 0 and 1 are highlighted, and the remaining bits
sono genericamente rappresentati con la lettera they are generally represented with the letter
X e {0,1}; X is {0,1};
genera la sequenza pseudocasuale giustapponendo iteratamente i bit principali di dy e giustapporre dopo avere effettuato il taglio (fisso o casuale) : generates the pseudorandom sequence by iteratively juxtaposing the main bits of dy and juxtaposing after making the cut (fixed or random):
• non appena sono ottenuti n bit, il processo è interrotto e la sequenza pseudocasuale è restituita . • as soon as n bits are obtained, the process is stopped and the pseudorandom sequence is returned.
Dato che il taglio dei bit è considerato fisso, diciamo pari a 7 bit, e pubblico, E sa che, per ogni componente di ogni vettore, perde dtj=7 bit e quindi ha Since the cut of the bits is considered fixed, let's say equal to 7 bits, and public, E knows that, for each component of each vector, it loses dtj = 7 bits and therefore has
una ambiguità di 2<T>possibilità per ogni componente. Dato che tali componenti sono d, l'ambiguità è di 2<dT>possibilità per ogni vettore. Poiché E ha bisogno di d+1 vettori, egli si trova a dover scegliere tra 2<d>^<+1>^ possibilità. Per esempio, se d=10 (dimensione che un comune personal può gestire senza alcuna difficoltà) , allora rf(rf+l)=110. Supponendo, per facilitare ulteriormente il lavoro diE, che 7=2,E si trova a dover scegliere tra 2<220>possibilità. Per ciascuna di queste scelte E deve effettuare una inversione e una moltiplicazione di matrici di ordine 10. Si osservi infine che un incremento di d o di 7 , per esempio rispettivamente da 10 a 15 e da 2 a 3, aumenta la difficoltà di costruzione per un fattore che è al più quadratico nell'incremento, mentre la difficoltà di attacco aumenta esponenzialmente. an ambiguity of 2 <T> possibilities for each component. Since these components are d, the ambiguity is 2 <dT> possibilities for each vector. Since E needs d + 1 vectors, he has to choose between 2 <d> ^ <+ 1> ^ possibilities. For example, if d = 10 (a dimension that a common personal can handle without any difficulty), then rf (rf + l) = 110. Assuming, to further facilitate the work of E, that 7 = 2, E has to choose between 2 <220> possibilities. For each of these choices E must perform an inversion and multiplication of matrices of order 10. Finally, it should be observed that an increase of d or of 7, for example from 10 to 15 and from 2 to 3 respectively, increases the difficulty of construction for a a factor which is at most quadratic in the increase, while the difficulty of attack increases exponentially.
11.1 Attacco al caso di 2 primi 11.1 Attack on the case of 2 first courses
Se l'algoritmo crittografico usato è quello a 2 primi, le considerazioni descritte nella sezione precedente sono completamente distrutte, anche in assenza di tagli, dal fatto che, con questo algoritmo, E può recuperare soltanto la sequenza: If the cryptographic algorithm used is the first 2 one, the considerations described in the previous section are completely destroyed, even in the absence of cuts, by the fact that, with this algorithm, E can only recover the sequence:
(dove Θ = xor) ma è impossibile sapere se, in tale sequenza, un 1 è stato ottenuto dalla combinazione di uno 0 in kN[vl,...,vN) (SSK del primo sistema dinamico) e di un 1 in kN[v\ ,.,.,ν'N) (SSK del secondo sistema dinamico), o viceversa. Similmente è impossibile sapere se uno 0 sia derivato da due 0 o da due 1. (where Θ = xor) but it is impossible to know if, in this sequence, a 1 was obtained from the combination of a 0 in kN [vl, ..., vN) (SSK of the first dynamic system) and a 1 in kN [v \,.,., ν'N) (SSK of the second dynamic system), or vice versa. Similarly, it is impossible to know whether a 0 is derived from two 0s or from two 1s.
In altre parole, e questa è una delle idee principali del metodo secondo l'invenzione, E non si trova di fronte a un problema difficile, bensì di fronte a un problema indeterminato del tipo: data una somma di due numeri ricostruire il valore esatto degli addendi. Poiché, fissando arbitrariamente uno dei due numeri, la conoscenza della somma determina univocamente l'altro e poiché, rispetto alle informazioni di E tutti i numeri del campo di base sono equiprobabili, ne segue che, per ogni componente del vettore, E ha una ambiguità dello stesso ordine del numero di elementi del campo, cioè p. Per un vettore l'ambiguità sarà quindi dell'ordine di p<d>e per d+1 vettori dell'ordine di p<d>^<d+ì>'<ì>. Infine, l'uso simultaneo dei tre campi differenti Z , , Z „ , Z2(dove l'ultimo si In other words, and this is one of the main ideas of the method according to the invention, E is not faced with a difficult problem, but rather with an indeterminate problem such as: given a sum of two numbers, reconstruct the exact value of the addendi. Since, by arbitrarily fixing one of the two numbers, the knowledge of the sum uniquely determines the other and since, with respect to the information of E all the numbers of the base field are equiprobable, it follows that, for each component of the vector, E has an ambiguity of the same order as the number of elements of the field, i.e. p. For a vector the ambiguity will therefore be of the order of p <d> and for d + 1 vectors of the order of p <d> ^ <d + ì> '<ì>. Finally, the simultaneous use of the three different fields Z,, Z „, Z2 (where the last one is
riferisce all'operazione di xor) , rende praticamente impossibile una estrazione di informazioni, anche solo statistiche, mediante metodi algebrici. refers to the operation of xor), makes it practically impossible to extract information, even if only statistical, by means of algebraic methods.
Bibliografia Bibliography
[AcdeTiDiLi 81 ] [AcdeTiDiLi 81]
Accardi L., F. de Tisi, A. Di Libero: Accardi L., F. de Tisi, A. Di Libero:
Sistemi dinamici instabili e generazione di successioni pseudo-casuali ,In: Rassegna di metodi statistici e applicazioni, W. Racugno (ed.) Pitagora Editrice, Bologna (1981) 1-32 Unstable dynamical systems and generation of pseudo-random sequences, In: Review of statistical methods and applications, W. Racugno (ed.) Pitagora Editrice, Bologna (1981) 1-32
[AbAcAu9 1] [AbAcAu9 1]
Abundo M., Accardi L., Auricchio A.: Abundo M., Accardi L., Auricchio A .:
Hyperbolic automorphisms of tori and pseudo-random sequences, Calcolo 29 (1992) 213-240 Hyperbolic automorphisms of tori and pseudo-random sequences, Calculus 29 (1992) 213-240
[AcRe93 ] [AcRe93]
Accardi L., Regoli M.: Accardi L., Regoli M .:
Some simple algorithms for forms generations, IN: L. Accardi (ed.), Fractals in nature and in mathematics, Acta Encyclopaedica, Istituto dell'Enciclopedia Italiana (1993) 109-116 Some simple algorithms for forms generations, IN: L. Accardi (ed.), Fractals in nature and in mathematics, Acta Encyclopaedica, Institute of the Italian Encyclopedia (1993) 109-116
[Cugiani80 ] [Cugiani80]
M.Cugiani: Metodi Numerico Statistici (1980) M.Cugiani: Statistical Numerical Methods (1980)
[Gabler07] [Gabler07]
Markus Gabler: Markus Gabler:
Statistical Analysis of Random Number Generators Statistical Analysis of Random Number Generators
Rapporto interno del Centro V. Volterra, Ottobre (2007) Internal report of the V. Volterra Center, October (2007)
[ItaOttGrilLent 09] [EngOttGrilLent 09]
Giuseppe F. Italiano, Vittorio Ottaviani Antonio Grillo, Alessandro Lentini: BENCHMARKING FOR THE QP CRYPTOGRAPHIC SUITE, Agosto (2009) Giuseppe F. Italiano, Vittorio Ottaviani Antonio Grillo, Alessandro Lentini: BENCHMARKING FOR THE QP CRYPTOGRAPHIC SUITE, August (2009)
[REGIO] [REGIO]
Regoli, M., A redundant cryptographic symmetric algorithm that confounds statistical tests, Regoli, M., A redundant cryptographic symmetric algorithm that confounds statistical tests,
Proceeding International Conference QBIC10, World Scientific, Series QP--PQ (2010) Proceeding International Conference QBIC10, World Scientific, Series QP - PQ (2010)
[RobshBil08 ] [RobshBil08]
Mattew Robshaw, Olivier Billet (Eds.) : New Stream Cipher Designs, The eSTREAM Finalists, State-of-the-Art Survey, LNCS 4986 Springer (2008). Mattew Robshaw, Olivier Billet (Eds.): New Stream Cipher Designs, The eSTREAM Finalists, State-of-the-Art Survey, LNCS 4986 Springer (2008).
In quel che precede sono state descritte le preferite forme di realizzazione e sono state suggerite delle varianti della presente invenzione, ma è da intendersi che gli esperti del ramo potranno apportare modificazioni e cambiamenti senza con ciò uscire dal relativo ambito di protezione, come definito dalle rivendicazioni allegate. In the foregoing, the preferred embodiments have been described and variants of the present invention have been suggested, but it is to be understood that those skilled in the art will be able to make modifications and changes without thereby departing from the relative scope of protection, as defined by the claims attached.
Claims (12)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IT000061A ITRM20110061A1 (en) | 2011-02-11 | 2011-02-11 | METHOD FOR THE SECURE EXCHANGE OF DATA IN SYMMETRICAL COMMUNICATIONS. |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IT000061A ITRM20110061A1 (en) | 2011-02-11 | 2011-02-11 | METHOD FOR THE SECURE EXCHANGE OF DATA IN SYMMETRICAL COMMUNICATIONS. |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ITRM20110061A1 true ITRM20110061A1 (en) | 2012-08-12 |
Family
ID=43976362
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| IT000061A ITRM20110061A1 (en) | 2011-02-11 | 2011-02-11 | METHOD FOR THE SECURE EXCHANGE OF DATA IN SYMMETRICAL COMMUNICATIONS. |
Country Status (1)
| Country | Link |
|---|---|
| IT (1) | ITRM20110061A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2004019551A1 (en) * | 2002-08-20 | 2004-03-04 | Yannis Bakopoulos | Creation and distribution of cryptographic keys by the use of discrete dynamic systems |
| GR1004844B (en) * | 2003-12-29 | 2005-03-17 | Βασιλικη Γεωργιου Σουλιωτη | Security of communication in networkss with the assistance of randomners controls |
| US20100034377A1 (en) * | 2008-08-08 | 2010-02-11 | Universiti Putra Malaysia | Chaotic asymmetric encryption process for data security |
| US20100287225A1 (en) * | 2008-07-28 | 2010-11-11 | Jiguo Dong | Random Number Generation and Management Method, and Device |
-
2011
- 2011-02-11 IT IT000061A patent/ITRM20110061A1/en unknown
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2004019551A1 (en) * | 2002-08-20 | 2004-03-04 | Yannis Bakopoulos | Creation and distribution of cryptographic keys by the use of discrete dynamic systems |
| GR1004844B (en) * | 2003-12-29 | 2005-03-17 | Βασιλικη Γεωργιου Σουλιωτη | Security of communication in networkss with the assistance of randomners controls |
| US20100287225A1 (en) * | 2008-07-28 | 2010-11-11 | Jiguo Dong | Random Number Generation and Management Method, and Device |
| US20100034377A1 (en) * | 2008-08-08 | 2010-02-11 | Universiti Putra Malaysia | Chaotic asymmetric encryption process for data security |
Non-Patent Citations (1)
| Title |
|---|
| LUIGGI ACCARDI ET AL: "The QP-DYN algorithms", 27 January 2011, QUANTUM BIO-INFORMATIC IV, FROM QUANTUM INFORMATION TO BIO INFORMATICS, WORLD SCIENTIFIC PUBLISHING, GN, PAGE(S) 1 - 15, XP007919884 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8139764B2 (en) | Closed galois field cryptographic system | |
| US7995757B2 (en) | Closed galois field combination | |
| Xiao et al. | 2-Adic complexity of two classes of generalized cyclotomic binary sequences | |
| CN104380651B (en) | Method of generating pseudorandom sequence and method of encoding or decoding data stream | |
| Zaibi et al. | Efficient and secure chaotic S‐Box for wireless sensor network | |
| Courtois et al. | Combined algebraic and truncated differential cryptanalysis on reduced-round simon | |
| Dömösi et al. | A novel cryptosystem based on abstract automata and Latin cubes | |
| Khan et al. | A new hybrid technique for data encryption | |
| ITRM20110061A1 (en) | METHOD FOR THE SECURE EXCHANGE OF DATA IN SYMMETRICAL COMMUNICATIONS. | |
| Charalambides et al. | Securely aggregated coded matrix inversion | |
| Pal et al. | FPGA implementation of stream cipher using Toeplitz Hash function | |
| RU2291578C1 (en) | Method for stream encryption of data | |
| KR20110031822A (en) | Encryption / decryption method and apparatus for random access through hierarchical tree structure of stream module | |
| Grinenko et al. | The method of constructing the randomness extractor of a quantum random number generator on the basis of multimodulo transformation | |
| Karudaiyar et al. | Encryption and Decryption Scheme by Using Finite State Machine | |
| Mandal et al. | Generating good span n sequences using orthogonal functions in nonlinear feedback shift registers | |
| RU2296427C1 (en) | Method for stream encoding of discontinuous information | |
| Suri et al. | A Cipher based on Multiple Circular Arrays | |
| JP5818768B2 (en) | Mask generation apparatus, information processing apparatus, method thereof, and program | |
| Pendluri et al. | Design and implementation of keystream generator with improved security | |
| Accardi et al. | The Qp-Dyn Algorithms | |
| Li et al. | An algorithm for constructing a minimal register with non-linear update generating a given sequence | |
| Wang et al. | The Properties of the FCSR-Based Self-Shrinking Sequence | |
| Suri et al. | A cipher based on 3D Array Block Rotation | |
| Qiao et al. | Linear Complexity of Memory Sequence |