Nghiên cứu tấn công lược đồ ký số ECDSA và giá trị nonce

Tài liệu nghiên cứu Nghiên cứu tấn công lược đồ ký số ecdsa liên quan bộ tạo số ngẫu nhiên, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về .

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2023

63
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

MỤC LỤC

CÁC KÝ HIỆU, CHỮ VIẾT TẮT

DANH MỤC HÌNH VẼ

LỜI MỞ ĐẦU

1. CHƯƠNG 1: TỔNG QUAN VỀ CHỮ KÝ SỐ

1.1. Khái niệm

1.2. Một số lược đồ ký số phổ biến hiện nay

1.2.1. Lược đồ chữ ký số RSA

1.2.2. Lược đồ chữ ký số Elgamal

1.3. Vai trò, ứng dụng của chữ ký số

1.4. Kết luận chương 1

2. CHƯƠNG 2: NGHIÊN CỨU MỘT SỐ TẤN CÔNG LÊN ECDSA SECP256K1 LIÊN QUAN GIÁ TRỊ NONCE

2.1. Lược đồ ký số ECDSA SECP256K1

2.2. Các tham số miền của ECDSA SECP256K1

2.3. Thuật toán tạo khóa

2.4. Thuật toán kiểm tra

2.5. Nhận xét độ an toàn của lược đồ ECDSA

2.6. Tấn công lược đồ ký số ECDSA SECP256K1 liên quan giá trị Nonce

2.7. Tấn công tìm khóa riêng ECDSA SECP256K1 từ rò rỉ giá trị Nonce

2.8. Tấn công tìm khóa riêng ECDSA SECP256K1 với giá trị Nonce tương tự đã dùng

2.9. Biện pháp phòng chống

2.10. Ứng dụng của ECDSA SECP256K1 trong Blockchain

2.11. Ký và xác minh giao dịch trong Blockchain

2.12. Địa chỉ và dẫn xuất địa chỉ trong blockchain

2.13. Kết luận chương 2

3. CHƯƠNG 3: THỰC THI MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN GIÁ TRỊ NONCE TRONG ECDSA SECP256K1

3.1. Cài đặt ECDSA SECP256K1

3.2. Một số lưu đồ giải thuật chính trong chương trình

3.3. Cài đặt và thử nghiệm chương trình

3.4. Thực thi tấn công

3.4.1. Tấn công tìm khóa riêng khi sử dụng lại nonce bởi cùng một người dùng

3.4.2. Tấn công tìm khóa riêng khi sử dụng lại nonce bởi hai người dùng

3.5. Cài đặt giải pháp và đánh giá

3.6. Kết luận chương 3

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về tấn công ECDSA và giá trị nonce trong bảo mật

Chữ ký số ECDSA (Elliptic Curve Digital Signature Algorithm) là một trong những phương pháp bảo mật phổ biến hiện nay. Tuy nhiên, việc sử dụng giá trị nonce không đúng cách có thể dẫn đến các tấn công nghiêm trọng. Nghiên cứu này sẽ phân tích các khía cạnh quan trọng của ECDSA và vai trò của giá trị nonce trong bảo mật.

1.1. Khái niệm về ECDSA và giá trị nonce

ECDSA là một thuật toán chữ ký số dựa trên đường cong Elliptic. Giá trị nonce là một số ngẫu nhiên được sử dụng trong quá trình ký, đóng vai trò quan trọng trong việc đảm bảo tính an toàn của chữ ký.

1.2. Tầm quan trọng của giá trị nonce trong ECDSA

Giá trị nonce giúp ngăn chặn các tấn công lặp lại và bảo vệ khóa riêng. Việc sử dụng giá trị nonce không đúng cách có thể dẫn đến việc rò rỉ khóa riêng, gây ra các mối đe dọa nghiêm trọng cho hệ thống.

II. Các thách thức trong bảo mật ECDSA liên quan đến giá trị nonce

Mặc dù ECDSA được coi là an toàn, nhưng vẫn tồn tại nhiều thách thức liên quan đến việc sử dụng giá trị nonce. Các tấn công có thể xảy ra nếu giá trị nonce bị lặp lại hoặc bị rò rỉ.

2.1. Tấn công lặp lại nonce trong ECDSA

Tấn công lặp lại nonce xảy ra khi cùng một giá trị nonce được sử dụng cho nhiều chữ ký khác nhau. Điều này có thể dẫn đến việc rò rỉ khóa riêng và làm giảm tính bảo mật của hệ thống.

