Mật mã hóa là gì?
Mật mã hóa là phương pháp bảo vệ thông tin thông qua việc sử dụng các thuật toán mã hóa, hàm băm và chữ ký. Thông tin có thể ở trạng thái đang được lưu trữ (chẳng hạn như tệp trên ổ cứng), đang được truyền (chẳng hạn như hoạt động giao tiếp điện tử qua lại giữa hai hoặc nhiều bên) hoặc đang được sử dụng (trong khi điện toán trên dữ liệu). Mật mã hóa có bốn mục tiêu chính:
- Bảo mật – Chỉ cung cấp thông tin cho người dùng được ủy quyền.
- Tính toàn vẹn – Đảm bảo rằng thông tin không bị khai thác.
- Xác thực – Xác nhận tính xác thực của thông tin hoặc danh tính người dùng.
- Chống thoái thác – Ngăn người dùng phủ nhận các cam kết hoặc hành động trước đó.
Mật mã hóa sử dụng một số thuật toán mật mã hóa cấp thấp để đạt được một hoặc nhiều mục tiêu bảo mật thông tin kể trên. Những công cụ này bao gồm các thuật toán mã hóa, thuật toán chữ ký số, thuật toán băm và nhiều chức năng khác. Trang này sẽ mô tả một số thuật toán mật mã hóa cấp thấp được sử dụng phổ biến nhất.
Mật mã hóa được sử dụng để làm gì?
Mật mã hóa có nguồn gốc từ việc gửi thông tin nhạy cảm giữa các nhân vật quân sự và chính trị. Thông điệp có thể được mã hóa để bất kỳ ai thấy sẽ tưởng là văn bản ngẫu nhiên, ngoại trừ người nhận dự kiến.
Ngày nay, các kỹ thuật mã hóa ban đầu đã bị phá vỡ hoàn toàn. Chúng bị phá vỡ đến mức chỉ được tìm thấy trong các phần giải đố của một số tờ báo. Rất may, lĩnh vực này đã đạt được những tiến bộ lớn về bảo mật và các thuật toán được sử dụng ngày nay dựa vào phân tích và toán học nghiêm ngặt để bảo mật.
Khi bảo mật ngày càng phát triển, lĩnh vực mật mã hóa đã mở rộng để bao gồm nhiều mục tiêu bảo mật hơn. Chúng bao gồm xác thực thông báo, tính toàn vẹn dữ liệu, điện toán bảo mật và hơn thế nữa.
Mật mã hóa là nền tảng của xã hội hiện đại. Đó là cơ sở của vô số ứng dụng Internet thông qua Giao thức truyền siêu văn bản bảo mật (HTTPS), giao tiếp bằng văn bản và giọng nói bảo mật, và thậm chí cả tiền tệ kỹ thuật số.
Mã hóa là gì?
Thuật toán mã hóa là quy trình chuyển đổi một thông điệp văn bản thuần thành một bản mã được mã hóa. Các thuật toán hiện đại sử dụng toán học nâng cao và một hoặc nhiều khóa mã hóa. Điều này giúp dễ dàng mã hóa một thông điệp nhưng gần như không thể giải mã nếu không biết các khóa.
Các kỹ thuật mã hóa được chia thành hai loại, đối xứng và không đối xứng, dựa trên cách hoạt động của các khóa.
Mật mã hóa khóa đối xứng là gì?
Các thuật toán mật mã hóa khóa đối xứng sử dụng các khóa mật mã giống nhau cho cả mã hóa văn bản thuần và giải mã bản mã. Mã hóa đối xứng yêu cầu tất cả những người nhận thông điệp dự kiến phải có quyền truy cập vào khóa chung.
Những hình minh họa sau đây cho thấy cách mã hóa và giải mã hoạt động với các khóa và thuật toán đối xứng, giả sử rằng tất cả các bên đều chia sẻ cùng một khóa.
Trong hình minh họa đầu tiên, một khóa và thuật toán đối xứng được sử dụng để chuyển đổi một thông điệp văn bản thuần thành bản mã. Hình minh họa thứ hai cho thấy vẫn khóa bí mật và thuật toán đối xứng đó đang được sử dụng để chuyển bản mã trở lại thành văn bản thuần.
Một trong những thuật toán mã hóa khối phổ biến nhất là Tiêu chuẩn mã hóa tiên tiến (AES). Thuật toán mã hóa khối này hỗ trợ các khóa 128-bit, 192-bit hoặc 256-bit. AES thường được kết hợp với Chế độ Galois/Counter (GCM) và được gọi là AES-GCM để tạo ra một thuật toán mã hóa được xác thực.
AES là tiêu chuẩn ngành về mã hóa được thực hiện trên khắp thế giới. Tính bảo mật của tiêu chuẩn đã được hiểu rõ và những cách thức triển khai hiệu quả phần mềm và phần cứng được áp dụng rộng rãi.
Mật mã hóa không đối xứng (khóa công khai) là gì?
Mật mã hóa không đối xứng (hoặc khóa công khai) bao gồm một loạt các thuật toán. Các thuật toán này dựa trên các bài toán tương đối dễ giải theo một hướng, nhưng không dễ dàng đảo ngược.
Ví dụ nổi tiếng của dạng bài toán này là bài toán phân tích ra thừa số: đối với các số nguyên tố được chọn cẩn thận p và q, chúng ta có thể tính tích N=p*q một cách nhanh chóng. Tuy nhiên, chỉ với N, rất khó để khôi phục p và q.
Một thuật toán mật mã hóa khóa công khai phổ biến dựa trên bài toán phân tích ra thừa số là hàm Rivest-Shamir-Adleman (RSA). Khi được kết hợp với một sơ đồ đệm thích hợp, RSA có thể được sử dụng cho nhiều mục đích, bao gồm cả mã hóa không đối xứng.
Một lược đồ mã hóa được gọi là không đối xứng nếu nó sử dụng một khóa - khóa công khai - để mã hóa dữ liệu và một khóa khác nhưng có liên quan về mặt toán học - khóa riêng - để giải mã dữ liệu.
Việc xác định khóa riêng phải không khả thi về mặt điện toán nếu thứ duy nhất người ta biết là khóa công khai. Do đó, khóa công khai có thể được phân phối rộng rãi trong khi khóa riêng được giữ bí mật và an toàn. Các khóa kết hợp với nhau được gọi là một cặp khóa.
Một sơ đồ mã hóa không đối xứng phổ biến là RSA-OAEP - sự kết hợp chức năng RSA với lược đồ đệm Khoảng đệm mã hóa không đối xứng tối ưu (OAEP). RSA-OAEP thường chỉ được sử dụng để mã hóa một lượng nhỏ dữ liệu vì nó chậm và có bản mã lớn hơn nhiều so với văn bản thuần.
Mã hóa kết hợp là gì?
Vì các thuật toán khóa công khai như RSA-OAEP kém hiệu quả hơn so với các thuật toán đối xứng của chúng, do đó thường không được sử dụng để mã hóa trực tiếp dữ liệu. Tuy nhiên, chúng đóng vai trò quan trọng trong hệ sinh thái mật mã hóa bằng cách cung cấp phương tiện để trao đổi khóa.
Để sử dụng mã hóa đối xứng, các bên phải dùng chung một khóa. Mặc dù khóa này có thể được gửi qua một kênh được mã hóa hiện có, nhưng chúng tôi sẽ không cần khóa mới nếu đã có một kênh bảo mật. Thay vào đó, chúng tôi giải quyết vấn đề trao đổi khóa bằng cách sử dụng mật mã hóa khóa công khai.
Đây là hai phương pháp phổ biến để trao đổi khóa đối xứng.
- Mã hóa không đối xứng. Một bên tạo khóa đối xứng, sau đó mã hóa khóa bằng thuật toán như RSA-OAEP thành khóa công khai của bên khác. Người nhận có thể giải mã bản mã bằng cách sử dụng khóa riêng của họ để khôi phục khóa đối xứng.
- Trao đổi khóa Diffie-Hellman - (DH). Diffie-Hellman là một loại thuật toán mật mã hóa khóa công khai khác được thiết kế đặc biệt để giúp các bên thống nhất về khóa đối xứng trong trường hợp không có kênh bảo mật. Diffie-Hellman dựa trên một bài toán khác với hàm RSA và kém linh hoạt hơn RSA. Tuy nhiên, nó có các cấu trúc hiệu quả hơn, nên thích hợp hơn trong một số trường hợp sử dụng.
Sự kết hợp giữa mật mã hóa khóa công khai để trao đổi khóa và mã hóa đối xứng để mã hóa dữ liệu hàng loạt được gọi là mã hóa kết hợp.
Mã hóa kết hợp sử dụng các thuộc tính duy nhất của mật mã hóa khóa công khai để trao đổi thông tin bí mật qua một kênh không đáng tin cậy với tính hiệu quả của mã hóa đối xứng. Điều này giúp đạt được một giải pháp toàn diện thiết thực cho quyền riêng tư của dữ liệu.
Mã hóa kết hợp được sử dụng rộng rãi trong các giao thức truyền dữ liệu cho web, chẳng hạn như trong Bảo mật lớp truyền tải (TLS). Khi bạn kết nối với một trang web sử dụng HTTPS (HTTP bảo mật với TLS), trình duyệt của bạn sẽ đàm phán các thuật toán mật mã hóa bảo mật kết nối của bạn. Chúng bao gồm các thuật toán để trao đổi khóa, mã hóa đối xứng và chữ ký số.
Chữ ký số là gì?
Các lược đồ chữ ký số là một loại mật mã hóa khóa công khai đảm bảo tính toàn vẹn, tính xác thực và chống thoái thác của dữ liệu.
Quá trình ký có thể được coi giống như mã hóa tệp bằng khóa riêng. Người ký sử dụng khóa riêng của mình để tạo “chữ ký” trên tài liệu kỹ thuật số như tệp hoặc đoạn mã.
Chữ ký này là duy nhất đối với cặp tài liệu/ khóa riêng và có thể được đính kèm vào tài liệu và được xác minh bằng khóa công khai của người ký. Hai thuật toán phổ biến cho chữ ký số là RSA với Lược đồ chữ ký xác suất (RSA-PSS) và Thuật toán chữ ký số (DSA).
Mã xác thực thông báo là gì?
Mã xác thực thông báo (MAC) là phiên bản đối xứng của chữ ký số. Với MAC, hai bên trở lên dùng chung một khóa. Một bên tạo thẻ MAC, là phiên bản đối xứng của chữ ký số và gắn thẻ đó vào tài liệu. Một bên khác có thể xác minh tính toàn vẹn của thông báo bằng chính khóa được sử dụng để tạo thẻ.
Lưu ý rằng nhiều bên dùng chung khóa được sử dụng để tạo thẻ MAC, vì vậy không thể sử dụng MAC để xác thực hoặc chống thoái thác vì không rõ bên nào đã tạo thẻ.
MAC có thể là các thuật toán độc lập, chẳng hạn như mã xác thực thông báo dựa trên băm (HMAC). Tuy nhiên, vì tính toàn vẹn của thông báo hầu như luôn là một đảm bảo có giá trị, nên nó thường được tích hợp vào các thuật toán mã hóa đối xứng như AES-GCM.
Băm trong mật mã hóa là gì?
Hàm băm mật mã hóa là một công cụ để biến dữ liệu thất thường thành “dấu vân tay” có độ dài cố định. Hàm băm được thiết kế để khó có thể tìm thấy hai đầu vào khác nhau có cùng một dấu vân tay và khó tìm thấy một thông báo có dấu vân tay khớp với một giá trị cố định.
Không giống như lược đồ mã hóa, lược đồ chữ ký và MAC, hàm băm không có khóa. Bất kỳ ai cũng có thể tiến hành điện toán băm của một đầu vào nhất định và hàm băm sẽ luôn tạo ra cùng một đầu ra trên cùng một đầu vào.
Hàm băm là một khối dựng quan trọng trong các giao thức và thuật toán mật mã hóa lớn hơn. Chúng bao gồm các thuật toán chữ ký số, thuật toán MAC chuyên dụng, giao thức xác thực và lưu trữ mật khẩu.
Mật mã hóa đường cong elip là gì?
Mật mã hóa đường cong elip (ECC) là một kỹ thuật mật mã hóa khóa công khai dựa trên lý thuyết toán học về đường cong elip.
Ưu điểm lớn nhất của ECC là nó có thể cung cấp mức độ bảo vệ tương tự như các kỹ thuật truyền thống hơn, nhưng với các khóa nhỏ hơn và hoạt động nhanh hơn. Với hiệu quả của mình, ECC rất thích hợp để sử dụng trong các thiết bị có sức mạnh điện toán tương đối thấp, chẳng hạn như điện thoại di động.
ECC có thể được sử dụng để trao đổi khóa hiệu quả thông qua biến thể đường cong elip của Diffie-Hellman (ECDH) hoặc cho chữ ký số sử dụng Thuật toán chữ ký số đường cong elip (ECDSA). Nhờ tốc độ và tính linh hoạt của mình, ECC được sử dụng rộng rãi cho nhiều ứng dụng trên Internet.
Tiền điện tử là gì?
Tiền điện tử là một loại tiền kỹ thuật số trong đó các giao dịch được xác minh và hồ sơ được duy trì bởi một hệ thống phi tập trung, thay vì bởi một cơ quan tập trung. Tiền điện tử là một ví dụ về ứng dụng của mật mã hóa.
Tiền điện tử sử dụng nhiều thuật toán mật mã hóa cấp thấp khác nhau để tạo ra một nền tảng đáng tin cậy và bảo mật. Tiền điện tử sử dụng nhiều khái niệm được thảo luận trên trang này — mật mã hóa đường cong elip, chữ ký số, hàm băm và nhiều khái niệm khác. Các thuật toán này kết hợp với nhau cho phép xây dựng lòng tin và khả năng giải trình mà không cần cơ quan tập trung.
Mật mã hóa hậu lượng tử là gì?
Trong vài thập kỷ qua, đã có sự đầu tư đáng kể vào điện toán lượng tử. Máy tính lượng tử sử dụng vật lý lượng tử và có thể giải quyết các bài toán, chẳng hạn như bài toán phân tích ra thừa số, mà không khả thi về mặt điện toán đối với máy tính cổ điển.
Một máy tính lượng tử quy mô lớn sẽ phá vỡ các hệ thống mật mã khóa công khai mà chúng ta sử dụng ngày nay, bao gồm cả các hệ thống mật mã dựa trên các hàm Rivest-Shamir-Adleman (RSA). Phá vỡ các thuật toán này đồng nghĩa với mất tính bảo mật và xác thực của nhiều ứng dụng và giao thức mà chúng ta sử dụng ngày nay.
Mặc dù hiện nay các máy tính lượng tử nhỏ đã tồn tại, nhưng chúng quá nhỏ để có thể phá vỡ các thuật toán mật mã hóa. Việc máy tính lượng tử với chức năng mật mã hóa (CRQC) có xuất hiện hay không, hay khi nào xuất hiện, vẫn là điều chưa thể khẳng định. Cần có những đột phá khoa học quan trọng để phát triển CRQC.
Mật mã hóa hậu lượng tử (PQC) đề cập đến các thuật toán mật mã hóa chạy trên máy tính chúng ta sử dụng ngày nay và được xác định là khó bị tấn công bởi máy tính lượng tử quy mô lớn.
Tìm hiểu thêm về sự tham gia về nghiên cứu và kỹ thuật của AWS vào các dự án mật mã kháng lượng tử và các nhóm làm việc với cộng đồng mật mã toàn cầu tại Mật mã hậu lượng tử của AWS.
Điện toán mật mã hóa là gì?
Các công cụ được đưa vào sử dụng cho đến nay cho phép bạn sử dụng mã hóa khi đang được lưu trữ và mã hóa khi đang được truyền. Thông thường, dữ liệu phải được giải mã trước khi có thể được sử dụng trong điện toán. Điện toán mật mã hóa lấp đầy khoảng trống này bằng cách cung cấp các công cụ để hoạt động trực tiếp trên dữ liệu được bảo vệ bằng mật mã hóa.
Thuật ngữ điện toán mật mã hóa bao hàm một loạt các công nghệ bao gồm điện toán nhiều bên bảo mật, mã hóa đồng hình và mã hóa có thể tìm kiếm. Mặc dù chúng khác nhau về chi tiết, các công nghệ này đều bảo vệ dữ liệu bằng mật mã hóa theo cách cho phép bạn thực hiện điện toán trên dữ liệu được bảo vệ trong khi đồng thời duy trì tính bảo mật của dữ liệu đó.
AWS cung cấp những dịch vụ mật mã hóa nào cho khách hàng?
Các dịch vụ mật mã hóa của AWS sử dụng một loạt các công nghệ lưu trữ và mã hóa có thể đảm bảo tính toàn vẹn của dữ liệu đang được lưu trữ hoặc đang được truyền. AWS cung cấp một số công cụ cho các hoạt động mật mã hóa:
- AWS CloudHSM cung cấp mô-đun bảo mật phần cứng (HSM) có thể lưu trữ bảo mật nhiều loại khóa mật mã hóa, bao gồm khóa gốc và khóa dữ liệu.
- Dịch vụ quản lý khóa của AWS (KMS) cung cấp các công cụ để tạo khóa gốc và khóa dữ liệu khác. AWS KMS cũng tương tác với nhiều dịch vụ AWS khác để mã hóa dữ liệu dành riêng cho dịch vụ của chúng.
- SDK mã hóa của AWS cung cấp thư viện mã hóa phía máy khách để triển khai các hoạt động mã hóa và giải mã trên tất cả loại dữ liệu.
- Máy khách mã hóa Amazon DynamoDB cung cấp thư viện mã hóa phía máy khách để mã hóa các bảng dữ liệu trước khi gửi chúng tới dịch vụ cơ sở dữ liệu, chẳng hạn như Amazon DynamoDB.
- Trình quản lý thông tin bí mật của AWS cung cấp tính năng mã hóa và xoay vòng các bí mật mã hóa được sử dụng với cơ sở dữ liệu được AWS hỗ trợ.
Nhiều dịch vụ AWS dựa vào các dịch vụ mật mã hóa này trong quá trình truyền hoặc lưu trữ dữ liệu. Để biết danh sách các dịch vụ như vậy và tổng quan về cách chúng sử dụng các phương pháp mật mã hóa, hãy xem Các dịch vụ AWS khác.
AWS cũng cung cấp các thư viện mật mã hóa nguồn mở:
- AWS libcrypto (AWS-LC) cung cấp một thư viện mật mã hóa đa dụng do đội ngũ Mật mã hóa của AWS duy trì cho AWS và khách hàng của họ. Nó dựa trên mã từ dự án Google BoringSSL và dự án OpenSSL. AWS-LC chứa các phần triển khai C di động của các thuật toán cần thiết cho TLS và các ứng dụng phổ biến. Đối với các thuật toán quan trọng về hiệu suất, các phiên bản cụm tối ưu hóa được bao gồm cho x86 và ARM.
- s2n-tls cung cấp phần triển khai các giao thức TLS/SSL được thiết kế đơn giản, nhỏ gọn, nhanh chóng và ưu tiên bảo mật.
Bạn cũng có thể xem Blog Khoa học Amazon và Blog Bảo mật AWS. Trong blog, chúng tôi trình bày chi tiết những gì chúng tôi đang làm để phát triển, quy chuẩn hóa và nghiên cứu mật mã hóa nguyên mẫu. Chúng tôi viết về điện toán mật mã hóa, mật mã hóa hậu lượng tử, mã mật mã hóa được xác minh và hơn thế nữa.
Làm thế nào để sử dụng các dịch vụ mật mã hóa trong AWS tuân thủ quy định của chính phủ hoặc chuyên môn?
Các dịch vụ mật mã hóa AWS tuân thủ một loạt các tiêu chuẩn bảo mật mật mã hóa, giúp bạn dễ dàng bảo vệ dữ liệu của mình mà không cần phải lo lắng về các quy định của chính phủ hoặc chuyên môn. Để biết danh sách đầy đủ các tuân thủ tiêu chuẩn bảo mật dữ liệu AWS, xem Chương trình tuân thủ AWS.