課題: Hack the secret key
設定
Secp256k1 は楕円曲線暗号システムで、そこで定義される巡回群 G の位数は、p = 115792089237316195423570985008687907852837564279074904382605163141518161494337です。その上での ECDSA を考えます。 ECDSA の定義はスライドを見てください。
問題
ID には NUS:xxxxxxxxx を入れてください。xxxxxxxxx はあなたの学籍番号です ID:
公開鍵 pk を持つ人があなたに幾つかの署名付きメッセージ (h_i, sign_i) を送ってきました。(データが表示されるまでに少し時間がかかります)
ここからこの人の秘密鍵を割り出して提出してください。ヒント
使っている秘密鍵は10桁以下の数です。恐ろしく大きい数字が出てきた場合は計算が間違っていますツール
G の位数 p を法とした計算は大変なのでツールを置いておきます:
+
= (mod p)
-
= (mod p)
*
= (mod p)
/
= (mod p)
検算も置いておきます
署名
秘密鍵 sk:公開鍵 pk:
乱数 k:
メッセージ h:
署名:
検証
公開鍵 pk_x:pk_y:
メッセージ h:
署名 r:
署名 t:
結果: