it-swarm-id.com

Apa arti ukuran kunci dan ukuran blok dalam kriptografi?

Dapatkah seseorang dengan mudah menjelaskan arti dan perbedaan antara kunci simetris dan ukuran blok.

Mengapa 64 blok ukuran tidak aman lagi dan mereka meningkatkannya menjadi 128 (AES, ..., Serpent)? Dan bagaimana dengan ukuran kunci?

18
rezx

Algoritma kunci simetrik adalah algoritma yang menggunakan kunci yang sama untuk enkripsi dan dekripsi. Contoh algoritma kunci simetris adalah AES, 3DES, Blowfish.

Algoritma kunci asimetrik di sisi lain, menggunakan 2 kunci, satu untuk enkripsi dan satu untuk dekripsi. Algoritma kunci asimetris dirancang sedemikian rupa sehingga tidak mungkin untuk mendapatkan kunci privat dari kunci publik. Algoritma kunci asimetris yang umum adalah RSA.

Ukuran blok istilah mengacu pada cipher blok. Pada dasarnya, ada 2 jenis sandi.

Stream cipher - Algoritma mengenkripsi/mendekripsi pesan 1 bit setiap kali.

Block cipher - Algoritma mengenkripsi/mendekripsi blok pesan demi blok, sebuah blok yang merujuk pada sekelompok bit. Cipher blok umum termasuk AES - yang bekerja pada blok 128 bit, dan Blowfish - yang bekerja pada blok 64 bit.

Semua informasi ini dapat ditemukan di entri Wikipedia masing-masing:

http://en.wikipedia.org/wiki/Symmetric-key_algorithm

http://en.wikipedia.org/wiki/Public-key_cryptography

http://en.wikipedia.org/wiki/Block_cipher

http://en.wikipedia.org/wiki/Stream_cipher

15
user10211

Anda mengajukan 2 pertanyaan yang berbeda tetapi terkait.

Mengapa ukuran blok 64 bit tidak aman lagi dan mengapa mereka menambahnya menjadi 128 bit?

Dalam block cipher , data teks biasa dengan ukuran tetap (ukuran blok) dienkripsi ke dalam ciphertext dengan ukuran yang persis sama. Namun, jumlah total blok ciphertext yang mungkin hanya 2ukuran blok, dan ketika Anda hanya menggunakan akar kuadrat dari jumlah blok itu, Anda memiliki peluang 50% untuk memiliki blok duplikat, yang membocorkan informasi. Akar kuadrat dari 264 adalah 232 dan 232 blok 23 byte = 235 Bytes = 32 GiB. Jadi pada drive 1 TiB dengan enkripsi seluruh disk Anda akan menemukan sekitar 1.000 blok ciphertext duplikat. (Dari rumus di sini : (240/ 23)2/ 264) Agar adil, blok ciphertext duplikat bukan bencana, karena teknik yang digunakan untuk memastikan plaintext yang sama tidak mengenkripsi ke ciphertext yang sama setiap kali, sehingga sebaliknya juga benar: ciphertext duplikat tidak selalu mewakili duplikat plaintext. Poin yang lebih besar adalah daya komputasi dan ruang penyimpanan telah melampaui 64 bit ciphertext block.

Jadi cipher blok saat ini menggunakan blok 128 bit yang membuatnya tidak mungkin untuk melihat duplikat dalam Exbibytes (jutaan Tebibytes) data, yang cukup untuk sementara waktu. Sebagian besar bentuk serangan lainnya dibuat secara signifikan lebih sulit dengan peningkatan ukuran blok ini.

Apa arti ukuran kunci dan mengapa ukuran itu penting?

Ukuran kunci adalah ukuran "rahasia" yang digunakan untuk mengenkripsi data. Dalam sandi yang sempurna, Anda harus menguji setiap kunci yang mungkin untuk menjamin Anda dapat mendekripsi beberapa data yang dienkripsi dan rata-rata Anda harus mencoba setengah dari kunci yang mungkin untuk berhasil. Ketika DES diterbitkan, 56 bit adalah ruang kunci yang cukup besar untuk menjadi "cukup keras" sehingga kekuatan brutal tidak masuk akal dalam komputasi sipil. Kemudian pada tahun 1998, Electronic Frontier Foundation dibangun sebuah mesin untuk secara kasar mendekripsi DES untuk $ 250.000 Sekarang dengan ledakan kekuatan komputasi sipil, terutama pengungkit komputasi paralel yang sangat kuat dalam GPU, bahkan 128 bit hanya dianggap cukup aman untuk tingkat informasi rahasia terendah, RAHASIA.

