RSA là gì? Cách thức hoạt động của mã hóa RSA

Mã hóa RSA là một mạng lưới hệ thống xử lý những gì đã từng là một trong những yếu tố lớn nhất trong bảo mật thông tin : Làm thế nào hoàn toàn có thể gửi cho ai đó một tin nhắn được mã hóa mà không có thời cơ san sẻ mã trước đó ? Bài viết này sẽ hướng dẫn cho bạn biết mã hóa RSA là gì, cách nó được tăng trưởng và hoạt động giải trí cũng như một số ít yếu tố bảo mật thông tin mà nó phải đương đầu .

RSA là gì?

Giả sử bạn muốn nói với bạn mình một bí hiểm. Nếu bạn ở ngay bên cạnh họ, bạn chỉ cần rỉ tai điều gì đó. Nếu bạn ở hai phí đối nhau của quốc gia, điều đó sẽ không bảo đảm an toàn. Bạn hoàn toàn có thể viết nó ra và gửi cho họ qua đường bưu điện hoặc sử dụng điện thoại thông minh. Nhưng cách này sẽ không bảo đảm an toàn và bất kể ai có động cơ đủ mạnh đều hoàn toàn có thể chặn được tin nhắn .Nếu bí hiểm đó đủ quan trọng, bạn không nên mạo hiểm viết nó ra. Gián điệp hoặc một nhân viên cấp dưới bưu điện lừa đảo hoàn toàn có thể xem nó qua thư của bạn. Tương tự như vậy, ai đó hoàn toàn có thể nghe trộm điện thoại thông minh của bạn mà bạn không biết và họ sẽ ghi lại mọi cuộc gọi mà bạn thực thi .

Một giải pháp để ngăn chặn kẻ nghe trộm và truy cập nội dung tin nhắn là mã hóa nó. Về cơ bản, điều này có nghĩa là thêm một mã vào tin nhắn, nó sẽ làm cho tin nhắn thành một mớ hỗn độn. Nếu mã của bạn đủ phức tạp, thì những người duy nhất có thể truy cập vào thư gốc là những người có quyền truy cập vào mã.

Nếu bạn có thời cơ san sẻ mã với bạn mình trước đó, thì một trong hai người hoàn toàn có thể gửi tin nhắn được mã hóa bất kể khi nào. Nhưng nếu bạn không có thời cơ san sẻ mã đó thì sao ?Đây là một trong những yếu tố cơ bản của mật mã, đã được xử lý bằng những sơ đồ mã hóa public-key ( còn được gọi là mã hóa bất đối xứng ) như RSA .Theo mã hóa RSA, những tin nhắn được mã hóa bằng một mã gọi là public key, mã này hoàn toàn có thể được san sẻ công khai minh bạch. Do một số ít đặc trưng giám sát khoa học độc lạ của thuật toán RSA, một khi một thông điệp đã được mã hóa bằng public key, nó chỉ hoàn toàn có thể được giải thuật bằng một key được gọi là private key. Mỗi người dùng RSA có cặp key gồm có public key và private key của riêng họ. Private key cần được giữ bí hiểm .Các lược đồ public key khác với key symmetric, trong khi đó cả quy trình mã hóa và giải thuật đều phải sử dụng private key. Những độc lạ này làm cho mã hóa public key như RSA hữu dụng để tiếp xúc trong những trường hợp mà trước đó không có thời cơ để phân phối key một cách bảo đảm an toàn .Các thuật toán key đối xứng có những ứng dụng riêng của chúng. Chẳng hạn như mã hóa dữ liệu cho mục tiêu sử dụng những nhân hoặc khi có những kênh bảo mật thông tin mà private hoàn toàn có thể được san sẻ .

Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai minh bạch. Đây là thuật toán tiên phong tương thích với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. Nó lưu lại một sự văn minh vượt bậc của nghành nghề dịch vụ mật mã học trong việc sử dụng khóa công cộng. RSA đang được sử dụng thông dụng trong thương mại điện tử và được cho là bảo vệ bảo đảm an toàn với điều kiện kèm theo độ dài khóa đủ lớn. – Wikipedia

