Chúng tôi đang tìm cách thực hiện tất cả các tính toán cho chữ ký Schnorr, chính xác hơn là EC-FSDSA, (BIP340-Schnorr), bên trong phần tử bảo mật, ngoại trừ thao tác Băm không được hỗ trợ và phải được thực hiện bên ngoài phần tử bảo mật .
Giả sử chữ ký như sau:
d=khóa riêng
R = k.G = Q (khóa ngẫu nhiên duy nhất, TRNG có nguồn bên trong phần tử bảo mật, chỉ có thể được sử dụng một lần) và
S = k + d . H( Q | P | M )
Các bước sẽ như sau:
- tạo và nhận Q và lấy Q và P làm đầu ra từ phần tử bảo mật
- tính toán và từ chối H(Q | P | M) trong phần tử an toàn
- hoàn thiện và xuất S = k + d . H( Q | P | M )
Giả sử phần tử an toàn hoạt động như một tiên tri, và kẻ tấn công có thể tiêm H( Q | P | M ) = "1" và do đó trích xuất k + d (Nó không thể tiêm H( Q | P | M ) = "0" với cùng k, nó luôn thay đổi), không giới hạn, d có dễ bị tấn công không? Có ai đọc một số cuộc thảo luận về chủ đề đó?
Để rõ ràng, hãy lưu ý rằng mục tiêu của chúng tôi là đánh giá khả năng đoán khóa riêng tư (d) được ẩn trong một phần tử bảo mật, với khả năng tính toán không giới hạn S=k + d*(any_integer_you_choose) . Phần tử an toàn chỉ có thể thực hiện phép nhân vô hướng, tạo giả ngẫu nhiên (k) chứ không may là không thể thực hiện một số hàm băm cụ thể. Do đó, nó phải được tính toán bên ngoài và được đưa vào lại, do đó có khả năng mở ra các lỗ hổng.
Đối với bài tập này, chúng tôi giả sử các phần tử an toàn ẩn (d) có thể thực hiện các phép tính S không giới hạn bất kể (H) là gì và nằm trong tay kẻ tấn công với toàn quyền truy cập vào các phép tính mật mã trên S= k + dH. Kẻ tấn công không thể kiểm soát k, được tạo bên trong phần tử an toàn, chỉ được sử dụng một lần và luôn bị ẩn. Mặt khác, kẻ tấn công có thể bỏ qua (Q | P | M) và có thể chọn (H) bất kỳ để gửi đến phần tử an toàn để tính S= k+d.H, do đó chọn H=0,1,2,3.. ví dụ: và nhận S1=k1+d1, S2=k2+d*2, v.v..... đổi lại, không giới hạn số lần thử. Ngay cả khi luôn bị che khuất bởi k ngẫu nhiên khác nhau, điều đó có thể giúp bạn đoán được (d) không?....
(Sau đó, bạn có thể hỏi: nếu kẻ tấn công có quyền truy cập vào các phép tính trên (d), thì nó giống như có (d). Không chính xác vì kẻ tấn công có thể bí mật trích xuất (d) và đợi trường hợp sử dụng sau này)