Top Ad unit 728 × 90

Keccak: Le nouveau SHA-3 Cryptage standards

Après des années d'essais et d'analyse, le gouvernement américain sélectionné l'algorithme Keccak être la nouvelle norme de cryptage SHA-3

Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Voici comment il fonctionne et comment l'utiliser.

Route vers SHA-3

Pour être considéré pour la norme SHA-3, les fonctions de hachage candidats devaient répondre à quatre conditions fixées par le NIST. Si un candidat ne répond pas à ces conditions, il a été disqualifié:
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
La fonction de hachage candidat devait bien performer indépendamment de la mise en œuvre. 
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Il faut consacrer des ressources minimales, même lors du hachage de grandes quantités de texte du message. Beaucoup de candidats proposés étaient effectivement incapables de répondre à cette exigence.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
La fonction de candidat devait être prudent sur la sécurité. Il doit résister aux attaques connues, tout en conservant un facteur de sécurité. Il devrait émettre les mêmes quatre tailles de hachage que SHA-2 (224-, 256-, 384 ou 512 bits de large), mais être en mesure de fournir plus de tailles de hachage si besoin est.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
La fonction de candidat doit être soumis à la cryptanalyse. Le code source et les résultats d'analyse ont été rendus publics pour des tierces parties intéressées à examiner et à commenter. Les faiblesses constatées lors de l'analyse devaient être adressées, par tweaks ou par refonte.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
La fonction de candidat devait exercer la diversité de code. Il ne pouvait pas utiliser le moteur Merkle-Damgard pour produire le message de hachage.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Le concours SHA-3 a vu 51 fonctions candidats entrent dans le premier cycle d'évaluations. Sur ceux-ci, 14 ont réussi à passer au deuxième tour. Round trois ont vu les candidats réduit à cinq. Et à partir de ces cinq, Keccak a été déclaré vainqueur.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Présentation de Keccak


Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
L'algorithme Keccak (prononcé «ket-chak") est l'œuvre de Guido Bertoni, Joan Daemen, Michael Peters, et Giles Van Assche. Il a été présenté en tant que candidat SHA-3 en Octobre 2008.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Keccak utilise un «moteur d'éponge" innovant pour hacher le texte du message. Il est rapide, avec une vitesse moyenne déclarée de 12,5 cycles par octet sur un processeur Intel Core 2. Son design simple prête bien à la mise en œuvre du matériel.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Keccak peut résiste à des attaques connues avec une complexité minimale de 2n, où n est la taille de hachage. Il dispose d'une large marge de sécurité. À ce jour, la cryptanalyse tiers n'a montré aucun de graves lacunes dans Keccak. Néanmoins, les créateurs de Keccak ont ​​commencé le Crypto concours Crunchy, contestant les autres à trouver et signaler les attaques réussies et vérifiables sur Keccak.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Creuser dans Keccak
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Au moment de l'écriture, le NIST n'a pas encore de publier le document officiel pour SHA-3 (FIPS 180-5). 
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Ainsi, les informations suivantes sont tirées de document de référence de Keccak et de sources tierces.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Il y a trois parties à l'algorithme Keccak (Figure 1).

Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Figure 1: blocs de base de la fonction de hachage Keccak.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

La fonction de hachage () sert la fonction d'entrée. Il faut quatre arguments d'entrée: la taille de hachage (n) dans les bits, le texte du message (M) et sa taille (N) en bits, et une variable de hachage (H). La variable de hachage doit être créée en utilisant la fonction de bibliothèque malloc () comme suit:

1
2
3
4
5
6
HashReturn E;
char *H;
n = 224;
H = (char *)malloc(sizeof(char) * n / 8);
//...
E = Hash(n, M, N, H);

La fonction Init () prépare l'état interne (S) pour la taille de hachage donnée. La fonction de mise à jour () commence la compression ou absorber phase. 
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Ceci est où le texte du message est associé à l'état interne, puis permuté. La fonction finale () commence la phase d'extraction ou squeeze. Ceci est le cas des bits de l'état interne sont extraits et assemblés pour former la valeur de hachage. 
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Les premiers n bits du hachage assemblé sert alors que le message de hachage. Les quatre fonctions renvoient un résultat d'erreur. Un résultat zéro une fonction terminé sa tâche sans erreurs.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

La figure 2 montre la structure de données de l'état interne S. Ce C struct, nommé spongeState, contient huit champs, dont deux sont des tableaux alignés (marqué en rouge). Le champ d'état [] détient les octets réels de l'Etat, alors que le champ dataqueue [] contient le message d'octets à combiner et permuté.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

struct holding the internal state of the Keccak hash function
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Figure 2: La struct tenant l'état interne de la fonction de hachage Keccak.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Le champ de capacité est la capacité de hachage (c). Sa valeur est fixée à deux fois la taille de hachage (2 * n). Le champ de taux est le nombre de bits de message traitées par tour. Il est mis à la valeur de 1600-C. Le champ bitsInQueue est le nombre de bits de message laissé dans le domaine dataqueue []. Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Le champ fixedOutputlength est la taille de hachage souhaitée (n). Le champ compression est un drapeau de mode. Lorsqu'il est réglé à zéro, Keccak est en mode compression. 
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Lorsqu'il est réglé sur 1, Keccak est en mode d'extraction. Et le bitsAvailableForSqueezing de champ contient le nombre de bits d'état qui peuvent être assemblés dans le message final de hachage.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Keccak utilise 24 tours de permutation pour réduire le texte du message dans un hachage. Chaque tour invoque cinq modules en succession comme le montre la figure 3.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

