電話アプリのグループ化
さて、トランシーバー機能についてはこれでいいとして、本命の電話機能の開発だ。
メール開発用に用意していた一台を電話サーバとして確保。
プログラミングを開始。
といっても基本はメールサーバの改造で行けるはずだ。
メールサーバは受け取ったデータを一旦ユーザー毎のフォルダに保存し、受信要求があったら送信するのが基本動作だ。
これをファイル経由せずに直接転送するようにする。
「だけどグループ通信が暗号化されているのに、個人通話が暗号化されていないのは気になりますねぇ」
グループは双方同じものを事前に登録するため、パスワードも同じものが登録されている。
パスワードもグループ名も同じなのでそれをベースに作られる暗号キーは同じものになる。
しかし個人への電話は個人名もパスワードも違うので、暗号キーも異なる。
直接やり取りしようと思うと暗号キーを交換する必要があるが、最初の暗号キー交換はどうやっても平文でのやり取りになってしまう。
これを解決するには公開鍵とか結構めんどくさい手法が必要になるが、その手法はなんとなくしか覚えていないので、今再現するのは不可能だ。
「とすると個人間での電話は送信側の暗号キーで暗号化してそれをサーバで復号化し、受信側の暗号キーで再び暗号化して受信側に送り受信側はそれを自分の暗号キーで復号するという流れになるね」
電話サーバはすべてのユーザーの個人名とパスワードを知っているからね。
当然暗号化も復号化もできる。
基本はこれでいいだろう。
メールサーバはメールが来たらメールが来てるよパケットを送るわけだが、電話サーバは電話が来てるよパケットを送り、一定時間受け取ったよパケットが来なかったら、電源が入っていませんまたは電波の届かないところにいますよパケットを返す。
受信拒否されたら、受信拒否パケットを送る。
着信拒否設定とかはまあいいだろう。
ユーザーが庶民まで広がったら考えればいい。
しばらくは限られた人間しか使わないからね。
問題は暗号化復号化だ。
あまり複雑な方式にしてしまうと処理能力がパンクしてしまうし、単純にしてしまうと破られやすい。
まあこれもとりあえず暗号キーで単純にXORするとか単純な方式でいいだろう。
暗号キーの作成はMD5とかSHA何とかあったけど、まあ適当でいいや。
ユーザー名とパスワードを適当に足したり掛けたり入れ替えたりすればまあ、それっぽいものができるだろう。
仕組みさえ入れておけば、後で暗号化ルーチンを入れ替えることも簡単だから、徐々に強化するなりアルゴリズムを変更するなりできる。
これなら悪意ある人物はそのたびに解析しなおすはめになるし、漏れる情報も最小限になるはずだ。
暗号強度とか検証できないけど、これで当分は問題ないはず。
今の所開発ツールは公開していないので、盗聴プログラムを書けるとしたら僕しかいないからね。
なら暗号化は必要ないんじゃない? とか思わないでもないけど、まあ、将来への布石かな。
開発ツールも近いうちに公開しなければプログラムを組む人が増えないからね。
今は基本的に文官や商人に売り始めたところだからまだ必要ないが、魔導士爵に売り始めるようになれば当然開発ツールやドキュメントなども一緒に売ることになる。
それは遠い未来ではない。
ということでちゃっちゃと進めていきますか。
僕はメールサーバプログラムを改造するとともにメーラーの改造も並行して行っていく。
メーラーは電話アプリに改造だね。
アドレス帳はそのまま使えるし、メールグループの登録機能もあるから、パスワードを登録できるようにすれば、グループ向けのトランシーバー用インターフェイスになる。
「まてよ。一回サーバを通して個人通話で暗号キーを送って、それからトランシーバー通信に移行したら、グループパスワードを設定する必要もないし、事前にグループ化する必要もないんじゃないか?」
SkypeやTeamsといった音声チャットツールも事前のグループ化は必要ない。
事前にグループを登録したり、その場でユーザーを追加していくなど、後から臨機応変に追加削除が可能だ。
まずは電話サーバを通してネゴって、その後トランシーバーモードに移行すればいいんじゃね?
もちろん接続場所が変わったせいでつながらないやつとか出てくるだろうけど、向こうのグループチャットだって通信環境が不安定だったりするとよく切れたり音飛びがひどかったりすることも有る。
その辺はエラー率が高かったら送信出力を上げるなどいくらでも手の打ちようが有るだろう。
「電話は通信範囲が広いし、サーバを経由しない通信も可能だから、周波数帯を少し下げて障害物に強くしたほうがいいかもしれないな」
この辺は実際に使ってみてだね。
メールはデスクトップ機主体で使うから離宮とその周辺で使えればいいやと思っていたが、電話やトランシーバー――いや音声チャットだね――はモバイル機で騎士が中心に使うだろうから、警備範囲である町周辺までくらいは範囲に入れたい。
しかしUSBパソコン自体が基地局になるため、その発信地点はほぼ地上一メートルちょっと。
室内からの発信も多数に上るであろう。
ならやはり周波数を下げて障害物に強くし、送信パワーの自動調節ないし手動にての調整機能を着けておいたほうがいいだろう。
USBパソコンの生産が始まったら早速騎士たちに持たせ仮運用を始めたい。
となるとその前にまた下賜の儀を開かないといけないのかな?
だけどUSBパソコン、言いづらいからもうスマホでいいか。
電話だけじゃなくてメールもできるしね。
今回作ったスマホはUSBメモリと同サイズ。
USBメモリを配ったときは陪臣に下賜の儀とかはしなかったけど、今回は機能としてはパソコンと同じだからなぁ。
値段も筐体部分が多少安くなっても元々その部分は原価に占める割合が少ない。
電話とメールだけに限定しても表計算が抜けるだけだからそれほど安くはならないし。
電話機能に限定すればかなり安くなるだろうけどそれはもはやスマホではない。
単なる携帯電話だ。
できればフル機能で使ってほしい。
ディスプレイとキーボードさえ繋げば普通にデスクトップ機としても使えるし、報告書を書いたり表計算でなんかの申請書を出すとかにも使えるであろう。
キーボードとディスプレイだけのマシンなら、魔石も魔導板も不要で、カイゼルさんが魔導線を貼るだけで作れるから、本体自体はかなり安く作れるだろう。
向こうの世界だってノートパソコンではあるが同じような使い方をしている人も多かったはず。
「セットで買っていただけるように提案してみるか?」
いや、いっそのこと陪臣に配ったパソコンもモバイル化するか?
魔石を外してスマホの方にくっつくるだけだ。蓋じゃなくて後ろの方にだけど。
普段はデスクトップのUSBコネクタに差して使い、外出するときは抜いて持ち運ぶ。
スマホのように持ち歩くと紛失の可能性は高くなるけど、デスクトップ機にバックアップしておけば、魔石を入れるだけで取りあえず使えるようになる。
そこから再びスマホをセットアップすればいい。
まあ、シーケンスは機器ごとの課金だから、結構高く付くけどね。
これ早く外部に売り出さないと大赤字だね、父上が。
僕はシーケンス代が入ってウハウハだけど。
エディタや表計算は使いこなすのに時間がかかるだろうけど、電話はアドレス帳さえ作ってしまえば後は宛先を選択するだけなので、たいして難しいところはない。
一番売りやすい機能かもしれない。
「そうすると、長距離通話も欲しいところだね」
王都や派閥の領地と電話やメールのやりとりができれば、非常に便利になるはずだ。
長距離通信と言えばやはり短波帯か?
電離層の性質が同じであれば短波帯で世界中と通信ができるはずだ。
まあ、周波数によっては反射角の問題で有視界距離と反射可能角度での距離の間で通信できない不感地帯がドーナツ状にできちゃうからこの辺も実際にやってみるしかない。
もう一つの問題が世界中と通信できるためユーザーをある程度限定しないといけないということだ。
でないとサーバや帯域がパンクしちゃうからね。
低い周波数帯だとチャンネルも多く取れないし、領主間でしかも緊急時にしか使わないとかルール化が必要であろう。
まあこれも数年後の話だ。
今は全部僕が制御できる範囲内だから僕がルールだ。
勝手に決めちゃえ。
電話とグループチャット機能についてサーバ側とスマホ側でそれぞれ実装し終わった頃にはスマホの量産機が四台納品された。
筐体は型に入れて固めるだけなので、量産は難しくない。
職人の方では型に入れて作った部品にインクを詰めてコルクで蓋をしたものを納品させ、カイゼルさんは魔石や魔導板と魔導線を配置し、接着剤でくっつけるだけになったことで製造効率が上がりコストがだいぶ抑えられるようになったらしい。
納品された四台は僕が買い取って先生とカイゼルさん、そして新規着任したライアンさん、そしてアンジェリカへ貸与する。
電話サーバは開発に使ったパソコンをそのまま設置。
ユーザーが五人なら十分な処理能力だし、中継するのは最初のネゴのときだけだから、四倍早いやつでなくてもぜんぜん大丈夫だ。
しばらくはこの四人で電話を掛け合ってデバッグとブラッシュアップを行い、完成度を高める。
いつもの手法だ。
中でもカイゼルさんは職人街の方までちょくちょくでかけているから、通信のテストには都合がいい。
メールだと多少データ遅延してもそんなに気にならないけど、音声だと一発でわかるからね。
出力調整やら周波数帯の特性確認などを行う予定だ。
職人街は町のハズレの方にあるから、そこまで安定的に通信ができればとりあえず十分なはずだ。
騎士の見回りは通常町外れまでだからね。
その外側の農村は魔物でもでなければ通常は見回ることはない。
「まてよ。討伐の時には村のあたりやその外側まで出向くときもあるから、やはり電話サーバを介さないグループを作れるほうがいいよね」
近隣の仲間と連絡が取れればいいだけなら、あらかじめグループ設定してスタンドアローンで通信ができたほうが便利だ。
森での間引き作業や、街道での護衛任務だと電話サーバにアクセスできないことも有るだろうし。
やっぱりグループ化機能はつけよう。
グループ名とグループパスワードは電話帳から設定すれば自動的に対象ユーザーに配布されるようにしとくか。
これなら各自設定する必要はないしね。
サーバに繋がっていない端末にはつながった時点で送れるようにメール機能の一部を復活させればいいよね。
よし、次は実測だ。
チャットといえば昔はテキストしかなかったのですが、今や音声チャットが当たり前。
モンハンもゲーム内チャットといえばテキストオンリーでしたが、今やボイチャ前提の募集も多くなりました。
おかげでネカマプレイが不可能にw
嫌な時代になったものですw
ネカマプレイをしていたというわけではありませんが、音声というのも一つの個人情報ですからね。
声質、話し方などで性格が見えたり、周りの環境音で身バレする可能性があったりと、第3者との音声通信は結構リスキー。
世の中には瞳に写った風景から住所を特定する強者がいるくらい。
見知らぬ第3者とのボイチャは十分に気をつけましょうw