NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

43 36 2
NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1tìm hiểu về chữ ký sốmột số luộc đồ chữ kys số phor biến hiện naycác tán công chữ ký ssosolược đồ chữ ký số RSAlược đồ chữ ký số Elgamallược đồ chữ ký số ECDSAquá trình tạo và kiểm tra chữ ký số

BÀI TẬP LỚN NGHIÊN CỨU MỘT SỐ TẤN CƠNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1 Hà Nội, 2021 MỤC LỤC DANH MỤC HÌNH VẼ Hình 1.1 sơ đồ tạo kiểm tra chữ ký số……………………………………3 Hình 2.1 lược đồ chữ ký số RSA ( R khơng có nghĩa khơng bảo mật)… Hình 2.2 lược đồ chữ ký số RSA (R khơng có ý nghĩa có bảo mật)…… Hình 2.3 Lược đồ chữ ký số RSA ( R có ý nghĩa khơng bảo mật)……….9 Hình 2.4 Lược đồ chữ ký số RSA ( R có ý nghĩa có bảo mật )………… 10 Hình 2.5 Lược đồ chữ ký số Elgamal ( không bảo mật )…………………….12 Hình 3.1 Bảng 10 giá trị r thường gặp số lần xuất chúng….28 Hình 3.2 Số lần xuất giá trị r trùng lặp bật theo thời gian…29 Hình 3.3 Số Bitcoin đánh cắp số lượng địa Bitcoin dễ bị công ECDSA không sử dụng lại theo thời gian……………………………31 Hình 3.4 Số Bitcoin mà kẻ công đánh cắp dựa ngưỡng số dư…….32 Hình 3.5 So sánh mức tăng đột biến Bitcoin bị đánh cắp sụt giảm đột ngột số Bitcoin ăn cắp (trái) trường hợp thấy mức giảm nhẹ cho thấy khơng có đồng xu bị đánh cắp (phải).35 DANH MỤC CHỮ VIẾT TẮT KÍ HIỆU ECDSA RSA ĐẦY ĐỦ Elliptic Curve Digital Signature Algorithm Ron Rivest, Adi Shamir Len Adleman OSINT Open source intelligence P2PKH Pay To Pubkey Hash RFC Request for Comments UTC Coordinated Universal Time CHƯƠNG TỔNG QUAN VỀ CHỮ KÍ SỐ Chữ kí số thơng thường (chữ kí tay) phần vật lý tài liệu, phương tiện để xác thực nguồn gốc nột dung tài liệu Ngồi ra, chữ ký tay cịn có khả chống chối bỏ, tức người gửi sau kí vào tài liệu khơng thể chối bỏ chữ ký khơng thể thay đổi nội dung Chữ ký tay đại diện cho người ký, khơng khác giả mạo dễ dàng nhận nhìn thấy Việc kiểm tra tính xác thực chữ kí tay thực phương pháp đơn giản ( so sánh chữ kí tay tài liệu với chữ ký đăng ký trước người kí ) nhằm khẳng định chữ ký người kí nội dung tài liệu khơng thể bi sửa đổi thêm bớt Đối với tài liệu điện tử, chữ ký tay khơng cịn đảm bảo tính Dó cần phải có phương tiện để thay chữ ký tay Chữ ký số đời đưa vào sử dụng cách hiệu Lịch sử chữ kí số Con người sử dụng hợp đồng dạng điện tử từ 100 năm với việc sử dụng mã Morse điện tín Vào năm 1889, tịa án tối cao bang New Hampshire ( Hoa Kỳ) phê chuẩn tính hiệu lực chữ ký điện tử Tuy nhiên, với phát triển khoa học kỹ thuật gần chữ ký điện tử vào sống cách rộng rãi 1.1 Vào thập kỷ 1980, công ty số cá nhân bắt đầu sử dụng máy Fax để truyền tài liệu quan trọng Mặc dù chữ ký tài liệu thể giấy trình truyền nhận chúng hồn tồn dựa tín hiệu điện tử Hiện nay, chữ ký điện tử bao hàm cam kết gửi email, nhập số định dạng cá nhân (PIN) vào máy ATM, ký bút điện tử với thiết bị hình cảm ứng quầy tính tiền, chấp nhận điều khoản người dùng cài đặt phần mềm máy tính, ký hợp đồng điện tử online,… 1.2 Định nghĩa chữ ký số Chữ ký số dãy số, kết phép biến đổi mật mã thông báo nhằm cung cấp phương tiện để kiểm tra tính xác thực nguồn gốc thơng báo, tính tồn vẹn thơng báo tính khơng thể chối bỏ người kí Thơng thường chữ ký số biểu diễn dạng dãy số nhị phân Nó tạo cở sở sử dụng tập hợp quy tắc tập hợp tham số để xác định danh tính người ký kiểm tra tính tồn vẹn liệu Phương tiện để thực chữ ký số kỹ thuật mật mã Mỗi chữ ký số tạo kiểm tra tính xác thực thơng báo qua lược đồ chữ ký số lược đồ chữ ký số bao gồm thuật toán ký thuật toán kiểm tra Mỗi người có cặp khóa bao gồm khóa bí mật khóa cơng khai , khóa cơng khai thường cơng bố cách cơng khai phân phối thơng qua chứng thực khóa cơng khai, cịn khóa bí mật giữ bí mật tuyệt đối khơng thể tìm khóa bí mật từ khóa cơng khai Trong thực tế sử dụng, thơng báo thường có độ dài nói chung dài Trong lược đồ chữ ký số ký thông báo ngắn Để ký thông báo người ta phải chia thông báo thành nhiều phần ngắn ký vào tất phần gửi Những hạn chế giải pháp là: - Có nhiều chữ ký số cho thông báo làm giãn tin mức Do trình ký số chữ ký số cần thực phép toán tốn thời gian thời gian để ký thơng báo chấp nhận Ta mong muốn trường hợp chữ ký viết tay, chữ ký có độ dài ngắn hạn chế cho dù thơng báo có độ dài Vì chữ ký số ký cho bit thông báo , muốn chữ ký có độ dài hạn chế thơng báo có độ dài tùy ý ta phải tìm cách rút gọn độ dài thông báo Nhưng thân thông báo khơng thể rút ngắn được, nên cịn cách tìm cho thơng báo thơng báo thu gọn có độ dài hạn chế thay việc ký thông báo, ta ký thông báo thu gọn Để giải vấn đề ta sử dụng hàm băm mật mã 1.3 Quá trình tạo kiểm tra chữ ký số Trong lược đồ chữ ký số, với đầu vào thông báo độ dài hữu hạn tùy ý, hàm băm biến đổi thông báo thành thơng báo rút gọn sau dùng thuật tốn chữ ký để ký tên thơng báo rút gọn Cụ thể người ký cần ký vào thơng báo R ký tóm lược thơng báo z = h(R) sau: y = (z) truyền cặp (R,y) lên kênh truyền thơng Q trình kiểm tra thực thơng qua việc tính z = h(R) dùng hàm băm công khai h kiểm tra xem hàm (z,y) có nhận giá trị “đúng” khơng Cụ thể trình tạo kiểm tra chữ ký số mơ ta hình sau Hình 1.1 sơ đồ tạo kiểm tra chữ ký số Quá trình tạo chữ ký số : Khi A cần gửi 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 tóm lược thơng báo Tiếp đến A sử dụng thuật toán ký với đầu vào tóm lược thơng báo khóa bí mật A để tạo chữ ký số Sau chữ ký số chứng cung cấp khóa cơng khai A gắn vào thông báo ký gửi cho B Quá trình kiểm tra chữ ký số: B sử dụng thuật toán hàm băm tương tự A để tạo tóm lược thơng báo nhận, B sử dụng khóa cơng khai cung cấp để giải mã chữ ký thu dãy bit , so sánh kết với tóm lược vừa tạo Nếu kết giống thơng báo A gửi cho B Trong trường hợp thông báo cần giữ bí mật cho A mã hóa liệu ký trước gửi 1.4 Mơ hình tốn học lược đồ chữ ký số Một lược đồ chữ ký số (R, A , K, S, V ) đó: R tập hữu hạn thông báo cụ thể A tập hữu hạn chữ ký số cụ thể K\ khơng gian khóa tập hữu hạn khóa Với khóa K € K\ , tồn thuật toán ký € S thuật toán kiểm tra chữ ký € V Mỗi thuật toán ký : R A thuật toán kiểm tra chữ ký R x A {đúng ,sai} hàm thỏa mãn điều kiện : Với thông báo x € R chữ ký y €A Với khóa K € K\ , hàm hàm thời gian đa thức , hàm cơng khai cịn hàm bí mật Hàm khó tính khơng biết khóa bí mật K , điều đảm bảo cho tính bí mật chữ ký chống việc giả mạo chữ ký Nghĩa cho trước thơng báo x, có người có khóa bí mật K tính chữ ký y để = 1.5 Các tính chất chữ ký số 1.5.1 Tính xác thực nguồn gốc Các hệ thống mật mã khóa cơng khai cho phép văn mã hóa khóa riêng tư mà người sở hữu khóa biết Để sử dụng chữ ký điện tử, văn cần mã hóa hàm băm (văn "băm" thành chuỗi, thường có độ dài cố định ngắn văn bản) sau sử dụng khóa riêng người giữ khóa để mã hóa, sau chúng tơi nhận chữ ký điện tử Khi cần kiểm tra, nhận giải mã (bằng khóa cơng khai) để lấy lại chuỗi gốc (được tạo thông qua hàm băm ban đầu) kiểm tra mã băm văn nhận Nếu hai giá trị (chuỗi) khớp nhau, người nhận tin tưởng văn đến từ chủ sở hữu khóa cá nhân Tất nhiên, chúng tơi khơng thể đảm bảo 100% văn chưa bị can thiệp hệ thống bị hỏng Đặc biệt quan trọng vấn đề nhận dạng cho giao dịch Hạn chế chi nhánh ngân hàng gửi gói tin đến trung tâm dạng (a, b), a số tài khoản b số tiền chuyển đến tài khoản Kẻ lừa đảo gửi số tiền để lấy gói nội dung truyền lại gói nhiều lần để kiếm lời (truyền lại) 1.5.2 Tình tồn vẹn Cả hai bên tham gia vào trình giao tiếp văn khơng bị thay đổi chuyển tiếp văn bị thay đổi, trí tưởng tượng bị thay đổi bị phát Mã hóa ẩn nội dung gói tin khỏi bên thứ khơng ngăn nội dung bị thay đổi Một ví dụ cho trường hợp cộng đồng (tấn công đồng nhất): tiếp tục ví dụ trên, kẻ lừa đảo gửi 1.000.000 đồng vào tài khoản a, chặn gói tin (a, b) chi nhánh gửi trung tâm gửi gói tin (a, b3) thay vào để trở thành triệu phú! Nhưng vấn đề bảo mật cho trung tâm ngân hàng không liên quan đến tất thông tin gửi từ người gửi đến chi nhánh, thơng tin băm mã hóa để gửi đến đích 1.5.3 Tính khơng thể chối bỏ Trong giao dịch, bên từ chối nhận tài liệu gửi Để tránh điều này, người nhận yêu cầu đưa ký tự vào văn Khi chấp nhận, bên nhận sử dụng chữ ký làm chứng để bên thứ ba giải Tuy nhiên, bí mật bị lộ, khơng thể hồn tồn đạt chức phủ nhận CHƯƠNG MỘT SỐ LƯỢC ĐỒ CHỮ KÝ SỐ PHỔ BIẾN HIỆN NAY 2.1 Lược đồ chữ ký số RSA Bài toán xác thực chữ ký số xem tốn “ đối ngẫu” với toán bảo mật mật mã , dùng ngược thuật tốn lặp RSA ta lược đồ chữ ký RSA Lược đồ chữ ký RSA xây dựng sau: Tạo khóa : đầu mối mạng liên lạc cần tạo cặp khóa khóa cơng khái khóa riêng bí mật Tạo số nguyên tố lớn ngẫu nhiên khác :p,q p q có độ lớn xấp xỉ Tính n=p.q (n) = (p-1)(q-1) Chọn số nguyên ngẫu nhiên e, ( < e < (n) ) cho gcd (e, (n) )=1 Tính mod(n) cách dùng thuật toán Eclide mở rộng Đặt = A = , K = {(n,e,d):ed =1 mod(n)} ta có khóa cơng khai làkhóa riêng bí mật = d Tạo chữ ký số : giả sử A phải tạo chữ ký số để xác thực cho thông báo R gửi cho B, Khi đò A làm sau : Biểu diễn rõ R dạng số nguyên đoạn [0,n-1] Sử dụng thuật toán kí với khóa riêng để tạo chữ ký thông báo R: S = (R) = modn Gửi thông báo R kèm theo chữ ký S cho B Kiểm tra chữ ký : với chữ ký S thơng báo R , B kiểm tra chữ ký số S để xác thực thông báo R theo bước sau: Nhận khóa cơng khai = (e.n) người ký A Sử dụng thuật toán kiểm tra công khai (R,S) A để kiểm tra chữ ký S theo công thức sau : (R,S) = R = modn 10 cho phép kẻ công làm rị rỉ khóa bí mật số trường hợp định Ví dụ, k (và có giá trị r) sk sử dụng để tạo chữ ký (r, s1) (r, s2) cho hai thơng điệp khác biệt m1 m2, có: = ( + rsk) = ( + rsk) (1) Điều cho phép làm rò rỉ sk khóa bí mật với: = = = sk (2) Tương tự, k bị rị rỉ với: = =k (3) Tuy nhiên, kiểu tái sử dụng nonce dẫn đến trường hợp kẻ cơng làm rị rỉ bí mật Ví dụ: xem xét trường hợp nonce k sử dụng với hai phím s s khác để ký hai thông báo khác nhau, tức là: = ( + rs) = ( + rs) (4) Nó khơng thể để rỉ bí mật trường hợp Để hiểu rõ điều này, cần xem xét cấu hình vấn đề thành hành vi làm bí mật Nếu viết lại Eq (1): k – rsk = k – rsk = Nó trở nên rõ ràng hệ thống phương trình tuyến tính Đặc biệt, hệ bao gồm phương trình độc lập tuyến tính, h1 ≠ h2, ẩn số, tức k sk, giải Mặt khác, Eq (4) bao gồm phương trình ẩn số, tức k, sk1 sk2, khơng thể giải có nhiều ẩn số phương trình 3.4.3 Ngồi tái sử dụng khơng khóa đơn Điều thú vị số trường hợp, bí mật bị rị rỉ ký tự khơng sử dụng lại với khóa bí mật Ví dụ, xem xét trường hợp sau, hai phím s, s sử dụng với cặp phím khơng phải , , tức là: Ở đây, khơng có nonce sử dụng hai lần khóa, khơng có nonce sử dụng lại khóa Do đó, hệ thống bao gồm 29 phương trình độc lập tuyến tính ẩn số giải Một giải pháp cho sk2 tính tốn, với việc loại bỏ Gaussian chẳng hạn, là: Nhìn chung, nghĩ vấn đề sau Kẻ công cung cấp tập hợp chữ ký S = {(, , , ),…, (, , , )}, ví dụ trích xuất từ chuỗi khối Bitcoin Mỗi (hi, ri, si, ) ∈S tương ứng với chữ ký (ri = (Gki) x, = ( + rsk)) pk = Gsk Mục tiêu kẻ công làm rị rỉ nhiều khóa (hoặc số nút) tốt cách giải hệ phương trình tuyến tính Để đạt điều này, kẻ công phải xác định tập hợp hệ thống giải Họ làm cách giảm vấn đề thành lý thuyết đồ thị Ví dụ, chúng tơi xây dựng đồ thị lưỡng phân vơ hướng G = (Vpk∪Vr, E), Vpk = {∣ (⋅, ⋅, ⋅, ) ∈S}, Vr = {ri∣ (⋅, ri, ⋅, ⋅) ∈S} E = {{ri, } ∣ (⋅, ri, ⋅, ) ∈S} Đồ thị G bao gồm hai loại nút, giá trị r ri khóa cơng khai pki, nút tương ứng với ẩn số (một nonce ki khóa bí mật trượt) Một cạnh {r, pk} đồ thị tương ứng với chữ ký, tương ứng với phương trình hệ phương trình tuyến tính mà S tạo thành Ở bước lọc trước, trước tiên thu thập tất giá trị r khóa cơng khai xuất hai lần nhau, tức thu thập F = {r, pk∣ | {(⋅, r, ⋅, pk) ∈S} |> 1} Vì điều tương ứng với lần sử dụng khóa hai lần, điều có nghĩa tiết lộ bí mật sử dụng k sk cách sử dụng Eqs (3) (2) với chữ ký thích hợp Ngồi ra, làm rị rỉ tất bí mật tương ứng với nút truy cập khóa cơng khai nonce F Để hiểu điều này, giả sử có giá trị r ri∈F, có nghĩa rị rỉ nonce ki mơ tả Bây giả sử có nút pkj∈Vpk cho {, } ∈E, điều ngụ ý tồn phương trình sj = ( + r) Vì biết ki, rị rỉ skj với = (-)/r Điều tương tự giả sử khóa cơng khai ∈F giá trị r ∈ cho {rj, } ∈E Bằng cách áp dụng lập luận cách quy nạp, rõ ràng làm rị rỉ bí mật liên quan đến tất nút truy cập từ ri∈F ∈F Trong bước tiếp theo, cần xác định nút cạnh ánh xạ tới hệ phương trình độc lập tuyến tính giải Điều đạt cách tìm chu trình khơng nhỏ G, tức nút khác biệt 30 r0, pk0,…, rn, pkn với n> cho {, } ∈E {, + mod n} ∈ E cho 0≤i≤n Một chu trình chứa (n + 1) nút, tức ẩn số (n + 1) cạnh, tức là, phương trình, trực tiếp ngụ ý tồn hệ phương trình tuyến tính giải Do đó, tất chu kỳ vậy, làm rị rỉ bí mật tương ứng, trước đây, làm rị rỉ bí mật nút truy cập Đầu tồn q trình hai tập V′pk⊆Vpk V′r⊆Vr, khóa cơng khai giá trị r mà làm rị rỉ khóa bí mật ký tự mã Nếu loại bỏ nút V′pk∪V′r cạnh chúng khỏi G, đồ thị thu khơng chứa chu trình khơng tầm thường Điều có nghĩa khơng có thêm bí mật bị lộ V'pk V'r tối ưu kích thước chúng Tuy nhiên, có chút thay đổi phương pháp mà mô tả Chúng coi hai chữ ký (r1, s1) (r2, s2) trường hợp không sử dụng lại giá trị r trùng nhau, tức r1 = r2 Điều khơng hồn tồn đúng, giá trị r tọa độ x Gk Vì đường cong elliptic dựa phương trình Weierstrass có dạng = + bx + a, nên ln có hai số khác k dẫn đến giá trị r2 Đặc biệt, ta có Gk = (x, y) ta có G (−k) = (x, −y) Điều có nghĩa giá trị r trùng nhau, cần tính đến giá trị khơng nghịch đảo cộng giá trị thay Để tôn trọng điều này, phải xem xét chữ ký (r, s) chữ ký (r, −s) chữ ký sinh cách phủ định k Đối với kết hợp vậy, phải giải hệ phương trình tuyến tính kiểm tra xem nghiệm trả có để làm rị rỉ khóa phím khơng xác hay khơng Điều thực cách kiểm tra kỹ xem sk khóa bí mật bị rị rỉ có tương ứng với pk khóa cơng khai cho hay khơng, điều thực cách xác minh đẳng thức Gsk = pk 3.4.4 Các kết Bây phác thảo kết việc không sử dụng lại chuỗi khối Bitcoin Để đạt điều này, tải xuống chuỗi khối Bitcoin khối 506071, khai thác vào ngày 2018-01-25 16:04:14 UTC Chúng phân tích cú pháp tất đầu vào từ tất giao dịch P2PKH để trích xuất chữ ký ECDSA họ 31 Hình 3.1 Bảng 10 giá trị r thường gặp số lần xuất chúng Tổng cộng, chúng tơi trích xuất 647.110.920 chữ ký chúng tơi tìm thấy 1.068 giá trị r riêng biệt xuất hai lần sử dụng 4.433 khóa Tổng cộng, giá trị r trùng lặp tạo nên 2.290.850 (Hình ảnh mở cửa sổ mới) tất giá trị r Trong Bảng 1, hiển thị 10 giá trị r trùng lặp thường xuyên với số lần xuất chúng Giá trị r trùng lặp thường xuyên xuất 2,276,671 lần, tạo nên Mở hình ảnh cửa sổ tất lần xuất trùng lặp Giá trị r đặc biệt, nhỏ, cho 90 bit quan trọng Ngồi ra, nonce k tương ứng cho giá trị r k = 1/2modn Vì khơng phải trùng hợp ngẫu nhiên, người ta tin nhà thiết kế đường cong secp256k1 chọn điểm tạo G dựa giá trị Người ta tin giá trị r đồng nghiệp sử dụng có mục đích để tiết kiệm phí giao dịch Bitcoin sử dụng mã hóa DER để hóa chữ ký, nén bit hàng đầu giá trị r này, điều làm giảm kích thước giao dịch dẫn đến phí giao dịch nhỏ Nếu người ngang hàng sử dụng nonce cho giao dịch “cuối cùng” địa chỉ, tức giao dịch cuối loại bỏ tất tiền, điều bảo mật miễn giao dịch đánh dấu khơng thể thay Nhưng giao dịch làm rị rỉ khóa bí mật địa chỉ, nên người ngang hàng cần đảm bảo họ không sử dụng địa Phân tích chúng tơi cho thấy giá trị r chủ yếu sử dụng 32 hai khoảng thời gian Khối chứa giá trị khối 364,767 khối cuối khối 477,411 Tổng cộng, xác định 1.550 khối chứa giá trị r Chúng nhận thấy giá trị r sử dụng mức khoảng thời gian, mô tả Hình Chúng ta thấy khối 365.000 khối 366.000 khối 374.000 khối 375.000, giá trị sử dụng khoảng triệu lần khối, tạo nên tất lần xuất Hình 3.2 Số lần xuất giá trị r trùng lặp bật theo thời gian Kiểm tra giá trị r trùng lặp khác kỹ chút cho thấy trường hợp thú vị Giá trị r sử dụng nhiều thứ hai có 16 bit đứng đầu, dấu hiệu cho thấy nonce tương ứng không chọn ngẫu nhiên Giá trị r sử dụng nhiều thứ tư tương ứng với nonce k = 1, dấu hiệu tạo số ngẫu nhiên bị hỏng giao dịch thủ cơng nonce khơng ngẫu nhiên hóa tạo đơn giản lấy tọa độ x G Một giá trị khác Giá trị r mà chúng tơi tìm thấy sử dụng nonce k = 12345678, dấu hiệu giao dịch tạo đặc biệt cách sử dụng nonce cố định thay giao dịch ngẫu nhiên an toàn Tương tự, chúng tơi tìm thấy hai giá trị r khác số khơng tương ứng nhỏ cách đáng ngờ, tức là, trường hợp nonce k = 0x80001fff trường hợp khác, nonce có 74 bit đứng đầu Trong trường hợp khác, nonce k = tức là, 0x0101 01 ký hiệu thập lục phân, trông giống mẫu mà người tạo 3.5 Đo lường tác động điểm yếu Bây đánh giá mức độ thiệt hại mà kẻ cơng gây cách sử dụng phương pháp luận mơ tả trước để làm rị rỉ khóa mã khóa Để làm điều này, chúng tơi đặt vào vị trí kẻ công, 33 người giám sát giao dịch blockchain Nghĩa là, sử dụng blockchain để tạo chuỗi chữ ký có thứ tự [(Δ1, , , , pk1),…, (Δn, hn, rn, sn, pkn)] Δi số khối cho Δi≤Δj i≤j phần tử lại thành phần chữ ký tìm thấy giao dịch khối Δi Sau đó, xử lý mục theo thứ tự sau Chúng thêm chữ ký si = k − ( + ) cho khóa cơng khai pki khối Δi vào sở liệu, cho phép chúng tơi nhanh chóng xác định giá trị r trùng lặp chữ ký chúng Mỗi giá trị r trùng lặp xác định sau thêm vào đồ thị G với pki khóa cơng khai sử dụng Tuy nhiên, trước thêm nút vào đồ thị, thực vài kiểm tra Đầu tiên, kiểm tra xem chúng tơi có bị rị rỉ ki trượt tuyết hay khơng, trường hợp chúng tơi hồn tồn bỏ qua hai, thêm chúng khơng dẫn đến rị rỉ Thứ hai, kiểm tra xem G chứa cạnh {, } chưa, trường hợp chúng tơi rị rỉ ki trượt Thứ ba, kiểm tra xem chúng tơi có bị rị rỉ ki ki hay khơng, trường hợp đó, chúng tơi rò rỉ đồ trượt tuyết ki, tương ứng Trong hai trường hợp cuối cùng, rị rỉ bí mật tương ứng với tất nút truy cập từ ri pki thảo luận trước Chỉ khơng có điều kiện ba điều kiện áp dụng, thêm cạnh {, } vào G Sau xử lý tất chữ ký khối, chúng tơi tìm kiếm chu trình G để xác định hệ phương trình tuyến tính giải nhằm làm rị rỉ bí mật nêu trước Bất chúng tơi tìm thấy rị rỉ mới, chúng tơi đảm bảo chúng tơi xóa chữ ký tương ứng khỏi sở liệu xóa nút tương ứng cạnh chúng khỏi G, khơng, chúng tơi xem xét lại giá trị chu kỳ r tương tự Hình 3.3 Số Bitcoin đánh cắp số lượng địa Bitcoin dễ bị công ECDSA không sử dụng lại theo thời gian 34 Bằng cách sử dụng phương pháp này, chúng tơi tìm cách rị rỉ 892 số 1.550 nút có (Mở hình ảnh cửa sổ mới) 2,537 số 4.433 khóa bí mật sử dụng với nút (Mở hình ảnh cửa sổ mới) Tổng cộng, điều cho phép kiểm soát lý thuyết số dư 5.074 địa chỉ, tức hai địa khóa Trong tồn hoạt động này, chúng tơi xác định 23 chu kỳ đồ thị chu kỳ dài bao gồm 12 nút, đại diện cho hệ thống gồm 12 phương trình tuyến tính 12 ẩn số (6 phím số + khóa bí mật) Hình dạng cuối G khơng chứa chu kỳ nữa, có nghĩa tiết lộ số bí mật tối đa Chúng tơi coi địa khối định dễ bị cơng chúng tơi làm rị rỉ khóa địa giữ số dư khối Có số mức tăng đột biến đáng ý số lượng Bitcoin đánh cắp số lượng địa dễ bị công Mức tăng đột biến đáng kể xảy khoảng khối 221.000 khối 227.000, số dư đánh cắp cao 533,82 BTC Thật thú vị, có địa dễ bị công thời gian tăng đột biến Mức tăng đột biến xảy khoảng khối 296.000 khối 298.000 với số dư đánh cắp cao 20 BTC, đánh cắp khoảng thời gian khối từ khối 297283 khối 297285 Từ khối 297,261 đến khối 297.304 có 90 địa dễ bị cơng, số lượng địa dễ bị công tối đa Đợt tăng đột biến ngắn chút xảy khoảng khối 333.300 kéo dài khoảng khối 333.600 Trong khoảng thời gian này, kẻ cơng đánh cắp tới 266,73 BTC khối 333.387 có 290 địa dễ bị công khối 333.393 Tiếp theo hai đợt tăng đột biến kéo dài tương tự khối 365,000 366,000 khối 374,000 375,000 Trong trường hợp trước, 11,21 BTC bị đánh cắp có 131 địa dễ bị công vào số thời điểm, trường hợp thứ hai, 15,41 BTC bị đánh cắp có 769 địa dễ bị đánh cắp từ khối 374,386 đến 374,386 Đây số lượng lớn địa dễ bị công thời điểm toàn khoảng thời gian Cuối cùng, số lượng địa dễ bị công đột ngột tăng lên 289 khối 475,963, có 0,0064 BTC ăn cắp mức cao Ở trạng thái blockchain chúng tơi, có địa dễ bị cơng giữ số dư tích lũy 4002 satoshi, tức 0,00004002 BTC, khơng có khả bị đánh cắp với phí giao dịch 35 Hình 3.4 Số Bitcoin mà kẻ cơng đánh cắp dựa ngưỡng số dư Để đánh giá mức độ mà kẻ cơng đánh cắp theo thời gian, chúng tơi xem xét hai tình Đầu tiên, giả sử kẻ công đánh cắp số dư cao địa theo thời gian Tức là, lấy tổng số dư cao địa chỉ, cho tổng cộng 1021,58 BTC Ở đây, cho chủ sở hữu nhận thấy gian lận bỏ qua tất khoản tiền tương lai Tuy nhiên, mơ hình cơng địi hỏi kẻ công phải biết trước số dư đỉnh, điều khơng thực tế Do đó, chúng tơi xem xét kịch công thứ hai thực tế hơn, kẻ cơng xác định ngưỡng cân ϵ Trong cài đặt này, kẻ công đánh cắp số dư lớn ϵ giả định lần chúng tơi lấy cắp lần từ địa Hình vẽ sơ đồ số Bitcoin mà kẻ cơng đánh cắp trường hợp tùy thuộc vào ϵ Chúng để ϵ nằm khoảng từ đến BTC với số gia tăng 0,001 Ngưỡng số dư tối ưu theo hàm vẽ ϵ = 0,125, mà kẻ công sử dụng để đánh cắp 412,80 BTC Lưu ý địa có số dư 533,82 BTC số thời điểm, điều khơng có nghĩa kẻ cơng cài đặt đánh cắp hồn tồn Điều giả định lấy cắp lần từ địa số dư địa vượt qua ngưỡng số dư ϵ, sau chúng tơi giả định cách thận trọng chủ sở hữu địa nhận thức vấn đề Mặc dù điều có nghĩa việc chọn ϵ lớn chẳng hạn ϵ = 500 BTC mang lại lợi nhuận lớn cho kẻ công, tin khơng phải lựa chọn tối ưu Với giá trị Bitcoin, tin việc cá nhân giữ số dư lớn khơng thực tế Ngồi ra, giả định có nhiều kẻ cơng cạnh tranh, phải cân nhắc điều chọn ϵ Do đó, chúng tơi để ϵ nằm 36 khoảng từ đến BTC chúng tơi tin thỏa hiệp tốt thực tế tối ưu lý thuyết Sau tối ưu nói trên, số lượng BTC bắt đầu giảm mạnh ϵ = 1, có 359,04 Bitcoin ăn cắp, tức hình ảnh Mở cửa sổ trường hợp tối ưu Tương tự phân tích OSINT trước chúng tơi Sect 3.2, chúng tơi bỏ qua phí giao dịch tác động khơng đáng kể chúng Ngồi ra, không xem xét việc chặn giao dịch trường hợp này, kẻ cơng giám sát giao dịch tạo giao dịch ăn cắp sớm tốt 3.6 Xác định công khứ Do tượng ECDSA không sử dụng lại vấn đề biết, cố gắng đánh giá xem liệu có bị kẻ cơng sử dụng khứ để đánh cắp Bitcoin hay không Để thực điều này, cố gắng xác định điểm số mức tăng đột biến Hình vào thời điểm số lượng Bitcoin ăn cắp đột ngột giảm xuống Sau đó, chúng tơi cố gắng tìm giao dịch, tạo thời gian đầu tham chiếu đến đầu vào nhiều địa dễ bị công Trong trường hợp lần tăng đột biến đầu tiên, thật khó để tranh cãi liệu có bị kẻ cơng sử dụng hay khơng có địa dễ bị cơng khoảng thời gian Tuy nhiên, xác định số trường hợp số dư địa đột ngột giảm 99,99%, mà người ta tranh luận cố Bitcoin bị đánh cắp Trong lần tăng đột biến thứ hai, thứ ba, thứ sáu thứ bảy, chúng tơi tìm thấy trường hợp số lượng Bitcoin ăn cắp giảm đột ngột xác định trường hợp, giao dịch tham chiếu đến tất địa dễ bị công, điều khiến tin Bitcoin bị đánh cắp Tuy nhiên, trường hợp tăng đột biến cuối cùng, có 0,00064 BTC bị đánh cắp 37 Hình 3.5 So sánh mức tăng đột biến Bitcoin bị đánh cắp sụt giảm đột ngột số Bitcoin ăn cắp (trái) trường hợp thấy mức giảm nhẹ cho thấy khơng có đồng xu bị đánh cắp (phải) Về mức tăng đột biến thứ tư thứ năm, không quan sát thấy sụt giảm đáng ngờ tương tự số lượng Bitcoin, mà liên quan đến số lượng địa dễ bị cơng Để thấy khác biệt, xem xét Hình 4, hiển thị so sánh hình ảnh phóng to mức tăng đột biến thứ hai thứ năm Trước đây, thấy sụt giảm đột ngột số lượng Bitcoin ăn cắp, tức có 7,49 BTC ăn cắp khối 297.304, có 0,2 BTC ăn cắp khối 297.305 Chúng xác định giao dịch chuyển tất số Bitcoin đánh cắp được, cho thấy có hành vi trộm cắp Thực tế số lượng địa dễ bị công không giảm xuống lúc giải thích nhiều lý khác Ví dụ, kẻ công địa dễ bị công cịn lại Hoặc, trường hợp kẻ công sử dụng ngưỡng số dư xác định địa cịn lại khơng đáng bị đánh cắp dựa ngưỡng này, thấy, 0,2 BTC chia sẻ cho 86 địa dễ bị công Trong lần tăng đột biến thứ hai Hình 4, chúng tơi quan sát thấy sụt giảm mượt mà đơn điệu theo thời gian liên quan đến số lượng Bitcoin ăn cắp sau giảm đột ngột số lượng địa dễ bị công đồng thời với sụt giảm BTC đánh cắp Hiện tượng giải thích thực tế tất địa thuộc cá nhân cuối tất địa gọi thay đổi làm trống ví Địa thay đổi địa sử dụng để tích lũy đầu giao dịch cịn sót lại Ví dụ: địa A muốn gửi BTC đến địa B cách sử dụng đầu nhất, có giá trị BTC, giao dịch kết tạo hai đầu ra, đầu có giá trị BTC sử dụng theo địa B ví trị giá BTC chi tiêu địa thay đổi thuộc chủ sở hữu A Giao dịch cuối ví sau sử dụng tất kết đầu tích lũy địa thay đổi, lời giải thích cho sụt giảm đột ngột To de ECDSA khong duoc su dung lai, co the ap dung mot so dieu kien Một giải pháp đề xuất RFC 6979 [19] is select nonce k cách xác định dựa thông tin m khóa s k Khi đầu vào khác nhau, đồ cung cấp điểm khác biệt tăng cường chống lại việc sử dụng lại không liên tục Tuy nhiên, giải thích ngược lại với ECDSA sơ đồ, nên điều có nghĩa đồng nghiệp tuân theo đề xuất Đặc biệt, người ta xác định ký hiệu tạo với xác định 38 không chọn lọc đề xuất RFC 6979 Một cách khác để giải vấn đề kết hợp kiểm tra nonce lặp lại vào Bitcoin giao thức Ví dụ: kiểm tra trùng lặp r giá trị đưa vào giao dịch minh họa quy định Mỗi người ngang hàng xác minh giao dịch khối, bao gồm ký tự xác minh tỉnh kiểm tra khác Ở đây, giao thức hỗ trợ kiểm tra giá trị rcác lặp lặp lại, tức kiểm tra, cho r giá trị ký tự, xuất khối chuỗi Suất hiệu suất từ, lọc Bloom giúp mở rộng chương trình Càng nhiều đồng nghiệp tuân theo điều này, có khả giao dịch chứa phần lặp lặp giá trị r thêm vào blockchain Tuy nhiên, công cụ giám sát mempool thay blockchain quan sát giao dịch chứa lặp lại giá trị r Do đó, người ta cần phải điều chỉnh bổ sung mạng lưới quy tắc cho quy tắc thêm vào, điều khơng khuyến khích việc phân phối giao dịch chứa nonces trùng lặp If a delivery as such to a a giao dịch ngang hàng tuân theo quy tắc này, rgiá trị phát giao dịch khơng thể chuyển tiếp Ngồi ra, người gửi hàng ngang giao dịch phải thông báo lỗi thông báo cố gắng tạo nhận thức Càng nhiều đồng nghiệp tuân theo quy tắc này, giao dịch chứa lặp lại giá trị phân phối mạng Nói chung, tin việc áp dụng tất đề xuất, tức ECDSA xác định điều chỉnh mạng quy tắc quy trình xác minh giao dịch, đủ phương tiện để loại bỏ việc sử dụng lại tiền điện tử 3.6 Chạy chương trình phát khóa riêng khóa k sử dụng giá trị nonce - - Đầu vào ứng dụng gồm có word word Đẩu ứng dụng gồm : + Signatrue (r1) + Signatrue (s1) + Signatrue (r2) + Signatrue (s2) + private key + private recovered + khóa k + khóa k recovered Sau nhập đầu vào ta nhấn nút ganerate để chạy chương trình đưa kết đầu 39 Kết sau chạy chương trình : với đầu vào word1 Lê Duy Cát word2 Lớp H29 40 41 KẾT LUẬN Qua thời gian nỗ lực nghiên cứu, tìm hiểu, với hướng dẫn thầy, tơi hồn thành đề tài nghiên cứu số cơng tìm khóa riêng liên quan đến thực thi giá trị Nonce chuẩn ký số ECDSA SECP256k1 Kết đạt sau thời gian nghiên cứu bao gồm: Tìm hiểu lược đồ chữ ký số Tìm hiểu cơng tìm khóa riêng liên quan đến thực thi giá trị Nonce chuẩn ký số ECDSA SECP256k1 Do thời gian kiến thức thân cịn hạn chế, nên việc nắm bắt tìm hiểu hệ mật nhóm em chưa thật đạt nhiều kết khả quan Kính mong quan tâm, đóng góp ý kiến thầy, để đề tài nhóm hồn thiện hơn! 42 Tài liệu tham khảo [1] https://tailieuxanh.com/vn/dlID2153759_ve-mot-luoc-do-chu-ky-so-kieuecdsa.html [2]https://vi.m.wikipedia.org/wiki/Ch%E1%BB%AF_k%C3%BD_s%E1%BB %91# [3] https://en.wikipedia.org/wiki/Digital_signature [4] https://asecuritysite.com/encryption/ecd5 [5 ] https://link.springer.com/chapter/10.1007/978-3-030-00470-5_29 43 ... lực nghiên cứu, tìm hiểu, với hướng dẫn thầy, tơi hồn thành đề tài nghiên cứu số cơng tìm khóa riêng liên quan đến thực thi giá trị Nonce chuẩn ký số ECDSA SECP256k1 Kết đạt sau thời gian nghiên. .. nghiên cứu bao gồm: Tìm hiểu lược đồ chữ ký số Tìm hiểu cơng tìm khóa riêng liên quan đến thực thi giá trị Nonce chuẩn ký số ECDSA SECP256k1 Do thời gian kiến thức thân hạn chế, nên việc nắm bắt tìm. .. tham số đường cong Elliptic điểm sở chung thể để đạt độ bảo mật cần thi? ??t 19 CHƯƠNG CÁC TẤN CONG CHỮ KÝ SỐ SECP256K1 LIÊN QUAN GIÁ TRỊ NONCE TRONG LƯỢC ĐỒ CHỮ KÝ SỐ ECDSA 3.1 Giới thi? ??u rò rỉ khóa

