Proof of Work

課題: 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:
結果: