2009年10月

2009年10月28日

昨日の続き はてなブックマーク - 昨日の続きこのエントリーをはてなブックマークに追加

昨日、8バイトのIDが生成できるようになりましたが、少し欲が出てきて、4バイトのID生成もしたくなりました。

そこで、4バイトのブロック暗号はないかと調べてみたのですが、Javaの実装が見つかりませんでした。

良く考えてみると、今回は、ID用の文字列を生成することが目的ですので、暗号化というよりも、バイト配列を可逆変換でかき混ぜるということをしたいだけでした。なので、自分で作る方が早いということが分かりました。

RC5アルゴリズムのように、バイト配列を二つに分割して、XORとrotate演算を何回か繰り返しせば、可逆変換でバイト配列をかき混ぜることができます。

これでようやく、ID生成のライブラリができました。

2009年10月26日

8バイトを暗号化したら16バイトになる問題 はてなブックマーク - 8バイトを暗号化したら16バイトになる問題このエントリーをはてなブックマークに追加

ID生成のため、DBでユニークに生成したlong値を、可逆暗号で文字列にすることにしました。

簡単に実装できるかと思っていたのですが、8バイトのデータを、Javaライブラリを使って暗号化すると、16バイトになってしまうという問題にはまってしまいました。

IDが16バイトでも動作としては問題は起こらないのですが、IDが意味もなく長いのは非常に気になります。(IDは、URLなどに含まれた場合、ユーザの目に触れることになりますので)

Java BouncyCastle と PHP mcrypt のパディング処理の違い - たれろぐの情報によると、どうも、Javaでは、64ビットブロック暗号で、8バイトちょうどのデータをエンコードした場合に、8バイトのパディングが付いてしまうようです。

OpenSSLでも実験してみましたが、同じような結果になりました。

久しぶりに「暗号技術大全」を引っ張り出して、Blowfish暗号作者のソースを調べてみたのですが、8バイトちょうどのときはパディングは付けていませんでした。

時間を経て、何らかの事情によって、典型的な実装が変わってしまったのでしょうか。(OpenSSLがパディングを付けたので、他の実装も真似してパディングを付けているのかもしれません。)

暗号技術大全暗号技術大全
著者:ブルース・シュナイアー
販売元:ソフトバンククリエイティブ
発売日:2003-05-31
おすすめ度:4.0
クチコミを見る



2009年10月21日

展示会 はてなブックマーク - 展示会このエントリーをはてなブックマークに追加

今日は久しぶりに展示会の説明員をしていました。

以前からお世話になっている会社と一緒に作っているシステムがあるのですが、その展示を、全日本科学機器展(インテックス大阪)でやっています。

周りの展示や来ている人たちは、機械屋さんが多いのですが、ソフトやネットワークのことで何か手伝える案件が見つかればいいなあと思います。

自分たちのやっていることを分かりやすく説明することは重要ですね〜。


2009年10月04日

1000個のアイデア はてなブックマーク - 1000個のアイデアこのエントリーをはてなブックマークに追加

最近、色々な人に会うようにしていますが、そのたびに新しい発見があります。色々とビジネスの話しを聞けますので、私も次の事業のイメージを膨らましています。

今のところ、私の中では4つほど事業のアイデアがあって、どれも捨てがたいのですが、時間的に言って、実現できるのは2つくらいかなあと思っています。

ただ、以下の原則に従うと、100個の良いアイデアを考え付かないと、成功できないのかもしれません。

・アイデアが1000個あるとして、その中で、良いアイデアは100個ある
・良いアイデアが100個あるとして、その中で、(スマートに)実現できるアイデアは10個ある
・実現可能なアイデアが10個あるとして、その中で、成功するアイデアは1個ある

事業のアイデアを考えるときは、業界地図を見ていると、いろいろとアイデアが膨らみます。

会社四季報 業界地図2010年版会社四季報 業界地図2010年版
販売元:東洋経済新報社
発売日:2009-09-02
おすすめ度:4.0
クチコミを見る


余談ですが、上の本では、業界の市場動向を5段階の天気マークで表現しているのですが、快晴(最高ランク)は、「クラウドコンピューティング」だけのようです。「クラウドコンピューティング」は、GoogleやAmazonなどの海外企業が支配していますので、日本はなかなか厳しいですねー。


PR広告
月別アーカイブ
最新コメント
最新トラックバック
livedoor Readerに登録
RSS
livedoor Blog(ブログ)