| | | | | |
|

 |
|
 |
 |
 |
 |
Imonyで使用するRSA公開鍵
IDとRSA公開鍵を共通にする
IDとRSA公開鍵を共通にすると鍵の長さが足りなくなりませんか。ある程度、RSA暗号を知っている人は最初に思うでしょう。そこでImonyでは解決策としてIDから長い公開鍵を生成する方法を使う事にしました。
IDの構成要素
- [32] MAC Hash … MAC IDをSHA-1でハッシュ化した値の一部
- [48] RSA Seed … このIDがRSAの公開鍵になるための数値
- [16] Hash … 鍵のMD5値の一部、チェックサム
- [32] Provider ID(※鍵には関係ありません)
ID自体は96Bitで識別することになります。
※Provider IDは通信時に優先順位を決めるための物です。これについては別所で説明します。
ユーザノードキーの定義
-
<?
- // MAC IDをSHA-1でハッシュ化した最初の4Byte
- $node->mac_hash = substr(sha1(MAC_ID, true), 0, 4);
- // MAC HASHとRSA種を結合しノードキーとする
- $node_key = $node->mac_hash . $node->rsa_seed;
- // ノードキーをMD5でハッシュ化した最初の2Byte
- $node->hash = substr(md5($node_key, true), 0, 2);
- ?>
RSA公開鍵
-
<?
- // MAC HASHをMD5でハッシュ化した最初の13Byte
- $rsa_key = substr(md5($node->machash, true), 0, 13);
- // RSA鍵にRSA種を結合
- $rsa_key .= $node->rsa_seed;
- ?>
これで128Bit公開鍵ができるように、RSA種を設定します。RSA種は一般的なRSA鍵の生成に使われるミラー・ラビン(Miller-Rabin)テストを行い探索します。このテストでは極々稀に弱い鍵が発生する可能性がありますが仕様上そこまで問題ではありません。
|
 |
コンテンツ
トップページ
Imonyについて
Imonyアンテナ
更新履歴
リンク集
≫P2P today
≫俺が新しいP2P作ろっか?
…P2P製作 本スレ
≫Download板
|
 |
Copyright(C) 2004/04/01-2008/12/05 FlashBox.
All rights reserved. Programed by Imo.
Designed by Imo, N-Style, siv.
Time: 50.4ms -65
管理モード
|