単位行列になっている部分は、線形独立にしてかつ単純という理由でそう置いているだけです。なることが分かります。中の短いベクトルの1つであることが想像できます。求まるかもしれませんし求まらないかもしれません。適当に聞こえるかもしれませんが、講義で扱った攻撃はなんとなくパラメータを調整するなど案外適当でした。対してで計算される関数のことです。pythonで書くとコロコロしている感がありますね。hハッシュ値が与えられたとき、指定した長さで同じハッシュ値を得られる別の入力をLLLで求めます。成り立てばハッシュ値が変わらないことが分かります。線形結合すれば良さそうです。値は分からないので総当りします。World!"に対して半分くらい残した状態でハッシュ値が同じものを探索すると、いくつか見つかりました。楕円曲線2日目の序盤はyoshikingがLLLを使って解ける難しい問題を説明してくれました。後半は私が楕円曲線に対する攻撃手法を、過去にCTFに出題されたものを優先的に片っ端から実装させました。Qualsの暗号問題です。以下のスクリプトと実行結果が与えられます。print(encrypt(data))フラグに40バイトのゴミを付けてRSAで暗号化した結果と公開鍵が貰えます。秘密鍵のdが固定になっているので、これを得ることがとりあえずの目標です。dのビット数が465bitであることが分かっています。nが1024ビットなのに対して小さいので、LLLの予感がします。分かっている情報から基底を作ります。ビット数は最大465+1024=1489ビットです。最大465+512=977ビットです。次のような基底を考えます。ここでdなどは465ビットと小さいので、次のように格子を変更してビット数を揃えます。この操作をスケーリングと言うそうです。vectorは見つかりません。ビット数をできるだけ減らすことを考えます。偉い人にはこの変換が思いつくらしい。あとはこれで基底を作ります。スクリプトを回します。n[0]))[2:]))うっほい。私が講義したので特に記録することはなし。Attack、Singularな曲線に対する攻撃、Anomalousな曲線に対する攻撃を実装させました。Attackは原理だけ説明して実装は宿題にしました。(資料作る時間なくてごめん。いっても実質Pohlig-Hellmanなので終了。言ってなかったけどSingularでNode型の曲線に対する攻撃も宿題にします。分からなかった部分もいっぱい。前回と違いリモートなので疲労が少なかったですが、進捗が分からないのと接続の調子によって画質や音質が変わるのでやっぱりオフラインがいいです。LLLを使いこなせる気がしませんが、ちょくちょく問題を解いて身につけようと思います。yoshikingとtheoremoonがLLLは全部やってくれるので、私は変わらず楕円曲線暗号担当ということで......。ところで、はてなブログ数式使いにくすぎてお怒りです。8はてなブログをはじめよう!ptr-yudaiさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。