Quantcast
Channel: OKWAVE 最新質問(ネットワーク/227)【本日】
Viewing all articles
Browse latest Browse all 5122

ランダムな英数字記号78文字を覚えるには?

$
0
0
最近いよいよクラウドなどが本格的に普及してきて、パスワードやらIDやら秘密の質問やら、覚えておく(思い出せるようにしておく)名前を決めることが多くなってきました。 そこで種となる文字列さえ暗記しておけば、個々の名前は覚えなくとも、毎回所定の操作をすることで導き出せる方法を考えました。 (個々の名前は、パスワードのように推測に対して強度を要求されるものでもOKです。) その方法は、 1.ランダムな文字列をひとつ決めて、これを暗記して種パスワードとする。 2.個々の名前毎に、種パスワードの部分だけを変数としたハッシュ関数の計算式を作る。 3.2.で作った計算式をHPやBlogなど、インターネット上に公開で記録する。(QRコード使用) 4.記録した計算式を別デバイス(漏えい対策。ネットに繋がずスタンドアロンで使用。電卓のような感じ。)で読み取って計算を実行する。 5.別デバイス画面上に表示された計算結果をそのまま端末に入力して利用する。(個々のパスワードなどが直接ハッシュの値なので、暗記しない前提で、利用の度に毎回計算する。)計算結果はQRでも表示されるようにしておけば、端末がQR読み取り可なら入力の手間も省けます。 種パスワードさえバレなければ正しく計算できませんので、計算式を公開しておけるというのがポイントです。 参考までにYouTubeに動画で投稿しました。(http://www.youtube.com/watch?v=VN6DPuUeKfY ←前の質問に書いたのと同じです) ハッシュ関数には、ちょうど昨年(2012年)10月にSHA3が策定されたばかりで、歴代のハッシュ関数が10年くらい持っている(Collisionなど致命的な欠点が見つかるまで)ようなので、現時点最新ということでSHA3を使用するつもりです。 別デバイスには事前に種パスワードを設定しておくものとします。 種パスワードの文字長はハッシュ関数のビット数と同じとします。これはセキュリティチェーンを考慮しました。 要するに自分の名前+推測されにくいパスワードなどをハッシュに通してそれを種パスワードにすればいいじゃんと思っていましたが、そういうのは大抵辞書攻撃(レインボーアタック)でやられてしまうらしいです。完全にランダムな文字列を決めて、それを暗記するしかなさそうです。 とすると、SHA3は512ビットなので半角で使える文字を全て使って(※)表現すると78文字となり、これは例えば次のような文字列になります。(※ASCII印字可能文字95種類。半角カタカナ等は使いません。) 5Uq3&:jSGEAY r!A|:04Yy:%9=.ET?7ILG` P`]'_-|!|1sJH{&9C@yKgP~P&W$oFBOkztl?Lmrm>1 (これは仮として、Wolfram|AlphaというサイトでASCII32~126の間で78文字をランダムに求めたものです。計算ボックスで[FromCharacterCode[RandomInteger[{32, 126}, 78]]]を実行。下のリンクで即実行されます。ランダムなので実行の度に異なる結果になります。) http://www.wolframalpha.com/input/?i=[FromCharacterCode[RandomInteger[{32%2C+126}%2C+78]]] そこでやっと本題の質問なのですが、このようなランダムな78文字もの文字列をうまく暗記する方法はあるでしょうか。 パスワード、語呂合わせ などで検索してみましたが良い方法が見つけられませんでした。 ここさえクリアすれば、後は全て同一の物、同一の操作手順に出来るので、極端に言えば津波で何もかも失ってもすばやく復旧できるとか、応用は広そうです。 これから始めることなので急ぎではありませんが、自分ひとりではなかなか思いつかないので、前の質問にもすばやく的確な答えを頂けたのでまた質問してみました。 実は何年か前にも全く同じ考えでいろいろ質問したのですが、最近Win8タブレットを入手して上記動画のように実証機のようなことをしたこともあって、また最近こちらにお邪魔している次第です。 以上よろしくお願いします。

Viewing all articles
Browse latest Browse all 5122

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>