2.2. Tấn công từ rò rỉ giá trị nonce

Khi giá trị nonce bị rò rỉ, kẻ tấn công có thể sử dụng thông tin này để tính toán khóa riêng. Điều này cho thấy tầm quan trọng của việc bảo vệ giá trị nonce trong quá trình ký.

III. Phương pháp bảo vệ giá trị nonce trong ECDSA

Để bảo vệ giá trị nonce và tăng cường bảo mật cho ECDSA, cần áp dụng một số phương pháp hiệu quả. Những biện pháp này giúp ngăn chặn các tấn công và bảo vệ khóa riêng.

3.1. Sử dụng nonce ngẫu nhiên và duy nhất

Việc sử dụng giá trị nonce ngẫu nhiên và duy nhất cho mỗi chữ ký là rất quan trọng. Điều này giúp ngăn chặn các tấn công lặp lại và bảo vệ khóa riêng khỏi bị rò rỉ.

3.2. Kiểm tra tính an toàn của giá trị nonce

Cần thực hiện kiểm tra tính an toàn của giá trị nonce trước khi sử dụng. Điều này giúp đảm bảo rằng giá trị nonce không bị lặp lại hoặc bị rò rỉ trong quá trình ký.

IV. Ứng dụng thực tiễn của ECDSA trong bảo mật

ECDSA được ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là trong công nghệ Blockchain. Việc bảo vệ giá trị nonce là rất quan trọng để đảm bảo tính an toàn của các giao dịch.

4.1. Ký và xác minh giao dịch trong Blockchain

Trong Blockchain, ECDSA được sử dụng để ký và xác minh các giao dịch. Việc bảo vệ giá trị nonce giúp đảm bảo tính toàn vẹn và an toàn của các giao dịch này.

4.2. Vai trò của ECDSA trong bảo mật khóa công khai

ECDSA đóng vai trò quan trọng trong việc bảo vệ khóa công khai. Việc sử dụng giá trị nonce an toàn giúp ngăn chặn các tấn công vào hệ thống khóa công khai.

V. Kết luận và tương lai của nghiên cứu về ECDSA

Nghiên cứu về ECDSA và giá trị nonce là rất quan trọng trong bối cảnh bảo mật hiện nay. Cần tiếp tục nghiên cứu và phát triển các phương pháp bảo vệ giá trị nonce để đảm bảo an toàn cho các hệ thống sử dụng ECDSA.

5.1. Tóm tắt các phát hiện chính

Nghiên cứu đã chỉ ra rằng giá trị nonce đóng vai trò quan trọng trong bảo mật ECDSA. Việc bảo vệ giá trị nonce là cần thiết để ngăn chặn các tấn công và bảo vệ khóa riêng.

5.2. Đề xuất hướng nghiên cứu trong tương lai

Cần nghiên cứu thêm về các phương pháp bảo vệ giá trị nonce và phát triển các thuật toán mới để tăng cường bảo mật cho ECDSA trong tương lai.

15/07/2025
Nghiên cứu tấn công lược đồ ký số ecdsa liên quan bộ tạo số ngẫu nhiên

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ CHỮ KÝ SỐ 1. Khái niệm Chữ ký thông thường (chữ ký tay) đã có từ lâu đời và là một phần vật lý của tài liệu, là phương tiện để xác thực nguồn gốc và nội dung của tài liệu đó. Ngoài ra, chữ ký tay còn có khả năng chống chối bỏ, tức là người gửi sau khi đã ký vào tài liệu thì không thể chối bỏ chữ ký của mình và tài liệu sau khi được ký thì không thể thay đổi được nội dung. Chữ ký tay là đại diện duy nhất cho người ký, không ai khác có thể giả mạo được và dễ dàng được nhận ra khi nhìn thấy.

Việc kiểm tra tính xác thực của chữ ký tay cũng được thực hiện bằng những phương pháp đơn giản (so sánh chữ ký tay trên tài liệu với các chữ ký đã đăng ký trước của người ký) nhằm khẳng định chữ ký đúng là của người ký và nội dung của tài liệu không bị sửa đổi hoặc thêm bớt. Đối với tài liệu điện tử, chữ ký tay không còn đảm bảo được tính năng của nó. Do đó cần phải có một phương tiện mới để thay thế chữ ký tay. Chữ ký số (hay còn gọi là chữ ký điện tử) đã ra đời và được đưa vào sử dụng một cách hiệu quả.1[1]: Chữ ký số (Digital Signature) là một dãy số, là kết quả của phép biến đổi mật mã trên thông báo nhằm cung cấp một phương tiện để kiểm tra tính xác thực của nguồn gốc thông báo, tính toàn vẹn của thông báo và tính không thể chối bỏ của người ký.

