Chia sẻ bí mật (Secret Sharing) và Chia sẻ bí mật Shamir (Shamir's Secret Sharing)
1. Tổng quan
A. Định nghĩa
Kỹ thuật mật mã chia một bí mật (secret) duy nhất thành n mảnh (share) phân tán cho nhiều người tham gia, sao cho chỉ khi tập hợp đủ k mảnh trở lên (ngưỡng threshold định sẵn) mới khôi phục được bí mật gốc, còn với ít hơn k mảnh thì không thu được bất kỳ thông tin nào về bí mật. Phương thức có điều kiện khôi phục "k-of-n" như vậy được gọi riêng là chia sẻ bí mật ngưỡng (k, n) (threshold secret sharing), do Adi Shamir và George Blakley đề xuất độc lập vào năm 1979.
Chia sẻ bí mật lật ngược bài toán xưa cũ "hãy giữ một khóa cho an toàn" bằng ý tưởng "chia khóa ra để không có người giữ duy nhất cũng không có điểm xâm phạm duy nhất". Nếu mật mã truyền thống bàn về "làm sao che giấu bí mật (mã hóa)", thì chia sẻ bí mật bàn về "làm sao chia nhỏ và giao phó bí mật (lưu trữ phân tán)". Cốt lõi là tính chất "tất cả hoặc không gì (all-or-nothing)": mỗi mảnh đơn lẻ tự nó không cho bất kỳ manh mối nào về bí mật gốc, nhưng khi đủ túc số (k) tập hợp thì bí mật được khôi phục hoàn toàn.
Các đặc trưng chính của chia sẻ bí mật được tóm lược như sau. Thứ nhất, tính bí mật (confidentiality) — với k-1 mảnh trở xuống, phân bố xác suất trên bí mật hoàn toàn không đổi (an toàn lý thuyết thông tin). Thứ hai, tính sẵn sàng (availability) — khôi phục vẫn thành công dù tối đa n-k trong n mảnh bị mất hay hỏng, loại bỏ điểm hỏng duy nhất (SPOF). Thứ ba, phân quyền (decentralization) — không cá nhân hay tổ chức nào nắm bí mật một mình, kìm hãm có cấu trúc mối đe dọa nội bộ và lạm dụng quyền. Thứ tư, cái giá của mọi điểm mạnh ấy là độ phức tạp vận hành của việc phân phát, lưu giữ và làm mới mảnh cùng rủi ro phơi lộ ở khoảnh khắc bí mật được tái lắp ráp tại một điểm khi khôi phục. Cân bằng bốn đặc trưng này là bản chất của thiết kế chia sẻ bí mật.
Những đặc trưng này định vị chia sẻ bí mật là nền tảng mật mã của quản lý khóa (key management) và phân tán tin cậy (trust distribution). Bí mật cấp cao nhất càng theo kiểu "thứ này đổ thì tất cả sụp" — như khóa chủ (master key) hay khóa riêng của chứng chỉ gốc — thì việc giao nó cho một HSM đơn lẻ hay một cán bộ đơn lẻ càng đe dọa đồng thời tính sẵn sàng (mất) và tính bí mật (bị trộm, bị cưỡng ép). Chia sẻ bí mật rải bí mật cấp cao nhất ấy ra nhiều chủ thể, tạo cấu trúc "một mình không làm được gì, chỉ khi đủ túc số mới dùng được". Cùng với [[multi-party-computation]] và [[attribute-based-encryption]], nó tạo thành một trục của thiết kế tin cậy phân tán "không bao giờ tập trung tin cậy vào một nơi".
B. Bối cảnh ra đời và sự cần thiết
An toàn của hệ mật mã rốt cuộc quy về an toàn của khóa, và cuối cùng dẫn đến bài toán quản lý khóa là "khóa ấy được lưu ở đâu và như thế nào". Thế nhưng lưu trữ tại một chỗ duy nhất lại khuếch đại đồng thời hai rủi ro mâu thuẫn. Giấu khóa thật kỹ ở một nơi làm tăng rủi ro sẵn sàng mất khóa vĩnh viễn nếu nơi đó bị phá hủy hay người giữ gặp sự cố; ngược lại sao lưu ra nhiều bản làm tăng rủi ro bí mật chỉ cần một bản rò rỉ là toàn bộ bị phá. Yêu cầu "lưu giữ an toàn mà cũng đừng để mất" không bao giờ được thỏa đồng thời bằng sao chép đơn thuần.
Thế lưỡng nan này còn nhọn sắc hơn khi gặp thực tế vận hành tổ chức. Giao khóa ký mã (code-signing) của doanh nghiệp hay khóa chủ của định chế tài chính cho một cán bộ an ninh duy nhất, thì khoảnh khắc người ấy nghỉ việc, qua đời, hay bị đe dọa, mua chuộc, cả tổ chức trở thành con tin. Điều này gọi là điểm tin cậy duy nhất (single point of trust), và cùng với SPOF về sẵn sàng, nó là điểm yếu có cấu trúc buộc phải tháo gỡ. Tài sản càng trọng yếu thì cấu trúc "chỉ thành lập khi phải tin một người, một thiết bị" tự nó càng là mối nguy.
Giải pháp tổ chức đơn giản nhất để lấp khoảng trống này là kiểm soát kép (dual control) — "hai người phải đồng thời xoay khóa thì két mới mở" — nhưng nó cố định vào đúng hai người cụ thể, thiếu linh hoạt, và tê liệt công việc chỉ cần một trong hai vắng mặt. Cái cần là hệ túc số linh hoạt "chia cho n người nhưng bất kỳ k người nào tập hợp cũng được". Ví dụ chia mảnh cho 5 lãnh đạo và cho phép bất kỳ 3 người khôi phục, thì dù thiếu tới 2 người công việc vẫn tiếp tục, đồng thời bất kỳ 2 người nào thông đồng cũng không lấy được bí mật.
Trong bài báo năm 1979 How to Share a Secret, Shamir giải chính xác yêu cầu này bằng toán học thanh nhã của nội suy đa thức. Dùng tính chất "k điểm xác định duy nhất một đa thức bậc k-1, trong khi k-1 điểm cho phép vô số đa thức", ông bảo đảm k-1 mảnh trở xuống giữ sự vô tri hoàn hảo theo lý thuyết thông tin (perfect secrecy) về bí mật. Cùng năm, Blakley đạt mục tiêu tương tự bằng cách tiếp cận hình học dùng giao của các siêu phẳng nhiều chiều. Nhờ đó chia sẻ bí mật trở thành kỹ thuật mật mã có an toàn chứng minh được chứ không chỉ là quy tắc vận hành, và ngày nay làm nền cho sao lưu khóa HSM, ví blockchain và xác thực phân tán.
2. Nguyên lý hoạt động và cấu trúc
A. Cấu trúc tổng thể
flowchart LR
S["bí mật S(khóa chủ/khóa gốc)"] --> D["Người phân phát Dealer<br/>(k,n) thiết lập ngưỡng"]
D -->|"share 1"| P1["người tham gia P1"]
D -->|"share 2"| P2["người tham gia P2"]
D -->|"share 3"| P3["người tham gia P3"]
D -->|"...share n"| Pn["người tham gia Pn"]
P1 -->|"nộp k trở lên"| R["Người khôi phục Combiner<br/>(nội suy Lagrange)"]
P2 -->|"nộp k trở lên"| R
P3 -->|"nộp k trở lên"| R
R -->|"thành công nếu đủ k"| OUT["bí mật S đã khôi phục"]
Hệ chia sẻ bí mật gồm hai pha, Phân phát (Share/Distribute) và Khôi phục (Reconstruct/Combine). Trước hết người phân phát (dealer) đáng tin nhận bí mật S, ngưỡng k và số người tham gia n làm đầu vào, sinh ra n mảnh (s₁, s₂, …, sₙ) rồi chuyển từng mảnh cho mỗi người tham gia qua kênh an toàn. Về sau, khi cần khôi phục ở thời điểm nào đó, bất kỳ k người tham gia trở lên nộp mảnh của mình cho người khôi phục (combiner), và người khôi phục kết hợp chúng để làm sống lại S gốc. Nếu chỉ tập hợp k-1 người trở xuống thì người khôi phục không thu được gì.
Tính chất quyết định ở đây là quan hệ giữa số mảnh và tính bí mật không phải tỉ lệ trơn mà là chuyển dịch đột ngột tại ngưỡng. Hiểu biết về bí mật hoàn toàn không tăng dù nắm 0, 1, … hay k-1 mảnh, và khoảnh khắc mảnh thứ k tập hợp thì bí mật lộ ra trọn vẹn. Nhờ "ngưỡng (threshold)" này, kẻ tấn công không thu được bất kỳ thông tin từng phần nào cho đến khi gom đủ k mảnh, khác về căn bản với chia đơn thuần rò rỉ thông tin dần dần (ví dụ cắt khóa 128 bit thành hai mảnh 64 bit). Chia đơn thuần làm không gian tìm kiếm giảm một nửa chỉ với một mảnh, còn chia sẻ bí mật đúng cách thì với k-1 mảnh cũng không làm không gian giảm chút nào.
Lấy một trường hợp cụ thể là mở niêm (unseal) của HashiCorp Vault. Vault chia khóa chủ dùng để mã hóa kho lưu trữ bằng chia sẻ bí mật Shamir thành mặc định 5 mảnh giao cho các người vận hành khác nhau. Khi máy chủ khởi động lại nó vào trạng thái "niêm (sealed)", và mặc định 3 người vận hành phải lần lượt nhập mảnh của mình thì niêm mới được gỡ và dịch vụ tiếp tục. Nếu một hai người vận hành đang nghỉ phép, 3 người còn lại vẫn khôi phục được dịch vụ; ngược lại kẻ tấn công trộm được 2 mảnh hoàn toàn không khôi phục được khóa chủ. Một trường hợp này cô đọng cho thấy việc bảo đảm đồng thời tính sẵn sàng và tính bí mật mà chia sẻ bí mật mang lại.
B. Chia sẻ bí mật Shamir — nguyên lý nội suy đa thức
flowchart TB
subgraph GEN["Pha phân phát (Share Generation)"]
A1["đặt bí mật S làm hệ số tự do a0<br/>f(x)=S + a1·x + ... + a(k-1)·x^(k-1)"]
A2["chọn hệ số a1..a(k-1) ngẫu nhiên<br/>(trên trường hữu hạn GF(p))"]
A3["trao cho mỗi người tham gia i điểm (i, f(i))"]
A1 --> A2 --> A3
end
subgraph REC["Pha khôi phục (Reconstruction)"]
B1["thu bất kỳ k điểm<br/>(x1,y1)...(xk,yk)"]
B2["khôi phục duy nhất f(x) bằng nội suy Lagrange"]
B3["khôi phục bí mật: S = f(0)"]
B1 --> B2 --> B3
end
GEN --> REC
Cốt lõi toán học của phương thức Shamir là định lý nội suy "k điểm xác định duy nhất một đa thức bậc k-1". Người phân phát đặt bí mật S cần khôi phục làm hệ số tự do a₀ = S của một đa thức bậc k-1 và chọn các hệ số còn lại a₁, …, a_{k-1} ngẫu nhiên trên trường hữu hạn GF(p). Khi đó đa thức f(x) = S + a₁x + a₂x² + … + a_{k-1}x^{k-1} được định, và người tham gia i nhận một điểm (i, f(i)) trên đường cong này làm mảnh. Bản thân bí mật S ẩn trong f(0).
Khôi phục là chiều ngược lại. Khi bất kỳ k điểm phân biệt tập hợp, nội suy Lagrange (Lagrange interpolation) tái dựng duy nhất đa thức bậc k-1 f(x), và tính f(0) thì ra ngay bí mật S. Trái lại, nếu chỉ có k-1 điểm, thì tồn tại p đa thức bậc k-1 trên GF(p) đi qua tất cả chúng (một cho mỗi giá trị hệ số tự do khả dĩ), nên theo góc nhìn kẻ tấn công mọi ứng viên S đều đáng tin như nhau và không rò rỉ thông tin nào. Đây chính là cơ sở toán học của bí mật hoàn hảo (perfect secrecy) — "k-1 trở xuống nghĩa là vô tri hoàn toàn" — và nhờ đó phương thức Shamir được xếp vào loại an toàn theo lý thuyết thông tin, không dựa vào giả thiết độ khó tính toán (như độ khó phân tích thừa số nguyên).
Cũng đáng nghiền ngẫm lý do tại sao tính toán diễn ra trên trường hữu hạn. Nếu xử lý đa thức trên số thực (real number), mảnh càng lớn càng rò rỉ manh mối về độ lớn của bí mật. Ngược lại, thực hiện mọi phép tính trên GF(p) với một số nguyên tố p lớn hơn bí mật thì giá trị mảnh phân bố đều giữa 0 và p-1, không để lại thiên lệch thống kê nào. Ví dụ, để chia một bí mật S=1234 trong thiết lập (3, 5), chọn một số nguyên tố p đủ lớn (chẳng hạn 1613) và dựng đường cong với hệ số ngẫu nhiên như f(x)=1234 + 166x + 94x² mod 1613, rồi trao ra 5 điểm; bất kỳ 3 người cũng làm sống lại f(0)=1234 bằng nội suy Lagrange, còn 2 người thì không thu hẹp nổi 1234 về một trong 1613 ứng viên.
C. Phương thức Blakley và so sánh hai phương thức
flowchart LR
subgraph SH["Shamir (đại số)"]
SH1["đường cong đa thức bậc k-1"]
SH2["mảnh = một điểm trên đường cong"]
SH3["k điểm -> đường cong duy nhất -> f(0)=S"]
SH1 --> SH2 --> SH3
end
subgraph BL["Blakley (hình học)"]
BL1["các siêu phẳng trong không gian k chiều"]
BL2["mảnh = một siêu phẳng"]
BL3["k siêu phẳng giao nhau -> tọa độ bí mật S"]
BL1 --> BL2 --> BL3
end
Cùng năm 1979, Blakley hiện thực hóa chia sẻ bí mật ngưỡng bằng một ý tưởng hình học hoàn toàn khác. Bí mật được đặt làm một điểm (tọa độ) trong không gian k chiều, và mỗi người tham gia nhận làm mảnh một siêu phẳng (hyperplane) phân biệt đi qua điểm đó. Khi k siêu phẳng tập hợp, giao của chúng được xác định duy nhất thành một điểm và bí mật được khôi phục; với k-1 thì giao trở thành tập vô hạn (một đường thẳng, một mặt phẳng, v.v.) và không thể ghim được tọa độ bí mật. Ý tưởng là song sinh với Shamir, nhưng vì một mảnh đơn thu hẹp không gian phần nào, nên k-1 mảnh "thu nhỏ tập ứng viên" chứ không cho "vô tri hoàn toàn", nên tính bí mật yếu hơn Shamir.
Khác biệt thực hành giữa hai phương thức không phải chỉ là sở thích mà dẫn đến sự đánh đổi giữa kích thước mảnh (hiệu quả không gian) và cấp an toàn. Mảnh Blakley là một vector tọa độ nên lớn gấp khoảng k lần bí mật, trong khi mảnh Shamir cùng kích thước với bí mật (lý tưởng, ideal), thuận lợi cho lưu giữ và truyền. Shamir cũng bảo đảm bí mật hoàn hảo về mặt toán học trong khi Blakley thì không, nên chuẩn thực hành ngày nay gần như hoàn toàn thuộc họ Shamir. Bảng dưới so sánh hai phương thức và các tính chất cơ bản, nhưng vì sao các khác biệt ấy nảy sinh thì đúng như đã giải thích trong phần văn xuôi phía trên.
| Phân loại | Shamir | Blakley | Chia đơn thuần (XOR split) |
|---|---|---|---|
| Nguyên lý toán học | nội suy đa thức (GF(p)) | giao siêu phẳng (đại số tuyến tính) | chia bit / XOR |
| Kích thước mảnh | bằng bí mật (ideal) | khoảng k× bí mật | bí mật/n |
| Ngưỡng (k,n) | cấu hình tự do | cấu hình tự do | chỉ n-of-n |
| Tính bí mật | hoàn hảo (lý thuyết thông tin) | một phần (thu nhỏ ứng viên) | hoàn hảo nếu n-of-n |
| Chịu lỗi (sẵn sàng) | chịu được mất n-k | chịu được mất n-k | mất dù 1 là không khôi phục được |
Như bảng cho thấy, chia XOR đơn thuần chỉ khôi phục được nếu cả n người tập hợp (n-of-n), không có khả năng chịu lỗi nào, và bí mật mất vĩnh viễn chỉ cần một mảnh thất lạc. Shamir thì trái lại, thiết kế k và n độc lập, cho phép "điều chỉnh riêng cấp an toàn (k) và biên sẵn sàng (n-k)". Ví dụ (2, 3) thiên về sẵn sàng (chịu được một người vắng, cần hai người thông đồng) còn (4, 5) thiên về an toàn (cần bốn người thông đồng); lý do quyết định của việc áp dụng thực hành là cùng một kỹ thuật biến đổi linh hoạt theo khẩu vị rủi ro của tổ chức.
3. Các mở rộng — kiểm chứng, làm mới, tính toán
A. Chia sẻ bí mật kiểm chứng được (VSS)
Phương thức Shamir cơ bản dựa vào giả thiết "người phân phát trung thực". Nếu một người phân phát ác ý cố tình trao cho một người tham gia nào đó một mảnh giả không nằm trên đường cong, thì người tham gia ấy dù tham gia khôi phục vẫn có thể dẫn ra một giá trị sai lệch hoặc cản trở chính việc khôi phục. Chia sẻ bí mật kiểm chứng được (VSS, Verifiable Secret Sharing) gỡ bỏ giả thiết tin cậy này bằng cách cho người tham gia kiểm chứng, mà không phơi lộ bí mật, rằng mảnh của mình có "nằm trên cùng một đa thức duy nhất với các mảnh khác" hay không. Feldman (1987) đặt cam kết công khai lên phần số mũ (g^{a_i}) để kiểm tra tính nhất quán của mảnh, và Pedersen (1991) thêm vào đó tính che giấu theo lý thuyết thông tin. VSS là bộ phận cốt lõi trở thành tiền đề cho sinh khóa phân tán (DKG) và chữ ký ngưỡng theo sau.
B. Chia sẻ bí mật chủ động (PSS)
Bí mật lưu giữ lâu dài đối mặt với một mối đe dọa khác. Nếu kẻ tấn công từ từ trộm mảnh từng cái một qua nhiều năm, đến một thời điểm nào đó chúng có thể gom đủ k và khôi phục bí mật. Chia sẻ bí mật chủ động (phòng ngừa trước) (PSS, Proactive Secret Sharing) vô hiệu hóa "thẩm thấu chậm" này bằng cách chỉ tái sinh (re-sharing) các mảnh theo định kỳ trong khi giữ nguyên bản thân bí mật S. Nguyên lý là mỗi người tham gia cộng thêm "một đa thức mới chia sẻ số 0", làm mảnh cũ và mảnh mới không tương thích với nhau. Mảnh trộm được trong quá khứ trở nên vô dụng sau một lần làm mới, nên kẻ tấn công đối mặt với điều kiện mạnh hơn nhiều là phải gom đủ cả k trong một chu kỳ làm mới. Được Herzberg và cộng sự (1995) hệ thống hóa, nó thiết yếu cho an toàn vận hành của khóa sống lâu và lưu ký blockchain.
C. Mật mã ngưỡng và chữ ký ngưỡng (Threshold Cryptography)
Mở rộng mạnh nhất của chia sẻ bí mật là "dùng mà không khôi phục". Kỹ thuật cơ bản tái lắp ráp bí mật tại một điểm ở khoảnh khắc khôi phục, và khoảnh khắc ấy trở thành điểm hiểm phơi lộ. Mật mã ngưỡng (threshold cryptography), và đặc biệt là chữ ký ngưỡng (threshold signature, TSS), không bao giờ tập hợp khóa riêng tại một chỗ; mỗi người tham gia tạo một chữ ký từng phần bằng mảnh của mình, rồi những chữ ký ấy kết hợp thành một chữ ký hợp lệ duy nhất. Nhìn từ ngoài không phân biệt được với một chữ ký khóa đơn thông thường, nhưng thực tế k người phải hợp tác mới tạo ra được. Đây là một trường hợp đặc biệt, hiệu quả cao của [[multi-party-computation]], và vì không bao giờ có khoảnh khắc khóa riêng tồn tại dưới dạng bản rõ nên rủi ro phơi lộ nhỏ hơn về căn bản so với chia sẻ bí mật thuần.
4. Các trường hợp áp dụng và so sánh với công nghệ khác
Trong thực hành, chia sẻ bí mật được dùng rộng khắp ở những lĩnh vực đòi hỏi đồng thời "khả năng sống sót và tính không tập trung của một bí mật cấp cao nhất". Thứ nhất, sao lưu/khôi phục khóa cho HSM/KMS: ngân hàng phân tán khóa chủ của module mật mã ra nhiều thẻ thông minh theo kiểu, chẳng hạn (3, 5), do nhân viên và két khác nhau giữ, và khi khôi phục thảm họa chỉ gom đủ túc số để khôi phục. Thứ hai, nghi thức (ceremony) cho tin cậy gốc của Internet: vận hành Khóa Ký Khóa (KSK) của vùng gốc DNSSEC dùng một quy trình kiểm soát đa bên có sự tham gia của đại diện cộng đồng tin cậy được tuyển chọn trên toàn thế giới, để không một tổ chức nào nắm riêng tin cậy gốc. Thứ ba, lưu ký ví blockchain: sàn giao dịch và đơn vị lưu ký phân tán khóa riêng của ví bằng chữ ký ngưỡng (ví MPC) để ngăn một lần xâm phạm máy chủ đơn lẻ làm trộm sạch tài sản cùng lúc.
Điều quan trọng là không lẫn chia sẻ bí mật với các công nghệ lân cận. Bảng dưới và phần thảo luận tiếp theo nêu "điều gì khác" tới tận nguyên nhân và hàm ý của khác biệt.
| Công nghệ | Mục đích | Khác biệt cốt lõi | Điểm phơi lộ bí mật |
|---|---|---|---|
| Chia sẻ bí mật (SSS) | lưu giữ phân tán và khôi phục bí mật | bí mật được tái lắp ráp khi khôi phục | khoảnh khắc khôi phục (1 lần) |
| Dự phòng/sao lưu dữ liệu (RAID) | tính sẵn sàng (chịu lỗi) | mỗi bản sao tự nó là bản rõ hoàn chỉnh | mọi bản sao, mọi lúc |
| Mã hóa (Encryption) | tính bí mật (che giấu) | một khóa đảo ngược được, quy về quản lý khóa | khi rò rỉ khóa |
| Tính toán đa bên (MPC) | tính toán chung trên đầu vào riêng tư | chỉ tính một hàm mà không khôi phục bí mật | (lý tưởng) không có |
RAID và sao lưu nâng tính sẵn sàng, nhưng mỗi bản sao tự nó là bản rõ hoàn chỉnh, nên chỉ cần rò rỉ một bản là toàn bộ bị phá — sẵn sàng tăng nhưng bí mật thực chất xấu đi. Chia sẻ bí mật thì ngược hẳn: dù có nhiều mảnh, k-1 mảnh trở xuống không phơi lộ gì, nên nó nâng tính sẵn sàng đồng thời bảo vệ tính bí mật. Mã hóa che giấu bí mật nhưng để lại bài toán "đặt khóa ấy ở đâu", và chia chính khóa ấy bằng chia sẻ bí mật là thiết kế điển hình kết hợp cả hai. MPC dùng chia sẻ bí mật làm khối cấu thành cấp thấp nhưng đi xa hơn tới "tính toán mà không khôi phục", với chữ ký ngưỡng nằm ở giao điểm đó.
5. Chuyên sâu — Xu hướng mới nhất và chuẩn hóa
Trọng tâm của chia sẻ bí mật đang dịch về chuẩn hóa chữ ký ngưỡng (TSS), do nhu cầu blockchain và tin cậy phân tán thúc đẩy. Tháng 6 năm 2024, IETF công bố FROST (Flexible Round-Optimized Schnorr Threshold signatures) dưới dạng RFC 9591, cung cấp một văn bản chuẩn cho chữ ký Schnorr ngưỡng hiệu quả hai vòng. FROST cho phép k trong n mảnh hợp tác tạo ra một chữ ký Schnorr duy nhất mà không tái lắp ráp khóa riêng, và thu hút chú ý như mặc định lưu ký thế hệ mới trong Bitcoin (Taproot) và xác thực phân tán. Trong họ ECDSA, chữ ký ECDSA ngưỡng dòng GG18/GG20 của Gennaro–Goldfeder đã là nền của nhiều ví MPC thương mại (nền tảng lưu ký).
Về quan điểm chuẩn hóa, dự án Mật mã Ngưỡng Đa bên (MPTC, Multi-Party Threshold Cryptography) của NIST (Hoa Kỳ) là trục trung tâm. Qua loạt NIST IR 8214, NIST đã sắp xếp thuật ngữ, mô hình an toàn và tiêu chí đánh giá cho các phương thức ngưỡng, và đang dựng một khung phạm trù bao quát không chỉ chữ ký như EdDSA/ECDSA ngưỡng mà cả giải mã và sinh khóa. Hơn nữa, song hành với chuyển đổi hậu lượng tử, nghiên cứu nhắm tới chữ ký ngưỡng hậu lượng tử — như ML-DSA ngưỡng (ngưỡng hóa chữ ký dựa trên lưới) — đang được thảo luận sôi nổi tại các hội thảo NIST. Tuy nhiên, phần lớn trong số này còn ở giai đoạn dự thảo hay nghiên cứu, nên khi áp dụng cụ thể phải kiểm tra trạng thái mới nhất của văn bản liên quan.
Về áp dụng công nghiệp, ví MPC lan rộng nhanh như một thay thế cho ví cứng và multisig từ khoảng năm 2022. Trong khi multisig đòi hỏi nhiều chữ ký ở cấp giao thức blockchain, kéo theo vấn đề tương thích theo từng chuỗi, gánh nặng phí và phơi lộ riêng tư, ví MPC dựa trên chữ ký ngưỡng hiện ra với chuỗi như một chữ ký đơn nhưng bên trong hiện thực kiểm soát k-of-n, thu được đồng thời linh hoạt vận hành và riêng tư. Ngành nghề gợi ý rằng lưu ký Bitcoin mới sẽ lấy chữ ký Schnorr ngưỡng kiểu FROST làm mặc định, còn MPC dựa trên ECDSA sẽ cùng tồn tại một thời gian trong môi trường đa chuỗi (đây là dự báo, không phải sự thật đã xác lập).
6. Điểm cần cân nhắc và hàm ý
Từ góc nhìn Kỹ sư chuyên nghiệp, những điểm cần lưu tâm khi thiết kế một triển khai chia sẻ bí mật như sau.
Thứ nhất, các tham số (k, n) là một quyết định mã hóa khẩu vị rủi ro của tổ chức. Nâng k làm mạnh kháng thông đồng (an toàn) nhưng tăng độ khó khôi phục (giảm sẵn sàng), còn nới biên n-k cải thiện chịu lỗi nhưng rải mảnh rộng hơn, mở rộng bề mặt quản lý. Phải quy độ trọng yếu của tài sản, phân bố địa lý của người vận hành và khả năng vắng mặt thành con số cụ thể như (2,3) hay (3,5), với quản trị đánh giá lại định kỳ.
Thứ hai, khoảnh khắc khôi phục là điểm hiểm lớn nhất, nên cần tích cực cân nhắc tiến hóa sang mật mã ngưỡng "dùng mà không khôi phục". Chia sẻ bí mật thuần tái lắp ráp bí mật dưới dạng bản rõ trong một vùng nhớ khi khôi phục, nên nếu máy chủ đó bị nhiễm thì mọi an toàn bị vô hiệu. Giá trị tài sản càng lớn (ký khóa, lưu ký blockchain) thì càng có lợi trong đánh đổi khi thiết kế bằng TSS/MPC để loại bỏ chính khoảnh khắc khóa riêng tồn tại dưới dạng bản rõ.
Thứ ba, rủi ro vận hành và quy trình quan trọng ngang với an toàn toán học. Kênh an toàn ở pha phân phát, an ninh vật lý của phương tiện lưu giữ mảnh (thẻ thông minh, HSM, két tách biệt), việc thu hồi và tái phân phát mảnh khi nhân viên rời đi, và làm mới mảnh định kỳ qua PSS đều phải được quản lý như một vòng đời duy nhất. Dù bí mật hoàn hảo được chứng minh đến đâu, nếu quá trình phân phát mảnh là email bản rõ thì toàn bộ sụp đổ. Nói cách khác, phải nhận thức chia sẻ bí mật vừa là "kỹ thuật mật mã" vừa là "hệ vận hành quản lý khóa".
Thứ tư, cần phản ánh trước sự liên kết với xu hướng hậu lượng tử và chuẩn hóa. Bản thân phương thức Shamir an toàn theo lý thuyết thông tin nên không bị máy tính lượng tử đe dọa trực tiếp, nhưng nếu chữ ký hay trao đổi khóa dùng kèm nó dễ tổn thương thì an toàn toàn cục vỡ. Nếu đưa vào chữ ký ngưỡng, hãy theo dõi cùng lúc RFC 9591 (FROST), NIST MPTC và lộ trình chuyển đổi [[post-quantum-cryptography]], và với tài sản sống lâu đặc biệt nên dựng sẵn vào thiết kế con đường di trú sang các phương thức ngưỡng hậu lượng tử.
Tài liệu tham khảo
- Shamir, A. (1979). How to Share a Secret. Communications of the ACM. https://dl.acm.org/doi/10.1145/359168.359176
- IETF RFC 9591, The Flexible Round-Optimized Schnorr Threshold (FROST) Protocol for Two-Round Schnorr Signatures (2024). https://www.rfc-editor.org/rfc/rfc9591
- NIST, Multi-Party Threshold Cryptography (MPTC) Project. https://csrc.nist.gov/projects/threshold-cryptography
- Wikipedia, Threshold cryptosystem. https://en.wikipedia.org/wiki/Threshold_cryptosystem
Tóm tắt một câu: Chia sẻ bí mật chia một bí mật thành n mảnh sao cho chỉ k mảnh trở lên mới khôi phục được; nội suy đa thức của Shamir bảo đảm bí mật hoàn hảo về mặt toán học, và ngày nay nó đang tiến hóa thành nền tảng của sao lưu khóa HSM, ví MPC blockchain và chữ ký ngưỡng (FROST).