Fork me on GitHub

cuspy memo


20100123 simple

2010/01/23 Saturday 17:39:23

今日やったこと。
erl_interface の perl XS module Erlang-Interface-0.03 リリース。
http://search.cpan.org/~hamano/Erlang-Interface-0.03/
github にも push
http://github.com/hamano/perl-erlang-interface

Cのerl_interface に対応する低位インターフェースは用意できた。
あとは上位にオブジェクトインターフェースを用意したいのだけどノードのインスタンスを複数作るにはどうしたものか。

これを実装するにあたりooldaemonさんの記事が参考になった。
erl_interface メモ – cooldaemonの備忘録

あと自宅サーバーを復旧した。
wordpress 2.9.1 に upgrade、壊れたDBを修復した。

firefox が落ちる問題の調査。
uim か gtk の immodule が怪しいことは解った。
滅多に再現しないので得に進展なし。

以上。

追記:
firefoxがクラッシュする問題は、uim 1.5.6 以前の問題で 1.5.7 以降で修正されていることを @mnoguさんに教えてもらった。
http://bugs.freedesktop.org/show_bug.cgi?id=25139

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge

野菜炒め

2010/01/18 Monday 03:14:16

yasai

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge

#include <beer.h>

2009/11/09 Monday 23:29:05

include_beer_h

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge

ぶら下がりLinux

2009/08/25 Tuesday 20:51:50

引越ししました。

間取り

押入れ(CLって書いてある所)と寝室が別れているので、寝る時にサーバーの音がまったく気にならなくなったのだけど、以前住んでいた所よりも押入れが狭くなってしまい、幾つかのサーバーが置けなくなってしまい困った。

縦空間は、まだ空いているので、棚を設置して小型のベアボーンに移行したり、ハンガーを掛ける所にFoneraをぶら下げるなどして収まった。

押入れ

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge

ARTiGO A1000 のハードウェア乱数生成器を調査

2009/03/15 Sunday 02:50:04

ちょっと前に購入した、手のひらベアボーンARTiGO A1000がTRNG(ハード
ウェア乱数生成器)を持っていることに気がついた。

# modprobe via-rng
# ls -l /dev/hwrng
crw-rw—- 1 root root 10, 183 2009-03-15 00:15 /dev/hwrng
# head -c 16 /dev/hwrng | hexdump
0000000 e06d 5079 c2ae e9b5 8cc2 8781 fa6d 9497
0000010

さっそく乱数の生成速度と、品質を確かめてみる。
比較対象は、フェアじゃないけど疑似乱数の /dev/urandom と、eToken Pro が持っている乱数生成機(これは TRNGらしい)と比べてみる。
それぞれの乱数生成機で1M分の乱数を生成してみた。

  • /dev/urandom(PRNG)
  • # dd if=/dev/urandom of=/dev/null bs=1024 count=1024
    1024+0 records in
    1024+0 records out
    1048576 bytes (1.0 MB) copied, 1.60021 s, 655 kB/s

  • /dev/hwrng(TRNG)
  • # dd if=/dev/hwrng of=/dev/null bs=1024 count=1024
    1024+0 records in
    1024+0 records out
    1048576 bytes (1.0 MB) copied, 3.02498 s, 347 kB/s

  • eToken(TRNG)
  • # time echo -ne “engine -t dynamic -pre SO_PATH:/usr/local/engine_pkcs11-0.1.5/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/opensc/opensc-pkcs11.so\nrand -engine pkcs11 1048576 -out /dev/null” | openssl
    OpenSSL> (dynamic) Dynamic engine loading support
    [Success]: SO_PATH:/usr/local/engine_pkcs11-0.1.5/lib/engines/engine_pkcs11.so
    [Success]: ID:pkcs11
    [Success]: LIST_ADD:1
    [Success]: LOAD
    [Success]: MODULE_PATH:/usr/lib/opensc/opensc-pkcs11.so
    Loaded: (pkcs11) pkcs11 engine
    [ available ]
    OpenSSL> engine “pkcs11″ set.
    OpenSSL>
    real 0m6.439s
    user 0m0.332s
    sys 0m0.008s