The modules invoked in each permutation round.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Figure 3: Les modules invoqués à chaque tour de permutation.
Le module de thêta rend l'état interne en une matrice 5 x 5 éléments de 64 bits. Il calcule les parités de chaque colonne et les combine avec un (XOR) opérateur ou exclusif. Ensuite, il XORs la parité résultant à chaque bit d'état comme suit:

S[i][j][k] ^= parity(S[0...4][j-1][k]) 
 ^ parity(S[0...4][j+1][k-1])

where i = 0...4; j = 0...4; k = 0...63

Le module de rho tourne chaque élément 64 bits par un nombre triangulaire. Cependant, elle ne comprend pas l'élément S [0] [0] de rotation. Le module de phi permute les éléments 64 bits. Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Permutation suit l'attribution de motif fixe illustré ci-dessous:Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

S[j][2*i + 3*j] = S[i][j]
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Le module de chi ajoute un aspect non-linéaire à la ronde de permutation. Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Il combine les éléments de ligne en utilisant seulement trois opérateurs binaires: AND, NOT et XOR. Puis il écrit le résultat au tableau d'état comme suit:Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

S[i][j][k] ^= ~S[i][j + 1][k] & S[i][j + 2][k]
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Le module iota décompose aucune symétrie provoquée par les autres modules. Ce qu'il fait par XOR l'un des éléments du tableau à une constante ronde. Le module dispose de 24 constantes rondes à choisir. Ces constantes sont définies en interne par Keccak.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

le Keccak code source en C est, cependant, trop grand pour être énumérés ici dans son intégralité.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Évaluation SHA-3
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Alors, comment SHA-3 comparer à ses prédécesseurs SHA1 et SHA-2? Pour répondre à cette question, IS les trois fonctions de hachage à quatre tests séparés subjective:
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Le premier test est le test de collisions. Ici, je me préparer un ensemble de textes de message et les fonctions de hachage traitent chaque texte. Une fonction de hachage bien conçu doit émettre un hachage unique pour chaque texte, même si les deux textes diffèrent par un simple caractère. Si une collision se produit, il doit être rare, avec une complexité d'au moins 2n.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Le second test est un test run-bit. Ce test révèle la façon dont les bits sont répartis sur la valeur de hachage. Idéalement, une valeur de hachage devrait avoir un nombre équilibré de 1 et de 0. 


Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Si nous divisons le hachage par deux et compter le nombre de 1 sur chaque moitié, nous devrions obtenir un nombre égal. Si la moitié a plus de 1s que l'autre, cela signifie un biais potentiel, ce qui pourrait se traduire par une collision possible.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Le prochain test est le test d'avalanche ou en cascade. Celui-ci mesure la capacité d'une fonction de hachage à réagir aux changements dans un message texte. 


Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Idéalement, un changement dans un octet de message devrait provoquer environ la moitié des octets de hachage pour changer; et les changements devraient se produire uniformément le long de la table de hachage. 


Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Trop petit ou trop grand changement pourrait être le signe d'une collision.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Mon test final est un test de synchronisation. Cette mesure utile à quelle vitesse une fonction de hachage peut traiter le texte du message. 


Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 
Une bonne fonction de hachage ne devrait pas prendre plus d'une demi-seconde pour traiter un grand texte du message. Longer fois hachage sont indésirables, surtout si la fonction doit être utilisée dans le cadre d'un service à fort trafic.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Le tableau 1 montre comment SHA-3 comparer avec ses deux prédécesseurs. 

La machine de test est un MacBook d'Apple avec un 2 GHz Intel Core 2 Duo et 2 Go de RAM DDR2. Le système d'exploitation MacOS X est 10.6.7. Le message de test est un extrait de pièce Hamlet de William Shakespeare - soliloque "Etre ou ne pas être», composé de 33 lignes de texte pour un total de 261 mots. Parce que SHA-1 peut émettre seulement hashes 160 bits, les sorties pour les deux SHA-2 et SHA-3 sont limités à 224 bits, le plus proche taille comparable qu'elles émettent.
Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

comparing SHA-3 with its predecessors

Keccak, Le nouveau, SHA-3, Cryptage standards, Encryption standards, Sha-3, ios, mac, xcode, KECCAK, c, objective-c, 

Tableau 1: Comparaison SHA-3 avec ses prédécesseurs.

Cliquer sur le lien pour télécharger le code Demo: SHA-3 Cryptage standards 





Keccak: Le nouveau SHA-3 Cryptage standards Reviewed by Badr Dev on 21:18 Rating: 5

Aucun commentaire:

All Rights Reserved by Cours Réparation : On vous Explique Comment © 2014 - 2023
Powered By Blogger, Designed by Sweetheme

Formulaire de contact

Nom

E-mail *

Message *

Fourni par Blogger.
Pour Trouvez D'autre Solution ... !!
Cliquer Sur " J'aime " ^_^