Blowfish (penyandian): Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Borgxbot (bicara | kontrib)
k Robot: Cosmetic changes
Rondol127 (bicara | kontrib)
Fitur saranan suntingan: 3 pranala ditambahkan.
Tag: VisualEditor Suntingan perangkat seluler Suntingan peramban seluler Tugas pengguna baru Disarankan: tambahkan pranala
 
(17 revisi perantara oleh 13 pengguna tidak ditampilkan)
Baris 1:
{{kotak info metode enkripsi
[[Berkas:BlowfishFFunction.svg|thumb|250px|Fungsi feistel blowfish]]
| nama = Blowfish
'''Blowfish''' merupakan [[algoritma]] kunci simetrik cipher blok yang dirancang pada tahun [[1993]] oleh [[Bruce Schneier]] untuk menggantikan [[DES]]. Pada saat itu banyak sekali rancangan algoritma yang ditawarkan, namun hampir semua terhalang oleh [[paten]] atau kerahasiaan pemerintah Amerika. Schneier menyatakan bahwa blowfish bebas paten dan akan berada pada domain publik. Dengan pernyataan Schneier tersebut blowfish telah mendapatkan tempat di dunia kriptografi, khususnya bagi masyarakat yang membutuhkan algoritma kriptografi yang cepat, kuat, dan tidak terhalang oleh [[lisensi]].
| gambar = BlowfishFFunction.svg
| takarir = Fungsi Feistel (fungsi F) dari Blowfish
| pendesain = [[Bruce Schneier]]
| tanggal publikasi = 1993
| seri =
| turunan dari =
| penerus = [[Twofish]]
| terkait =
| sertifikasi =
| ukuran digest =
| ukuran kunci = 32–448 bit
| klaim keamanan =
| ukuran blok = 64 bit
| ukuran status =
| struktur = [[Sandi Feistel|Jaringan Feistel]]
| ronde = 16
| analisis = Empat ronde Blowfish rentan terkena [[serangan diferensial]] derajat dua.<ref name=rijmen1997>{{cite journal |author=Vincent Rijmen |author-link=Vincent Rijmen |year=1997 |title=Cryptanalysis and Design of Iterated Block Ciphers |work=Disertasi doktor |url=https://www.cosic.esat.kuleuven.be/publications/thesis-4.ps |format=[[PostScript]] |url-status=live |archive-url=https://web.archive.org/web/20130508181935/http://www.cosic.esat.kuleuven.be/publications/thesis-4.ps |archive-date=8 Mei 2013}}</ref> Untuk [[kunci lemah]], empat belas ronde Blowfish dapat dibedakan dari [[permutasi acak semu]].<ref>{{cite journal |last=Vaudenay |first=Serge |date=Februari 1996 |title=On the weak keys of Blowfish |journal=International Workshop on Fast Software Encryption |pp=27-32 |location=Berlin |publisher=Springer}}</ref>
}}
'''Blowfish''' merupakan [[algoritmaalgoritme]] kunci[[penyandian simetrikblok]] cipher[[kunci bloksimetris]] yang dirancang pada tahun [[1993]] oleh [[Bruce Schneier]] untuk menggantikan [[DES]]. Pada saat itu, banyak sekali rancangan algoritmaalgoritme yang ditawarkan,. namunNamun, hampir semua terhalang oleh [[paten]] atau kerahasiaan pemerintah [[Amerika Serikat]]. Schneier menyatakan bahwa blowfishBlowfish bebas paten dan akan berada padadalam [[domain publik]]. Dengan pernyataan Schneier tersebut, blowfishBlowfish telah mendapatkan tempat di dunia [[kriptografi]], khususnya bagi masyarakat yang membutuhkan algoritmaalgoritme kriptografi yang cepat, kuat, dan tidak terhalang oleh [[lisensi]].<ref name=blowfishPaper>{{cite journal |author=Bruce Schneier |author-link=Bruce Schneier |year=1993 |title=Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish) |work=[[Fast Software Encryption]], Cambridge Security Workshop Proceedings |publisher=[[Springer-Verlag]] |pp=191–204 |url=https://www.schneier.com/paper-blowfish-fse.html |url-status=live |archive-url=https://web.archive.org/web/20140126182135/https://www.schneier.com/paper-blowfish-fse.html |archive-date=26 Januari 2014}}</ref>
 
Keberhasilan blowfishBlowfish dalam menembus pasar telah terbukti dengan diadopsinya blowfishBlowfish sebagai '''[[Open Cryptography Interface''']] ('''OCI''') pada [[Kernelkernel Linux|kernel linux]] versi 2.5 keataske atas. Dengan diadopsinya blowfishBlowfish, maka telah menyatakan bahwa dunia opensumber sourceterbuka menganggap blowfishBlowfish adalah salah satu algoritmaalgoritme yang terbaik. Kesuksesan blowfishBlowfish mulai memudar setelah kehadiran algoritmaalgoritme-algoritmaalgoritme dengan ukuran blok yang lebih besar, seperti [[Standar Enkripsi Lanjutan|AES]]. AES sendiri memang dirancang untuk menggantikan DES. SehinggaSchneier secarapun keseluruhanlebih AESmenyarankan lebih[[Twofish]] ungguluntuk daripenggunaan DESmodern.<ref name=schneierInterview2007>{{cite web |url=https://www.computerworld.com.au/article/46254/bruce_almighty_schneier_preaches_security_linux_faithful/?pp=3 |last=Dahna |first=McConnachie |date=27 Desember 2007 |title=Bruce Almighty: Schneier preaches security to Linux faithful |work=[[Computerworld]] |pp=3 |access-date=26 Januari 2018 |url-status=live |archive-url=https://web.archive.org/web/20161202063854/https://www.computerworld.com.au/article/46254/bruce_almighty_schneier_preaches_security_linux_faithful/?pp=3 |archive-date=2 Desember 2016 |quote=At this point, though, I'm amazed it's still being used. If people ask, I danrecommend jugaTwofish blowfishinstead.}}</ref>
 
== AlgoritmaAlgoritme ==
[[Gambar:Blowfish diagram.svg|left|thumb|150px|Struktur Feistel dari Blowfish]]
Blowfish adalah algoritma kriptografi kunci simetrik cipher blok dengan panjang blok tetap sepanjang 64 [[bit]]<ref>http://www.schneier.com/paper-blowfish-fse.html</ref>. Algortima tersebut juga menerapkan teknik kunci yang berukuran sembarang. Ukuran kunci yang dapat diterima oleh blowfish adalah antara 32 hingga 448 bit, dengan ukuran standar sebesar 128 bit. Blowfish memanfaatkan teknik pemanipulasian bit dan teknik pemutaran ulang dan pergiliran kunci yang dilakukan sebanyak 16 kali. Algoritma utama terbagi menjadi dua sub-algoritma utama, yaitu bagian ekspansi kunci dan bagian [[enkripsi]]-[[dekripsi]] data.
Blowfish memiliki [[ukuran blok]] 64 bit dan ukuran kunci dari 32 sampai 448 bit.<ref name=blowfishPaper /> Algortime menggunakan [[sandi Feistel]] 16 ronde dan menggunakan [[kotak-S]] besar yang bergantung pada kunci. Strukturnya menyerupai [[CAST-128]] yang menggunakan kotak-S tetap.
 
Diagram di sebelah menampilkan proses enkripsi Blowfish. Tiap garis menggambarkan 32 bit. Ada lima larik subkunci: satu larik-P (disimbolkan ''K'' pada diagram untuk membedakan dari teks asli ''P'') berukuran 18 dan empat kotak-S berukuran 256 ({{math|''S''<sub>0</sub>}}, {{math|''S''<sub>1</sub>}}, {{math|''S''<sub>2</sub>}}, {{math|''S''<sub>3</sub>}}).
Pengekspansian kunci dilakukan pada saat awal dengan masukan sebuah kunci dengan panjang 32 hingga 448 bit, dan keluaran adalah sebuah larik sub-kunci dengan total 4168 [[bita]]. Bagian enkripsi-dekripsi data terjadi dengan memanfaatkan perulangan 16 kali terhadap jaringan feistel. Setiap perulangan terdiri dari permutasi dengan masukan adalah kunci, dan substitusi data. Semua operasi dilakukan dengan memanfaatkan operasi [[xor]] dan penambahan. Operasi penambahan dilakukan terhadap empat larik lookup yang dilakukan setiap putarannya.
 
Tiap ronde terdiri dari empat langkah:
== Rujukan ==
# Lakukan XOR pada bagian kiri data (''L'') dengan nilai ke-''r'' pada larik-P.
<references />
# Pakai hasil XOR sebagai masukan ke fungsi F Blowfish.
# Lakukan XOR pada keluaran fungsi F dengan bagian kanan data (''R'').
# Tukar ''L'' dan ''R''.
 
Fungsi F memecah data 32 bit ke dalam empat data 8 bit. Keempat pecahan data tadi dimasukkan ke dalam kotak-S. Kotak-S menerima data 8 bit dan menghasilkan data 32 bit. Keluarannya dikenai modulus {{math|2<sup>32</sup>}} dan dikenai XOR untuk menghasilkan keluaran final 32 bit.<ref name=blowfishPaper />
== Bacaan lanjutan ==
* {{en}} Vincent Rijmen, "Cryptanalysis and design of iterated block ciphers", doctoral dissertation, October 1997.
* {{en}} Bruce Schneier, Description of a New Variable-Length Key, 64-bit Block Cipher (Blowfish). Fast Software Encryption 1993: 191–204 [http://www.schneier.com/paper-blowfish-fse.html].
* {{en}} Bruce Schneier, The Blowfish Encryption Algorithm -- One Year Later, ''[[Dr. Dobb's Journal]]'', 20(9), p. 137, September 1995 [http://www.schneier.com/paper-blowfish-oneyear.html].
* {{en}} Serge Vaudenay, "On the weak keys of Blowfish," Fast Software Encryption (FSE'96), LNCS 1039, D. Gollmann, Ed., Springer-Verlag, 1996, pp. 27–32.
 
== Lihat pula ==
* [[Twofish]]
* [[Threefish]]
* [[DES|Data Encryption Standard]]
* [[Standar Enkripsi Data]] (DES)
* [[AES|Advanced Encryption Standardl]]
* [[Standar Enkripsi Lanjutan]] (AES)
 
== Rujukan ==
{{reflist}}
 
== Bacaan lanjutan ==
* {{en}}cite journal |author=Vincent Rijmen, "|date=Oktober 1997 |title=Cryptanalysis and design of iterated block ciphers", doctoral|work=Disertasi dissertation, October 1997.doktor}}
* {{en}}cite journal |author=Bruce Schneier, |year=1993 |title=Description of a New Variable-Length Key, 64-bit Block Cipher (Blowfish). |journal=Fast Software Encryption 1993: |pp=191–204 [|url=http://www.schneier.com/paper-blowfish-fse.html].}}
* {{en}}cite journal |author=Bruce Schneier, |date=September 1995 |title=The Blowfish Encryption Algorithm -- One Year Later, ''|journal=[[Dr. Dobb's Journal]]'', |volume=20 20(|issue=9), p. |pp=137, September 1995 [|url=http://www.schneier.com/paper-blowfish-oneyear.html].}}
* {{en}}cite journal |author=Serge Vaudenay, "|editor=D. Gollmann |year=1996 |title=On the weak keys of Blowfish," |journal=Fast Software Encryption (FSE'96), |issue=LNCS 1039, D. Gollmann, Ed.,|pp=27–32 |publisher=Springer-Verlag, 1996, pp. 27–32.}}
 
== Pranala luar ==
{{commons category}}
* {{en}} [http://www.schneier.com/blowfish.html Official Blowfish website]
* {{en}} [httphttps://www.schneier.com/blowfish-products.html ListLaman ofresmi productsalgoritme usingenkripsi Blowfish]
* {{en}} [httphttps://www.usersschneier.zetnet.co.uk/hopwood/crypto/scancom/csblowfish-products.html#Blowfish SCAN'sProduk entryyang formemakai Blowfish]
* {{en}} [http://www.users.zetnet.co.uk/hopwood/crypto/scan/cs.html#Blowfish Standard Cryptographic Algorithm Naming: Blowfish]
 
[[Kategori:Algoritma {{kriptografi]] blok}}
{{Authority control}}
 
[[Kategori:Algoritme kriptografi]]
[[bg:Blowfish]]
[[Kategori:Bahasa pemrograman]]
[[de:Blowfish]]
[[en:Blowfish (cipher)]]
[[es:Blowfish]]
[[fi:Blowfish]]
[[fr:Blowfish]]
[[gl:Blowfish]]
[[it:Blowfish]]
[[ja:Blowfish]]
[[nl:Blowfish-encryptiealgoritme]]
[[pl:Blowfish]]
[[pt:Blowfish]]
[[ru:Blowfish]]
[[simple:Blowfish (cipher)]]
[[sv:Blowfish]]
[[tg:Blowfish]]
[[th:โบลว์ฟิช]]
[[tr:Blowfish]]