Mã hóa RSA được sử dụng ở đâu?

Mã hóa RSA thường được sử dụng tích hợp với những sơ đồ mã hóa khác. Và cho những chữ ký kỹ thuật số hoàn toàn có thể chứng tỏ tính xác nhận và tính toàn vẹn của một thông điệp. Nó thường không được sử dụng để mã hóa hàng loạt thư và file vì nó kém hiệu suất cao và tốn tài nguyên hơn so với mã hóa key đối xứng .Để làm cho mọi thứ hiệu suất cao hơn, một file thường sẽ được mã hóa bằng thuật toán key đối xứng. Sau đó key đối xứng sẽ được mã hóa bằng mã hóa RSA. Theo quá trình này, chỉ người có quyền được truy vấn vào RSA private key mới hoàn toàn có thể giải thuật key đối xứng .Nếu không hề truy vấn key đối xứng, thì không hề giải thuật file gốc. Phương pháp này hoàn toàn có thể được sử dụng để bảo mật thông tin những thư và file mà không mất nhiều thời hạn và tài nguyên .Mã hóa RSA hoàn toàn có thể được sử dụng trong một số ít mạng lưới hệ thống khác nhau. Nó hoàn toàn có thể quản lý và vận hành trong OpenSSL, wolfCrypt, cryptlib và một số ít thư viện mật mã khác .Theo truyền thống lịch sử, nó được sử dụng trong TLS và cũng là thuận toán khởi đầu được sử dụng trong mã hóa PGP. RSA vẫn được nhìn thấy trong một loạt những trình duyệt web, email, VPN, chat và những kênh tiếp xúc khác .RSA cũng thường được sử dụng để tạo liên kết bảo đảm an toàn giữa VPN client và VPN server. Theo những giao thức như OpenVPN, TLS hoàn toàn có thể sử dụng thuật toán RSA để trao đổi key và thiết lập một kênh bảo đảm an toàn .VPS NVMe Single Post Chương trình ra đời dịch vụ VPS NVME vận tốc cao

Mã hóa RSA hoạt động như thế nào?

Phần sau sẽ đơn thuần hơn một chút ít. Bởi vì quá nhiều fan hâm mộ hoàn toàn có thể bị giáo viên cấp ba làm cho họ sợ hãi về việc mã hóa. Chúng ta sẽ đơn giản hóa 1 số ít khái niệm và sử dụng những số đơn thuần hơn nhiều. Trong trong thực tiễn, mã hóa RSA sử dụng những số nguyên tố có độ lớn lớn hơn nhiều và sẽ có một vài trường hợp số phức tạp .Có 1 số ít khái niệm khác nhau mà bạn cần tìm hiểu và khám phá trước khi chúng tôi lý giải về chúng. Chúng gồm có hàm trapdoor, tạo số nguyên tố, hàm phi Carmichael. Và những quy trình tiến độ riêng không liên quan gì đến nhau tương quan đến việc thống kê giám sát những public key và private key được sử dụng trong quy trình mã hóa và giải thuật .

Hàm trapdoor

Mã hóa RSA hoạt động giải trí dựa trên tiền đề rằng thuật toán thuận tiện thống kê giám sát theo một hướng. Nhưng hầu hết không hề triển khai ngược lại. Ví dụ nếu bạn được cho biết rằng 701,111 là tích của hai số nguyên tố, vậy bạn hoàn toàn có thể tìm ra hai số đó là bao nhiêu không ?Ngay cả với máy tính hay PC thì hầu hết tất cả chúng ta cũng sẽ không biết mở màn từ đâu chứ đừng nói đến việc tìm ra câu vấn đáp. Nhưng nếu lật lại mọi thứ thì nó sẽ thuận tiện hơn rất nhiều. Kết quả của :907 x 773Nếu bạn dùng máy tính để tính phép toán này thì bạn sẽ phát hiện câu vấn đáp là 701,111 và nó đã được đề cập trước đó. 907 và 773 này là hai số nguyên tố cần vấn đáp cho câu hỏi tiên phong của chúng tôi. Điều này cho tất cả chúng ta thấy rằng 1 số ít phương trình hoàn toàn có thể thuận tiện giải ra một cách thuận tiện, nhưng ngược lại có vẻ như không hề .Một góc nhìn mê hoặc khác của phương trình này là việc tìm ra một trong những số nguyên tốt rất đơn thuần nếu bạn đã có số còn lại. Nếu bạn cho biết rằng 701,111 là hiệu quả của 907 nhân với một số nguyên tố khác, bạn sẽ tìm ra được số nguyên tố đó với phương trình sau :701,111 ÷ 907 = 773Bởi vì điều này, RSA sử dụng số lượng lớn hơn nhiều. Kích thước của những số nguyên tố trong quy trình quản lý và vận hành RSA là như nhau. Nhưng trong RSA 2048 – bit, chúng sẽ tích hợp với nhau để tạo ra những key dài 617 chữ số. Để tưởng tượng nó, một key sẽ là 1 số ít có size như sau :

