Saya ingin mengenkripsi file biner. Tujuan saya adalah untuk mencegah siapa pun membaca file yang tidak memiliki kata sandi.
Solusi mana yang lebih baik, AES atau Blowfish dengan panjang kunci yang sama? Kita dapat berasumsi bahwa penyerang memiliki sumber daya yang besar (perangkat lunak, pengetahuan, uang) untuk memecahkan file.
security
encryption
aes
blowfish
mimrock
sumber
sumber
Jawaban:
Mungkin AES. Blowfish adalah pendahulu langsung Twofish. Twofish adalah masuknya Bruce Schneier ke dalam kompetisi yang menghasilkan AES. Itu dinilai lebih rendah dari entri bernama Rijndael, yang kemudian menjadi AES.
Selain menarik: pada satu titik dalam kompetisi, semua peserta diminta untuk memberikan pendapat mereka tentang peringkat cipher. Mungkin tidak mengherankan jika setiap tim memilih entri masing-masing sebagai yang terbaik - tetapi setiap tim lain memilih Rijndael sebagai yang terbaik kedua.
Meskipun demikian, ada beberapa perbedaan mendasar dalam tujuan dasar Blowfish vs. AES yang (bisa dibilang) mendukung Blowfish dalam hal keamanan absolut. Secara khusus, Blowfish mencoba untuk membuat serangan brute force (key-exhaustion) menjadi sulit dengan membuat pengaturan kunci awal menjadi operasi yang cukup lambat. Untuk pengguna biasa, ini adalah konsekuensi kecil (masih kurang dari satu milidetik) tetapi jika Anda mencoba jutaan kunci per detik untuk memecahkannya, perbedaannya cukup besar.
Pada akhirnya, saya tidak melihat itu sebagai keuntungan besar. Saya biasanya merekomendasikan AES. Pilihan saya berikutnya mungkin adalah Serpent, MARS dan Twofish dalam urutan itu. Blowfish akan datang ke suatu tempat setelah itu (meskipun ada beberapa yang lain yang mungkin saya rekomendasikan sebelum Blowfish).
sumber
Blowfish
adalah yang tercepatIni adalah fakta yang tidak sering diakui bahwa ukuran blok dari sebuah cipher blok juga merupakan pertimbangan keamanan yang penting (meskipun tidak sepenting ukuran kunci).
Blowfish (dan sebagian besar cipher blok lain dari era yang sama, seperti 3DES dan IDEA) memiliki ukuran blok 64 bit, yang dianggap tidak cukup untuk ukuran file besar yang umum saat ini (semakin besar file, dan semakin kecil ukuran blok , semakin tinggi kemungkinan blok berulang dalam ciphertext - dan blok berulang seperti itu sangat berguna dalam kriptanalisis).
AES, di sisi lain, memiliki ukuran blok 128 bit. Pertimbangan ini sendiri adalah pembenaran untuk menggunakan AES daripada Blowfish.
sumber
Dalam hal algoritme itu sendiri, saya akan menggunakan AES, karena alasan sederhananya adalah bahwa algoritme tersebut telah diterima oleh NIST dan akan ditinjau sejawat dan kriptanalisis selama bertahun-tahun. Namun saya akan menyarankan bahwa dalam aplikasi praktis, kecuali Anda menyimpan beberapa file yang ingin dirahasiakan oleh pemerintah (dalam hal ini NSA mungkin akan memberi Anda algoritme yang lebih baik daripada AES dan Blowfish), menggunakan salah satu dari algoritme ini menang tidak membuat terlalu banyak perbedaan. Semua keamanan harus ada di kunci, dan kedua algoritme ini tahan terhadap serangan brute force. Blowfish hanya terbukti lemah pada implementasi yang tidak memanfaatkan 16 putaran penuh. Dan meskipun AES lebih baru, fakta itu seharusnya membuat Anda lebih condong ke BlowFish (jika Anda hanya mempertimbangkan usia). Pikirkan seperti ini,
Inilah yang akan saya ajukan kepada Anda ... daripada melihat kedua algoritme ini dan mencoba memilih di antara algoritme tersebut, mengapa Anda tidak melihat skema pembuatan kunci Anda. Penyerang potensial yang ingin mendekripsi file Anda tidak akan duduk di sana dan menghasilkan sekumpulan kunci teoretis yang dapat digunakan dan kemudian melakukan serangan brute force yang dapat memakan waktu berbulan-bulan. Sebaliknya dia akan mengeksploitasi sesuatu yang lain, seperti menyerang perangkat keras server Anda, merekayasa balik perakitan Anda untuk melihat kunci, mencoba menemukan beberapa file konfigurasi yang memiliki kunci di dalamnya, atau mungkin memeras teman Anda untuk menyalin file dari komputer Anda . Itu akan menjadi tempat di mana Anda paling rentan, bukan algoritme.
sumber
AES.
(Saya juga berasumsi bahwa maksud Anda adalah dua ikan bukan blowfish yang jauh lebih tua dan lebih lemah)
Keduanya (AES & twofish) adalah algoritme yang bagus. Namun bahkan jika mereka sama atau dua ikan sedikit lebih unggul dalam hal teknis, saya MASIH memilih AES.
Mengapa? Publisitas. AES adalah standar untuk enkripsi pemerintah dan dengan demikian jutaan entitas lain juga menggunakannya. Seorang cryptanalyst berbakat hanya mendapatkan lebih banyak "keuntungan untuk uang" menemukan kekurangan di AES kemudian melakukannya untuk twofish yang kurang tahu dan digunakan.
Ketidakjelasan tidak memberikan perlindungan dalam enkripsi. Semakin banyak tubuh yang melihat, mempelajari, menyelidiki, menyerang algoritme selalu lebih baik. Anda menginginkan algoritme yang paling "diperiksa" dan saat ini adalah AES. Jika suatu algoritme tidak tunduk pada pengawasan yang intens dan terus-menerus, Anda harus menurunkan keyakinan akan kekuatannya. Yakin twofish belum dikompromikan. Apakah itu karena kekuatan sandi atau hanya karena tidak cukup banyak orang yang memeriksanya ..... BELUM
sumber
Pilihan algoritma mungkin tidak terlalu penting. Saya akan menggunakan AES karena telah diteliti dengan lebih baik. Yang lebih penting adalah memilih mode operasi yang tepat dan fungsi derivasi kunci .
Anda mungkin ingin melihat spesifikasi format TrueCrypt sebagai inspirasi jika Anda menginginkan akses acak yang cepat. Jika Anda tidak memerlukan akses acak daripada XTS bukanlah mode optimal, karena memiliki kelemahan mode lain tidak. Dan Anda mungkin ingin menambahkan semacam pemeriksaan integritas (atau kode otentikasi pesan) juga.
sumber
Saya tahu jawaban ini melanggar persyaratan pertanyaan Anda, tetapi saya pikir jawaban yang benar untuk maksud Anda hanyalah ini: gunakan algoritma mana pun yang memungkinkan Anda memiliki panjang kunci terpanjang, kemudian pastikan Anda memilih kunci yang benar-benar bagus. Perbedaan kecil dalam performa algoritme yang paling terkenal (secara kriptografis dan kronologis) dibanjiri oleh beberapa bit kunci tambahan.
sumber
Kedua algoritma (AES dan twofish) dianggap sangat aman. Ini telah dibahas secara luas dalam jawaban lain.
Namun, karena AES banyak digunakan sekarang di tahun 2016, AES secara khusus telah diakselerasi dengan perangkat keras di beberapa platform seperti ARM dan x86. Meskipun tidak jauh lebih cepat dari twofish sebelum akselerasi perangkat keras, AES sekarang jauh lebih cepat berkat instruksi CPU khusus.
sumber