Computer >> Máy Tính >  >> Lập trình >> Lập trình

Các bước tạo khóa bằng thuật toán RSA là gì?

RSA là một hệ thống mật mã dành cho mã hóa khóa công khai và được sử dụng rộng rãi để bảo mật thông tin đáp ứng, đặc biệt khi được gửi qua một mạng không an toàn bao gồm cả Internet.

Trong mật mã RSA, cả khóa công khai và khóa riêng đều có thể mã hóa một tin nhắn; khóa nghịch đảo từ khóa được sử dụng để mã hóa một tin nhắn được sử dụng để giải mã nó. Thuộc tính này là một lý do tại sao RSA đã phát triển thành thuật toán bất đối xứng được sử dụng rộng rãi nhất. Nó hỗ trợ cách tiếp cận đảm bảo tính bí mật, tính toàn vẹn, tính xác thực và tính không uy tín của kết nối kỹ thuật số và lưu trữ dữ liệu.

RSA cần một nhóm nhân G = фn , *, X> để tạo khóa. Nhóm này chỉ cung cấp phép nhân và phép chia, được yêu cầu để tạo khóa công khai và khóa riêng. Nhóm này được giữ bí mật với mọi người vì mô đun của nó, ф (n) bị ẩn với mọi người.

Thuật toán tạo khóa công khai và riêng tư là yếu tố khó nhất của mật mã RSA. Có hai số nguyên tố lớn, p và q, được tạo ra bằng cách sử dụng thuật toán kiểm tra chủ yếu Rabin-Miller.

Mô đun n được tính bằng cách nhân p và q. Số này có thể được sử dụng bởi cả khóa công khai và khóa riêng tư và hỗ trợ kết nối giữa chúng. Độ dài của nó, thường được xác định bằng bit, được gọi là độ dài khóa.

Khóa công khai bao gồm modulus n và số mũ công khai, e, thường được đặt ở 65537, vì nó là một số nguyên tố không quá lớn. Số e không nhất thiết phải là số nguyên tố được chọn riêng vì khóa công khai được chia sẻ với mọi người.

Khóa riêng tư bao gồm môđun n và số mũ riêng d, được tính toán bằng cách sử dụng thuật toán Euclid mở rộng để khám phá phép nhân nghịch đảo liên quan đến tâm của n.

Xét môđun số học n, giả sử e là số nguyên đồng nguyên tố với tổ chức φ (n) của n. Hơn nữa, có thể nói rằng d là nghịch đảo nhân của e modulo φ (n). Các định nghĩa này của một số ký hiệu được liệt kê dưới đây để thuận tiện:

n =một mô-đun cho số học mô-đun

φ (n) =ý tưởng của n

e =một số nguyên liên kết nguyên tố với φ (n)

[Anh ấy đảm bảo rằng e sẽ sở hữu một modulo nghịch đảo nhân φ (n)]

d =một số nguyên là nghịch đảo nhân của e modulo φ (n)

Các bước tính toán để tạo khóa là

  • Tạo hai số nguyên tố khác nhau bao gồm p và q.

  • Tính toán môđun n =p × q

  • Tính dung dịch φ (n) =(p - 1) × (q - 1)

  • Chọn số mũ công khai một số nguyên e sao cho 1

  • Tính số mũ riêng một giá trị cho d sao cho d =e − 1 mod φ (n)

  • Khóa công khai =[e, n]

  • Khóa cá nhân =[d, n]