Tìm hiểu các khái niệm chính trong Tink

Khi bắt đầu sử dụng Tink lần đầu tiên, bạn nên tìm hiểu một số khái niệm chính trước khi bắt đầu hành trình của mình; những khái niệm này được mô tả trong các phần sau.

Nguyên hàm

Tink sử dụng các thành phần cơ bản làm khối xây dựng mật mã để 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á.

Các loại khoá

Một 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ữ.

Bộ khoá và tay cầm bộ khoá

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 keyset. 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 thao tác trên bộ khoá. Một tay cầm khoá giới hạn việc để lộ nội dung khoá nhạy cảm thực tế. Nó 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; quá trình mã hoá và giải mã bằng nguyên thuỷ thu được sau đó sẽ sử dụng khoá chính trong bộ khoá.

Để biết thêm thông tin, hãy xem phần thiết kế keyset.