Spearsご飯チェックシステムは以下の手順で使用する。
- wide番号の暗号化
- RFIDタグの書き込み
- サーバー環境構築(データベースなど)
- ご飯チェック運用
実際には以下のプログラムを使用する。
本システムは以下の環境を想定している。
サーバ環境
- FreeBSD 5.x Release
- PostgreSQL 7.x
クライアント環境
- FreeBSD 4.x Release
- CFカードスロットのついたPC
- リーダ・ライタ
暗号化したい文字列を記述したテキストファイル(デフォルトでは"plain.txt")を用意する。
さらに公開鍵(Public KeyとModuloの組み合わせ)を用意し、"rsa2"を実行する。実行すると、暗号化を行うのか、複合化を行うのかを聞かれるが、暗号化する際には"e"を入力する。
その後、Public KeyとModuloを入力し(デフォルトでは"13"と"323")、暗号化したい文字列を記述してあるテキストファイルを指定する。
暗号化された文字列を保存するテキストファイル(デフォルトでは"cypher.txt")を指定する。暗号化処理の後、指定したテキストファイルに暗号化された文字列を保存する。
その後、再び暗号化を行うのか、複合化を行うのかを聞かれるが、このプログラムを終了するためには、そのままEnterキーを入力する。
>./rsa2 ========================================= RSA Enctyption and Decryption ========================================= 'e' encrypt / 'd' decrypt _e Public key E [13] =13 00000000000000000000000000001101 Modulo M [323] =323 Input PLAIN text filename for input. [plain.txt] _plain.txt [plain.txt] was succesfully opened. Input CYPHER codes filename for output. [cypher.txt] _cypher.txt [cypher.txt] was succesfully opened. [Encrypted Plain Text] 260 95 34 233 317 [EOF] File succesfully transformed. :D 'e' encrypt / 'd' decrypt _e Good night. =D
CFカードスロットに、リーダ・ラータを刺し、"write-tag"を実行する。
リーダ・ライタはシリアルデバイスとして認識され、通常は"/dev/ttyd4"として認識される。第1引数にシリアルデバイスを指定し、第2引数に書き込む文字列(暗号化したwide番号)を指定する。
実行する前に、RFIDタグをリーダ・ライタの下(または上)においておく。
> ./write-tag [serial_dev] [wide-num]この作業をWIDE合宿に参加する人数分行う。
認証復号化サーバは、以下の環境を想定しています。
- FreeBSD 5.x Release
- PostgreSQL 7.x
データベース上にsaruというデータベースを作成し、テーブルを作成する。
デフォルトでは"epcads"というテーブルを参照しに行く(ハードコーディング)。
saru=> create table epcads ( saru(> id text not null CONSTRAINT bar PRIMARY KEY, saru(> owner text not null, saru(> modulo int not null, saru(> public int not null, saru(> secret int not null saru(> ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "bar" for table "epcads" CREATE TABLE saru=> \d List of relations Schema | Name | Type | Owner --------+--------+-------+------- public | epcads | table | don (1 row)テーブルにエントリーを追加する。
この作業をWIDE合宿に参加する人数分行う。
公開会議、秘密鍵を特にかえないのであれば、暗号化されたIDを"id"に、オーナ(合宿では"pc")を"owner"に入力する。
saru=> insert into epcads (id, owner, modulo, public, secret) saru=> values ('260.95.34.233', 'pc', 323, 13, 133); INSERT 17191 1 saru=> select * from epcads; id | owner | modulo | public | secret ---------------+-------+--------+--------+-------- 260.95.34.233 | pc | 323 | 13 | 133 (1 row)
データベースにエントリーを追加した後、サーバを起動する。
特に引数などはない。
> ./server
CFカードスロットに、リーダ・ラータを刺し、"start"を実行する。
リーダ・ライタはシリアルデバイスとして認識され、通常は"/dev/ttyd4"として認識される。第1引数にシリアルデバイスを指定し、第2引数に認証・復号化サーバの名前(アドレスでも可)を指定し、第3引数にチェックする食事のID(?)を指定する。
#tasakaシステムのIPアドレスはハードコーディング?(失念)
> ./start [serial_dev] [hostname] [date]