まとめ。VIA の /dev/hwrng は /dev/urandom より半分くらい遅い。
まあ、PRNG と比べるのがナンセンスな話で TRNGとしては十分なスピードが出ていると思う。eToken Pro は 1M 生成するのに6秒もかかってしまう、これは eToken Pro の乱数生成器の目的が秘密鍵の生成を目的としているので遅いのは仕方の無いところ。

次は品質。乱数の品質といえば、NSA が FIPS 140-2 で規定している 4つの乱数検定。
簡単な乱数検定だったので以前ちょこっと実装したのがあるんだけど、なんと、debian の rng-tools というパッケージにこの FIPS 140-2 の乱数検定を行うプログラムが付属していた。

こんな感じで /dev/urandom のテストができる。

% dd if=/dev/urandom bs=1024 count=1024 | ./rngtest
rngtest 2-unofficial-mt.12
Copyright (c) 2004 by Henrique de Moraes Holschuh
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

rngtest: starting FIPS tests…
rngtest: entropy source exhausted!
rngtest: bits received from input: 8388608
rngtest: FIPS 140-2 successes: 419
rngtest: FIPS 140-2 failures: 0
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 0
rngtest: FIPS 140-2(2001-10-10) Long run: 0
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=1.881; avg=5.000; max=4768.372)Mibits/s
rngtest: FIPS tests speed: (min=23.606; avg=24.818; max=25.064)Mibits/s
rngtest: Program run time: 1923705 microseconds

なんかテストが5つに増えてるけど気にしない。この結果が意味するところは、20000 bit の乱数を入力として5種のテストを各 419 回ずつ行った所すべてのテストで1度も失敗し無かった、という結果。

失敗しないとつまらないので、もっとたくさんやってみる。

% dd if=/dev/urandom bs=1M count=100 | ./rngtest
rngtest 2-unofficial-mt.12
Copyright (c) 2004 by Henrique de Moraes Holschuh
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

rngtest: starting FIPS tests…
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 191.716 s, 547 kB/s
rngtest: entropy source exhausted!
rngtest: bits received from input: 838860800
rngtest: FIPS 140-2 successes: 41911
rngtest: FIPS 140-2 failures: 32
rngtest: FIPS 140-2(2001-10-10) Monobit: 5
rngtest: FIPS 140-2(2001-10-10) Poker: 4
rngtest: FIPS 140-2(2001-10-10) Runs: 9
rngtest: FIPS 140-2(2001-10-10) Long run: 14
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=12.590; avg=5254.638; max=6510416.667)Kibits/s
rngtest: FIPS tests speed: (min=1.142; avg=23.456; max=25.163)Mibits/s
rngtest: Program run time: 191722267 microseconds

% dd if=/dev/hwrng bs=1M count=100 | ./rngtest
rngtest 2-unofficial-mt.12
Copyright (c) 2004 by Henrique de Moraes Holschuh
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

rngtest: starting FIPS tests…
rngtest: entropy source exhausted!
rngtest: bits received from input: 838860800
rngtest: FIPS 140-2 successes: 41891
rngtest: FIPS 140-2 failures: 52
rngtest: FIPS 140-2(2001-10-10) Monobit: 9
rngtest: FIPS 140-2(2001-10-10) Poker: 3
rngtest: FIPS 140-2(2001-10-10) Runs: 15
rngtest: FIPS 140-2(2001-10-10) Long run: 25
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=6.484; avg=2748.736; max=6510416.667)Kibits/s
rngtest: FIPS tests speed: (min=937.425; avg=23785.710; max=25766.821)Kibits/s
rngtest: Program run time: 335642185 microseconds

/dev/hwrng の方が若干失敗が多いな、こういうんもんなんだろうか。

No comments yet.

Leave a comment

You must be logged in to post a comment.

hoge

Next Page >