Hatena::ブログ(Diary)

やねうらお−ノーゲーム・ノーライフ このページをアンテナに追加 RSSフィード

GT-Rの買取ならここですわ。どこよりも高く買取ってもらえるはず。お勧め!GT-R 買取
電王戦出場記念! 書籍化されたで! 監修したで!(`ω´) 絶版なってしもた Kindle版で復活!! 記事書いたで!
解析魔法少女美咲ちゃん マジカル・オープン!

YaneuLabs / やねうら王公式 / やねうらおにメール / twitter / プロフィール

 | 

2012-04-02 実現確率に基づいた辞書攻撃をしてみた話

[][] 実現確率に基づいた辞書攻撃をしてみた話  実現確率に基づいた辞書攻撃をしてみた話を含むブックマーク  実現確率に基づいた辞書攻撃をしてみた話のブックマークコメント


昨日、4月1日3月末に退社した社員パスワード(ここに詳しくは書けない)がわからなくなって困っているという相談をあるお客さんから受けた。


その社員は、そこの上司に個人的な怨恨があるらしく「死ね!」と言い残して辞めていったのだそうだ。パスワードを教えなかったのは何かの腹いせなのだろうか。


ともかく、その社長の許可を取り、私はダメ元で総当り攻撃をしてみることにしたが、1時間ほどやってみて、無理そうだから切り上げ。


次に辞書攻撃をしてみることにした。辞書英語辞書Wikipediaから集めてきた私のお手製のものだ。これも1時間ほどやって無理そうだから切り上げ。


辞書単語の組み合わせも試してみることにした。

私が攻撃に使う辞書はそれぞれの単語IDなどに出現する頻度を統計的に求めてある。


これを使って、例えば、10%で出現する単語flower20%で出現する単語catを組み合わせたflowercatというパスワード1020%=2%の確率であり得る(存在し得る)と仮定する。この確率一定以上のものの組み合わせを求めるプログラムを書く。


仮にその確率がX以上であり得るものを生成するとしたら、a × b × … (a,b,…はそれぞれの単語の出現確率)と掛け算していき、それがXを下回ったら終了。


つまり、a × b × … < X が終了条件で、両辺の対数をとると

log (a × b × … ) < log X

log a + log b + log … < log X

なので、これを満たしたら終了。log Xは事前に計算できる定数だし、各単語の出現確率のlogも事前に1度だけ計算すればいいので、結局、掛け算はいらなくて足し算(or 引き算)のみで計算できる。(このアイデアは実現確率探索のもの。)


まあ、なんにせよしばらくやっていたら、なんとかパスワードがわかったらしく部屋中にbeep音が鳴り響いた。


上司に「死ね!」と言い残して退社する人ってどんなパスワードを使ってるんだろうと思って画面を見たら「golgo13」(ゴルゴ13)だった。


やれやれ。4月1日だからって、全く悪い冗談だ。


.

yaneuraoyaneurao 2012/04/02 21:42 はてブでいただいたコメントが心温まるものだったので引用します。

> eve_omega「死ね!(長い間お世話になりました。パスワードが厨二病過ぎて直接言うのは恥ずかしいけど、あなたならこのヒントでパスワード分かりますよね。最後にお昼を一緒食べたときにさりげなく好きな漫画の話もしたし)」

nn 2012/05/02 15:19 サラトマかと思いました。

yaneuraoyaneurao 2012/05/02 15:25 ↑ちょ、、ちょっと!そんな幼少期に遊んだゲームの名前を出されると弱いのです。いやー、ホント、初期のアドベンチャーゲームって、使用できる名詞+動詞をひたすら入力していってましたねー。

トラックバック - http://d.hatena.ne.jp/yaneurao/20120402
 | 

1900 | 01 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 06 | 08 | 10 | 11 | 12 |
2015 | 01 | 02 |


Microsoft MVP
Microsoft MVP Visual C# 2006.07-2011.06