Dengan bilangan bulat positif , mengeluarkan pasangan kunci RSA (baik kunci privat dan publik) yang panjang kuncinya adalah bit.
Algoritma pembuatan kunci RSA adalah sebagai berikut:
- Pilih semiprime bit . Biarkan faktor utama menjadi dan .
- Hitung .
- Pilih bilangan bulat sehingga dan .
- Hitung .
Kunci publik terdiri dari dan . Kunci pribadi adalah .
Aturan
- Anda mungkin berasumsi bahwa ada setidaknya satu semiprime dengan panjang bit .
- Output mungkin dalam format yang konsisten dan tidak ambigu.
- dan harus dipilih dari distribusi seragam diskrit.
- Anda dapat mengasumsikan bahwa kurang dari atau sama dengan jumlah bit maksimum untuk bilangan bulat yang dapat diwakili dalam bahasa Anda, jika bahasa Anda memiliki batasan seperti itu.
Jawaban:
JavaScript (ES7), 190 byte
Pengembalian
[n,e,d]
.Cobalah online!
Karena ukuran tumpukan panggilan yang terbatas, ini mungkin gagal untuk .N>13
Berkomentar
sumber
Jelly ,
30292726 byteCobalah online!
Penjelasan
sumber
Aksioma, 230 byte
b dalam b (x) akan menemukan bit len dari x; randnum (x) dengan x satu bilangan bulat positif akan menjadi satu fungsi yang mengembalikan satu nomor pseudorandom dalam kisaran 0 .. (x-1); P dalam P (n) akan menemukan satu prime pseudorandom di kisaran 2 ^ (n-1) .. (2 ^ n-1) [panjang rentang itu 2 ^ n-1-2 ^ (n-1) = 2 ^ (n-1) -1]; R dalam R (n) akan menemukan [n, e, d] seperti yang dikatakan latihan.
sumber