Jump to navigation
2006-07-07
DoJa4.1と902iS [by miyachi]
昨年に引き続き携帯(FOMA)での暗号関係のお仕事をしています。今回は色々と事情があり最新のiアプリ用ライブラリである
DoJa4.1を使っています。で最新の機能は最新の機種でしか動かない…ので携帯本体も買い増ししました。FOMAってSIMカードを入れ替えれば本体の着せ替えと言うか入れ替えが可能と言う事を実は今回初めて知ったのでした(笑) 我々のように開発側で色々な機種を試すのには便利ですね。
閑話休題。新しい機種を買うにあたってM社の協力で色々テスト。ベンチマークをやってみてびっくり!昨年は他社より1桁遅くて使い物にならなかったPとNの速度が他社並みに速くなってます。さすがに苦情が多かったのかなあ。でもiアプリからカメラを使った場合や撮影済みの画像にアクセスする際にPとNはVGAすら扱えない…やっぱり使えんか… なのでF/Dか前と同じSHのどちらかにする事に。画像の扱えるサイズはF/Dの方が良いが体感速度や安定性ではSHの方が良かったです。今回は安定性重視で前回同様SHに。携帯安売り店で
SH902iSを購入。次はFかDを買った方が良いのだろうなあ。
DoJa4.1と902iSの組合せだとビジネスアプリを作成するのに便利なAPIが使えるようになります。1つは
「SDカードへのファイル形式での読み書き」の機能。これで例えばサーバーから取得したデータを保存して取り出す事もできるようになりました。従来だと取り出せるのは画像とかだけだったので偽装していたり苦労しましたが、これからは便利です。あともう1つは
「電子署名」の機能が追加されました。ただし署名に使える証明書はDoCoMoの
FirstPassサービスのものだけです。今回電子署名は使いませんが将来はPKI的に面白い事が出来るようになるかもしれませんね。
と言うことで
iアプリで暗号やPKI関連のお仕事ありましたら経験と実績のある弊社までご連絡ください(^-^)/<宣伝モード
良い事ばかりの新携帯かと思っていたら低レベルの落とし穴が待っていました。ネット接続が必要なデモを外部で行う場合にはFOMAの
moperaサービスを使っています。ノートPCと携帯間の接続はUSBケーブルを使っています。
デモ準備をしようと思ってSH902iSにケーブルを接続しようとしたら… さ・刺さらない!よ~く見ると端子部の上が庇のように出ている為に、そこが邪魔になってケーブルが刺さらないようです。もちろん標準のACアダプタの場合は小さく作ってあるので問題は無いのですが、USBケーブルの端子はなんか異様にデカいので駄目なようです。
しくしく泣きながらSIMカードを抜いて古いSH901iCに入れ替えました。これからもデモの時にはSH901iCを持って行く事になりそうです。不便ですがまだSIMカードを入れれば古い端末が使えるだけマシだと言う事ですね。
なお先に書いたFirstPassの電子証明書はこのSIMカードに格納されるらしい。携帯もどんどん進化していますね。FOMAではありませんが
W-ZERO3[es]もなかなか魅力的。これで搭載しているOSがLinuxなら飛びついていたかもしれません。危ない危ない(^^;;
コメント一覧
初めてコメントを書かせていただきます。
私は趣味で暗号の勉強をしているのですが、
DoJaでベキ乗剰余を行うには、どのようにすればいいのでしょうか?
RSA暗号の場合、
c = m^e mod n n:1024bit
できるだけ早く処理ができるようにしたいのですが・・・
adaさん、こんにちは。趣味で暗号の勉強とは凄いですね(^^; 私の方は暗号応用がメインなので暗号の実装に関してはそれ程詳しく無いのですが、一応参考までに私の考えを書かせて頂きます。
べき乗計算をJavaでやる場合には特にRSA暗号のような大きな数字を扱う必要もあるので、Mathの中にあるBigIntegerのmodPowあたりを使うのが一般的だと思います。ところがこれは現状のDoJa/J2MEでは提供されていません。この辺りをまともに実装しているとメガiアプリでも無ければ普通のiアプリの容量では難しいと思います。
残念ながら上記のような状態の為に私もまだRSA公開鍵暗号をDoJaの上で利用する事は出来ていません。出来ればDoJa等の拡張により公開鍵系のAPIが実装されるのを待つのが一番良いように考えています。その意味でDoJa4.1から電子署名の機能が加わったのは大きいと思います。電子署名が出来ているのですから公開鍵はもちろん使えるはずですが、そこまではまだですね。
と言うことでお力になれそうもありませんが、いずれにせよBouncyCastleと言うJavaの暗号ライブラリのソースをご覧になると暗号の勉強にはなると思います。ご興味がありましたら以下のページでもご覧下さい。
http://www.langedge.jp/pub/...
BouncyCastleのソースを必要なクラスだけ選んで移したらDoJaでもちゃんと動きましたよ。
PSS-RSAでのデジタル署名のための鍵生成、署名生成、署名検証が出来る部分だけ移してProGuardで圧縮したところ、30kb切ります。
問題があるとすれば実行速度くらいです。
通りすがりさん、こんにちは。
おお。DoJaにBouncyCastle電子署名の移植されたことがあるんですね。私は仕事上は必要無かったので実際には移植にトライもしなかったんですが(^^;
速度面では純正の署名APIと比較してどの程度速度差があるか興味あります。あと署名だと証明書をどうするかも商用利用だと必要になりますね。
速度面で言えば以前はPやNの端末は遅かったのですが最近(902以降)だとだいぶ早くなりましたがそれでも遅いのでしょうか?この辺りはハード能力の向上に期待するしか無いのかもしれません。
情報ありがとうございました。
miyachiさん、通りすがりさん、こんばんは。
DoJaにBouncy Castleを移植されたのですね。
興味があるので、具体的にどのようにしたのかを
教えていただけないでしょうか?
luckさん、こんにちは。
具体的と言っても単純で、通りすがりさんも書かれているように、必要となるクラスのソースをBouncyCastleから抜き出してiアプリビルド時に一緒にまとめておけばOKです。
iアプリは容量の問題があるので必要な機能のクラスとそのクラスが必要としているクラスを個別に調べる必要がありますので、全てを移植するのは不可能ですし個別対応になります。
後はご自分で必要な機能の切り出しをしてみて下さい。
以上参考になれば幸いです。
コメントを書く
私は趣味で暗号の勉強をしているのですが、
DoJaでベキ乗剰余を行うには、どのようにすればいいのでしょうか?
RSA暗号の場合、
c = m^e mod n n:1024bit
できるだけ早く処理ができるようにしたいのですが・・・