Thông thường, chữ ký số được biểu diễn dưới dạng một dãy số nhị phân. Chữ ký số được tạo ra trên cơ sở sử dụng tập hợp các quy tắc và tập hợp các tham số để xác định danh tính người ký cũng như kiểm tra tính toàn vẹn của dữ liệu. Trong đó, phương tiện cơ bản để thực hiện chữ ký số là công nghệ thông tin. Mỗi chữ ký số được tạo và được kiểm tra tính xác thực thông qua các lược đồ chữ ký số.

Mỗi lược đồ chữ ký số bao gồm thuật toán ký 𝑆𝑖𝑔𝐾 và thuật toán kiểm tra 𝑉𝑒𝑟𝐾. Mỗi người có một cặp khóa bao gồm khóa riêng 𝐷𝐾 và khóa công khai 𝐸𝐾 , trong đó khóa công khai thường được công bố một cách công khai hoặc phân phối thông qua chứng thực khóa công khai, còn khóa riêng được giữ bí mật tuyệt 1 đối và không thể tìm ra khóa riêng từ khóa công khai. Người gửi sử dụng thuật toán ký 𝑆𝑖𝑔𝐾 và khóa riêng 𝐷𝐾 để tạo ra chữ ký số, người nhận sử dụng thuật toán kiểm tra 𝑉𝑒𝑟𝐾 và khóa công khai 𝐸𝐾 tương ứng để kiểm tra tính xác thực của thông báo và tính xác thực của chữ ký số do người gửi tạo ra. Trong quá trình tạo và kiểm tra chữ ký, thông báo được thu gọn nhờ áp dụng thuật toán băm an toàn.

Một người không biết khóa riêng của người đã ký thông báo thì không thể tạo ra được chữ ký số đó nên chữ ký số là không thể bị giả mạo. Khi sử dụng khóa công khai tương ứng của người ký, bất kỳ ai cũng có thể kiểm tra tính xác thực của chữ ký số trên thông báo đã được ký. Trong thực tế sử dụng, các thông báo thường có độ dài bất kỳ và nói chung là dài. Trong khi đó một lược đồ chữ ký số chỉ ký được các thông báo ngắn.

Để ký được các thông báo dài người ta phải chia thông báo ra thành nhiều phần ngắn và ký vào tất cả các phần này rồi gửi đi. Những hạn chế cơ bản của giải pháp này là: - Có quá nhiều chữ ký số cho một thông báo làm giãn tin quá mức. - Do quá trình ký một chữ ký số cần thực hiện các phép toán tốn thời gian do đó thời gian để ký thông báo là không thể chấp nhận được. Các nhà phát triển mong muốn như trong trường hợp chữ ký viết tay, chữ ký có độ dài ngắn và hạn chế cho dù thông báo có độ dài bằng bao nhiêu.

Vì chữ ký số được ký cho từng bit của thông báo, nếu muốn chữ ký có độ dài hạn chế trên thông báo có độ dài tùy ý thì ta phải tìm cách rút gọn độ dài thông báo. Nhưng bản thân thông báo không thể rút ngắn được, nên chỉ còn cách tìm cho mỗi thông báo một thông báo thu gọn có độ dài hạn chế và thay việc ký trên thông báo, ta ký trên thông báo thu gọn. Để giải quyết vấn đề này ta sử dụng hàm băm mật mã. Trong lược đồ chữ ký số, với đầu vào là thông báo có độ dài hữu hạn tùy ý, hàm băm sẽ biến đổi thông báo này thành một thông báo rút gọn và sau đó sẽ dùng thuật toán ký để ký lên thông báo rút gọn đó.

