Thuật toán RSA là gì? Tìm hiểu Rivest–Shamir–Adleman Algorithm

Thuật toán RSA là gì? Tìm hiểu Rivest–Shamir–Adleman Algorithm

Năm 1977, ba nhà khoa học trẻ Ron Rivest, Adi ShamirLeonard Adleman của Viện Công nghệ Massachusetts (MIT) đã lấy khái niệm về mật mã khóa công khai (public-key cryptography) và phát triển một thuật toán được gọi là thuật toán RSA (RSA algorithm). Sử dụng các chữ cái đầu tiên trong tên của họ, tạo thành RSA.

Thuật toán này sử dụng mật mã khóa công khai (còn gọi là mã hóa không đối xứng – asymmetric encryption), vì vậy nó sử dụng hai khóa khác nhau để mã hóa (encrypt) và giải mã (decrypt) dữ liệu. Trong RSA, một cặp khóa được tạo ra trong đó một khóa tiết lộ với thế giới bên ngoài, được gọi là khóa công khai (public key) và khóa còn lại giữ bí mật cho người dùng, được gọi là khóa riêng tư (private key).

Họ đã phát triển thuật toán này để giải quyết hai vấn đề chính: tạo thông tin liên lạc an toàn mà không cần phải tin tưởng một điều phối viên phân phối khóa riêng biệt với khóa của bạn và để xác minh một thư đến từ người gửi đã xác nhận quyền sở hữu.

Khái niệm cơ bản về thuật toán RSA

Trong mật mã khóa không đối xứng, nó tạo ra một cặp khóa. Khóa công khai sẽ được công bố, mặt khác, khóa cá nhân vẫn giữ bí mật. Hai phím này được liên kết số với nhau. Vì nó tạo các khóa này bằng hàm một chiều, nên không thể tạo khóa riêng sau khi biết khóa công khai và ngược lại. Một thông điệp được mã hóa thông qua một khóa là không thực tế để giải mã bằng một khóa tương tự. Do đó, tính bí mật của một tin nhắn vẫn được bảo mật.

  Coinbase, Binance sẽ không cấm người Nga sử dụng các nền tảng tiền điện tử

Giả sử rằng Alice và Bob cần phải chuyển các thông điệp bí mật giữa họ bằng cách sử dụng thuật toán RSA. Đầu tiên, họ tạo bộ khóa thích hợp của mình và xuất bản khóa công khai để cơ quan khác có thể truy cập vào nó.

Các ký hiệu của khóa công khai và khóa riêng tư của chúng như sau:

  • Public-A và Private-A cho Alice
  • Public-B và Private-B cho Bob

Khi Alice gửi một tin nhắn cho Bob, cô ấy mã hóa tin nhắn (M: message) bằng Public-B và tạo ra một bản mã (C: ciphertext) bằng công thức:

  • C = Public-B(M)

Sau khi nhận được Cipher-B, Bob có thể giải mã tin nhắn bằng cách sử dụng khóa riêng của mình, Private-B. Điều này có thể được thể hiện một cách chính thức là:

  • M = Private-B(C)

Mỗi bên giữ bí mật khóa riêng tư của mình với nhau. Do đó, một thông báo được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa riêng có liên quan của nó.

Theo: golangprograms

Khuyến cáo: Thông tin trên bài viết này chỉ mang tính tham khảo, không có bất kỳ lời khuyên nào về mua bán, đầu tư. Bạn hãy tự nghiên cứu trước khi thực hiện bất kỳ hình thức đầu tư nào.

Nội dung đề xuất