2013-03-16 51 views
5

Tôi hiện đang gặp khó khăn với RSA encryption algorythm.Tạo khóa thuật toán RSA

Vấn đề của tôi nằm ở thế hệ then chốt public/private, sau đây là các bước của tôi:

1. -Generate 2 prime numbers p, q with p > q and nbBits(p) == nbBits(q) 
      using the miller-rabin algorythm this was done succesfully 
2. -compute n = p*q 
3. -compute fi(n) = (p-1)*(q-1) 

Ở đây có những rắc rối: tôi cần phải tìm một số nguyên e với q < e < fi(n). Số nguyên này cần phải có một số loại nguyên thủy.

Câu hỏi của tôi là: không phải là số nguyên (không thể chia cho bất kỳ số nào khác với chính nó hoặc 1) HOẶC nguyên thủy VỚI fi(n) (gcd(e, fi(n)) = 1) HOẶC cả hai?

tôi thực sự có một số vấn đề tìm ra rằng (nguồn của tôi nêu rõ Euclide algorythm (UCLN) là cần thiết, nhưng vì tiếng Anh không phải là ngôn ngữ mẹ đẻ của tôi tôi có một số rắc rối với tiếng Anh toán học)

Có lẽ một câm câu hỏi, nhưng tôi không thể tìm thấy một lời giải thích rõ ràng về nó (ít nhất là đủ rõ ràng cho tôi).

Cảm ơn bạn đã đọc, thậm chí nhiều hơn để trả lời.

Trả lời

3

Số mũ mã hóa e cần phải trùng với phi(n), tức là, gcd(e,phi(n)) = 1. Điều kiện này là cần thiết vì nếu không, bạn sẽ không thể xây dựng (thông qua thuật toán mở rộng của Euclid) một số mũ d (số mũ giải mã) sao cho e*d = 1 mod phi(n).

+1

Cảm ơn rất nhiều! Điều này thực sự hữu ích – user2177591

Các vấn đề liên quan