Mã hoá khoá bất đối xứng: Một hệ thống mật mã sử dụng các khoá ghép nối (công khai và riêng tư) để mã hoá và giải mã dữ liệu. Khoá công khai được dùng để mã hoá dữ liệu và có thể được chia sẻ. Khoá riêng tư được dùng để giải mã dữ liệu và chỉ chủ sở hữu mới biết.
Văn bản mật mã: Kết quả của quá trình mã hoá được thực hiện trên văn bản thuần tuý bằng một thuật toán. Văn bản mật mã sẽ không hiểu được cho đến khi văn bản đó được chuyển đổi trở lại thành văn bản thuần tuý bằng một khoá.
Tính nhất quán: Có nghĩa là Tink hoạt động "như nhau" trong mọi ngôn ngữ lập trình. Ví dụ: Tink cung cấp tính nhất quán đánh giá, có nghĩa là đối với một tập hợp khoá nhất định, nếu việc tạo dữ liệu gốc thành công bằng hai ngôn ngữ, thì các dữ liệu gốc sẽ hoạt động như nhau.
Khoá: Một thông tin (ví dụ: một chuỗi) cần thiết để mã hoá hoặc giải mã dữ liệu. Xem phần Các đối tượng chính để biết cách các đối tượng đó được biểu thị.
Bộ phím và tay điều khiển tập hợp phím: Tin nhắn sử dụng tập hợp phím để quản lý các phím. Về cơ bản, tập hợp khoá là một tập hợp các khoá hỗ trợ việc xoay khoá. Các thuộc tính đáng chú ý của tập hợp khoá là:
- Mỗi khoá trong tập hợp khoá có một mã nhận dạng duy nhất trong tập hợp khoá. Mã nhận dạng này thường được thêm dưới dạng tiền tố vào mỗi thuật toán mật mã, chữ ký hoặc thẻ được tạo để cho biết khoá nào đã được sử dụng (xem cách bản mật mã thẻ của Tink để biết thêm thông tin).
- Mỗi lần trong một tập hợp khoá, chỉ có một khoá là chính. Hiện tại, khoá chính trong tập hợp khoá là khoá "đang được sử dụng".
- Tất cả các khoá trong một tập hợp khoá phải là cách triển khai có cùng một dữ liệu gốc (chẳng hạn như AEAD), nhưng có thể có nhiều loại khoá (ví dụ: khoá AES-GCM và khoá XCHACHA20-POLY1305).
Mỗi quá trình triển khai Tink đều cung cấp các API để tạo hoặc chỉnh sửa tập hợp khoá. Tuy nhiên, bạn nên sử dụng công cụ CLI Tinkey của chúng tôi.
Người dùng thao tác trên một tập hợp phím bằng ô điều khiển tập hợp phím. Xử lý tập hợp phím sẽ hạn chế việc hiển thị nội dung khoá nhạy cảm thực tế. Thư viện này cũng tóm tắt một tập hợp khoá cho phép người dùng có được dữ liệu gốc "bao bọc" toàn bộ tập hợp khoá. Ví dụ: bạn có thể lấy dữ liệu gốc AEAD của một tập hợp khoá có các khoá N
; việc mã hoá và giải mã bằng dữ liệu gốc thu được sau đó sử dụng khoá chính trong tập hợp khoá.
Hệ thống quản lý khoá (KMS): Một hệ thống dùng để quản lý các khoá mã hoá, bao gồm cả việc tạo, lưu trữ, sử dụng, xoay, huỷ bỏ và thay thế khoá.
Loại khoá: Loại khoá triển khai một nguyên gốc cụ thể. Hầu hết dữ liệu gốc đều có một số loại khoá để lựa chọn tuỳ thuộc vào yêu cầu của bạn về tính bảo mật, thời gian chạy và dung lượng. Ví dụ: AES128_GCM là một AEAD nhanh chóng và hiệu quả cho hầu hết nhu cầu. Vui lòng xem thêm trong phần Các loại phím được hỗ trợ theo ngôn ngữ.
Tham số: Mô tả đầy đủ thông tin cần thiết để tạo khoá, ngoại trừ nội dung khoá và mã nhận dạng khoá. Xem các đối tượng Tham số để biết cách các đối tượng đó được biểu thị.
Văn bản thuần tuý: Hình thức nhập dễ hiểu của văn bản đã mã hoá hoặc các thành phần của văn bản đó.
Primitive: Tink sử dụng dữ liệu nguyên gốc làm khối dựng mã hoá giúp quản lý thuật toán cơ bản để người dùng có thể thực hiện các nhiệm vụ mã hoá một cách an toàn. Dữ liệu nguyên gốc xác định thông tin chi tiết về thuật toán mật mã và loại khoá.
Tính năng gốc do Tink hỗ trợ:
- Mã hoá đã xác thực với dữ liệu được liên kết (AEAD): Phương pháp nguyên gốc phổ biến nhất để mã hoá dữ liệu; phù hợp với hầu hết các nhu cầu mã hoá. AEAD cung cấp tính bảo mật qua văn bản thuần tuý và cho phép xác minh tính toàn vẹn và tính xác thực của tệp. Xem bài viết Mã hoá đã xác thực bằng dữ liệu được liên kết (AEAD).
- Mã hoá xác định: Một dữ liệu nguyên gốc luôn tạo cùng một bản mật mã cho một văn bản thuần tuý và khoá nhất định. Điều này có thể gây rủi ro vì kẻ tấn công chỉ cần tìm ra thuật toán mật mã nào tương ứng với một dữ liệu nhập bằng văn bản thuần tuý nhất định để xác định thuật toán đó. Xem phần AEAD xác định.
- Chữ ký số: Chữ ký số bất đối xứng (xem bài viết Mã hoá khoá bất đối xứng) để xác nhận tính xác thực và tính toàn vẹn của dữ liệu đã ký. Xem phần Chữ ký số.
- Mã hoá kết hợp: Một phương thức gốc kết hợp phương thức mã hoá khoá bất đối xứng và mã hoá khoá đối xứng (xem Mã hoá khoá bất đối xứng và Mã hoá khoá đối xứng). Phương thức mã hoá kết hợp kết hợp hiệu quả của quá trình mã hoá đối xứng với sự tiện lợi của phương thức mã hoá bằng khoá công khai. Để mã hoá thư, một khoá đối xứng mới sẽ được tạo và dùng để mã hoá dữ liệu văn bản thuần tuý, trong khi khoá công khai của người nhận chỉ được dùng để mã hoá khoá đối xứng. Thuật toán mật mã cuối cùng bao gồm văn bản mật mã đối xứng và khoá đối xứng đã mã hoá. Xem phần Mã hoá kết hợp.
- Mã xác thực thư (MAC): Một mô hình đối xứng (xem phần Mã hoá khoá đối xứng) để xác nhận tính xác thực và tính toàn vẹn của dữ liệu. Xem Mã xác thực thư (MAC).
- Truyền trực tuyến AEAD: Một dữ liệu gốc cung cấp phương thức mã hoá đã xác thực để truyền trực tuyến dữ liệu; hữu ích khi dữ liệu cần được mã hoá quá lớn để được xử lý trong một bước. Xem phần Truyền trực tuyến AEAD.
Xem phần Các dữ liệu gốc được hỗ trợ theo ngôn ngữ để biết thông tin về khả năng tương thích.
Sổ đăng ký: Một thực thể chung trong Tink biết cách tạo các khoá và dữ liệu nguyên gốc mới. Ngoài ra, hãy xem hướng dẫn về cách gỡ lỗi đăng ký.
Mã hoá khoá đối xứng: Một thuật toán mật mã sử dụng cùng một khoá để mã hoá văn bản thuần tuý và bản mã hoá giải mã.