Mật mã đường cong elliptic là gì?
Mật mã đường cong elliptic (Elliptic Curve Cryptography, ECC) là một dạng mật mã khóa công khai dựa trên các phép toán toán học với điểm trên đường cong elliptic trong trường hữu hạn.Mạng tiền mã hóa chủ yếu dùng ECC để tạo cặp khóa công khai và khóa riêng tư, tạo chữ ký số, xác minh quyền ủy quyền giao dịch, thiết lập bí mật chung và hỗ trợ các chứng minh mật mã nâng cao.Private key là một số bí mật giúp người nắm giữ kiểm soát tài khoản tiền mã hóa hoặc danh tính ký.Public key là một giá trị có liên hệ toán học với private key, cho phép người khác xác minh chữ ký mà không biết private key.Độ an toàn của ECC phần lớn dựa trên độ khó của bài toán logarit rời rạc trên đường cong elliptic.Khi biết private key và điểm sinh đã chọn, việc tính public key tương ứng rất hiệu quả.Nếu chỉ biết public key và điểm sinh, việc khôi phục private key được cho là bất khả thi về mặt tính toán khi sử dụng đường cong, kích thước khóa và cách triển khai an toàn.Dự án Mật mã đường cong elliptic của NIST mô tả ECC là phương pháp quan trọng cho chữ ký số và thiết lập khóa mật mã.
ECC không phải một thuật toán, đường cong, blockchain hay tiền mã hóa duy nhất.Đây là một họ phương pháp mật mã rộng, bao gồm ECDSA, EdDSA, ECDH, chữ ký Schnorr, chữ ký BLS và các cấu trúc khác.Vì sao tiền mã hóa sử dụng ECC?
Hệ thống tiền mã hóa cần cách để người dùng ủy quyền giao dịch mà không tiết lộ thông tin bí mật kiểm soát tài sản.ECC thực hiện điều này thông qua chữ ký số.Ví dùng private key để ký dữ liệu giao dịch.Người tham gia mạng dùng public key liên quan để xác minh chữ ký hợp lệ.Quy trình này chứng minh thao tác đã được khóa cần thiết ủy quyền mà không công khai khóa đó.ECC hấp dẫn vì có thể cung cấp mức bảo mật mạnh trước máy tính cổ điển với public key và chữ ký tương đối nhỏ gọn.Giá trị mật mã nhỏ hơn giúp giảm kích thước giao dịch, băng thông mạng, nhu cầu lưu trữ và chi phí xác minh so với một số phương pháp khóa công khai cũ ở mức bảo mật tương đương.Hiệu quả này có giá trị trên blockchain vì hàng nghìn node độc lập có thể cần lưu trữ hoặc xác minh cùng dữ liệu mật mã.Đường cong elliptic là gì?
Đường cong elliptic dùng trong mật mã là tập hợp toán học gồm các điểm thỏa mãn phương trình xác định trên trường hữu hạn.Dạng Weierstrass ngắn phổ biến được viết là
Khuyến nghị NIST SP 800-186 bản cuối quy định tham số miền đường cong elliptic được phê duyệt cho các hệ thống mật mã áp dụng.
Trường hữu hạn là gì?
Trường hữu hạn là tập hợp giá trị giới hạn, có quy tắc xác định cho phép cộng, trừ, nhân và chia.Nhiều đường cong tiền mã hóa hoạt động trên trường nguyên tố, trong đó phép tính được thực hiện modulo một số nguyên tố lớn.Số học modulo khiến giá trị quay vòng khi đạt mô-đun của trường.Nhờ đó, ta có tập tọa độ hữu hạn thay vì mặt phẳng hình học vô hạn.Đặc tính toán học của trường và đường cong cho phép các phép toán điểm tạo thành một nhóm đại số có cấu trúc.Bảo mật mật mã phụ thuộc vào việc chọn tham số trường và nhóm có khả năng chống các tấn công toán học đã biết.Cộng điểm
Cộng điểm là phép toán kết hợp hai điểm hợp lệ trên đường cong và tạo ra một điểm hợp lệ khác.Công thức chính xác tùy thuộc dạng đường cong elliptic.Phép toán đặc biệt gọi là nhân đôi điểm cộng một điểm với chính nó.Phép cộng lặp lại tạo nền tảng cho phép nhân vô hướng.Phần triển khai cũng phải xử lý chính xác trường hợp đặc biệt như điểm ở vô cực, đóng vai trò phần tử đơn vị của nhóm.Tính toán điểm sai có thể tạo chữ ký không hợp lệ, làm lộ thông tin bí mật hoặc tạo trường hợp biên có thể bị khai thác.Nhân vô hướng
Nhân vô hướng là phép cộng một điểm trên đường cong với chính nó một số lần xác định.Trong tiền mã hóa, public key thường được tính theo
Trong biểu thức này,
Tính
Việc khôi phục
Bài toán logarit rời rạc trên đường cong elliptic
Bài toán logarit rời rạc trên đường cong elliptic (ECDLP) là thử thách tìm vô hướng bí mật khi đã biết điểm sinh và điểm công khai thu được.Hiện chưa có thuật toán cổ điển hiệu quả công khai nào giải được ECDLP trên các đường cong lớn được chọn đúng cách.Kẻ tấn công có thể thử vét cạn hoặc phương pháp toán học nâng cao, nhưng với đường cong 256-bit an toàn, khối lượng công việc cần thiết phải vượt xa năng lực tính toán thực tế.Điều này phụ thuộc vào việc chọn đường cong, tạo khóa, xác thực và triển khai chính xác.Bộ sinh số ngẫu nhiên yếu hoặc private key bị lộ có thể phá vỡ hệ thống mà không cần giải ECDLP.Private key ECC
Private key ECC thường là số nguyên được chọn ngẫu nhiên trong phạm vi cho phép, do cấp của nhóm đường cong xác định.Giá trị này không được bằng 0 hoặc nằm ngoài phạm vi hợp lệ.Private key 256-bit không có nghĩa mọi chuỗi 256-bit đều tự động hợp lệ với mọi đường cong.Phần mềm ví phải tạo giá trị bằng nguồn ngẫu nhiên an toàn về mật mã và áp dụng quy tắc phạm vi của đường cong.Private key phải được giữ bí mật vì bất kỳ ai lấy được khóa thường có thể tạo chữ ký hợp lệ cho tài khoản liên quan.Đồng thuận blockchain không thể phân biệt chủ sở hữu hợp pháp với kẻ trộm dùng cùng khóa hợp lệ.Public key ECC
Public key ECC là một điểm trên đường cong elliptic đã chọn.Khóa được tính từ private key thông qua phép nhân vô hướng.Theo các giả định bảo mật cổ điển hiện nay, có thể chia sẻ public key mà không làm lộ private key.Hệ thống tiền mã hóa có thể lưu public key đầy đủ, biểu diễn nén hoặc địa chỉ được tạo từ hash.Public key cần được xác thực trước khi dùng trong giao thức nhạy cảm, vì điểm sai định dạng có thể tạo ra tấn công đường cong không hợp lệ hoặc tấn công nhóm con.Việc xác thực có thể gồm kiểm tra mã hóa, xác nhận điểm nằm trên đường cong dự kiến, từ chối điểm đơn vị và áp dụng quy tắc nhóm con.Public key và địa chỉ tiền mã hóa
Địa chỉ tiền mã hóa không phải lúc nào cũng giống public key.Nhiều hệ thống tạo địa chỉ bằng cách băm hoặc mã hóa thông tin public key theo cách khác.Cách này tạo mã định danh ngắn hơn hoặc thân thiện hơn với người dùng, đồng thời có thể thêm checksum, mã định danh mạng hoặc điều kiện script.Một số địa chỉ chỉ làm lộ public key đầy đủ khi tài sản được sử dụng để chi tiêu.Hệ thống tài khoản khác tạo địa chỉ ổn định từ public key trước khi có giao dịch nào diễn ra.Người dùng không bao giờ nên cho rằng có thể chuyển đổi địa chỉ thành private key.Về mặt thực tiễn, quy trình tạo địa chỉ được thiết kế đúng là một chiều.ECC và chữ ký số
Chữ ký số là ứng dụng phổ biến nhất của ECC trong tiền mã hóa.Người ký xử lý dữ liệu giao dịch bằng private key để tạo chữ ký.Người tham gia mạng khác xác minh chữ ký bằng public key tương ứng và cùng dữ liệu giao dịch.Chữ ký hợp lệ cung cấp bằng chứng rằng private key cần thiết đã ủy quyền thông điệp được ký.Chữ ký cũng cho phép bên xác minh phát hiện thay đổi đối với dữ liệu đã ký sau thời điểm ký.Chữ ký không mã hóa giao dịch và không che giấu nội dung giao dịch.Tiêu chuẩn chữ ký số NIST FIPS 186-5 bản cuối đưa ECDSA và EdDSA vào các kỹ thuật chữ ký được phê duyệt.
ECC không giống mã hóa
ECC gồm các kỹ thuật liên quan đến mã hóa và thỏa thuận khóa, nhưng giao dịch tiền mã hóa thường dùng ECC để ký thay vì bảo mật nội dung.Blockchain công khai thường phải đọc được dữ liệu giao dịch để xác minh số dư, thực thi smart contract và cập nhật trạng thái dùng chung.Giao dịch được ký để chứng minh quyền ủy quyền, trong khi người gửi, người nhận, số tiền hoặc chỉ thị contract có thể vẫn hiển thị công khai.ECC có thể thiết lập bí mật chung cho liên lạc được mã hóa, nhưng đây là thao tác khác với ký giao dịch on-chain.Người dùng không nên cho rằng hoạt động tiền mã hóa riêng tư chỉ vì hệ thống sử dụng mật mã đường cong elliptic.ECDSA là gì?
ECDSA là viết tắt của Elliptic Curve Digital Signature Algorithm (Thuật toán chữ ký số đường cong elliptic).Thuật toán này điều chỉnh Digital Signature Algorithm cho các nhóm đường cong elliptic.ECDSA tạo chữ ký gồm hai giá trị chính thường gọi là
Định nghĩa ECDSA của NIST xác định đây là biến thể đường cong elliptic của Digital Signature Algorithm.
Vì sao nonce ECDSA rất quan trọng?
Mỗi chữ ký ECDSA cần một giá trị bí mật riêng cho chữ ký, thường gọi là
Các triển khai hiện đại thường tạo nonce theo cách xác định từ private key và hash thông điệp, theo phương pháp đã được rà soát như RFC 6979.
Tạo nonce xác định vẫn cần triển khai chính xác và bảo vệ khỏi rò rỉ qua kênh kề.secp256k1 là gì?
secp256k1 là đường cong elliptic 256-bit được Bitcoin, tài khoản thực thi Ethereum và một số hệ thống tiền mã hóa khác sử dụng.Phương trình của đường cong trên trường nguyên tố là
Đường cong dùng hệ số
Dự án libsecp256k1 được duy trì cung cấp cách triển khai chuyên dụng cho chữ ký và các thao tác liên quan trên đường cong này.
secp256k1 không thể thay thế tùy ý cho mọi đường cong 256-bit khác.Khóa hoặc chữ ký tạo cho secp256k1 không tự động xác minh được bằng đường cong khác như P-256 hoặc Ed25519.Bitcoin và ECC
Bitcoin theo truyền thống dùng ECDSA trên secp256k1 để ủy quyền chi tiêu.Đầu vào giao dịch cung cấp thông tin cần thiết để đáp ứng điều kiện khóa của đầu ra trước đó.Với điều kiện thông thường dựa trên chữ ký, node Bitcoin xác minh chữ ký khớp với dữ liệu giao dịch liên quan và public key.Sở hữu private key cho phép chủ sở hữu tạo chữ ký cần thiết, nhưng không cho phép bỏ qua các điều kiện script khác.Bitcoin cũng sử dụng chữ ký Schnorr trên secp256k1 cho quy tắc chi tiêu liên quan đến Taproot.Đặc tả BIP-340 quy định định dạng chữ ký Schnorr cố định 64 byte và mã hóa public key 32 byte cho mục đích này.
Chữ ký Schnorr
Chữ ký Schnorr là một cấu trúc chữ ký số khác có thể hoạt động trên nhóm đường cong elliptic.Tính tuyến tính toán học khiến chữ ký này hữu ích cho tổng hợp khóa, giao thức đa chữ ký và các cấu trúc nâng cao khác.Nhiều người ký có thể dùng giao thức được thiết kế cẩn thận để tạo một public key tổng hợp và một chữ ký trông như thông thường.Cách này có thể giảm dữ liệu blockchain và cải thiện quyền riêng tư so với việc công bố từng public key và chữ ký riêng.Tổng hợp an toàn cần giao thức xác định để ngăn tấn công rogue-key, tấn công nonce và hành vi độc hại của người tham gia.Chỉ cộng public key hoặc giá trị chữ ký mà không theo một lược đồ đã được rà soát là không an toàn.Ethereum và ECC
Tài khoản thực thi Ethereum dùng ECDSA trên secp256k1 cho chữ ký giao dịch thông thường.Địa chỉ tài khoản do bên ngoài sở hữu được tạo từ public key.Chữ ký cho phép mạng khôi phục hoặc xác minh public key liên quan đến người gửi và xác nhận giao dịch đã được ủy quyền.Tài liệu hiện hành của Ethereum về khóa Proof of Stake giải thích khóa tài khoản lớp thực thi vẫn là khóa đường cong elliptic, trong khi validator dùng hệ thống khóa riêng.
Nhiệm vụ validator Ethereum sử dụng chữ ký BLS trên đường cong BLS12-381.Vì vậy, khóa thực thi và khóa ký đồng thuận của validator có mục đích khác nhau và dùng lược đồ mật mã khác nhau.Chữ ký ECDSA có thể khôi phục public key
Một số hệ thống tiền mã hóa đính kèm thông tin khôi phục trong chữ ký ECDSA.Thông tin này cho phép phần mềm xác định public key dự kiến từ thông điệp và chữ ký mà không cần truyền riêng public key đầy đủ.Chữ ký Ethereum theo truyền thống biểu diễn thông tin này qua các giá trị thường được mô tả là
Tiêu chuẩn chữ ký gọn ERC-2098 mô tả cách biểu diễn chữ ký secp256k1 gọn, tận dụng hiệu quả thông tin chẵn lẻ.
Khôi phục public key là tính năng của định dạng chữ ký, không làm lộ private key.EdDSA là gì?
EdDSA là viết tắt của Edwards-Curve Digital Signature Algorithm (Thuật toán chữ ký số đường cong Edwards).Đây là một họ chữ ký số được thiết kế dựa trên đường cong Edwards xoắn.EdDSA hướng đến triển khai hiệu quả, ký xác định và chống một số lỗi triển khai phổ biến.Ed25519 là biến thể EdDSA được dùng rộng rãi, dựa trên toán học liên quan đến Curve25519.Đặc tả RFC 8032 quy định Ed25519 và các biến thể chữ ký đường cong Edwards liên quan.
Khóa và chữ ký Ed25519 không tương thích với khóa và chữ ký ECDSA secp256k1.Solana và Ed25519
Giao dịch Solana dùng chữ ký Ed25519 cho các tài khoản cần ký.Mỗi người ký giao dịch cung cấp chữ ký Ed25519 dài 64 byte trên thông điệp giao dịch đã được tuần tự hóa.Tài liệu giao dịch hiện hành của Solana giải thích cấu trúc chữ ký và yêu cầu người ký.
Solana cũng cung cấp chương trình xác minh biên dịch sẵn cho chữ ký Ed25519, secp256k1 và secp256r1 trong các lệnh dành riêng cho ứng dụng.Hỗ trợ nhiều lược đồ xác minh không có nghĩa public key hoặc chữ ký của chúng có thể thay thế lẫn nhau.ECDH là gì?
ECDH là viết tắt của Elliptic Curve Diffie-Hellman.Đây là phương pháp thỏa thuận khóa, không phải thuật toán ký giao dịch.Hai bên kết hợp private key của mình với public key của bên kia để tính cùng một bí mật chung.Nếu kẻ nghe lén chỉ thấy public key, họ không thể tính bí mật đó theo giả định ECDLP.Thông thường, giá trị chung được đưa qua hàm dẫn xuất khóa trước khi dùng để mã hóa hoặc xác thực.ECDH tự nó không xác thực danh tính các bên, vì vậy sử dụng không xác thực có thể dễ bị tấn công trung gian.X25519
X25519 là hàm Diffie-Hellman đường cong elliptic được dùng rộng rãi, dựa trên dạng Montgomery của Curve25519.Hàm này được thiết kế để thiết lập bí mật chung hiệu quả và triển khai đơn giản.Đặc tả RFC 7748 quy định X25519 và X448.
X25519 được dùng để thỏa thuận khóa, không phải chữ ký giao dịch tiền mã hóa thông thường.Dù X25519 và Ed25519 dùng các trường nền tảng có liên quan, khóa của chúng mang ý nghĩa khác nhau và không nên tùy tiện chuyển đổi.Chữ ký BLS và đường cong hỗ trợ pairing
Chữ ký BLS là chữ ký đường cong elliptic sử dụng pairing song tuyến tính.Chữ ký này hỗ trợ tổng hợp hiệu quả nhiều chữ ký và public key theo các quy tắc được xác định cẩn thận.Ethereum Proof of Stake dùng chữ ký BLS trên BLS12-381 cho đề xuất và chứng thực của validator.Việc tổng hợp cho phép biểu diễn gọn hơn nhiều phiếu validator so với công bố chữ ký riêng của từng validator.Tiêu chuẩn phân cấp tài khoản xác định BLS12-381 ghi lại cách sử dụng khóa BLS trong hạ tầng validator Ethereum.
BLS12-381 khác secp256k1 và Ed25519 về cấu trúc đường cong, thuật toán chữ ký, dẫn xuất khóa và yêu cầu bảo mật.Các đường cong elliptic không thể thay thế lẫn nhau
Đường cong elliptic có thể khác nhau về phương trình, trường, điểm sinh, cấp nhóm, cofactor, cách mã hóa và giả định bảo mật.secp256k1, P-256, Ed25519 và BLS12-381 là các hệ thống mật mã riêng biệt.Giá trị 32 byte hợp lệ làm một loại public key có thể không hợp lệ hoặc không an toàn khi được hiểu theo lược đồ khác.Nhà phát triển phải xác định đồng bộ đường cong, thuật toán chữ ký, quy tắc băm, tuần tự hóa và phân tách miền.Chỉ dùng nhãn chung như ECC không đủ để hai ứng dụng có thể tương tác với nhau.Kích thước khóa ECC và mức bảo mật
Đường cong elliptic trường nguyên tố 256-bit an toàn thường tương ứng khoảng 128 bit bảo mật cổ điển trước các tấn công logarit rời rạc tổng quát.Điều này không có nghĩa kẻ tấn công có xác suất 1/128 đoán đúng khóa.Đây là ước tính khối lượng công việc tương đương khoảng
Public key nén
Một điểm trên đường cong elliptic trường nguyên tố thường có tọa độ
Với nhiều đường cong, phương trình đường cong tạo ra hai giá trị
Do đó, public key nén có thể lưu tọa độ
Tính biến đổi chữ ký
Tính biến đổi chữ ký xảy ra khi có thể chuyển một chữ ký hợp lệ thành chữ ký hợp lệ khác cho cùng thông điệp và public key.ECDSA cơ bản có tính đối xứng toán học có thể tạo ra các giá trị
Giao thức tiền mã hóa có thể giảm vấn đề này bằng cách yêu cầu dạng low-
Tạo khóa và entropy
Độ mạnh toán học của ECC không thể bảo vệ private key được tạo từ thông tin có thể dự đoán.Ví phải dùng bộ sinh số ngẫu nhiên an toàn về mật mã hoặc quy trình dẫn xuất xác định được phê duyệt, khởi tạo bằng đủ entropy.Tên, ngày sinh, câu trích dẫn, mật khẩu ngắn và mẫu số do người dùng tự chọn không phải private key an toàn.Khóa do bộ sinh số ngẫu nhiên phần cứng bị lỗi tạo ra vẫn có thể bị đoán, dù có đúng độ dài dự kiến.Ví nên kết hợp nguồn entropy đã được rà soát, kiểm tra phạm vi và bảo vệ môi trường tạo seed.Người dùng không nên tạo private key bằng hàm bảng tính thông thường hoặc hàm random không dành cho mật mã trong ngôn ngữ lập trình.Ví xác định phân cấp
Ví xác định phân cấp tạo nhiều khóa liên quan từ một seed chính.Nhờ đó, người dùng chỉ cần sao lưu một seed nhưng vẫn tạo được địa chỉ riêng cho các giao dịch hoặc tài khoản khác nhau.Hệ thống dẫn xuất dùng hàm mật mã và phép toán đường cong elliptic theo tiêu chuẩn xác định.Một số đường dẫn dẫn xuất cho phép tạo public key con từ extended public key mà không làm lộ private key.Trong một số hệ thống dẫn xuất không tăng cường, kết hợp sai extended public key với private key con bị lộ có thể gây nguy hiểm.Nhà phát triển và người dùng ví nên tuân thủ chính xác tiêu chuẩn dẫn xuất thay vì tự thiết kế cây khóa không chính thức.Ví phần cứng và ECC
Ví phần cứng có thể lưu private key ECC và thực hiện phép tính chữ ký bên trong thiết bị chuyên dụng.Máy tính kết nối nhận public key hoặc chữ ký mà thông thường không nhận private key.Điều này giảm mức độ phơi nhiễm trước malware trên máy tính phổ thông.Thiết bị vẫn cần hiển thị đủ thông tin giao dịch để người dùng nhận biết địa chỉ nhận hoặc lệnh gọi contract độc hại.Secure element hoặc bộ xử lý cô lập không thể bảo vệ người dùng nếu họ phê duyệt dữ liệu giao dịch gây hiểu lầm.Cụm từ khôi phục vẫn rất quan trọng vì có thể tạo lại khóa ECC trên thiết bị khác.Đa chữ ký và ECC ngưỡng
Hệ thống đa chữ ký yêu cầu nhiều khóa cùng ủy quyền thay vì chỉ một khóa.Script blockchain có thể xác minh nhiều chữ ký ECC độc lập.Ngoài ra, giao thức tổng hợp mật mã hoặc ngưỡng có thể cho phép nhiều người cùng tạo một chữ ký.Đặc tả MuSig2 quy định phương pháp đa chữ ký tương tác tương thích với khóa và chữ ký BIP-340.
Hệ thống ngưỡng cần tạo nonce cẩn thận, xác định người tham gia, xác thực transcript và chống người ký độc hại.Giao thức ngưỡng tự thiết kế có thể làm lộ private key nhóm ngay cả khi đường cong nền tảng an toàn.Tấn công kênh kề
Tấn công kênh kề khai thác hành vi vật lý hoặc vận hành của cách triển khai mật mã để tìm bí mật.Tín hiệu có thể gồm thời gian thực thi, mức tiêu thụ điện, phát xạ điện từ, hành vi cache, truy cập bộ nhớ và phản hồi khi xảy ra lỗi.Thuật toán an toàn về toán học vẫn có thể thất bại nếu cách triển khai thực hiện thao tác khác nhau tùy theo bit của khóa bí mật.Lập trình thời gian hằng cố gắng ngăn chênh lệch thực thi có thể quan sát phụ thuộc vào dữ liệu bí mật.Ví phần cứng và máy chủ ký cũng có thể cần che chắn vật lý, phát hiện lỗi, bộ nhớ an toàn và giới hạn tốc độ.Nhà phát triển nên dùng thư viện được thiết kế và rà soát để chống rò rỉ qua kênh kề.Tấn công đường cong không hợp lệ và nhóm con
Kẻ tấn công có thể cung cấp điểm sai định dạng hoặc thuộc nhóm không được mong đợi.Nếu phần mềm thực hiện thao tác dùng khóa bí mật trên điểm đó mà không xác thực, phản hồi có thể làm lộ thông tin private key.Tấn công nhóm con nhỏ có thể buộc phép tính diễn ra trong nhóm chỉ có số lượng kết quả khả dĩ hạn chế.Cách triển khai an toàn áp dụng quy tắc xác thực và cofactor mà đường cong và giao thức đã chọn yêu cầu.Một số thiết kế đường cong hiện đại đơn giản hóa một phần quy trình này, nhưng nhà phát triển vẫn phải tuân thủ quy tắc giải mã được chỉ định.Tấn công gây lỗi
Tấn công gây lỗi cố ý tạo lỗi trong quá trình tính toán mật mã.Kẻ tấn công có thể điều chỉnh điện áp, thời gian xung nhịp, nhiệt độ, bộ nhớ hoặc luồng tính toán.So sánh chữ ký chính xác với chữ ký bị lỗi đôi khi có thể làm lộ private key.Thiết bị ký bảo mật cao có thể tự xác minh chữ ký đã tính trước khi trả kết quả.Thiết bị cũng có thể dùng tính dư thừa, cảm biến phát hiện lỗi, phần cứng tăng cường bảo vệ và giới hạn thông tin lỗi trả về.Vì sao nhà phát triển nên dùng thư viện đã được rà soát?
Rất khó triển khai số học đường cong elliptic một cách an toàn.Nhà phát triển có thể tạo mã vượt qua kiểm thử thông thường nhưng vẫn dễ bị tấn công thời gian, điểm không hợp lệ, nonce thiên lệch, phép rút gọn modulo sai hoặc trường hợp biên.Thư viện đã được rà soát cung cấp phép tính tối ưu, bộ vector kiểm thử, tuần tự hóa tiêu chuẩn và tăng cường bảo mật.Nhà phát triển nên dùng thư viện hỗ trợ chính xác đường cong và giao thức mà blockchain yêu cầu.Cần xác minh phiên bản thư viện, tùy chọn biên dịch, hành vi nền tảng và tính toàn vẹn dependency.Sao chép một đoạn mã ECC ngắn từ bài viết hoặc ví dụ mã là không an toàn khi quản lý tài sản tiền mã hóa production.Phân tách miền
Phân tách miền đảm bảo chữ ký hoặc hash tạo cho một mục đích không thể tự động được dùng lại cho mục đích khác.Giao thức có thể thêm mã định danh mạng, tên ứng dụng, loại thông điệp, địa chỉ contract, phiên bản hoặc ngữ cảnh khác trước khi ký.Nếu không phân tách miền, thông điệp được ký như yêu cầu đăng nhập vô hại có thể bị diễn giải ở nơi khác thành ủy quyền tài chính.Ví tiền mã hóa nên hiển thị miền ký và phân biệt rõ giao dịch với thông điệp thông thường.Nhà phát triển phải tuân thủ chính xác quy tắc mã hóa thông điệp và phân tách miền của blockchain đích.Dùng lại private key
Dùng cùng một private key trên các mạng hoặc ứng dụng không liên quan làm tăng rủi ro.Cách triển khai chữ ký yếu ở một ứng dụng có thể làm lộ khóa kiểm soát tài sản trong ứng dụng khác.Các hệ thống khác nhau có thể băm, mã hóa hoặc xác thực thông điệp theo cách không tương thích.Dùng lại khóa giữa các ứng dụng cũng khiến hoạt động người dùng dễ bị liên kết hơn.Khóa riêng biệt giảm tác động khi một thiết bị, thư viện hoặc giao thức ký bị xâm phạm.Người dùng ví nên tránh nhập seed có giá trị cao vào các ứng dụng không cần thiết.ECC và smart contract
Smart contract có thể xác minh chữ ký đường cong elliptic nếu blockchain cung cấp thao tác phù hợp.Ethereum hỗ trợ khôi phục người ký secp256k1 bằng precompile
ECC và bằng chứng không tiết lộ thông tin
Đường cong elliptic cũng được dùng trong nhiều hệ thống bằng chứng không tiết lộ thông tin.Đường cong hỗ trợ pairing có thể tạo bằng chứng gọn và xác minh hiệu quả.Điểm đường cong có thể biểu diễn commitment, thành phần bằng chứng hoặc khóa xác minh.Yêu cầu bảo mật của hệ thống chứng minh có thể khác hệ thống chữ ký giao dịch.Đường cong phù hợp với chữ ký thông thường không tự động hiệu quả hoặc an toàn cho bằng chứng dựa trên pairing.Cần đánh giá riêng giả định thiết lập tin cậy, thiết kế circuit, khả năng tương thích trường, kiểm tra nhóm con và tính đúng đắn của hệ thống chứng minh.Lợi ích của ECC trong tiền mã hóa
ECC cung cấp bảo mật khóa công khai mạnh trước máy tính cổ điển với khóa và chữ ký tương đối nhỏ gọn.ECC cho phép người dùng ủy quyền giao dịch mà không tiết lộ private key.ECC hỗ trợ người tham gia mạng phi tập trung xác minh hiệu quả.ECC hỗ trợ thỏa thuận khóa, chữ ký tổng hợp, ký ngưỡng, commitment và thao tác bằng chứng không tiết lộ thông tin.Có nhiều đường cong được nghiên cứu kỹ và thuật toán tiêu chuẩn cho các ứng dụng khác nhau.Hiệu quả của ECC khiến công nghệ này trở thành nền tảng của ví tiền mã hóa và hệ thống đồng thuận hiện đại.Hạn chế của ECC
ECC nhạy cảm với lỗi triển khai, số ngẫu nhiên yếu, nonce bị dùng lại và rò rỉ kênh kề.Các đường cong và lược đồ chữ ký khác nhau không tự động tương thích.Bản thân ECC không mã hóa giao dịch blockchain công khai thông thường.ECC không thể ngăn người dùng phê duyệt giao dịch độc hại hoặc làm lộ cụm từ khôi phục.Giả định bảo mật của ECC bị đe dọa bởi máy tính lượng tử đủ mạnh.Chuyển blockchain đang hoạt động sang hệ chữ ký khác có thể đòi hỏi thay đổi ví, địa chỉ, phần cứng, định dạng giao dịch, smart contract và phần mềm đồng thuận.Điện toán lượng tử và ECC
Máy tính lượng tử chịu lỗi đủ mạnh có thể dùng thuật toán Shor để giải logarit rời rạc trên đường cong elliptic một cách hiệu quả.Điều này cho phép kẻ tấn công tính private key từ public key đã lộ.Hiện chưa có máy tính lượng tử công khai nào thực hiện được cuộc tấn công này ở quy mô thực tiễn trên đường cong tiền mã hóa đầy đủ.Tuy nhiên, hệ thống blockchain tồn tại lâu dài cần lên kế hoạch trước khi phần cứng như vậy xuất hiện.Hướng dẫn bảo mật hậu lượng tử hiện tại của Ethereum xác định ECDSA, chữ ký BLS và commitment đường cong elliptic là những thành phần cần chuyển đổi trong tương lai.
Người dùng nên theo dõi hướng dẫn giao thức chính thức thay vì hoảng sợ trước tuyên bố không có căn cứ rằng ECC đã bị phá.Mật mã hậu lượng tử
Mật mã hậu lượng tử sử dụng các bài toán toán học được cho là có khả năng chống lại cả máy tính cổ điển lẫn máy tính lượng tử lớn.Tháng 8 năm 2024, NIST hoàn tất FIPS 203 cho ML-KEM, FIPS 204 cho ML-DSA và FIPS 205 cho SLH-DSA.Thông báo tiêu chuẩn hậu lượng tử của NIST khuyến nghị bắt đầu lập kế hoạch chuyển đổi.
ML-KEM thiết lập bí mật chung, còn ML-DSA và SLH-DSA cung cấp chữ ký số.Nhìn chung, các lược đồ này có khóa hoặc chữ ký lớn hơn hệ ECC thường dùng.Việc chuyển đổi blockchain phải cân bằng bảo mật, kích thước giao dịch, chi phí xác minh, tương thích địa chỉ và khả năng khôi phục tài sản không hoạt động.Khả năng linh hoạt về mật mã
Khả năng linh hoạt về mật mã (crypto agility) là khả năng thay thế hoặc kết hợp thuật toán mật mã mà không phải xây dựng lại toàn bộ hệ thống.Ví có khả năng linh hoạt về mật mã có thể xác định lược đồ chữ ký nào bảo vệ tài khoản và hỗ trợ phương án di chuyển trong tương lai.Trong giai đoạn chuyển tiếp, giao thức có thể dùng chữ ký lai, yêu cầu cả chữ ký ECC hiện tại lẫn chữ ký hậu lượng tử.Tài khoản thông minh đôi khi có thể hỗ trợ nâng cấp thuật toán linh hoạt hơn tài khoản có quy tắc chữ ký cố định trực tiếp ở giao thức nền tảng.Cần thiết kế crypto agility cẩn thận vì quy trình di chuyển hoặc hạ cấp không an toàn có thể làm suy yếu toàn bộ hệ thống.Cách nhà phát triển sử dụng ECC an toàn
Nhà phát triển nên chọn đúng đường cong và thuật toán mà blockchain hoặc tiêu chuẩn đích yêu cầu.Nên dùng thư viện mật mã được duy trì, có lịch sử rà soát rõ ràng.Private key và nonce chữ ký phải được tạo bằng quy trình an toàn.Cách triển khai cần xác thực public key, điểm đường cong, thành viên nhóm con, phạm vi chữ ký và mã hóa chuẩn tắc.Các thao tác phụ thuộc dữ liệu bí mật cần sử dụng kỹ thuật thời gian hằng.Giao thức cần có quy tắc rõ ràng về mã hóa thông điệp, nhận diện chain, ngữ cảnh ứng dụng, quản lý nonce và chống phát lại.Bài kiểm thử cần gồm vector chính thức, điểm sai định dạng, chữ ký không hợp lệ, giá trị biên, lỗi nonce và thử phát lại giữa các mạng.Hệ thống giá trị cao cần được đánh giá độc lập về mật mã và cách triển khai.Cách người dùng crypto bảo vệ khóa ECC
Người dùng nên tạo ví bằng phần mềm hoặc phần cứng uy tín có entropy an toàn.Không bao giờ nhập cụm từ khôi phục hoặc private key vào trang web, tin nhắn hay biểu mẫu hỗ trợ.Cần xác minh chi tiết quan trọng của giao dịch trên màn hình đáng tin cậy trước khi ký.Có thể bảo vệ tài sản giá trị cao bằng cách cô lập phần cứng, chính sách đa chữ ký, giới hạn chi tiêu hoặc phân tầng lưu trữ.Tránh nhập một seed phrase vào nhiều ứng dụng.Nên kiểm tra bản sao lưu mà không để lộ bí mật cho thiết bị không đáng tin cậy.Cập nhật ví và giao thức phải lấy từ kênh chính thức đã xác minh.Ví dụ giao dịch tiền mã hóa được ký bằng ECC
Giả sử Alice kiểm soát tài khoản tiền mã hóa bằng private key ECC.Ví của Alice tạo giao dịch gửi token đến địa chỉ của Bob.Ví tuần tự hóa giao dịch theo đúng quy tắc ký của blockchain.Ví băm hoặc xử lý thông điệp đã tuần tự hóa theo yêu cầu của lược đồ chữ ký.Ví tạo chữ ký bằng private key của Alice và nonce ký an toàn hoặc quy trình ký xác định.Giao dịch và chữ ký được phát tán lên mạng.Mỗi node xác thực lấy hoặc khôi phục public key của Alice rồi xác minh chữ ký.Node cũng kiểm tra số dư, nonce, phí và mọi quy tắc đồng thuận khác của Alice.Chữ ký ECC hợp lệ chứng minh khóa cần thiết đã ủy quyền, nhưng không thay thế các bước kiểm tra tính hợp lệ giao dịch khác.Lỗi thường gặp khi dùng ECC
Một lỗi phổ biến là cho rằng ECC mã hóa mọi giao dịch tiền mã hóa.Lỗi khác là xem public key giống địa chỉ ví.Lỗi thứ ba là dùng lại nonce ký ECDSA.Lỗi thứ tư là tạo private key bằng hàm số ngẫu nhiên thông thường.Lỗi thứ năm là chấp nhận điểm public key chưa xác thực do kẻ tấn công cung cấp.Lỗi thứ sáu là cho rằng mọi đường cong elliptic 256-bit đều có thể thay thế lẫn nhau.Lỗi thứ bảy là tự viết phép tính đường cong để quản lý tài sản production mà không có chuyên gia rà soát.Lỗi thứ tám là dùng lại một private key trên các ứng dụng và mạng không liên quan.Lỗi thứ chín là tin rằng chữ ký hợp lệ chứng minh giao dịch an toàn về tài chính.Lỗi thứ mười là cho rằng ECC sẽ luôn an toàn trước mọi máy tính lượng tử trong tương lai mà không cần kế hoạch chuyển đổi.FAQ
ECC có nghĩa là gì trong tiền mã hóa?
ECC là Mật mã đường cong elliptic, một họ phương pháp khóa công khai dùng cho khóa, chữ ký, thỏa thuận khóa và các chứng minh nâng cao trong tiền mã hóa.Ứng dụng chính của ECC trong crypto là gì?
Ứng dụng chính là tạo và xác minh chữ ký số để ủy quyền giao dịch blockchain.ECC có mã hóa giao dịch tiền mã hóa không?
Thông thường là không, vì phần lớn giao dịch blockchain công khai được ký và có thể đọc công khai, chứ không được mã hóa.Private key ECC là gì?
Đó là vô hướng bí mật dùng để tạo public key và ủy quyền chữ ký.Public key ECC là gì?
Đó là điểm trên đường cong được suy ra về mặt toán học từ private key và dùng để xác minh chữ ký.Public key có thể làm lộ private key không?
Không thể bằng năng lực tính toán cổ điển thực tiễn nếu dùng đường cong an toàn và triển khai đúng.Bài toán logarit rời rạc trên đường cong elliptic là gì?
Đây là bài toán khó khôi phục vô hướng riêng tư từ điểm sinh và điểm công khai thu được.ECDSA là gì?
ECDSA là thuật toán chữ ký số đường cong elliptic được dùng rộng rãi để ủy quyền giao dịch tiền mã hóa.secp256k1 là gì?
secp256k1 là đường cong elliptic 256-bit được tiêu chuẩn hóa, dùng bởi Bitcoin, tài khoản thực thi Ethereum và một số hệ thống crypto khác.Bitcoin có dùng ECC không?
Có. Bitcoin dùng secp256k1 với ECDSA và dùng chữ ký Schnorr secp256k1 cho hoạt động chi tiêu Taproot.Ethereum có dùng ECC không?
Có. Tài khoản thực thi Ethereum dùng ECDSA secp256k1, còn validator Proof of Stake dùng chữ ký BLS trên BLS12-381.Solana có dùng ECC không?
Có. Người ký giao dịch Solana dùng chữ ký Ed25519.Ed25519 là gì?
Ed25519 là lược đồ chữ ký EdDSA sử dụng toán học đường cong Edwards liên quan đến Curve25519.Chữ ký Schnorr là gì?
Đây là cấu trúc chữ ký có tính tuyến tính và khả năng tổng hợp hữu ích khi được triển khai bằng giao thức an toàn.ECDH là gì?
ECDH là phương pháp thỏa thuận khóa đường cong elliptic cho phép hai bên tính bí mật chung.Public key nén là gì?
Đây là cách mã hóa gọn điểm trên đường cong, lưu một tọa độ cùng đủ thông tin để khôi phục tọa độ còn lại.Vì sao ECDSA cần nonce duy nhất?
Dùng lại hoặc để lộ nonce có thể giúp kẻ tấn công tính private key.Có thể đoán private key không?
Khóa được tạo an toàn có không gian tìm kiếm cực lớn, nhưng khóa do con người tạo yếu hoặc ngẫu nhiên kém có thể bị đoán.Mọi đường cong ECC có độ an toàn như nhau không?
Không. Bảo mật phụ thuộc vào tham số đường cong, thiết kế thuật toán, kích thước khóa, cách triển khai, xác thực và các tấn công toán học đã biết.Có thể sao chép chữ ký ECC không?
Có thể sao chép chữ ký dưới dạng dữ liệu, nhưng cơ chế chống phát lại và ràng buộc thông điệp quyết định chữ ký có thể ủy quyền thao tác khác hay không.Chữ ký hợp lệ có đảm bảo giao dịch an toàn không?
Không. Chữ ký chứng minh khóa đã ủy quyền nhưng không chứng minh địa chỉ nhận, contract, giá hoặc quyết định tài chính là an toàn.Ví phần cứng có thể bảo vệ khóa ECC không?
Ví phần cứng có thể cô lập khóa và thao tác ký, nhưng người dùng vẫn phải xác minh chi tiết giao dịch và bảo vệ bản sao lưu khôi phục.Ví đa chữ ký có thể dùng ECC không?
Có. Ví có thể xác minh nhiều chữ ký ECC hoặc dùng giao thức tổng hợp và chữ ký ngưỡng đã được rà soát.Máy tính lượng tử có thể phá ECC không?
Máy tính lượng tử chịu lỗi đủ mạnh có thể phá ECC bằng thuật toán Shor, nhưng hiện chưa có máy công khai nào làm được điều đó ở quy mô tiền mã hóa.Công nghệ nào sẽ thay thế ECC?
Hệ thống tương lai có thể dùng lược đồ chữ ký hậu lượng tử dựa trên lattice, hash hoặc phương pháp khác đã được tiêu chuẩn hóa, đôi khi kết hợp ECC trong giai đoạn chuyển đổi.ECC hiện nay có an toàn không?
ECC được chọn và triển khai đúng vẫn an toàn trước các tấn công cổ điển thực tiễn đã biết, trong khi hệ thống dài hạn nên chuẩn bị chuyển đổi hậu lượng tử.Kết luận
Mật mã đường cong elliptic là một trong những công nghệ cốt lõi bảo vệ quyền sở hữu và quyền ủy quyền giao dịch tiền mã hóa.Công nghệ này tạo quan hệ toán học một chiều giữa private key bí mật và public key có thể chia sẻ.Lược đồ chữ ký số sử dụng mối quan hệ đó để chứng minh quyền ủy quyền mà không làm lộ private key.Bitcoin dùng secp256k1 với chữ ký ECDSA và Schnorr; Ethereum dùng secp256k1 cho tài khoản thực thi và BLS12-381 cho validator; Solana dùng Ed25519 để ký giao dịch.ECC cũng hỗ trợ thỏa thuận khóa, giao thức đa chữ ký, ký ngưỡng, commitment và hệ thống bằng chứng không tiết lộ thông tin.Bảo mật ECC không chỉ phụ thuộc vào toán học của đường cong.Số ngẫu nhiên an toàn, nonce ký duy nhất, xác thực public key, triển khai thời gian hằng, phân tách miền, lưu khóa an toàn và thư viện đã được rà soát đều thiết yếu.Chữ ký ECC hợp lệ chứng minh khóa cần thiết đã ủy quyền dữ liệu cụ thể, nhưng không mã hóa giao dịch công khai hoặc đảm bảo hành động đó an toàn về tài chính.Nếu được triển khai đúng, ECC vẫn an toàn trước các tấn công cổ điển thực tiễn đã biết, nhưng máy tính lượng tử đủ mạnh sẽ đe dọa nền tảng logarit rời rạc của công nghệ này.Vì vậy, nhà phát triển tiền mã hóa cần bảo vệ khóa hiện tại đồng thời thiết kế lộ trình chuyển đổi đáng tin cậy sang mật mã hậu lượng tử.Có thể bạn cũng thích
WhatsMiner M30S++
Tên miền Web3
Dự án Web3
HOT
Tiền mã hoá thịnh hành hiện nay đang thu hút sự chú ý đáng kể của thị trường
TOP KL
Tiền mã hoá có khối lượng giao dịch cao nhất
Mới được thêm vào
Tiền mã hoá được niêm yết gần đây có thể giao dịch