99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

Tạo số nguyên tố

Các công dụng của hàm trapdoor đã được đề cập ở trên tạo cơ sở cho phương pháp hoạt động giải trí của những lược đồ mã hóa public key và private key. Các thuộc tính của chúng cho phép san sẻ public key mà không gây nguy khốn cho tin nhắn hoặc bật mý private key. Chúng cũng được cho phép tài liệu được mã hóa bằng một key theo cách mà chỉ hoàn toàn có thể giải thuật bằng key khác .Các số nguyên tố trong RSA cần phải rất lớn và cũng tương đối xa nhau. Các số nhỏ hoặc gần nhau sẽ dễ bị bẻ khóa hơn nhiều. Mặc dù vậy, ví dụ của chúng tôi sẽ sử dụng những số nhỏ hơn để làm cho mọi thứ dễ theo dõi và thống kê giám sát hơn .Giả sử kiểm tra tính nguyên tố cho những số nguyên tố mà tất cả chúng ta đã sử dụng ở trên, 907 và 773. Bước tiếp theo là tò mò module ( n ), sử dụng công thức sau :n = p x qWhere p = 907 and q = 773Therefore :n = 907 x 773n = 701,111

Hàm phi Carmichael

Một khi đã có n, tất cả chúng ta sẽ sử dụng hàm phi Carmichael :λ ( n ) = lcm ( p − 1, q − 1 )Phần này sẽ hoàn toàn có thể hơi phức tạp. Bạn hoàn toàn có thể bỏ lỡ và chỉ cần tin cậy rằng phép toán hoạt động giải trí. Nếu không, hãy theo chúng tôi để thực thi một vài phép tính khác. Mọi thứ sẽ được lý giải càng chi tiết cụ thể càng tốt để giúp bạn chớp lấy những kiến thức và kỹ năng cơ bản .Đối với những người không biết, λ ( n ) là ký hiệu của hàm phi Carmichael, còn lcm là lowest common multiple ( bội số chung nhỏ nhất ) – nghĩa là số thấp nhất mà cả p và q hoàn toàn có thể chia được. Có 1 số ít cách khác nhau để tìm ra điều này, nhưng cách dễ nhất là tin yêu một máy tính online để làm phương trình cho bạn. Vì vậy, hãy đặt những số lượng của tất cả chúng ta vào phương trình :λ ( 701,111 ) = lcm ( 907 − 1, 773 − 1 )

  λ(701,111) = lcm (906, 772)

Sử dụng máy tính tất cả chúng ta sẽ được :rsa-la-giλ ( 701,111 ) = 349,716

Tạo public key

