Bảng chú giải thuật ngữ

Mã hoá khoá bất đối xứng: Một hệ thống mật mã học 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ỉ có chủ sở hữu mới biết.

Văn bản mã hoá: 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ã hoá không thể hiểu được cho đến khi được chuyển đổi lại thành văn bản thuần tuý bằng khoá.

Tính nhất quán: Có nghĩa là Tink hoạt động "giống nhau" trong mọi ngôn ngữ lập trình. Ví dụ: Tink cung cấp tính nhất quán trong quá trình đánh giá, tức là đối với một keyset nhất định, nếu quá trình tạo nguyên hàm thành công ở 2 ngôn ngữ, thì các nguyên hàm sẽ hoạt động giống nhau.

Khoá: Một phần thông tin (ví dụ: một chuỗi) cần thiết để mã hoá hoặc giải mã dữ liệu. Xem Các đối tượng khoá để biết cách các đối tượng này được biểu thị.

Keyset và tay cầm keyset: Tink sử dụng keyset để quản lý khoá. Về cơ bản, keyset là một tập hợp các khoá giúp xoay vòng khoá. Các thuộc tính đáng chú ý của một keyset là:

  • Mỗi khoá trong một khoá khoá đều có một mã nhận dạng riêng biệt và duy nhất trong khoá khoá đó. Mã nhận dạng này thường được thêm dưới dạng tiền tố vào mỗi văn bản mã hoá, chữ ký hoặc thẻ được tạo để cho biết khoá nào đã được dùng (xem cách Tink gắn thẻ văn bản mã hoá để biết thêm thông tin).
  • Chỉ có một khoá tại một thời điểm trong một khoá chính là khoá chính. Khoá chính trong một bộ khoá là khoá "đang dùng" tại thời điểm đó.
  • Tất cả các khoá trong một bộ khoá phải là các phương thức triển khai của cùng một nguyên hàm (chẳng hạn như AEAD), nhưng có thể có các loại khoá khác nhau (ví dụ: khoá AES-GCM và XCHACHA20-POLY1305).

Mỗi phương thức triển khai Tink đều cung cấp các API để tạo hoặc chỉnh sửa khoá. Tuy nhiên, bạn nên sử dụng Tinkey, công cụ CLI của chúng tôi.

Người dùng thao tác trên một bộ khoá bằng cách sử dụng các mã nhận dạng bộ khoá. Một mã nhận dạng keyset giới hạn việc để lộ nội dung khoá nhạy cảm thực tế. Thư viện này cũng trừu tượng hoá một bộ khoá, cho phép người dùng lấy một nguyên tắc "bao bọc" toàn bộ bộ khoá. Ví dụ: bạn có thể nhận được một nguyên thuỷ AEAD của một bộ khoá có khoá N; hoạt động mã hoá và giải mã bằng nguyên thuỷ thu được sau đó sẽ sử dụng khoá chính trong bộ khoá.

Hệ thống quản lý khoá (KMS): Hệ thống dùng để quản lý khoá mã hoá, bao gồm cả việc tạo, lưu trữ, sử dụng, xoay vòng, huỷ và thay thế khoá.

Loại khoá: Loại khoá triển khai một nguyên tắc cụ thể. Hầu hết các thành phần cơ bản đều có một số loại khoá để bạn lựa chọn tuỳ theo yêu cầu 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 các nhu cầu. Xem thêm tại Các loại khoá được hỗ trợ theo ngôn ngữ.

Tham số: Mô tả đầy đủ thông tin cần thiết để tạo khoá, không bao gồm nội dung khoá và mã nhận dạng khoá. Xem Đối tượng tham số để biết cách các đối tượng này được biểu thị.

Văn bản thuần tuý: Dạng đầu vào dễ hiểu của một văn bản được mã hoá hoặc các phần tử của văn bản đó.

Nguyên thuỷ: Tink sử dụng các nguyên thuỷ làm khối mật mã dựng sẵn để quản lý một thuật toán cơ bản, nhờ đó người dùng có thể thực hiện các tác vụ mật mã một cách an toàn. Nguyên thuỷ xác định thông tin chi tiết về thuật toán mã hoá và loại khoá.

Registry: Một thực thể chung trong Tink biết cách tạo các khoá và thành phần cơ bản mới. Ngoài ra, hãy xem hướng dẫn về gỡ lỗi đăng ký.

Mã hoá khoá đối xứng: Một thuật toán mã hoá sử dụng cùng một khoá để mã hoá văn bản thuần tuý và giải mã văn bản mã hoá.