エントロピープールの収集速度
/dev/randomはハードウェア乱数器を持たないPCなどで、OSレベルのイベント(Entropy Sources)を収集し、それをEntropy Poolに蓄積。そこから偏りとかを削って(暗号用途的にある程度強度な)乱数を発生させる機構だそうな。/dev/urandomはとりあえず足りなければローカルなので疑似乱数を返すようなんだけど、/dev/randomの方はより強力(真性に近い)な乱数を得るため、必要な量のエントロピーがたまるまでブロックする。GPGとかでgen-keyすると「なんかタイプして」とか「なんかディスクアクセスして」とか言われるのはこのため。
しかし結構な時間ごちゃごちゃやってないと動かない。いったいどのくらいの速度で収集されてるのか気になって試してみた。
やったこと
の3つをやってみた。ちなみに/proc/sys/kernel/random/entropy_availをみると現在の量がわかるらしいので、これを1秒間隔で拾ってみた。
キーを乱打は以下のような感じのをうちまくった。
tkuro@sawshark> dfja;lksdjflaksdjf;lkasdjf;lkasjdf;lkajsd;lfkja;ldksupojsfl;kajsd;flkajsd;flkajs;dlfkjas;dlfkj;lhij;kj;lkcjz;lkxcjv;lzkxjcvpoiua;skldfj;alskjdf;lkasjdfl;ksjdf;lkj;lzkxjcv;lkja;ldskjf;alksjdf;lkajsd;lgkja;slkdfj;alksdjf;laksjdf;laksjdf;lkajsd;lfkj;lzlkcxjv;zkljx;lckuvpoijalskdfj;laksdjf;lakj;lkje;lrkja;lkdsjf;ajsdflkjsadjf;laksjdg;iahgjaposdkfj;alskdfjaposdifuasdfja;lksdjpyiquepoeijtflkzxjb908cx7vopizxjfg;lkerwjrtlkj4l5j34,gmn/fdkbj@aopdgia:l;dkfl;akdfoeruiyw-098df@pzoxjkdlkfjqlk;ejroqpisufoiasdufpakdfjglkryjiu5poiu35jlktrjgiosifdug098zcv7bpoisdjf;lgkj;wlkrjylkjal;sdkfjpdoiugalskjg;akljd;flhjapodijflkajdsfaskdjfpoaisyugpioadjfknsdaklfjaopidsiuajfklsdjfa;lsdkjga;lksdfhpaisdyfipasjhdf,.mdnh,m.wnretkwhretpwiurytiadhsfja,sdjhfkabndsgm,zxchjioubyzidhfgmhyw;ruytpoidsjflkasdhfiutydsipjzkhxckljgakl;dfjhgl;aiduygfi0uasydfipaosdufj;lakghn;alkrejtroiqepuertiowuertoi;jgdfl;kgjal;fdgujuaoidfgupoc7gz9-8futjrkljykltjykrjutioadufoisdkfjlkdsfjaoeisjflkajsdpfouyadspofuas;ldkfja;sdutadsugjl;askdjfaosdpifuas;dklfja;lskdfja;sodifupaskdjlkyjrelkwuter08t7z980xf7vizxhcklfgjakldsjf;laksdjfadsif8yasdkfjhas;ldkfjklasdjgpaiofduwlekrlkrjgapoiidjfuoipasdufpoaisdjfal;kjsklerjwepoituporijg;lkdfjghud0iaiduyfpoajsdfkalsj;lkdfj;asdifyu0a98dsufoasdkjfk;lryju-e945u2oi3u589sd07fozijdlkzxcjv;lkdasjf;laksdjf;aigypaodsijfklajdsfioapidsygiufbjklzxcjvkljalkdsfja;lksdfjpiogusaotjlkertjaoksdfuaksdfkjlkasdufioasdfj;klt;qejufiopdsasdyfpu;laksdjf;lkasjd;iryupoeyjwe;lk5tj45oi6u3roipetuajls;kdfjgoicvub@zxjglk;jq;ksldjf;laksdfjiodfgbu;dklatjl;adksfjpoasdiufioklxjvb;zlkxdjgpioadfugtpaojtl;kryjr;leituwproitu;slkdfj;lkdjfal;ksdjf;apdoisfyoipzxcjfckvnasdipfguadlkjgkladjsflkasdjfi0aduyfgj;kladjsflk;adufioasdpfu;alksdjflasdufoipasduyfpasodjfklasdjfkalsdjfa;sdifhjasdiofayupdsfijl;kasdfgj;laksdjfalksdjfsipdpfyxopziujxkjvlkzxdjflk
結論
まあ手がだるいので find / で十分(ぉ *1