Cụ thể, khi người ký cần ký vào thông báo R anh ta ký trên bản tóm lược thông báo 𝑧 = ℎ(𝑅) như sau: 𝑦 = 𝑆𝑖𝑔𝐾 (𝑧) và truyền cặp (𝑅, 𝑦) lên kênh truyền thông. Quá trình kiểm tra được thực 2 hiện thông qua việc tính 𝑧 = ℎ(𝑅) dùng hàm băm công khai h và kiểm tra xem hàm 𝑉𝑒𝑟𝐾 (𝑧, 𝑦) có nhận giá trị “đúng” hay không. Cụ thể, quá trình tạo và kiểm tra chữ ký số được mô tả trong hình 1. Sơ đồ tạo và kiểm tra chữ ký số Quá trình tạo chữ ký số: Khi A cần gửi một thông báo cho B, A sử dụng thuật toán hàm băm để thu gọn thông báo ban đầu nhằm tạo ra bản tóm lược của thông báo.

Tiếp đến, A sử dụng thuật toán ký với đầu vào là bản tóm lược của thông báo và khóa riêng của A để tạo ra một chữ ký số. Sau đó chữ ký số và chứng chỉ cung cấp khóa công khai của A được gắn vào thông báo đã được ký rồi gửi cho B. Quá trình kiểm tra chữ ký số: B cũng sử dụng thuật toán hàm băm tương tự như của A để tạo bản tóm lược của thông báo đã nhận. B sử dụng khóa công khai được cung cấp để giải mã chữ ký và thu được một dãy bit, so sánh kết quả này với bản tóm lược vừa tạo.

Nếu kết quả là giống nhau thì thông báo trên chính là của A gửi cho B. 3 Trong trường hợp thông báo cần giữ bí mật thì A có thể mã hóa dữ liệu được ký trước khi gửi. Một lược đồ chữ ký số là bộ 5 (ℛ, 𝒜, 𝒦, 𝒮, 𝒱), trong đó: 1. ℛ là tập hữu hạn các thông báo có thể.