Ngày đăng: 04/04/2022, 13:59

Hình ảnh liên quan

Hình 1.1 sơ đồ tạo và kiểm tra chữ ký số. - NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

Hình 1.1.

sơ đồ tạo và kiểm tra chữ ký số Xem tại trang 7 của tài liệu.
1. Trường hợp thơng bá oR khơng có nghĩa hoặc khơng cần bí mật (hình 2.1) - NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

1..

Trường hợp thơng bá oR khơng có nghĩa hoặc khơng cần bí mật (hình 2.1) Xem tại trang 11 của tài liệu.
Hình 2.2 lược đồ chữ ký số RSA (R khơng có ý nghĩa và có bảo mật) - NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

Hình 2.2.

lược đồ chữ ký số RSA (R khơng có ý nghĩa và có bảo mật) Xem tại trang 12 của tài liệu.
Hình 2.3 Lược đồ chữ ký số RSA (R có ý nghĩa và không bảo mật) Theo hình 2.3, giả sử thơng báo R có ý nghĩa và A muốn gửi cho B thông  báo R có xác thực bằng chữ ký số của mình - NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

Hình 2.3.

Lược đồ chữ ký số RSA (R có ý nghĩa và không bảo mật) Theo hình 2.3, giả sử thơng báo R có ý nghĩa và A muốn gửi cho B thông báo R có xác thực bằng chữ ký số của mình Xem tại trang 13 của tài liệu.
Hình 2.4 Lược đồ chữ ký số RSA (R có ý nghĩa và có bảo mật) Theo hình 2.4, sau khi tạo chữ ký số mod, A không kết hợp với R để tạo  thành thông báo X mà A chĩ mã bằng khóa cơng khai của B. - NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

