Serpent (xifratge)

De Viquipèdia
Dreceres ràpides: navegació, cerca
Serpent
Serpent's linear mixing stage

Serpent's linear mixing stage
General
Dissenyadors Ross Anderson, Eli Biham, Lars Knudsen
Data primera publicació 1998-08-21
Desenvolupat a partir de Square
Detall de xifratge
Mida de la clau 128, 192 o 256 bits
Mida del bloc 128 bits
Estructura Substitution-permutation network
Rondes 32


Serpent és un xifratge per blocs de clau simètrica que va ser finalista en la competició pel xifratge AES, on va quedar segon després de Rijndael. Serpent va ser dissenyat per Ross Anderson, Eli Biham, i Lars Knudsen.

Com altres sistemes presentats al AES, Serpent té una longitud de bloc de 128 bits i admet una mida de la clau de 128, 192 o 256 bits.[1] El xifrador és una xarxa de permutació de substitució de 32 rondes operant sobre un bloc de quatre paraules de 32 bits. Cada ronda aplica un dels vuit gups de 4 bits a les caixes-S 32 vegades en paral·lel. Serpent estava dissenyat de manera que totes les operacions es puguin executar en paral·lel, fent servir 32 talls d'1 bit. Això maximitza el paral·lelisme, però també permet l'ús de l'extens treball de criptoanàlisi realitzat sobre el DES.

Serpent es veia àmpliament que aportava un enfocament més conservador a la seguretat que els altres finalistes al AES, optant per un marge de seguretat més gran: els dissenyadors consideraven que 16 rondes eren suficients contra els tipus coneguts d'atac, però n'especificaven 32 rondes com a seguretat contra descobertes futures en cryptanalysis.

La xifratge Serpent no ha estat patentat. És completament de domini públic i qualsevol el pot fer servir lliurement. No hi ha cap restricció en absolut quant al seu ús. Com a resultat, qualsevol és lliure d'incorporar Serpent en el seu programari (o aplicacions de maquinari) sense pagar regalies.

Rijndael vs. Serpent[modifica | modifica el codi]

Rijndael és una xarxa de transformació lineal de substitució amb deu, dotze, o catorze rondes, depenent de la mida de la clau, i amb longituds de bloc de 128 bits, 192 bits, o 256 bits, especificades independentment. Serpent és una xarxa de transformació lineal de substitució que té trenta-dues rondes, més una inicial i una permutació final per simplificar l'aplicació optimitzada. La funció rodona a Rijndael consta de tres parts: una capa no lineal, una capa de mescla lineal, i una capa de XOR de mescla de clau. La funció rodona a Serpent consta de XOR de mescla clau, trenta-dues aplicacions paral·leles de la mateixa 4x4 cixa-S, i una transformació lineal, excepte en l'última ronda, on un altre XOR de mescla de clau reemplaça la transformació lineal. La capa no lineal a Rijndael fa servir una caixa-S de 8x8 mentre que Serpent fa servir vuit caixes-S de 4x4 diferents.

Seguretat[modifica | modifica el codi]

L'atac XSL, si és eficaç, debilitaria Serpent (encara que no tant com debilitaria Rijndael, que és el que es va adoptar com a AES). Tanmateix, molts cryptoanalistes creuen que una vegada que es tenen en compte les consideracions d'implementació l'atac XSL seria més costós que un atac per la força bruta.

Vegeu també[modifica | modifica el codi]

  • Tiger - funció de hash dels mateixos autors.

Notes a Peu de Pàgina[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]