Blowfish
Blowfish kriptogrāfijā ir simetrisks bloka šifrs ar atslēgu, ko 1993. gadā izveidoja Brūss Šneiers (Bruce Schneier), un kopš 1993. gada tas ir iekļauts (salikts kopā) daudzos šifrēšanas produktos. Blowfish ir labs šifrēšanas ātrums programmatūrā, un līdz 2008. gadam nav atrasts neviens tā kriptoanalītiskais uzbrukuma modelis. Tomēr tagad lielāka uzmanība tiek pievērsta AES blokķīfa algoritmam.
Šneiers izveidoja Blowfish kā vispārējas nozīmes algoritmu, lai to izmantotu kā vecā DES algoritma aizstājēju un novērstu citu šifrēšanas algoritmu problēmas un grūtības. Blowfish izlaišanas laikā daudzi citi algoritmi bija patentēti vai slepeni. Šneiers ir teicis, ka "Blowfish nav patentēts, un tāds tas paliks visās valstīs. Ar šo algoritms tiek nodots atklātībā, un ikviens to var brīvi izmantot."
Galvenās konstrukcijas iezīmes ir no atslēgas atkarīgas S-veida kastes un ļoti sarežģīts atslēgas grafiks. Blowfish ir viens no ātrākajiem blokķīfiem, ko izmanto daudzi cilvēki, izņemot atslēgas maiņas gadījumus. Katra jauna atslēga ir iepriekš jāapstrādā, kas aizņem tikpat daudz laika, cik aptuveni 4 kilobaitu teksta šifrēšana, kas ir ļoti lēni, salīdzinot ar citiem blokšifriem. Tas kavē tā izmantošanu dažos lietojumos (piemēram, mazākajās iegultajās sistēmās, piemēram, agrīnajās viedkartēs), bet tas nav problēma citos lietojumos. Vienā no lietojumiem tas patiesībā ir labi: OpenBSD izmantotajā paroles šifrēšanas metodē izmanto algoritmu, kas radies no Blowfish, kurš izmanto lēnu atslēgu grafiku; ideja ir tāda, ka nepieciešamā papildu skaitļošanas piepūle nodrošina aizsardzību pret vārdnīcu uzbrukumiem. Sk. atslēgas nostiprināšanu.
Blowfish ir 64 bitu bloka lielums un mainīgs atslēgas garums no 0 līdz 448 bitiem Tas ir 16 apļu Feistela šifrs un izmanto lielus, no atslēgas atkarīgus S-box. Tā struktūra ir līdzīga CAST-128, kas izmanto fiksētus S-boxes.
1996. gadā Seržs Vaudenejs atklāja uzbrukumu ar zināmu tekstu, kura uzlaušanai bija nepieciešams 28r + 1 zināms atklāts teksts, kur r ir raundu skaits. Turklāt viņš atrada arī tādu vāju atslēgu klasi, kuras var atklāt un salauzt ar to pašu uzbrukumu, izmantojot tikai 24r + 1 zināmu atklātu tekstu. Šo uzbrukumu nevar izmantot pret parasto Blowfish; tas paredz, ka ir zināmas no atslēgas atkarīgās S-kastes. Vincents Rijmens (Vincent Rijmen) savos doktora darbos ieviesa otrās kārtas diferenciālo uzbrukumu, ar kuru var uzlauzt četras kārtas un ne vairāk. Joprojām nav zināms veids, kā uzlauzt visus 16 raundus, izņemot meklēšanu ar brutālu spēku. Vienā no publicētajiem C kodiem 1996. gadā tika atrasta zīmes paplašināšanas kļūda.
Līdz 2008. gadam nebija publiski zināma neviena laba Blowfish pilnas kārtas versijas kriptoanalīze. Tomēr 2007. gadā Brūss Šneiers (Bruce Schneier) norādīja, ka, lai gan Blowfish joprojām tiek izmantots, viņš ieteica tā vietā izmantot jauno algoritmu Twofish.
Saistītās lapas
- Uzlabotais šifrēšanas standarts
- eSTREAM - jaunu plūsmas šifru novērtēšana, ko veic ES.
- Twofish
- MacGuffin
Jautājumi un atbildes
J: Kas ir Blowfish?
A: Blowfish ir simetrisks bloka šifrs ar atslēgu, ko 1993. gadā radīja Brūss Šneiers (Bruce Schneier). Kopš tā laika tas ir iekļauts daudzos šifrēšanas produktos.
J: Kādam nolūkam tika radīts Blowfish?
A: Blowfish tika izveidots kā vispārējas nozīmes algoritms, lai aizstātu veco DES algoritmu un novērstu citu šifrēšanas algoritmu problēmas un grūtības.
J: Cik garš var būt Blowfish atslēgas garums?
A: Blowfish atslēgas garums var būt no 0 līdz 448 bitiem.
J: Kādas ir dažas Blowfish konstrukcijas iezīmes?
A: Dažas no konstrukcijas iezīmēm ietver no atslēgas atkarīgas S-kastes un ļoti sarežģītu atslēgas grafiku.
J: Vai ir zināma Blowfish pilnas kārtas versijas kriptoanalīze?
A: Kopš 2008. gada nav zināms veids, kā uzlauzt pilnu 16 kārtu versiju, izņemot meklēšanu ar brutālu spēku.
J: Kāda veida uzbrukumu Serge Vaudenay atrada pret Blowfish?
A: Seržs Vudenajs atklāja uzbrukumu ar zināmu atklātu tekstu, kura uzlaušanai bija nepieciešams 28r + 1 zināms atklāts teksts, kur r ir kārtu skaits. Viņš arī atrada vāju atslēgu klasi, ko var atklāt un salauzt ar šo pašu uzbrukumu, izmantojot tikai 24r + 1 zināmu atklātu tekstu.
Jautājums: Vai Brūss Šneiers iesaka tagad Blowfish vietā izmantot Twofish?
A: Jā, Brūss Šneiers iesaka tagad Blowfish vietā izmantot Twofish, jo tā drošības pasākumi ir uzlaboti salīdzinājumā ar vecākiem algoritmiem, piemēram, DES, vai pat jaunākiem, piemēram, AES.