話題はこれ↓
詳しい話はこれ↓
興味があるところだけ書くと、EdDSAの署名は秘密鍵、公開鍵
として、平文
を受け取って次のように計算した
の組*1。詳しくはwikipediaとかを見てください。
ここで署名のロジックが入力としてを受け取っているとき、
のように不正な公開鍵
を渡して、これが計算されてしまうとECDSAにおけるnonce reuse attackのような感じで
が計算できる。
具体的にはで、
が未知なので2式で引き算をして
を消すと
になって、
とやって
が得られる。
上述のポストなどでは署名するロジックはは受け取らずに自前で計算するか、受け取ってもそれが
に対応したものであることを確かめましょうといってる(まあこれは計算して一致するか見ることになる)。
個人的には引数に誤った値を渡したらロジックが思わぬ挙動になって結果的に困るみたいなのはそうですねと思うんだけど、特にredditの記事では割と深刻っぽい雰囲気で書いてある。誤用しうる状態すらも許せないってことなんだろうか。実際これが攻撃やバグにつながるかと言われると、それこそCTFでくらいしかそういうシチュエーションにならないような気がするし、これで問題を作れって言われても自然な形にするのにはだいぶ苦心することになるだろうな、と思う。暗号界隈的にはどういう受け止め方をされているんだろう。気になる。
redditのスレちゃんと読んでなかったけどCTFでは既出らしいです ctf/2018-12-08-hxp/crypto_uff at master · p4-team/ctf · GitHub
*1:ここでは曲線状の点だけど
は整数なので注意。あと
は
であるシード