𝒜 là tập hữu hạn các chữ ký số có thể. 𝒦 không gian khóa là tập hữu hạn các khóa có thể. Với mỗi khóa 𝐾 ∈ 𝒦, tồn tại một thuật toán ký 𝑆𝑖𝑔𝐾 ∈ 𝒮 và một thuật toán kiểm tra chữ ký 𝑉𝑒𝑟𝐾 ∈ 𝒱. Mỗi thuật toán ký 𝑆𝑖𝑔𝐾 : 𝑅 → 𝒜 và thuật toán kiểm tra chữ ký 𝑉𝑒𝑟𝐾 : ℛ × 𝒜 →{đúng, sai} là những hàm thỏa mãn điều kiện dưới đây: đú𝑛𝑔, 𝑛ế𝑢 𝑦 = 𝑆𝑖𝑔𝐾 (𝑥) 𝑉𝑒𝑟𝐾 (𝑥, 𝑦) = { 𝑠𝑎𝑖, 𝑛ế𝑢 𝑦 ≠ 𝑆𝑖𝑔𝐾 (𝑥) với mọi thông báo 𝑥 ∈ ℛ và mọi chữ ký 𝑦 ∈ 𝐴.

Với mỗi khóa 𝐾 ∈ 𝒦, các hàm 𝑆𝑖𝑔𝐾 và 𝑉𝑒𝑟𝐾 là các hàm thời gian đa thức. 𝑉𝑒𝑟𝐾 sẽ là hàm công khai còn 𝑆𝑖𝑔𝐾 là hàm bí mật. Hàm 𝑆𝑖𝑔𝐾 là khó tính được nếu không biết khóa riêng 𝐾, điều này đảm bảo cho tính bí mật của chữ ký và chống việc giả mạo chữ ký. Nghĩa là cho trước thông báo x, chỉ có người có khóa riêng K mới có thể tính được chữ ký y để 𝑉𝑒𝑟𝐾 (𝑥, 𝑦) = đú𝑛𝑔.

Một số lược đồ ký số phổ biến hiện nay 1. Lược đồ chữ ký số RSA Lược đồ chữ ký RSA có độ phức tạp tính toán phụ thuộc vào việc giải quyết bài toán lũy thừa theo modulo các số rất lớn. Lược đồ chữ ký RSA được đề xuất năm 1977 bởi 3 nhà nghiên cứu Rivest, Shamir và Adleman, đây là lược đồ có ứng dụng thực tế rộng rãi nhất dựa trên công nghệ sử dụng khóa chung. Các phương pháp tấn công RSA đầu tiên (Multicative Property) và các vấn đề khác liên quan tới chữ ký RSA được đưa ra bởi Davia và Jonge và Chaum.

Bài toán xác thực bằng chữ ký số có thể xem là bài toán "đối ngẫu" với bài toán bảo mật bằng mật mã, do đó dùng ngược thuật toán lập mã RSA ta có thể được một lược đồ chữ ký RSA. Lược đồ chữ ký số RSA được xây dựng như sau: 4 Gửi ( R, S A ) cho B A B EB = (nB , eB ) Công bố EB DA = d A Công bố EA DB = d B E A = (n A , e A ) Lấy EA Ký: S A = R d A mod n A Kiểm tra: R = S AeA mod n A Hình 1.2: Sơ đồ hoạt động của lược đồ chữ ký số RSA Tạo khóa: Mỗi đầu mối trong mạng liên lạc cần tạo một cặp khóa: khóa công khai và khóa riêng bí mật: 1. Tạo 2 số nguyên tố lớn ngẫu nhiên và khác nhau 𝑝, 𝑞; trong đó 𝑝 và 𝑞 có độ lớn xấp xỉ nhau. Chọn một số nguyên ngẫu nhiên 𝑒, (0 < 𝑒 < 𝜙(𝑛)) sao cho 𝑔𝑐𝑑 (𝑒, 𝜙(𝑛)) = 1.

Tính 𝑑 = 𝑒 −1 𝑚𝑜𝑑 𝜙(𝑛) bằng cách dùng thuật toán Euclide mở rộng. Đặt 𝛼𝑅 = 𝐴 = 𝑍𝑛 , 𝐾 = {(𝑛, 𝑒, 𝑑): 𝑒𝑑 ≡ 1 𝑚𝑜𝑑 𝜙(𝑛)}ta có khóa công khai là 𝐸𝐾 = (𝑒, 𝑛), khóa riêng bí mật là 𝐷𝐾 = 𝑑. Tạo chữ ký số: Giả sử A phải tạo một chữ ký số để xác thực cho thông báo 𝑅 gửi cho B. Khi đó A làm như sau: 1.

Biểu diễn bản rõ 𝑅 dưới dạng một số nguyên trong đoạn [0, 𝑛 − 1]. Sử dụng thuật toán ký với khóa riêng của mình để tạo chữ ký số trên thông báo R: 𝑆 = 𝑆𝑖𝑔𝐷𝐾 (𝑅) = 𝑅𝑑 𝑚𝑜𝑑 𝑛. Gửi thông báo R kèm theo chữ ký số S cho B. Kiểm tra chữ ký: Với chữ ký S và thông báo R, B có thể kiểm tra chữ ký số S để xác thực thông báo R theo các bước sau: 1.

Nhận khóa công khai 𝐸𝐴 = (𝑒, 𝑛) của người ký A.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Nghiên cứu tấn công ECDSA và vai trò của giá trị nonce trong bảo mật" cung cấp cái nhìn sâu sắc về các lỗ hổng bảo mật trong thuật toán chữ ký số ECDSA, đặc biệt là tầm quan trọng của giá trị nonce trong việc bảo vệ thông tin. Bài viết phân tích các phương thức tấn công có thể xảy ra và cách mà giá trị nonce có thể ảnh hưởng đến tính an toàn của chữ ký số. Độc giả sẽ hiểu rõ hơn về cách thức hoạt động của ECDSA và những biện pháp cần thiết để tăng cường bảo mật cho các ứng dụng sử dụng chữ ký số.

Để mở rộng kiến thức của bạn về lĩnh vực này, bạn có thể tham khảo thêm tài liệu Nghiên cứu các lược đồ chữ ký số xeddsa và vxeddsa, nơi bạn sẽ tìm thấy thông tin về các lược đồ chữ ký số khác và sự phát triển của chúng. Ngoài ra, tài liệu Luận văn nghiên cứu độ an toàn của sơ đồ chữ ký số sẽ giúp bạn hiểu rõ hơn về các yếu tố ảnh hưởng đến độ an toàn của chữ ký số. Cuối cùng, tài liệu Luận văn thạc sĩ nghiên cứu xây dựng lược đồ chữ ký số trên cơ sở bài toán phân tích số sẽ cung cấp cho bạn cái nhìn sâu sắc về các phương pháp xây dựng lược đồ chữ ký số dựa trên các bài toán toán học phức tạp. Những tài liệu này sẽ là cơ hội tuyệt vời để bạn khám phá thêm về chủ đề này và nâng cao kiến thức của mình.