Bây giờ tất cả chúng ta đã có tài liệu về những số nguyên tố của hàm phi Carmichael. Đã đến lúc tìm ra public key. Theo RSA, public key được tạo thành từ số nguyên tố e, cũng như module n ( chúng tôi sẽ lý giải module là gì trong một vài đoạn văn ). Số e hoàn toàn có thể là bất kể giá trị nào từ 1 đến giá trị của λ ( n ), trong ví dụ của tất cả chúng ta là 349,716 .Vì public key được san sẻ một cách công khai minh bạch, nên sẽ không quá quan trọng nếu e là 1 số ít ngẫu nhiên. Trong trong thực tiễn, e thường được đặt ở 65,537. Bởi vì khi những số lớn hơn nhiều được chọn ngẫu nhiên, nó làm cho việc mã hóa kém hơn nhiều. Đối với ví dụ này, chúng tôi sẽ giữ những số lượng nhỏ để triển khai những phép tính hiệu suất cao. Nếu :e = 11Dữ liệu được mã hóa ở đầu cuối của chúng tôi được gọi là ciphertext ( c ). Chúng tôi lấy nó từ plaintext message ( m ). Bằng cách vận dụng public key với công thức sau :c = me mod nNhư đã đề cập, e mod n là public key. Chúng ta đã đặt giá trị cho e và cũng đã biết n. Điều duy nhất tất cả chúng ta cần lý giải là mod. Về cơ bản nó là phần dư khi lấy hai số chia cho nhau. Ví dụ :10 mod 3 = 1Điều này là do 10 chia 3 bằng 3 lần 3, dư 1 .Quay lại phương trình của tất cả chúng ta. Để đơn giản hóa mọi thứ, giả sử message ( m ) mà chúng tôi muốn mã hóa và giữ bí hiểm chỉ là 1 số ít duy nhất, 4 .c = me mod nc = 411 mod 701,111c = 4,194,304 mod 701,111Một lần nữa, để làm cho module hoạt động giải trí thuận tiện, tất cả chúng ta sẽ sử dụng máy tính online. Bằng cách nhập 4,194,304 vào máy tính, nó sẽ cho tất cả chúng ta :rsa-la-gic = 688,749Do đó, khi tất cả chúng ta sử dụng RSA để mã hóa thông điệp của mình, 4. Bằng public key, nó sẽ phân phối cho tất cả chúng ta bản mã là 688,749. Các bước trước đó hoàn toàn có thể hơi nặng về toán học .Chúng ta đã có một thông điệp là 4, tất cả chúng ta muốn giữ bí hiểm. Chúng ta đã vận dụng public key cho nó, mang lại một hiệu quả mã hóa là 688,749. Bây giờ nó đã được mã hóa, hoàn toàn có thể gửi bảo đảm an toàn số 688,749 cho chủ sở hữu cặp key. Họ là người duy nhất hoàn toàn có thể giải thuật bằng private riêng của họ. Khi họ giải thuật nó, họ sẽ thấy thông tin mà chúng tôi gửi, 4 .

Tạo private key

Trong mã hóa RSA, một khi tài liệu hoặc tin nhắn đã được chuyển thành bản mã với public key. Nó chỉ hoàn toàn có thể được giải thuật bằng private key từ cùng một cặp key. Private key gồm có d và n. Chúng ta đã biết n, và phương trình sau được sử dụng để tìm d :d = 1 / e mod λ ( n )Trong phần tạo public key, tất cả chúng ta đã chọn e = 11. Tương tự, tất cả chúng ta biết rằng λ ( n ) bằng 349,716 từ phép tính trên. Mọi thứ trở nên phức tạp hơn một chút ít khi xem phần này của công thức :1 / e modPhương trình này hoàn toàn có thể giống như nhu yếu bạn chia 1 cho 11, nhưng không phải vậy. Thay vào đó, điều này chỉ tượng trưng rằng tất cả chúng ta cần thống kê giám sát nghịch đảo module của e ( trong trường hợp này là 11 ) và λ ( n ) ( trong trường hợp này là 349,716 ) .Về cơ bản, điều này có nghĩa là thay vì triển khai một phép toán modulo tiêu chuẩn, tất cả chúng ta sẽ sử dụng phép nghịch đảo. Điều này thường được tìm thấy với Thuật toán Euclid lan rộng ra, nhưng nó nằm ngoài khoanh vùng phạm vi của bài viết này. Vì vậy tất cả chúng ta sẽ sử dụng máy tính online để thay thế sửa chữa. Bây giờ tất cả chúng ta sẽ tích hợp thông tin đã có vào công thức :d = 1/11 mod 349,716Để thực thi thao tác này, chỉ cần nhập 11 ( hoặc bất kể giá trị nào bạn gán cho e ) trong đó số nguyên là 349,716 ( hoặc bất kể giá trị nào mà bạn đã tính ra cho λ ( n ) ). Nếu làm đúng, bạn sẽ nhận được hiệu quả :d = 254, 339Bây giờ tất cả chúng ta có giá trị cho d, tất cả chúng ta hoàn toàn có thể giải thuật những tin nhắn đã được mã hóa bằng public key bằng công thức sau :m = cd mod nBây giờ hãy quay lại phần ciphertext ( c ) mà đã được mã hóa trong phần private key. Khi mã hóa thư bằng public key, nó cho giá trị c là 688,749. Như bên trên, tất cả chúng ta đã biết rằng d = 254,339. Và tất cả chúng ta cũng đã biết n = 701,111. Điều này mang lại :m = 688,749254,339 mod 701,111 .Như bạn hoàn toàn có thể nhận thấy, nỗ lực lấy một số ít đến lũy thừa thứ 254,339 hoàn toàn có thể hơi nhiều so với máy tính thường. Thay vào đó, tất cả chúng ta sẽ sử dụng máy tính giải thuật RSA online .rsa-la-giKhi bạn đã nhập tài liệu, hãy nhấn Decrypt, thao tác này sẽ đưa những số trải qua công thức giải thuật được liệt kê ở trên. Nếu bạn đã làm mọi thứ đúng chuẩn, bạn sẽ nhận được câu vấn đáp là 4. Đó là tin nhắn bắt đầu mà chúng tôi đã mã hóa bằng public key .

