タグ「数学」が付けられているエントリー

CSS×2.0 in CSS2010: Can we factor RSA?

| CSS×2.0 in CSS2010: Can we factor RSA?

10月19日夕刻から岡山のママカリフォーラムで行われたCSS2010キャンドルスターセッション(CSS×2.0)で発表しました.聞き逃してしまった方々のために,発表資料を公開したいと思います.発表資料はアニメーション付きだったので,その部分を一部変更し,発表時には非表示だったスライドも含めてある完全版です.

Can we factor RSA?

この発表は1月に高松で行われたSCIS2010ナイトセッションの後日談となっています.合わせてお楽しみ下さい

関連:
SCIS2010ナイトセッション - 4403 is written

201010200045追記:
動画をyoutubeにアップしました.

8票獲得しました.3等星に入れませんでした.いろいろ言い訳して良いですか?エルシャダイネタが全く通じてませんでした.何ででしょうか?ふぁくたんの知名度がSCISに比べて圧倒的に低い気がします.イントロでNTTらの768bit素因数分解の話を出したんだから,伏線回収として最後のオチがああなるというのは見越して欲しかったです.オチが全く決まらなかったのが悔しいです.これならUCを発表した方が良かったかもしれない・・・.悔しくて明日の発表で言い訳しそう・・・.

素因数分解botとか面白そうかなと思ってみる。だけど僕には<del>ピアノがない、君に聴かせる</del>腕もないのでとりあえず人力で、189 = 3 * 3 * 3 * 7、1007 = 19 * 53 RT @xagawa [博論] 189pages. 1007kB也

Twitter / MarriageTheorem: 素因数分解botとか面白そうかなと思ってみる。だけど ...

手動で素因数分解を啓蒙されている方が,botを所望しておられました.

Botは書けるけど素因数分解ができないw RT @shokohitsuji: 誰か作ってあげてー。 RT: @MarriageTheorem: 素因数分解botとか面白そうかなと思ってみる。だけど僕には<del>ピアノがない、君に聴かせる</del>腕もないのでとりあえず人力で

Twitter / 4403: Botは書けるけど素因数分解ができないw RT @s ...

そして紆余曲折合って作ることになりました.専用アカウントはfactoring_botです.実装はPHPで,ものすごくナイーブな方法です.実装スピード最優先で.

仕様

  • factorial_botのfriends_timelineから3~10桁の数字を見つけ出し素因数分解の結果をRTする
  • 素因数分解の対象は1発言内で最初に見つかったもののみ
  • replyなどで@を含むメッセージには無反応
  • 素因数分解結果を合わせた発言文字数が140文字を超えた場合はポストしない
  • 5分毎に動作

今のところの不具合のようなもの

  • 手動リフォロー
  • 先頭が0で始まっていても認識する
  • 8桁以上あっても先頭8桁を認識する
  • 既知の素数で順番に割っていくだけの簡単なお仕事です

素因数分解は専門外で全然わからないのですが,素数を探しましょうではなく,ある数字を素因数分解しましょうというときに,最適なアプローチはどんな方法なんでしょうか?既知の素数表を配列で持っておいて,順番で割っていくというのは悪くなさそうな気がしますが・・・.識者の方からのアドバイスを期待します.

今後やろうとしていること

  • 文頭に@factoring_botがある場合(つまりmention)は反応しようかと思う
  • フォロワ以外からのmentionにも反応しようかと思う
  • PublicTLから直近50件を抽出して素因数分解させてRTして知名度を上げる
  • Phytonで書き直し,GAEに移す
  • 自動リフォローを実装する
  • ポスト予定の発言が140文字を超えたら上手いこと切り詰める
  • より桁数の多い数字に対応する

201001261440追記:
ヴァァァーーーーとなったら,10桁の素因数分解ができるようになりました.factoring_botのuser_timelineに流れているmentionには反応します.ただし,文頭に@factoring_botがある場合に限る.相変わらずRTのメッセージが140文字を超えた場合は何もつぶやけない.

