1 / 24

MISTY1

MISTY1 . Mitsubishi Improved Security Technology. LAHLALI Najoua OULBRIM Driss. Plan. Introduction - Application - Performances - Quelques notions Algorithme . Introduction .

woods
Download Presentation

MISTY1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MISTY1 Mitsubishi Improved Security Technology LAHLALINajoua OULBRIM Driss

  2. Plan • Introduction - Application - Performances - Quelques notions • Algorithme

  3. Introduction •  Algorithme de chiffrement symétrique par blocs de 64 bits avec une clé de 128 bits et un nombre variable de rondes, basé sur un schéma de Feistel. • MISTY1 est conçu pour résister à la cryptanalyse différentielle et à la cryptanalyse linéaire, et pour être très rapide dans ses mises en œuvres matérielles et logicielles..

  4. Applications • MISTY1 peut être mis en œuvre avec une très petite taille de la RAM (par exemple moins de 100 octets). • Microprocesseurs 8 bits pour les cartes à puce et des processeurs de signaux numériques 16 bits. • Pour les systèmes de communication sans fil. • Les processeurs haut de gamme 32 bits et 64 bits pour les applications PKI. • Applications de réseau (par exemple hubs et routeurs). • Sécuriser des systèmes d'accès Web. • Mise en œuvre sur le HTTP et TCP; • Service gouvernementaux. • Sécurisation du contenu des réseaux de distribution.

  5. Performances • Sécurité. • Multiplateforme.

  6. Sécurisé • MISTY1 est conçu pour être hautement sécurisé en particulier contre la cryptanalyse différentielle linéaire.

  7. Multiplateforme • Rapidité remarqué dans les logiciels et matériels. Pentium III (800MHz) (Assembly Language Program) vitesse d’encryptage 230Mbps ASIC H/W (Mitsubishi 0.35 micron CMOS Design Library) vitesse d’encryptage 800Mbps

  8. Quelques notions

  9. schéma de Feistel • Un algorithme utilisant un schéma de Feistel va procéder en chiffrant des blocs de 2n bits, qu'on partage en 2, partie gauche G, partie droite D.

  10. S-Box • S-Box (substitution box), terme anglais désignant une table de substitution utilisée dans un algorithme de chiffrement symétrique. Une S-Box contribue à la « confusion » (terme employé parClaude Shannon) en rendant l'information originale inintelligible. Les S-Boxes permettent de casser la linéarité de la structure de chiffrement et leur nombre varie selon les algorithmes..

  11. Fonction FI La fonction FI prend deux paramètres. Le premier est une entrée de 16 bits nommée FI_IN, l'autre est une partie d'EK de 16 bits, à savoir FI_KEY. FI renvoie un buffer de 16 bits, FI_OUT. La fonction FI effectue une substitution d'octet non linéaire par boite S fonction FI(FI_IN, FI_KEY) variable d9 (entier de 9 bits)variable d7 (entier de 7 bits)débutd9 = FI_IN >> 7d7 = FI_IN & 0x7fd9 = S9[d9] ^ d7d7 = S7[d7] ^ d9( d7 = d7 & 0x7f)d7 = d7 ^ (FI_KEY >> 9)d9 = d9 ^ (FI_KEY & 0x1ff)d9 = S9[d9] ^ d7FI_OUT = (d7<<9) | d9retourner FI_OUTfin

  12. Algorithme • Clés étendu. • Chiffrement et déchiffrement.

  13. Clé étendu voidkey_schedule(unsignedint *EK){for(int i = 0; i < 8 ; i++){ EK[i] = key[i*2]*256 + key[i*2+1]; } for(int i = 0; i < 8; i++){EK[i] = FI(EK[i], EK[(i+1)%8]);}

  14. Clés : 00 11 22 33 44 55 66 77 88 99 aabb cc dd ee ff EK[0] = 53073 EK[1] = 36479 EK[2] = 24105 EK[3] = 26426 EK[4] = 52668 EK[5] = 2006 EK[6] = 48949 EK[7] = 37295 Clés étendue : CF 51 8 E 7F 5 E 29 67 3A CD BC 07 D6 BF 35 5 E 11

  15. Algorithme

  16. Avec la fonction FO La fonction FO prend deux paramètres. Le premier est une entrée de 32 bits nommée FO_IN, l'autre est un index d'EK noté k. FO renvoie un buffer de 32 bits de données nommé FO_OUT (ceci est dû à sa structure de schéma de Feistel sur 64 bits). Message : 01 23 45 67 89 ab cd ef

  17. Avec la fonction FO variables t0, t1 (entiers de 16 bits)débutt0 = FO_IN >> 16t1 = FO_IN & 0xfffft0 = t0 ^ EK[k]t0 = FI(t0, EK[(k+5)%8+8])t0 = t0 ^ t1t1 = t1 ^ EK[(k+2)%8]t1 = FI(t1, EK[(k+1)%8+8])t1 = t1 ^ t0t0 = t0 ^ EK[(k+7)%8]t0 = FI(t0, EK[(k+3)%8+8])t0 = t0 ^ t1t1 = t1 ^ EK[(k+4)%8]FO_OUT = (t1<<16) | t0retourner FO_OUTfin

  18. Avec la fonction FL • La fonction FO prend deux paramètres. Le premier est une entrée de 32 bits nommée FO_IN, l'autre est un index d'EK noté k. FO renvoie un buffer de 32 bits de données nommé FO_OUT. variables d0, d1 (entiers de 16 bits)débutd0 = FL_IN >> 16d1 = FL_IN & 0xffffsi (k est pair) alorsd1 = d1 ^ (d0 & EK[k/2])d0 = d0 ^ (d1 | EK[(k/2+6)%8+8])sinond1 = d1 ^ (d0 & EK[((k-1)/2+2)%8+8])d0 = d0 ^ (d1 | EK[((k-1)/2+4)%8])finsiFL_OUT = (d0<<16) | d1retourner FL_OUTfin

  19. Message: 01 23 45 67 89 ab cd ef • Clés: 00 11 22 33 44 55 66 77 88 99 aabb cc dd ee ff • Message chiffré : 8B 1D A5 F5 6A B3 D0 7C

  20. Chiffrement début// ronde 0D0 = FL(D0, 0);D1 = FL(D1, 1);D1 = D1 ^ FO(D0, 0);// ronde 1D0 = D0 ^ FO(D1, 1);// ronde 2D0 = FL(D0, 2);D1 = FL(D1, 3);D1 = D1 ^ FO(D0, 2);// ronde 3D0 = D0 ^ FO(D1, 3);// ronde 4D0 = FL(D0, 4);D1 = FL(D1, 5);D1 = D1 ^ FO(D0, 4);// ronde 5D0 = D0 ^ FO(D1, 5);// ronde 6D0 = FL(D0, 6);D1 = FL(D1, 7);D1 = D1 ^ FO(D0, 6);// ronde 7D0 = D0 ^ FO(D1, 7);// finalD0 = FL(D0, 8);D1 = FL(D1, 9);fin On utilise en général un chiffrement/déchiffrement en 8 rondes. Une ronde consiste en un appel à la fonction FO, les rondes paires incluent en plus un appel à FL . Après la ronde finale un appel à FL est effectué.

  21. Déchiffrement Peut le déchiffrement ou utilise un algorithme (FL_Inverse) à la place de FL. variables d0, d1 (entiers de 16 bits)débutd0 = FL_IN >> 16d1 = FL_IN & 0xffffsi (k est pair) alorsd0 = d0 ^ (d1 | EK[(k/2+6)%8+8])d1 = d1 ^ (d0 & EK[k/2])sinond0 = d0 ^ (d1 | EK[((k-1)/2+4)%8])d1 = d1 ^ (d0 & EK[((k-1)/2+2)%8+8])finsiFL_OUT = (d0<<16) | d1retourner FL_OUTfin

  22. débutD0 = C & 0xffffffff;D1 = C >> 32;D0 = FLINV(D0, 8);D1 = FLINV(D1, 9);D0 = D0 ^ FO(D1, 7);D1 = D1 ^ FO(D0, 6);D0 = FLINV(D0, 6);D1 = FLINV(D1, 7);D0 = D0 ^ FO(D1, 5);D1 = D1 ^ FO(D0, 4);D0 = FLINV(D0, 4);D1 = FLINV(D1, 5);D0 = D0 ^ FO(D1, 3);D1 = D1 ^ FO(D0, 2);D0 = FLINV(D0, 2);D1 = FLINV(D1, 3);D0 = D0 ^ FO(D1, 1);D1 = D1 ^ FO(D0, 0);D0 = FLINV(D0, 0);D1 = FLINV(D1, 1);P = (D0<<32) | D1;fin

  23. Merci pour votre attention

More Related