Juga, tidak ada sandi yang sempurna, dan banyak serangan dapat memulihkan bagian dari kunci, sehingga kunci yang lebih lama memberikan keamanan tambahan bahwa bahkan jika bagian dari kunci tersebut pulih, masih ada ruang kunci besar yang masih harus diserang dengan kasar.

12
Major Major

AES, 3DES, Blowfish ... adalah blok cipher . Block cipher adalah fungsi yang mengambil input data block dari ukuran tertentu (sejumlah bit tetap) dan a key (yang juga merupakan urutan bit, tidak harus berukuran sama dengan blok); dan output adalah blok lain dengan ukuran yang sama dari blok input. Selain itu, untuk kunci tetap, fungsi harus berupa permutasi: dua blok input yang berbeda akan menghasilkan dua blok output yang berbeda.

Misalnya. Triple-DES (juga disebut 3DES) menggunakan blok 64-bit, dan tombol 192-bit (Kebetulan bahwa algoritma Triple-DES benar-benar mengabaikan 24 dari 192 bit kunci, jadi kita sering mengatakan bahwa Triple-DES menggunakan kunci 168-bit, namun implementasi standar-compliant mengharapkan kunci 192-bit, alias 24 byte).

Enkripsi dan dekripsi blok baik-baik saja, tetapi biasanya kami ingin mengenkripsi "pesan", yaitu aliran panjang byte data, dengan panjang yang tidak selalu merupakan kelipatan dari ukuran blok, dan yang bisa sangat tinggi (misalnya Anda dapat mengenkripsi beberapa gigabytes nilai data). Untuk mengubah cipher blok menjadi mesin yang dapat mengenkripsi dan mendekripsi pesan, Anda perlu menggunakan mode operasi . Membuat mode yang baik adalah seni; ada banyak kelemahan halus yang dapat melumpuhkan keamanan jika mode belum dirancang dengan baik. Ukuran blok tampaknya menjadi faktor penting: dalam kebanyakan mode, keamanan menurun, kadang-kadang cukup tajam, ketika panjang pesan input melebihi ambang batas yang tergantung pada ukuran blok; yaitu, jika cipher blok Anda menggunakan n - blok bit dan Anda mengenkripsi lebih dari 2n/2 blok data, maka Anda dalam masalah. Untuk cipher blok yang menggunakan blok 64-bit, ambangnya sekitar 32 gigabytes ( 232 blok 8 byte). Ketika DES dirancang, 32 gigabyte adalah fiksi ilmiah; saat ini, 32 gigabytes adalah $ 20 USB flash drive.

Jadi kami sekarang lebih suka cipher blok dengan blok 128-bit. Itu adalah kriteria desain untuk AES .

Ukuran kunci adalah masalah ortogonal. Kunci untuk cipher blok adalah urutan bit dengan panjang tertentu, yang tergantung pada struktur internal untuk cipher blok. Tidak ada persyaratan untuk panjang kunci untuk mencocokkan ukuran blok dengan cara apa pun; Namun, cryptographers menyukai biner, jadi panjang kunci biasanya adalah kekuatan 2 seperti 128 atau 256, dan demikian juga ukuran blok. AES telah didefinisikan untuk menggunakan kunci 128, 192 atau 256 bit.

Apa yang diperlukan untuk keamanan adalah bahwa ada dua kunci yang memungkinkan bagi penyerang untuk mencoba semuanya (mencoba semua kunci yang mungkin sampai kecocokan ditemukan disebut pencarian lengkap). Setiap bit kunci tambahan menggandakan jumlah ukuran kunci yang mungkin. Kunci 128-bit cukup besar dengan margin yang nyaman; ukuran kunci yang lebih besar ada untuk kepatuhan birokrasi, manajer paranoiac, dan pengembang yang merasa terancam dalam kedewasaan mereka.

3
Thomas Pornin

Mengenai pertanyaan Anda tentang 64 bit sekarang kurang aman dari 128 bit: dengan setiap peningkatan kekuatan pemrosesan dibutuhkan lebih sedikit waktu untuk memecahkannya menggunakan kekuatan kasar. Artikel ini memberikan referensi yang baik untuk waktu yang dibutuhkan untuk memaksa kunci:

http://tjscott.net/crypto/64bitcrack.htm

Artikel ini mengasumsikan 2 prosesor Pentium 3,2 GHz untuk melakukan pekerjaan itu. Kapasitas prosesor meningkat setiap saat dan kami sepertinya tidak terlalu jauh dari 64 inti dan bahkan 256 inti prosesor yang tersedia secara komersial.

2
Todd Dill