Minh hoạt thuật toán mã hóa RSA
Nhóm 12
Nội dung trình bày
Trình bày lại định lý Euler và định lý Fermat nhỏ
Trình bày lại thuật toán mã hóa RSA
Xây dựng website minh hoạ lại quá trình mã hóa của thuật toán RSA.
"Nếu là số nguyên tố và là một số nguyên không chia hết cho thì sẽ chia hết cho ".
– Pierre de Fermat
Bức thư gửi ngày 18 tháng 10 năm 1640
– Leonhard Euler
" Với là số nguyên dương bất kỳ và là số nguyên tố cùng nhau với thì
"
Rivest Shamir Adleman
1977
Ron Rivest
Adi Shamir
Adi Shamir
Yêu cầu:
function findCoprime(p, oldPrime) {
return new Promise((resolve, reject) => {
if (oldPrime > p - 2n) {
oldPrime = 1n;
}
for (let i = oldPrime + 1n; i < p; i++) {
if (gcd(i, p) == 1n) {
resolve(i);
break;
}
}
resolve(0);
})
}
// modulo x^E in Z_n
int64_t encode(int64_t x, int64_t E, int64_t n)
{
int64_t encode = 1;
for (int64_t i = 0; i < E; i++)
{
encode = (encode * x) % n;
}
return encode;
}
function modulo(x, E, p) {
return new Promise((resolve, reject) => {
let module = 1n;
for (let i = 0n; i < E; i++) {
module = (module * x) % p;
}
resolve(module);
});
}
Website Demo RSA
Online Slides
RSA source code C++/Python