Secp256r1 trên Solana
Secp256r1 là gì
Secp256r1, còn được biết đến với tên P-256 hoặc prime256v1, là một đường cong elliptic được định nghĩa bởi Standards for Efficient Cryptography Group (SECG) và được NIST chấp nhận như một phần của các đường cong elliptic được khuyến nghị sử dụng.
Đây là đường cong elliptic được triển khai rộng rãi nhất trong các ứng dụng mật mã hiện đại, cung cấp sức mạnh cho mọi thứ từ kết nối TLS đến khóa bảo mật phần cứng.
Đường cong cung cấp khoảng 128 bit độ mạnh bảo mật với kích thước khóa 256-bit, làm cho nó hiệu quả hơn đáng kể so với RSA trong khi cung cấp bảo mật tương đương.
Các tính chất toán học của nó, kết hợp với việc mở rộng tối ưu hóa phần cứng, đã làm cho nó trở thành nhân tố tiêu chuẩn cho mật mã đường cong elliptic.
Tại sao nó lại thống trị?
Secp256r1 đạt được sự thống trị thông qua sự kết hợp của tiêu chuẩn hóa từ sớm, hỗ trợ đa dạng phần cứng, và được phê duyệt theo quy định.
Không giống như các đường cong mới hơn có thể vượt trội về mặt toán học, secp256r1 đại diện cho sự cân bằng tối ưu giữa độ mạnh mật mã, hiệu quả triển khai, và khả năng tương thích hệ sinh thái mà các hệ thống thực tế yêu cầu.
Ngoài ra, cấu trúc toán học cụ thể của nó cho phép các triển khai được tối ưu hóa cao, hoạt động hiệu quả trên mọi thứ từ các phần tử bảo mật của điện thoại thông minh cho đến các máy chủ hiệu suất cao.
Nó hoạt động như thế nào?
Secp256r1 định nghĩa một đường cong toán học trông giống như y2 = x3 - 3x + b
. Điều này tạo ra một hình dạng giống hình oval với các tính chất toán học đặc biệt. Có chính xác 2256
điểm hợp lệ trên đường cong này; một con số lớn đến mức thiên văn.
Mỗi điểm trên đường cong này được định nghĩa bởi hai tọa độ (x, y), và cấu trúc toán học của đường cong đảm bảo rằng một số thao tác có thể được thực hiện hiệu quả trong khi những thao tác khác vẫn không thể tính toán được.
Tạo Khóa
Quá trình bắt đầu bằng việc chọn một số mật mã ngẫu nhiên an toàn giữa 1 và 2256, số này trở thành khóa riêng của bạn.
Hệ thống sau đó lấy một điểm bắt đầu được xác định trước trên đường cong gọi là điểm generator, điểm này phục vụ như một tham chiếu chung mà mọi người đều đồng ý.
Sử dụng một thao tác toán học đặc biệt gọi là scalar multiplication, số khóa riêng của bạn được sử dụng để "điều hướng" từ điểm generator này đến một vị trí mới, duy nhất trên đường cong.
Điểm đích này trở thành khóa công khai của bạn, có thể được chia sẻ an toàn với bất kỳ ai cần xác minh chữ ký số của bạn.
Ký
Khi bạn muốn tạo một chữ ký số, quá trình bắt đầu bằng việc lấy thông điệp của bạn và truyền nó qua một hàm hash mật mã, thường là SHA-256, tạo ra một biểu diễn số có kích thước cố định cho nội dung thông điệp. Mã hash này phục vụ như một dấu vân tay duy nhất của thông điệp bạn.
Thuật toán ký sau đó kết hợp mã hash thông điệp này với khóa riêng của bạn và một số được tạo ngẫu nhiên gọi là nonce để tạo ra hai giá trị toán học, thường được gắn nhãn r
và s
. Những giá trị này được liên kết nội tại với cả khóa riêng của bạn và nội dung thông điệp cụ thể, tạo ra một bằng chứng mật mã mà chỉ bạn mới có thể tạo ra.
Xác minh
Quá trình xác minh thể hiện sự bất đối xứng rõ ràng của mật mã đường cong elliptic. Bất kỳ ai cũng có thể lấy khóa công khai của bạn, thông điệp gốc, cùng với các giá trị chữ ký (r, s) và thực hiện một loạt các thao tác toán học sẽ chỉ tạo ra kết quả hợp lệ nếu chữ ký được tạo bởi ai đó sở hữu khóa riêng tương ứng.
Người xác minh tính toán một số giá trị trung gian và thực hiện các thao tác scalar multiplication bổ sung trên đường cong, cuối cùng đến một điểm khớp với các thuộc tính cụ thể của chữ ký nếu nó xác thực đúng.
Quá trình xác minh này không bao giờ yêu cầu việc biết về khóa riêng, nhưng nó cung cấp sự chắc chắn về mặt toán học cho tính xác thực của chữ ký.
Secp256r1 trên Solana
Solana cung cấp hỗ trợ native cho xác minh chữ ký Secp256r1 thông qua precompile tích hợp được giới thiệu với SIMD-0075 bởi Orion.
Đây là một bước quan trọng hướng tới việc kích hoạt các phương pháp xác thực hiện đại như passkey trên Solana, vì Secp256r1 là cùng đường cong elliptic được sử dụng bởi WebAuthn và các triển khai passkey. Với sự hỗ trợ này, cuối cùng chúng ta có thể sử dụng sự kết hợp của các phương pháp xác thực hiện đại và PDA để quản lý các hành động của người dùng.
Thách thức với việc xác thực Web3
Sự phụ thuộc của Web3 vào seed phrase tạo ra một rào cản cơ bản cho việc tiếp cận. Việc sử dụng ví truyền thống cho thấy tỷ lệ người dùng bỏ cuộc vì điều này là 60-80%.
Vấn đề là Seed phrase đòi hỏi bảo mật hoàn hảo từ những con người không hoàn hảo. Người dùng phải ghi nhớ 12-24 từ ngẫu nhiên, lưu trữ chúng an toàn mãi mãi, và không bao giờ được trở thành nạn nhân của phishing; một tiêu chuẩn không thể cho việc áp dụng chính thống.
Giải pháp có thể là các phương pháp xác thực hiện đại như passkey, loại bỏ lỗi con người bằng cách chuyển khóa riêng vào phần cứng bảo mật chuyên dụng. Tuy nhiên, để hỗ trợ những điều này trên Solana, chúng ta cần các mật mã nguyên thủy phù hợp.