Cách mã hóa RSA hoạt động trong thực tế

Các phần trên sẽ phân phối cho bạn một hiểu biết hài hòa và hợp lý về phương pháp hoạt động giải trí của phép toán đằng sau mã hóa public key nhưng nó hoàn toàn có thể hơi khó hiểu .Trong những bước được liệt kê ở trên, chúng tôi đã chỉ ra cách hai người tiếp xúc với nhau bảo đảm an toàn mà không cần san sẻ mã trước đó. Đầu tiên, mỗi người cần thiết lập cặp key của riêng mình và san sẻ public key với nhau. Hai người cần giữ bí hiểm về private key của họ để thông tin liên lạc của họ được bảo mật thông tin .

Khi người gửi có public key của người nhận, họ có thể sử dụng key đó để mã hóa dữ liệu mà họ muốn bảo mật. Khi nó đã được mã hóa bằng public key, nó chỉ có thể được giả mã bằng private key từ cùng một cặp key. Ngay cả cùng một public key cũng không thể được sử dụng để giải mã dữ liệu. Điều này là do các thuộc tính của chức năng hàm trapdoor mà đã được đề cập.

Khi người nhận nhận được tin nhắn được mã hóa, họ sử dụng private key của mình để truy vấn tài liệu. Nếu người nhân muốn gửi lại thông tin liên lạc theo cách bảo đảm an toàn, thì họ hoàn toàn có thể mã hóa tin nhắn của mình bằng public key. Một lần nữa, khi nó đã được mã hóa bằng public key, cách duy nhất để thông tin hoàn toàn có thể được truy vấn là trải qua private key .Theo cách này, mã hóa RSA hoàn toàn có thể được sử dụng bởi những bên chưa biết trước kia để gửi tài liệu một cách bảo đảm an toàn. Vietnix mong những bạn hiểu rõ về phương pháp hoạt động giải trí của mã hóa RSA và hoàn toàn có thể vận dụng thành công xuất sắc thuật toán này để bảo mật thông tin tài liệu của bạn .

Lời kết

Hy vọng bài viết trên sẽ giúp bạn hiểu hơn về mã hóa RSA là gì ? Nếu có vướng mắc hay góp phần quan điểm, mời bạn để lại phản hồi phía dưới bài viết này. Vietnix xin chân thành cảm ơn bạn !

RSA là gì? Cách thức hoạt động của mã hóa RSA

Bài viết liên quan
Hotline 24/7: O984.666.352
Alternate Text Gọi ngay