201002221703追記:
ハッシュタグに含まれる数字は素因数分解しないようにしました.例えば,以下の文字列は素因数分解の対象外となります.「#2929」「#scis2010」「#2929dan」.なお,これらのハッシュタグを含んでいたとしても,他に素因数分解の対象となる文字列があれば,素因数分解します.

201003022303追記:
RTが140文字を超えるとつぶやけない問題に対応しました.まず,in_reply_to_status_idパラメータに対応しました.これにより,素因数分解対象の元つぶやきを指すことができるようになりました.この効果で,RTメッセージが140文字を超える場合は,元メッセージをバッサリと削除してつぶやくように変更しました.つぶやき例としてはこのような感じです

201003152311追記:
factoring_botをxAuth対応させました.アプリケーション名にfactoring_botと表示されると思います.かっこいい!あと,今更ですが,mentionに対応しています.文頭に「@factoring_bot」を含んでいることを条件に,つぶやきを素因数分解します.あとは,今日の日付が素数だったら,お知らせします.

201006072305追記:
2010と2011は素因数分解しないようにブラックリスト化しました.

201006172202追記:
最近の度重なるクジラ病によって,度々発言を失敗するようになりました.従来仕様ではつぶやきに失敗したものはリトライせずに破棄していました.しかしながら,それを克服するべく,本日の改修でメッセージキューイング方式に変更しました.これにより,エラーが発生する場合は可能な限りリトライします.現在の設定では1分毎のデキューイングで最大60分間ねばります.十分なテストが出来ていないので,問題が発生する可能性があります.その際はお知らせ頂ければ幸いです.

100617_factoring_bot01.png

夏希先輩萌え萌え~♪

というわけで,うっかり会が始まるまで5時間ほど時間が空いてしまったので,みなとみらいでサマーウォーズを観てきた.率直な感想から言えば,エヴァ破よりも圧倒的に面白い.破が真希波のためにあるなら,サマーウォーズは夏希先輩を観るためにあるようなもんだ.

内容としては,暗号解読とエアギア的バトルと花札です.これらは予備知識として知っているべきでしょう.知っていると夏希先輩ラプになれます.ちなみに,劇中では暗号解読と触れられていると記憶していますが,恐らくは暗号ではなく素因数分解ではないかと思います.Shorの素因数分解アルゴリズムを読んでた(伏線として正しいかどうかは疑問)し.どうにも「暗号解読」という言葉は一般人受けがかなり良いっぽい.復号なのに解読と言った方が受けが良いのと同じですね.他にも,mod演算が出てくるので,夏希先輩萌えになるためには,数論を勉強してから見に行きましょう(核爆.

ででで.誤解を恐れずに言うならば,見所は栄おばあちゃん夏希先輩です.健二君も頑張りますが,夏希先輩の前には足元にすら及びません.ちなみに,佳主馬君は実は女の子オチの方がしっくり来たと思うのです.「オレは女だー!」みたいな.

まとめ:
夏希先輩萌え萌え~♪

蛇足:
劇中で登場したのは2056桁(ビットじゃない)の暗号文(恐らくは合成数)なんですが,これを健二君は手計算で解きます.ぶっちゃけムリだろと思うわけですが,それは数学オリンピック日本代表(になり損ねた)だし,何かがどうにかなっている特殊な解法があるのだとします.それはそれとして,健二君以外にも55人が解いているという点で,最早セキュリティ強度をなしていないと思うので,遅かれ早かれOZのシステムは乗っ取られたものと思います.オレが国防総省の担当者だったら,Love Machineよりも,健二君を買うね.ヤバイもん.

表題の通りなのだが,タイトル的に研究費で落ちるかどうか心配である.中身は真面目なのだが・・・.

プロフィール

e-m@il @ddress