Pembangkitan kunci atau pembuatan kunci (bahasa Inggris:key generationcode: en is deprecated ) adalah proses dibuatnya kunci kriptografis. Kunci sejenis ini dipakai untuk mengenkripsi maupun mendekripsi (melepas enkripsi) data.
Peranti atau program yang membuat kunci kriptografis disebut pembangkit kunci [en].
Dalam sistem kriptogtafis
Sistem kriptografis modern mencakup algoritma kunci simetris [en][a] dan algoritma kunci publik[b]. Algoritma kunci simetris memakai kunci tunggal bersama (berbagi), sehingga data dirahasiakan dengan merahasiakan pula kunci tersebut. Algoritma kunci publik memakai kunci publik dan kunci privat. Umumnya kunci publik disediakan menggunakan sertifikat digital. Cara kerja algoritma kunci publik yaitu pengirim mengenkripsi data menggunakan kunci publik milik penerima data, tetapi hanya pemilik kunci privat yang bisa mendekripsi data tersebut.
Algoritma kunci publik cenderung lebih lambat daripada algoritma kunci simetris. Maka dari itu, banyak sistem modern seperti Keamanan Lapisan Transportasi (TLS) dan Protokol SSH menggabungkan kedua algoritma ini. Misal sebagian kecil data dienkripsi menggunakan algoritma kunci publik, tetapi sisanya dienkripsi menggunakan algoritma kunci simetris.
Kunci kriptografis biasanya merupakan bilangan bulat. Selain itu, kadang kalanya kunci dibuat secara acak menggunakan pembangkit bilangan acak (RNG) atau pembangkit bilangan acak semu [en] (PRNG). PRNG adalah algoritma yang menghasilkan data yang tampak acak dari sudut pandang analisis. PRNG yang memakai entropi sistem untuk membenihkan data (benih acak [en]) umumnya mempunyai hasil yang lebih bagus, sebab kondisi awal PRNG tersebut makin sulit ditebak oleh penyerang (seperti peretas). VeraCrypt [en] (sebuah aplikasi pengenkripsi penyimpanan bercakram [en]) memanfaatkan gerakan tetikus yang dilakukan pengguna secara sporadis (sembarangan).[1] Di situasi lain, kunci diperoleh secara menentu menggunakan frasa sandi [en] dan fungsi penurunan kunci [en].
Banyak protokol modern dirancang untuk memakai fitur kerahasiaan ke depan [en], yang memerlukan dibuatnya kunci bersama baru untuk tiap sesi.
Kriptosistem [en] klasik selalu menghasilkan dua kunci identik di salah satu ujung jalur komunikasi, lalu mengirimkan salah satu kunci tersebut ke ujung lainnya dengan cara tertentu. Namun, pengelolaan kunci [en] akan lebih sederhana jika pertukaran kunci Diffie–Hellman digunakan.
Cara paling sederhana untuk membaca data terenkripsi tanpa benar-benar mendekripsikannya adalah serangan brutal, yakni dengan mencoba-coba setiap bilangan, hingga panjang maksimum kunci yang dimaksud. Maka dari itu, penting untuk memakai kunci yang panjang secara memadai; Kunci yang lebih panjang membutuhkan waktu yang jauh lebih lama untuk diserang, sehingga serangan brutal menjadi tak praktis. Saat ini, umumya kunci kriptografis memiliki panjang 128 bit (untuk algoritma kunci simetris) dan 2048 bit (untuk algoritma kunci publik).
Dalam lapisan fisik
Saluran nirkabel
Pada dasarnya, saluran nirkabel dicirikan oleh dua pengguna ujungnya. Dengan mengirimkan sinyal percontohan [en], sepasang pengguna ini dapat memperkirakan saluran di antara mereka dan menggunakan informasi saluran tersebut untuk menghasilkan kunci rahasia mereka.[2] Selain itu, jika beberapa pasangan pengguna ingin membentuk kelompok yang mempunyai kunci rahasia bersama, kunci tersebut dapat dihasilkan menggunakan informasi saluran milik masing-masing pasangan pengguna.[3]
Serat optik
Kunci kriptografis juga bisa dihasilkan dengan memanfaatkan fluktasi (keguncangan) fase pada tautan serat optik.[4]
↑Chan Dai Truyen Thai; Jemin Lee; Tony Q. S. Quek (Februari 2016). "Physical-Layer Secret Key Generation with Colluding Untrusted Relays". IEEE Transactions on Wireless Communications (dalam bahasa Inggris). 15 (2): 1517–1530. doi:10.1109/TWC.2015.2491935. S2CID 27603548.
↑Chan Dai Truyen Thai; Jemin Lee; Tony Q. S. Quek (Desember 2015). "Secret Group Key Generation in Physical Layer for Mesh Topology" [Pembangkitan Kunci Rahasia Kelompok pada Lapisan Fisik untuk Topologi Jala]. 2015 IEEE Global Communications Conference (GLOBECOM) (dalam bahasa Inggris). San Diego. hlm. 1–6. doi:10.1109/GLOCOM.2015.7417477.