Hình 2.4.

Lược đồ chữ ký số RSA (R có ý nghĩa và có bảo mật) Theo hình 2.4, sau khi tạo chữ ký số mod, A không kết hợp với R để tạo thành thông báo X mà A chĩ mã bằng khóa cơng khai của B Xem tại trang 14 của tài liệu.
Sơ đồ hoạt động của lược đồ chữ ký số Elgamal được mô tả như hình vẽ 2.5 - NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

Sơ đồ ho.

ạt động của lược đồ chữ ký số Elgamal được mô tả như hình vẽ 2.5 Xem tại trang 16 của tài liệu.
Hình 3.1 Bảng 10 giá trị r thường gặp nhất và số lần xuất hiện của chúng. Tổng cộng, chúng tôi đã trích xuất 647.110.920 chữ ký và chúng tơi tìm thấy 1.068 giá trị r riêng biệt xuất hiện ít nhất hai lần và được sử dụng bởi 4.433 khóa - NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

Hình 3.1.

Bảng 10 giá trị r thường gặp nhất và số lần xuất hiện của chúng. Tổng cộng, chúng tôi đã trích xuất 647.110.920 chữ ký và chúng tơi tìm thấy 1.068 giá trị r riêng biệt xuất hiện ít nhất hai lần và được sử dụng bởi 4.433 khóa Xem tại trang 32 của tài liệu.
Hình 3.2 Số lần xuất hiện của giá trị r trùng lặp nổi bật nhất theo thời gian. Kiểm tra các giá trị r trùng lặp khác kỹ hơn một chút cho thấy các trường  hợp thú vị hơn nữa - NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

Hình 3.2.

Số lần xuất hiện của giá trị r trùng lặp nổi bật nhất theo thời gian. Kiểm tra các giá trị r trùng lặp khác kỹ hơn một chút cho thấy các trường hợp thú vị hơn nữa Xem tại trang 33 của tài liệu.
Hình 3.4 Số Bitcoin mà kẻ tấn cơng có thể đã đánh cắp dựa trên ngưỡng số dư. - NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1

Hình 3.4.

Số Bitcoin mà kẻ tấn cơng có thể đã đánh cắp dựa trên ngưỡng số dư Xem tại trang 36 của tài liệu.

Mục lục

    DANH MỤC HÌNH VẼ

    DANH MỤC CHỮ VIẾT TẮT

    CHƯƠNG 1 TỔNG QUAN VỀ CHỮ KÍ SỐ

    1.1 Lịch sử chữ kí số

    1.2 Định nghĩa chữ ký số

    1.3 Quá trình tạo và kiểm tra chữ ký số

    1.4 Mô hình toán học của lược đồ chữ ký số

    1.5 Các tính chất của chữ ký số

    1.5.1 Tính xác thực nguồn gốc

    1.5.3 Tính không thể chối bỏ

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan