特許第6074544号(P6074544)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クァンタムシーテック カンパニー,リミテッドの特許一覧 ▶ シャンドン インスティテュート オブ クァンタム サイエンス アンド テクノロジー カンパニー,リミテッドの特許一覧

特許6074544アンドロイド携帯情報処理端末に基づく通信キーの配布方法
<>
  • 特許6074544-アンドロイド携帯情報処理端末に基づく通信キーの配布方法 図000002
  • 特許6074544-アンドロイド携帯情報処理端末に基づく通信キーの配布方法 図000003
  • 特許6074544-アンドロイド携帯情報処理端末に基づく通信キーの配布方法 図000004
  • 特許6074544-アンドロイド携帯情報処理端末に基づく通信キーの配布方法 図000005
  • 特許6074544-アンドロイド携帯情報処理端末に基づく通信キーの配布方法 図000006
  • 特許6074544-アンドロイド携帯情報処理端末に基づく通信キーの配布方法 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6074544
(24)【登録日】2017年1月13日
(45)【発行日】2017年2月1日
(54)【発明の名称】アンドロイド携帯情報処理端末に基づく通信キーの配布方法
(51)【国際特許分類】
   H04L 9/08 20060101AFI20170123BHJP
   G06F 21/57 20130101ALI20170123BHJP
   H04M 3/42 20060101ALI20170123BHJP
   H04M 1/00 20060101ALI20170123BHJP
   H04L 9/14 20060101ALI20170123BHJP
【FI】
   H04L9/00 601B
   G06F21/57
   H04M3/42 B
   H04M1/00 R
   H04L9/00 641
【請求項の数】8
【全頁数】19
(21)【出願番号】特願2016-517150(P2016-517150)
(86)(22)【出願日】2014年6月6日
(65)【公表番号】特表2016-528756(P2016-528756A)
(43)【公表日】2016年9月15日
(86)【国際出願番号】CN2014079373
(87)【国際公開番号】WO2014194856
(87)【国際公開日】20141211
【審査請求日】2015年12月8日
(31)【優先権主張番号】201310228443.1
(32)【優先日】2013年6月8日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】515341276
【氏名又は名称】クァンタムシーテック カンパニー,リミテッド
(73)【特許権者】
【識別番号】515341287
【氏名又は名称】シャンドン インスティテュート オブ クァンタム サイエンス アンド テクノロジー カンパニー,リミテッド
(74)【代理人】
【識別番号】110000338
【氏名又は名称】特許業務法人HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】ツァオ,ヨン
(72)【発明者】
【氏名】リュウ,チュンファ
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特開2005−122228(JP,A)
【文献】 特開平3−142557(JP,A)
【文献】 国際公開第02/093826(WO,A1)
【文献】 中国特許出願公開第102752230(CN,A)
【文献】 中国特許出願公開第102196425(CN,A)
【文献】 中国特許出願公開第102130769(CN,A)
【文献】 中国特許出願公開第103095461(CN,A)
【文献】 kenmaz,じっくり学ぶJava 第1回,日経ソフトウエア,日本,日経BP社,2008年 6月24日,第11巻 第8号,p.100−107
【文献】 出村 成和,組み込みAndroid エキスパート テクニックブック,株式会社シーアンドアール研究所,2012年 5月 7日,初版,p.20-23, 79-81, 106-120
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
G06F 21/57
H04L 9/14
H04M 1/00
H04M 3/42
(57)【特許請求の範囲】
【請求項1】
アンドロイド携帯情報処理端末に基づく通信キーの配布方法であって、
(1)アンドロイドオペレーティングシステムの最下層に普遍的機密通信プラットフォームを確立し、アプリケーション層の通信ソフトウェアプログラムのソースコード中で前記普遍的機密通信プラットフォームのアプリケーションプログラムインターフェース(API)を起動し、前記アンドロイドオペレーティングシステムの改変したソースコードをイメージファイル中にコンパイルし、前記イメージファイルを前記携帯情報処理端末に書き込むステップと、
(2)前記携帯情報処理端末を機密通信サポートネットワーク内のキー端末に直接接続し、前記携帯情報処理端末と前記機密通信サポートネットワークとの間で共有される共有キーをダウンロードし、前記共有キーを前記携帯情報処理端末に記憶させ、前記共有キーをダウンロードした後に前記携帯情報処理端末と前記キー端末との接続を遮断するステップと、
(3)通信サービスをインストールした後、前記携帯情報処理端末が、前記システムの前記最下層における前記普遍的機密通信プラットフォームの前記APIを起動することによってサービスキー獲得スレッドを生成し、前記機密通信サポートネットワークからの通信のためのサービスキーを要求するステップと、
(4)前記サービスキーの要求を受信した後、前記機密通信サポートネットワークが、前記通信において前記携帯情報処理端末への通信のためのサービスキーを配布するステップと、
(5)前記携帯情報処理端末が、前記システムの前記最下層における前記普遍的機密通信プラットフォームのAPIを起動することにより、前記機密通信サポートネットワークから前記通信のためのサービスキーを受信し、受信したサービスキーを当該携帯情報処理端末の記憶領域に記憶するステップと、
(6)前記携帯情報処理端末が、前記サービスキーを用いて機密通信を実行するステップとを含むことを特徴とする方法。
【請求項2】
前記ステップ(1)は、
(1−1)前記アンドロイドオペレーティングシステムのソースコードのC/C++フレームワーク層に、前記機密通信に関する基本機能を実現するための機密通信機能ライブラリを付加するステップを含み、
前記基本機能は、前記機密通信サポートネットワークとの相互命令機能、キー要求機能、キーダウンロード機能、キー管理機能、および暗号化−解読演算機能を含み、
前記機密通信機能ライブラリへの要求は前記アンドロイドのJava(登録商標)フレームワーク層にJava(登録商標)ネイティブインターフェース(JNI)を介して供給され、
前記機密通信機能ライブラリは、「*.so」ライブラリファイルにコンパイルされ、
(1−2)前記JNIを用いて前記C/C++フレームワーク層で前記機密通信機能ライブラリを起動し、前記アンドロイドオペレーティングシステムの前記ソースコードの前記Java(登録商標)フレームワーク層に機密通信クラスを付加するステップをさらに含み、
前記機密通信クラスは、前記アプリケーション層の様々な通信ソフトウェアによって起動される前記普遍的機密通信プラットフォームの前記APIに関連する機密通信を用いて上層のアプリケーション層に供給することを特徴とする請求項1に記載の方法。
【請求項3】
前記ステップ(3)は、
(3−1)前記通信サービスが開始された後、前記アプリケーション層の前記通信ソフトウェアが、前記システムの前記最下層における前記普遍的機密通信プラットフォームを起動し、前記機密通信サポートネットワークと無線接続される新たなサービスキー要求スレッドを生成するステップと、
(3−2)前記接続が確立した後、前記携帯情報処理端末が、前記通信のためのサービスキー要求のために、前記通信に関連する情報を前記機密通信サポートネットワークに送信するステップとを含み、
前記情報は送信側端末の識別情報、受信側端末の識別情報、認証情報、前記サービスキーが要求されるサービスを示す情報、および前記サービスキーが暗号化を実行するためのものか暗号解読を実行するためのものかを示す情報を含むむことを特徴とする請求項1または2に記載の方法。
【請求項4】
前記ステップ(4)は、
(4−1)前記携帯情報処理端末の前記サービスキー要求スレッドへの接続を待つためにネットワークサービススレッドを確立するステップと、
(4−2)前記携帯情報処理端末との通信が確立され、前記携帯情報処理端末から前記サービスキー要求を受信した後、前記通信のサービスタイプ、前記端末の識別情報、認証情報、および前記サービスキーの目的を取得し、前記携帯情報処理端末が前記サービスキー要求の許可を有しているか否かを判断し、前記許可を有する前記携帯情報処理端末にダウンロードさせるための前記サービスキーを配布するステップと、
(4−3)前記機密通信サポートネットワークが送信すべき前記サービスキーを前記携帯情報処理端末と前記機密通信サポートネットワークとの間で共有される前記共有キーを用いて暗号化するステップと、
(4−4)前記機密通信サポートネットワークが暗号化された前記サービスキーを前記携帯情報処理端末に無線通信により送信するステップとを含むことを特徴とする請求項3に記載の方法。
【請求項5】
前記機密通信サポートネットワークと前記携帯情報処理端末との間で共有される前記共有キーについて、
(5−1)前記機密通信サポートネットワークに記憶されている前記共有キーのヘッダに前記共有キーの現在の使用情報が記憶されており、前記共有キーが前記携帯情報処理端末にダウンロードされた時に前記ヘッダはフィルタリングされて取り除かれ、
(5−2)前記サービスキーを暗号化するときに、前記機密通信サポートネットワークが、前記共有キーの現在の使用位置を前記共有キーの前記ヘッダから抽出し、前記共有キーを前記現在の使用位置から用いて送信すべき前記サービスキーを暗号化し、暗号化した前記サービスキーにおける上記位置の使用されていないビットに情報を埋め込んで前記共有キーの前記ヘッダを更新し、
(5−3)前記機密通信サポートネットワークが送信した暗号化された前記サービスキーを受信した後、前記携帯情報処理端末が、暗号化された前記サービスキーの前記位置に埋め込まれた前記情報を抽出し、受信した前記サービスキーと当該携帯情報処理端末に記憶している前記位置の情報を有する前記共有キーとを組み合わせることにより、前記共有キーの前記位置を用いて受信した前記サービスキーの暗号解読を行い、
(5−4)前記共有キーの量が不十分な場合に、前記携帯情報処理端末が前記機密通信サポートネットワークから前記ステップ(2)に従って新たな共有キーをダウンロードすることを特徴とする請求項4に記載の方法。
【請求項6】
前記ステップ(5)において、
前記携帯情報処理端末によってダウンロードされた前記サービスキーの量が、機密通信を現在のサービスタイプで実行できる所定の閾値に達したときに、前記サービスキーを使用可能である旨を対応するアプリケーションに通知し、前記サービスキーが完全にダウンロードされるまで前記サービスキーのダウンロードを継続しながら前記サービスキーを使用することを特徴とする請求項1に記載の方法。
【請求項7】
前記ステップ(5)における前記携帯情報処理端末の前記記憶領域について、
(7−1)前記携帯情報処理端末は、前記機密通信サポートネットワークから受信した前記サービスキーを記憶するための、サービスタイプに応じたサイズを有する論理的な環状の記憶領域をサービスキー獲得スレッド毎に設定し、
(7−2)前記携帯情報処理端末は、前記サービスキーを記憶するための環状の記憶領域毎に読出位置ポインタを提供し、
前記読出位置ポインタによって示された位置から適切な量のサービスキーが読み出され、前記サービスキーを用いて機密通信の暗号化−暗号解読が実行され、
前記読出位置ポインタは、前記環状の記憶領域内を移動して常に次回の読み出し時の前記サービスキーの読み出し開始位置を示し、
前記読出位置ポインタが前記環状の記憶領域の終端部を通過したときに前記環状の記憶領域の始端部からの読み出しが継続され、
(7−3)前記携帯情報処理端末は、前記サービスキーを記憶するための環状の記憶領域毎に書込位置ポインタを提供し、
受信した前記サービスキーが前記環状の記憶領域に前記書込位置ポインタによって示された位置から記憶され、
前記書込位置ポインタは、前記環状の記憶領域内を移動して常に次回の書き込み時の前記サービスキーの書き込み開始位置を示し、
前記書込位置ポインタが前記環状の記憶領域の終端部を通過する場合、前記環状の記憶領域の始端部からサービスキーの書き込み連続して行われ、
前記機密通信サポートネットワークから要求されるサービスキーの1回あたりの量は前記環状の記憶領域のサイズを超えず、
(7−4)前記サービスキーの初回のダウンロードを行った後、前記環状の記憶領域における前記書込位置ポインタによって示される位置と前記読出位置ポインタによって示される位置との間の距離が所定の閾値に達した場合に、前記携帯情報処理端末が前記機密通信サポートネットワークにサービスキーのダウンロードを再依頼し、
(7−5)前記通信サービスが完了した後、前記サービスキーを記憶するための前記記憶領域は前記システムによって更新され、前記記憶領域のデータは消去されることを特徴とする請求項1に記載の方法。
【請求項8】
前記共有キーおよび前記サービスキーの少なくとも一方が、ワンタイムパッドとして使用されることを特徴とする請求項1〜6のいずれか1項に記載の方法。
【発明の詳細な説明】
【発明の詳細な説明】
【0001】
〔技術分野〕
本発明は、携帯端末のための機密通信技術に関するものであり、より具体的には、アンドロイド携帯情報処理端末に基づく通信キー(通信鍵)の配布方法に関するものである。
【0002】
〔背景技術〕
現在、移動通信技術は、日常生活で広く用いられている。しかしながら、通信のほとんどの過程において暗号化が行われていないので、第三者が容易に通信を妨害できるようになっている。無線通信プロセスの段階でデータフローを暗号化するものもあるが、高い機密性が要求される場合には、通信の中間段階で傍受されないように、通信プロセスの全体を通してデータフローを暗号化した状態にする必要がある。移動通信プロセスでは送信端末から受信端末まで暗号化する必要がある。すなわち、暗号化および暗号解読を送信側端末および受信側端末においてそれぞれ行う必要がある。これにより、データフローが通過するネットワークにかかわらずユーザ情報の安全性を有効に確保することができる。
【0003】
一般に、携帯端末は送信端末から受信端末までの機密通信をサポートする機能を備えていない。既存の技術の中には、信頼できる機密通信方法をサポートする専用の携帯端末を構築するために、暗号化−暗号解読モジュールやキー記憶モジュールなどを付加することにより携帯端末のハードウェアを改造するものがある。しかしながら、この方法には以下に示す問題がある。第1の問題は、コストが高いことである。高度な技術が要求されるので、普及につながらない新たなタイプの端末を機密通信機能だけのために設計して生成する必要がある。第2の問題は、ユーザの立場では、多くのユーザは、機密通信機能だけのために新たな携帯端末に交換するのではなく、自身の現在の携帯端末に機密通信機能を備えることを望んでいる点である。
【0004】
近年、アンドロイドの知的なオペレーティングシステムが大衆化し、市場シェアが増大している。アンドロイドを搭載した携帯電話あるいは他の携帯端末に、純粋にソフトウェアを用いた方法により、もともとの機能を維持したまま高度な安全性を有する機密通信機能を付加することができる。現在、アンドロイド環境下、あるいは市販されている他の携帯端末オペレーティングシステム環境下(例えばショートメッセージ暗号化などの小規模なアプリケーションソフトウェアなど)において用いられる簡単な通信暗号化ツールが存在している。しかしながら、キーの配布が困難であるため、暗号化は、数学的アルゴリズムを用いて行われるか、あるいはキーを再利用(あるいは変化させて再利用)して行われている。あるいは、携帯端末の不揮発性記憶媒体に記憶されている1または複数のファイル/キーのブロックが通信毎にサービスキーとして用いられている。しかしながら、キーは破損したり、読み出された後に壊れたりしやすいので、高度な秘密性が要求されるシナリオに適用することができない。また、現在、機密強度を有する暗号化通信ソフトウェアは、一般に、携帯端末プラットフォームにおけるショートメッセージなどの小サイズの情報の暗号化に制限されており、特定の1または複数のサービスしか保護することができない。VoIP(ボイスオンインターネットプロトコル)やビデオ通話などの大容量のデータ通信サービスのためのワンタイムパッドを生成する機能を有する一般的な機密性携帯端末プラットフォームは著しく不足している。アプリケーションソフトウェアを用いて情報を暗号化する方法はまだ信頼性が低い。これは、上記ソフトウェアはアンドロイドオペレーティングシステムにインストールされるため、ユーザが上記ソフトウェアをインストールできる場合、攻撃者が悪意をもってアンインストールすることも可能なためである。したがって、上記ソフトウェアは、安全性が低く、高度な安全性が要求されるシナリオには適していない。
【0005】
〔発明の概要〕
本明細書では、上記の問題を解決するために、アンドロイド携帯情報処理端末に基づく通信キーの配布方法を開示する。この方法では、アンドロイドオペレーティングシステムの最下層に、携帯情報処理端末が機密通信サポートネットワークと情報交換を行い、2段階のキーを受信し、受信したサービスキーを解読し、解読したサービスキーを利用することを可能にするための、普遍的機密通信プラットフォームが確立される。すなわち、機密性が要求される通信サービス(例えば、VoIP、機密性ショートメッセージ、機密性ビデオ通話、ファイル暗号化送信、安全なモバイル決済など)のために、最下層に普遍的な支持層が形成される。様々な通信サービスに要求される上記サービスキーは、上記機密通信サポートネットワークを介して携帯情報処理端末を改変するために提供され、上記携帯情報処理端末は、上記サービスキーを取得し、取得したサービスキーを用いて機密通信を実行する。
【0006】
上記の課題を解決するために、本明細書では以下に示す解決策を提示する。
【0007】
アンドロイド携帯通信処理端末に基づく通信キーの配布方法であって、
(1)アンドロイドオペレーティングシステムの最下層に普遍的機密通信プラットフォームを確立し、アプリケーション層の通信ソフトウェアプログラムのソースコード中で前記普遍的機密通信プラットフォームのアプリケーションプログラムインターフェース(API)を起動し、前記アンドロイドオペレーティングシステムの改変したソースコードをイメージファイル中にコンパイルし、前記イメージファイルを前記携帯情報処理端末に書き込むステップと、
(2)前記携帯情報処理端末を機密通信サポートネットワーク内のキー端末に直接接続し、前記携帯情報処理端末と前記機密通信サポートネットワークとの間で共有される共有キーをダウンロードし、前記共有キーを前記携帯情報処理端末に記憶させ、前記共有キーをダウンロードした後に前記携帯情報処理端末と前記キー端末との接続を遮断するステップと、
(3)通信サービスをインストールした後、前記携帯情報処理端末が、前記システムの前記最下層における前記普遍的機密通信プラットフォームの前記APIを起動することによってサービスキー獲得スレッドを生成し、前記機密通信サポートネットワークからの通信のためのサービスキーを要求するステップと、
(4)前記サービスキーの要求を受信した後、前記機密通信サポートネットワークが、前記通信において前記携帯情報処理端末への通信のためのサービスキーを配布するステップと、
(5)前記携帯情報処理端末が、前記システムの前記最下層における前記普遍的機密通信プラットフォームのAPIを起動することにより、前記機密通信サポートネットワークから前記通信のためのサービスキーを受信し、受信したサービスキーを当該携帯情報処理端末の記憶領域に記憶するステップと、
(6)前記携帯情報処理端末が、前記サービスキーを用いて機密通信を実行するステップとを含む方法。
【0008】
前記ステップ(1)は、
(1−1)前記アンドロイドオペレーティングシステムのソースコードのC/C++フレームワーク層に、前記機密通信に関する基本機能を実現するための機密通信機能ライブラリを付加するステップを含み、
前記基本機能は、前記機密通信サポートネットワークとの相互命令機能、キー要求機能、キーダウンロード機能、キー管理機能、および暗号化−解読演算機能を含み、
前記機密通信機能ライブラリへの要求は前記アンドロイドのJava(登録商標)フレームワーク層にJava(登録商標)ネイティブインターフェース(JNI)を介して供給され、
前記機密通信機能ライブラリは、「*.so」ライブラリファイルにコンパイルされ、
(1−2)前記JNIを用いて前記C/C++フレームワーク層で前記機密通信機能ライブラリを起動し、前記アンドロイドオペレーティングシステムの前記ソースコードの前記Java(登録商標)フレームワーク層に機密通信クラスを付加するステップをさらに含み、
前記機密通信クラスは、前記アプリケーション層の様々な通信ソフトウェアによって起動される前記普遍的機密通信プラットフォームの前記APIに関連する機密通信を用いて上層のアプリケーション層に供給する。
【0009】
前記ステップ(3)は、
(3−1)前記通信サービスが開始された後、前記アプリケーション層の前記通信ソフトウェアが、前記システムの前記最下層における前記普遍的機密通信プラットフォームを起動し、前記機密通信サポートネットワークと無線接続される新たなサービスキー要求スレッドを生成するステップと、
(3−2)前記接続が確立した後、前記携帯情報処理端末が、前記通信のためのサービスキー要求のために、前記通信に関連する情報を前記機密通信サポートネットワークに送信するステップとを含み、前記情報は送信側端末の識別情報、受信側端末の識別情報、認証情報、前記サービスキーが要求されるサービスを示す情報、および前記サービスキーが暗号化を実行するためのものか暗号解読を実行するためのものかを示す情報を含む。
【0010】
前記ステップ(4)は、
(4−1)前記携帯情報処理端末の前記サービスキー要求スレッドからの接続を待つためにネットワークサービススレッドを確立するステップと、
(4−2)前記携帯情報処理端末との通信が確立され、前記携帯情報処理端末から前記サービスキー要求を受信した後、前記通信のサービスタイプ、前記端末の識別情報、認証情報、および前記サービスキーの目的を取得し、前記携帯情報処理端末が前記サービスキー要求の許可を有しているか否かを判断し、前記許可を有する前記携帯情報処理端末にダウンロードさせるための前記サービスキーを配布するステップと、
(4−3)前記機密通信サポートネットワークが送信すべき前記サービスキーを前記携帯情報処理端末と前記機密通信サポートネットワークとの間で共有される前記共有キーを用いて暗号化するステップと、
(4−4)前記機密通信サポートネットワークが暗号化された前記サービスキーを前記携帯情報処理端末に無線通信により送信するステップとを含む。
【0011】
前記機密通信サポートネットワークと前記携帯情報処理端末との間で共有される前記共有キーについて、
I.前記機密通信サポートネットワークに記憶されている前記共有キーのヘッダに前記共有キーの現在の使用情報が記憶されており、前記共有キーが前記携帯情報処理端末にダウンロードされた時に前記ヘッダはフィルタリングされて取り除かれ、
II.前記サービスキーを暗号化するときに、前記機密通信サポートネットワークが、前記共有キーの現在の使用位置を前記共有キーの前記ヘッダから抽出し、前記共有キーを前記現在の使用位置から用いて送信すべき前記サービスキーを暗号化し、暗号化した前記サービスキーにおける上記位置の使用されていないビットに情報を埋め込んで前記共有キーの前記ヘッダを更新し、
III.前記機密通信サポートネットワークが送信した暗号化された前記サービスキーを受信した後、前記携帯情報処理端末が、暗号化された前記サービスキーの前記位置に埋め込まれた前記情報を抽出し、受信した前記サービスキーと当該携帯情報処理端末に記憶している前記位置の情報を有する前記共有キーとを組み合わせることにより、前記共有キーの前記位置を用いて受信した前記サービスキーの暗号解読を行い、
IV.前記共有キーの量が不十分な場合に、前記携帯情報処理端末が前記機密通信サポートネットワークから前記ステップ(2)に従って新たな共有キーをダウンロードするようにしてもよい。
【0012】
前記ステップ(5)において、前記携帯情報処理端末によってダウンロードされた前記サービスキーの量が、機密通信を現在のサービスタイプで実行できる所定の閾値に達したときに、前記サービスキーを使用可能である旨を対応するアプリケーションに通知し、前記サービスキーが完全にダウンロードされるまで前記サービスキーのダウンロードを継続しながら前記サービスキーを使用するようにしてもよい。
【0013】
前記ステップ(5)における前記携帯情報処理端末の前記記憶領域について、
(5−1)前記携帯情報処理端末は、前記機密通信サポートネットワークから受信した前記サービスキーを記憶するための、サービスタイプに応じたサイズを有する論理的な環状の記憶領域をサービスキー獲得スレッド毎に設定し、
(5−2)前記携帯情報処理端末は、前記サービスキーを記憶するための環状の記憶領域毎に読出位置ポインタを提供し、前記読出位置ポインタによって示された位置から適切な量のサービスキーが読み出され、前記サービスキーを用いて機密通信の暗号化−暗号解読が実行され、前記読出位置ポインタは、前記環状の記憶領域内を移動して常に次回の読み出し時の前記サービスキーの読み出し開始位置を示し、前記読出位置ポインタが前記環状の記憶領域の終端部を通過したときに前記環状の記憶領域の始端部からの読み出しが継続され、
(5−3)前記携帯情報処理端末は、前記サービスキーを記憶するための環状の記憶領域毎に書込位置ポインタを提供し、受信した前記サービスキーが前記環状の記憶領域に前記書込位置ポインタによって示された位置から記憶され、前記書込位置ポインタは、前記環状の記憶領域内を移動して常に次回の書き込み時の前記サービスキーの書き込み開始位置を示し、前記書込開始ポインタが前記環状の記憶領域の終端部を超える場合、前記環状の記憶領域の始端部からサービスキーの書き込み連続して行われ、前記機密通信サポートネットワークから要求されるサービスキーの1回あたりの量は前記環状の記憶領域のサイズを超えず、
(5−4)前記サービスキーの初回のダウンロードを行った後、前記環状の記憶領域における前記書込位置ポインタによって示される位置と前記読出位置ポインタによって示される位置との間の距離が所定の閾値に達した場合に、前記携帯情報処理端末が前記機密通信サポートネットワークにサービスキーのダウンロードを再依頼し、
(5−5)前記通信サービスが完了した後、前記サービスキーを記憶するための前記記憶領域は前記システムによって更新され、前記記憶領域のデータは消去されるようにしてもよい。
【0014】
前記共有キーおよび/または前記サービスキーは、ワンタイムパッドとして用いられてもよく、あるいは、様々な一般的な対称/非対称の暗号化キーおよび暗号解読キーとして用いられてもよい。
【0015】
本発明の方法は、主に以下の特徴を有している。
【0016】
(1)アンドロイドオペレーティングシステムは、Java(登録商標)フレームワーク層およびアンドロイドシステムにおけるJava(登録商標)フレームワーク層の下層を変更することにより、機密通信サポートネットワークからキーを獲得する機能を有している。前記機能は、前記オペレーティングに固定されていてもよく、前記アプリケーション層のソフトウェアが変更されても変更されない。また、第三者が開発したアプリケーション層内の他の通信ソフトウェアが前記オペレーティングシステムによって最下層の前記機密通信サポートを起動できるように、アプリケーション層にAPIインターフェースを提供し、前記ソフトウェアに機密通信機能を付加する。
【0017】
(2)前記普遍的機密通信プラットフォームは、特定のサービスから独立しており、アプリケーション層で実行される様々なサービスアプリケーションソフトウェアは、前記普遍的機密通信プラットフォームのAPIを起動することによって前記アプリケーションソフトウェアにおける様々な機密通信処理を実行可能である。
【0018】
(3)前記機密通信サポートネットワークと前記携帯情報処理端末との間で共有される前記共有キーの前記ヘッダは、前記機密通信サポートネットワーク内にのみ記憶される。前記起動情報処理端末における前記共有キーの複製は、前記キーの現在の使用位置の情報を含んでいない。このため、極端な場合、例えば、前記携帯端末が盗まれて前記共有キーが取り出されても、取り出された共有キーに基づいて、上記第三者が、前の通信において上記キーのどの部分が利用されたのか、および次の通信において上記キーのどの部分が使用されるのかを特定することは困難であり、有効な情報を開くことは困難である。
【0019】
(4)前記機密通信サポートネットワークは、適切なスレッドに配布されるべきサービスキーの種類を、前記通信に関連する、送信側端末の識別情報、受信側端末の識別情報、認証情報、どのサービスがサービスキーを要求しているのかを示す情報、および暗号化に用いられるサービスキーであるのか暗号解読に用いられるサービスキーであるのかを示す情報を含む情報に基づいて独自に決定する。
【0020】
(5)各通信についての前記サービスキーは、当該通信が開始されるまで前記携帯情報処理端末によって要求されず、前記機密通信サポートネットワークによって送信される。また、前記携帯情報処理端末に送信された後も、前記サービスキーは一時的に設定される記憶領域にのみ記憶され、通信が完了したら即座に消去される。
【0021】
(6)前記キーは前記機密通信サポートネットワークからリアルタイムな方法で取得することができる。このため、ワンタイムパッドなどの高度な安全性を有する暗号化方法をサポートすることができる。
【0022】
(7)前記の論理的な環状の記憶領域は前記サービスキーを記憶するために用意され、前記キーがある程度消費されたときに新しいキーがダウンロードされて古いキーと置き換えられる。
【0023】
本発明には以下に示す利点がある。本発明の方法により、前記アンドロイド携帯情報処理端末は機密通信サポートネットワークからキーをダウンロードする機能を持つ。アンドロイドシステムを実行する様々な携帯端末に複数の機密通信サービスが提供される。そして、特に、ワンタイムパッドなどの高度な安全性を有する機密通信を実行するための大量のデータを有する通信サービスのために、最下層ソフトウェアプラットフォームが提供される。この場合、携帯端末の製造者は、特別な暗号化携帯端末を製造することなく、アンドロイドオペレーティングシステムをサポートしている携帯情報処理端末に存在するソースコードを修正および更新するだけでよい。また、製造者が、顧客が前記携帯端末を自身で更新することを可能にするために、ディスクあるいはネットワークを介して、機密通信機能を有する完全なROMあるいは更新されたファームウェアを顧客に提供してもよい。ハードウェアの変更を必要とせずに既存の携帯情報処理端末に高度な安全性を有する機密通信機能を持たせ、ユーザが既存の携帯情報処理端末を用いて機密ネットワークに参加できるようにすると便利である。アンドロイドプラットフォームにおける様々な通信アプリケーションソフトウェアの開発者は、前記機密通信機能を彼自身のソフトウェアに適用できるように設定する場合、当該ソフトウェアの通信データフローを暗号化あるいは暗号解読するために、機密通信に関連する、前記システムの最下層に付加されたAPIを起動するだけでよい。
【0024】
また、本発明の目的は、アンドロイドオペレーティングシステムの最下層に普遍的機密通信プラットフォームを確立する方法を提供することにある。前記普遍的機密通信プラットフォームは、機密通信サポートネットワークと共同して前記通信サービスキーを配布する。前記方法は、特定の通信サービスあるいは通信端末に限定されるものではない。したがって、前記方法は、携帯情報処理端末に適用できるだけでなく、直接、あるいはわずかな変更を施して、アンドロイドシステムを実行する情報処理機能付きのテレビやセットトップボックスなどに適用することもできる。したがって、これらの装置もまた、当該装置のハードウェアおよびソフトウェアの有効性を前提として、機密通信を実行する機能を有している。本明細書では、アンドロイドオペレーティングシステムの前記アプリケーション層ではなくJava(登録商標)フレームワーク層およびC/C++ネイティブフレームワーク層を変更するので、前記機密機能は前記オペレーティングシステム内に固定される。このため、悪意を持ってアンインストールしたり置換したりすることのできる機密アプリケーションソフトウェアとは異なり、安全性を大幅に改善できる。また、市場に存在する特定のサービスのための機密通信アプリケーションソフトウェアと比較すると、本発明は、前記アプリケーション層の第三者の通信プログラムに関する機密サービスを提供できるので、普遍性、発展性、および互換性の点で有利である。
【0025】
〔図面の簡単な説明〕
図1は、アンドロイドのオペレーティングシステムにおけるソフトウェア層の構造を概略的に示した図である。
【0026】
図2は、携帯端末が携帯端末と機密通信サポートネットワークとの間で共有されるキーをダウンロードするための処理を概略的に示した図である。
【0027】
図3は、機密通信サポートネットワークに記憶されている共有キーと携帯端末に記憶されている共有キーとを示す図である。
【0028】
図4は、サービスキーの配布ステップを示す図である。
【0029】
図5は、双方向リアルタイム通信サービスにおけるサービスキーの相互配布を示す図である。
【0030】
図6は、携帯端末におけるサービスキーの記憶構造を示す概念図である。
【0031】
〔実施形態〕
本発明について、図面および実施例を参照しながら詳細に説明する。
【0032】
本実施形態では、アンドロイド携帯情報処理端末に基づく通信キーの配布方法であって、以下に示すステップを含む方法を提示する。
【0033】
ステップ(1)では、アンドロイドオペレーティングシステムの最下層に普遍的機密通信プラットフォームを確立する。上記の普遍的機密通信プラットフォームのAPI(アプリケーションプログラムインターフェース)は、アプリケーション層の通信ソフトウェアプログラムのソースコード中で起動される。また、アンドロイドオペレーティングシステムの改変されたソースコードがイメージファイルにコンパイルされ、上記イメージファイルは携帯通信端末に書き込まれる。
【0034】
アンドロイドオペレーティングシステムの最下層における上記の普遍的機密通信プラットフォームは、以下に示す方法により実現される。アンドロイドオペレーティングシステムのソースコードにおけるC/C++フレームワーク層に機密通信基本機能ライブラリを付加する。上記の機密通信基本機能ライブラリを、「バイオニック(bionic)」に付加してもよい(「バイオニック」が最適であるが他の位置に付加してもよい)。上記の秘密通信基本機能ライブラリは、機密通信に関する基本機能を実現するように構成されている。上記基本機能には、例えば、機密通信サポートネットワークとの相互命令機能、キー要求機能、キーダウンロード機能、キー管理機能、および暗号化−解読演算機能などが含まれる。(上記機密通信サポートネットワークは、上記携帯情報処理端末とは独立しており、キーを生成し、生成したキーを上記携帯情報処理端末に配布するネットワーク構成要素である。また、上記機密通信サポートネットワークは、上記携帯情報処理端末の普遍的機密通信プラットフォームにおける関連する機能と協働して、携帯情報処理端末からキー要求を受け取り、携帯情報処理端末の通信サービスに要求される各レベルのキーを生成することができる。なお、上記キーは量子キーであってもよく、他のキーであってもよい。)「バイオニック」はアンドロイドオペレーティングシステムのC/C++フレームワーク層で用いられるベーシックC言語のライブラリなので、付加される機能もまたアンドロイドシステムの基本機能ライブラリの一部として生成され、アンドロイドのC/C++フレームワーク層において任意に起動することができる。(図1は、アンドロイドオペレーティングシステムのソフトウェア層の構造を示している。第3者によって開発された各APP(アプリケーションプログラム)はアプリケーション層に配置される。本明細書では、アプリケーション層よりも下層に配置された、Java(登録商標)フレームワーク層、C/C++ネイティブフレームワーク層およびアンドロイド実行環境、およびLinux(登録商標)カーネル層を全てアンドロイドシステムの最下層と称する。上記システムの最下層は上記オペレーティングシステムの基本部分であり、携帯情報処理端末に固定されている。したがって、アプリケーション層のソフトウェアとは異なり、ユーザが任意にインストールしたりシステムの最下層からアンインストールしたりできないようになっている。)その後、機密通信発展機能ライブラリをアンドロイドC/C++フレームワーク層に追加する。上記発展機能ライブラリは、「バイオニック」の基本機能(例えば、キーダウンロード、キー管理など)を起動し、それに基づいてアンドロイドシステムのJava(登録商標)フレームワーク層のためのJNIの起動インターフェースを生成する機能をカプセル化および拡張する。C/C++フレームワークにおける上記の機密通信機能ライブラリは「*.so」ライブラリファイルにコンパイルされる。機密通信クラスはアンドロイドシステムのJava(登録商標)フレームワーク層に付加される。上記機密通信クラスは、Java(登録商標)フレームワーク層にカプセル化および拡張されたJNIインターフェースとともにC/C++フレームワーク層に生成された上記機密通信発展機能ライブラリを起動する。このようにして、機密通信に関連するシステムAPI(追加されたAPIは使用法の観点からアンドロイドシステムの公式システムAPIと同様である)、すなわち上記の普遍的機密通信プラットフォームは、上記アプリケーション層において様々な通信ソフトウェアによって起動されるように、上層のアプリケーション層に供給される。これにより、アンドロイドシステムに基づいて、他人によって生成された様々なアプリケーション通信プログラムが、機密通信サポートネットワークとの接続、キーダウンロード、および暗号化−解読などの様々な動作を実現するために、追加されたシステムAPIを起動することができる。同一のAPIが異なるアプリケーション層のために最下層で供給される。上記APIが呼び出されると、異なるサービスのために起動パラメータのみを改変すればよい。例えば、VoIPサービスにおいてキーダウンロードが生じた場合、アンドロイドシステムの最下層における普遍的機密通信プラットフォームの「キー要求」のJava(登録商標)APIを起動するためのコードは、アンドロイドシステムのアプリケーション層のVoIPコールソフトウェアのソースコードの特定の位置(一般に、コール(呼び出し)要求の開始/取得と実際のコールの確立との間のサービスプロセスを示す上記コード内)に追加され、対応するパラメータが設定される。これにより、要求されたサービスキーのための要求を適切なときに生じさせることができる。
【0035】
もちろん、上記システムの最下層における上記の普遍的機密通信プラットフォームは、複数の変形例によって実現され、起動されてもよい。例えば、上記基本機能ライブラリおよびアンドロイドC/C++フレームワーク層の上記発展機能ライブラリが互いに組み合わされてもよく、C/C++フレームワーク層内で規定された上記機密通信機能ライブラリの機能がJava(登録商標)フレームワーク層内で実現されてもよい。しかしながら、Java(登録商標)フレームワーク層において完全に実現される場合、上記機能は簡単に逆コンパイルされる。このため、より安全な方法は、アンドロイドC/C++フレームワーク層内に上記の普遍的機密通信プラットフォームの中枢機能を実現することである。これにより、コンパイルされた「*.so」ライブラリファイルを有効に逆コンパイルすることは困難であり、キーの取得および利用の詳細および暗号化−解読アルゴリズムの詳細を最大限保護することができる。
【0036】
また、C/C++フレームワーク層およびJava(登録商標)フレームワーク層における各機能のインターフェースは、オペレーティングシステムの同じ層における他のソースコードによって起動されるようにしてもよい。例えば、追加されたシステムAPIをアプリケーション層で起動する構成に代えて、上記の普遍的機密通信プラットフォームのC/C++機能ライブラリがアンドロイドシステムの元々のVoIPのC/C++フレームワーク層で直接起動される構成にしてもよく、上記の普遍的機密通信プラットフォームのJava(登録商標)APIがアンドロイドシステムの元々のVoIPのJava(登録商標)フレームワーク層で直接起動されるようにしてもよい。しかしながら、アンドロイドの最下層のコードがこの方法によって改変された後にアプリケーション層ソフトウェアの第3者開発者が利用することは適切ではない。
【0037】
アンドロイドのソースコードは、アンドロイドオペレーティングシステムの上記の普遍的機密通信プラットフォームを含む新たなイメージファイルを生成するために、改変された後に逆コンパイルされ、その後、上記イメージファイルは携帯情報処理端末に書き込まれる。
【0038】
ステップ(2)では、携帯情報処理端末は、機密通信サポートネットワーク内のキー端末に直接接続され、当該携帯情報処理端末と機密通信サポートネットワークとの間で共有される共有キーがダウンロードされる。上記共有キーは、上記携帯情報処理端末に記憶される。上記携帯情報処理端末と上記キー端末との接続は、共有キーをダウンロードした後に遮断される。
【0039】
図2に示したように、携帯端末AおよびBは、それぞれキー端末T1およびT2に有線により接続される(理論上、携帯情報処理端末はキー端末T1〜Tnのいずれかに接続される。ただし、実際の適用時には、ユーザはより近くにあるキー端末を常に選択する。)。上記の2つのキー端末は、機密通信サポートネットワークSの一部である。携帯端末Aは、当該携帯情報処理端末Aと機密通信サポートネットワークSとの間で共有される共有キー(キー(S−A))をダウンロードし、ダウンロードした共有キー(キー(S−A))を当該携帯端末Aのメモリカードに記憶させる。携帯端末Bは、当該携帯情報処理端末Bと機密通信サポートネットワークSとの間で共有される共有キー(キー(S−B))をダウンロードし、ダウンロードした共有キー(キー(S−B))を当該携帯端末Bのメモリカードに記憶させる。上記共有キーをダウンロードした後、携帯情報処理端末とキー端末との間の有線接続は遮断される。機密通信サポートネットワークSにおける共有キー(キー(S−A)およびキー(S−B))の生成方法は、特に限定されるものではなく、様々な方法を用いることができる。
【0040】
I.例えば、量子機密通信において、キー端末が、機密通信サポートネットワーク内の内部量子キートランシーバを用いることにより量子キー(量子鍵)を直接生成してもよい。
【0041】
II.古典的機密通信において、機密通信サポートネットワーク内で、様々な古典的乱数発生装置が様々な古典的乱数発生アルゴリズムに基づいて独立したキーを生成し、生成したキーを古典的ネットワークを介してキー端末に送信するようにしてもよい。
【0042】
共有キーの現在の使用情報(例えば機密通信サポートネットワークSと携帯端末Aとの間の共有キー(キー(S−A))の現在使用されている部分)は、機密通信サポートネットワーク内に記憶された共有キーのヘッダに記録される。共有キーがダウンロードされる際、携帯端末に記憶された共有キーが悪意のある第三者によって盗まれる損失を低減するために、当該共有キーのヘッダはフィルタリングされて取り除かれ、携帯端末にはダウンロードされず、上記ヘッダは機密通信サポートネットワークにのみ保存される(図3参照)。上記第三者が、共有キーの大容量のデータブロックの中から、前の通信において上記キーのどの部分が利用されたのか、および次の通信において上記キーのどの部分が使用されるのかを特定することは、局所的な位置情報なしでは困難である。
【0043】
図4は、ステップ(3)〜(6)の全体の流れを示している。VoIPコールサービスの例についての詳細を以下に示す。
【0044】
ステップ(3)では、通信サービスが開始された後、携帯情報処理端末は、システムの最下層内の普遍的機密通信プラットフォームのAPIを起動させることにより、サービスキー獲得スレッドを生成し、機密通信サポートネットワークからの通信のためのサービスキーを要求する。このステップは、以下のステップを含む。
【0045】
I.送信側携帯端末(コールする側の携帯端末)がコールを開始し、受信側携帯端末(コールされる側の携帯端末)が上記コールを受信した場合、アプリケーション層の対応する通信ソフトウェアが、システムの最下層における普遍的機密通信プラットフォームのAPIが起動する。その後、新たなサービスキー獲得スレッドが機密通信サポートネットワークに接続され、コールのためのサービスキーのダウンロードが要求される。異なる通信サービス毎に異なるサービスキーが要求される。例えば、VoIPコールソフトウェアは数メガビットのサービスキーを要求し、SMSショートメッセージソフトウェアは数百倍バイトのサービスキーを要求する。システムの最下層における普遍的機密通信プラットフォームのAPIが起動されると、通信ソフトウェアは異なるサービスキーを獲得するために異なるパラメータを供給する。各携帯情報処理端末は2つのスレッドを生成する必要がある。1つはコールを暗号化するためのサービスキーをダウンロードするために用いられ、もう1つは上記コールを暗号解読するためのサービスキーをダウンロードするために用いられる。上記コールを暗号化するためのサービスキーはユーザ自身の音声を暗号化するために用いられ、上記コールの暗号解読を行うためのサービスキーは他のユーザからの音声を暗号解読するために用いられる。
【0046】
II.上記サービスキー要求スレッドが機密通信サポートネットワークと無線通信により接続された後、上記携帯情報処理端末は通信に関連する情報を機密通信サポートネットワークに送信し、機密通信サポートネットワークは上記携帯情報処理端末のためのサービスキーを供給する。上記通信に関連する情報には、送信側端末の識別情報、受信側端末の識別情報、認証情報、どのサービス(例えばVoIPサービス)がサービスキーを要求しているのかを示す情報、および暗号化に用いられるサービスキーであるのか暗号解読に用いられるサービスキーであるのかを示す情報が含まれる。
【0047】
ステップ(4)では、機密通信サポートネットワークが、サービスキーの要求を受信した後、通信に参加する携帯情報処理端末との通信のためのサービスキーを配布する。このステップには以下のステップが含まれる。
【0048】
I.携帯情報処理端末のサービスキー獲得スレッドの接続を待つために、ネットワークサービススレッドが確立される。
【0049】
II.携帯情報処理端末との接続が確立され、携帯情報処理端末からサービスキー要求を受信すると、機密通信サポートネットワークは接続のサービスタイプ、端末の識別情報、認証情報、サービスキーの目的を取得し、当該携帯情報処理端末がサービスキーを要求する許可を有しているか否かを判断し、当該携帯情報処理端末が上記許可を有している場合には、当該携帯情報処理端末から供給された情報に基づいて、当該携帯情報処理端末にダウンロードさせるサービスキーを配布する。例えば、VoIPコールの通信の場合、配布されるサービスキーは数メガビットであってもよい。また、SMSショートメッセージの通信の場合、数百バイト程度のサービスキーが配布される。例えば、ワンタイムパッドの場合、サービスキーは、量子的方法、ソフトウェアアルゴリズム、および物理的乱数生成方法などを用いて機密通信サポートネットワークにより生成された、一連の乱数からなる対称キーである。
【0050】
VoIPサービスのためにキーを配布する場合、送信側の携帯情報処理端末および受信側の携帯情報処理端末に配布された暗号化および暗号解読のためのサービスキーは、相互に関連している。すなわち、送信側携帯端末に配布される暗号化のためのサービスキーは受信側携帯端末に配布される暗号解読のためのサービスキーに対応しており、送信側携帯端末に配布される暗号解読のためのサービスキーは受信側携帯端末に配布される暗号化のためのサービスキーに対応している。図5に示したように、携帯端末Aと携帯端末Bとが通信を行う場合、機密通信サポートネットワークSは、サービスキーK1を携帯端末Aに暗号化のためのサービスキーとして送信し、サービスキーK1を携帯端末Bに暗号解読のためのサービスキーとして送信する。同様に、機密通信サポートネットワークSは、サービスキーK2を携帯端末Bに暗号化のためのサービスキーとして送信し、サービスキーK2を携帯端末Aに暗号解読のためのサービスキーとして送信する。
【0051】
III.機密通信サポートネットワークは、当該機密通信サポートネットワークと携帯情報処理端末との間で共有される共有キーを用いることにより、送信するサービスキーを暗号化する。サービスキーを暗号化する際、機密通信サポートネットワークは、機密通信サポートネットワークと携帯情報処理端末との間で共有されている共有キーのヘッダから共有キーにおける現在使用されている位置を抽出し、共有キーにおける現在使用されている位置から始まる部分を用いて送信するサービスキーを暗号化し、暗号化したサービスキーにおける上記位置の使用されていないビットに、当該携帯情報処理端末と機密通信サポートネットワークとの間の共有キーを同じ位置から用いて受信したサービスキーを暗号解読すべきことを携帯情報処理端末に通知するための情報を埋め込む。機密通信サポートネットワークは、共有キーの最新の使用状態を正確に反映させるために、機密通信サポートネットワークと携帯情報処理端末との間の共有キーの一部を用いる毎に共有キーのヘッダを更新する。
【0052】
IV.機密通信サポートネットワークは、暗号化したサービスキーを携帯情報処理端末に無線で送信する。
【0053】
ステップ(5)では、携帯情報処理端末が、システムの最下層における普遍的機密通信プラットフォームのAPIを起動することにより、機密通信サポートネットワークからの通信のためのサービスキーを受信し、受信したサービスキーを当該携帯情報処理端末の記憶領域に記憶させる。
【0054】
携帯情報処理端末は、機密通信サポートネットワークによって送信された暗号化されたサービスキーを受信した後、その暗号化されたサービスキーに含まれている位置情報を抽出する。上記位置情報は、携帯情報処理端末と機密通信サポートネットワークとの間で共有されている共有キーの使用位置を示す。携帯情報処理端末は、上記位置情報によって共有キーのどの位置から使用すればよいのかを把握し、上記位置情報と当該携帯情報処理端末に記憶されている当該携帯情報処理端末と機密通信サポートネットワークとの共有キーとを組み合わせることによって受信したサービスキーの暗号解読を行うことができる。通信毎に要求される上記サービスキーおよび携帯情報処理端末と機密通信サポートネットワークとの間の共有キーの両方が、ワンタイムパッド、すなわち高度な安全性を保証するために使用済みのキーを再使用しない構成であることが好ましい。もちろん、キーの他の使用方法、例えば様々な一般的な対称暗号化アルゴリズムや非対称暗号化アルゴリズムなどを用いてもよい。共有キーの量が不十分な場合、携帯情報処理端末は、機密通信サポートネットワークからステップ(2)に従って新たな共有キーをダウンロードする。
【0055】
VoIPコールは、ある程度の時間がかかり、またリアルタイムでの通信が要求されるので、VoIPコールに要求されるサービスキーの量は多く、全てのサービスキーをダウンロードするのに時間がかかる。上記コールは、サービスキーが完全にダウンロードされるまで開始を待つことができない。このため、サービスキーのダウンロードの速度はサービスキーを利用する速度よりも速いので、携帯情報処理端末によってダウンロードされたサービスキーの量がVoIP機密コールを実行することのできる下限値に到達したときに、VoIPアプリケーションがサービスキーを利用可能であることを通知すべきである。その後、サービスキーが完全にダウンロードされるまで、サービスキーの利用とサービスキーのダウンロードとが連続的に並行して行われる。
【0056】
携帯情報処理端末は、各サービスキー獲得スレッドについて論理的な環状の記憶領域を設定する(図6参照)。上記の環状の記憶領域のサイズは、通信のサービスタイプに依存する。上記の環状の記憶領域は、機密通信サポートネットワークから受信したサービスキーを記憶するために形成される。この場合、コールに用いられる実際のサービスキーは携帯端末の不揮発性記録媒体には記憶されず、コールが完了したらメモリから即座に消去される。これにより、サービスキーが後から読み出されることが防止され、コール毎のサービスキーは再使用されない。
【0057】
携帯情報処理端末によってサービスキーを記憶するための環状の記憶領域毎に、環状の記憶領域の適切な位置を示す読み出し位置ポインタが供給される。通信文書のセグメントの暗号化(あるいは暗号文の暗号解読)が要求された場合、サービスキーがポインタによって示された位置から適切な量だけ読み出され、通信文書のセグメントの暗号化(あるいは暗号文の暗号解読)に用いられる。上記ポインタは、環状の記憶領域内で移動し、常に次回の読み出し時のサービスキーの開始位置を示す。ポインタが環状の空間の端部を通過した場合、サービスキーは環状の空間の開始位置から連続的に読み出される。VoIPサービスの場合、1回のコールにつき2つの環状の記憶領域、すなわち、暗号化のためのサービスキーを記憶させるための記憶領域とび暗号解読のためのサービスキーを記憶させるための記憶領域の2つの環状の記憶領域とが必要になる。その間、携帯情報処理端末が、サービスキーが記憶されている環状の記憶領域のそれぞれに書込位置ポインタを提供する。受信したサービスキーは、環状の記憶領域におけるポインタによって示された位置から記憶される。上記ポインタは、環状の記憶領域内で移動し、常に次回の記憶時のサービスキーの記憶開始位置を示す。ポインタが環状の空間の端部を通過した場合、サービスキーは環状の空間の開始位置から連続的に書き込まれる。機密通信サポートネットワークから要求されるサービスキーの1回あたりの量が環状の記憶領域のサイズを超えることはない。サービスキーの初回のダウンロードの後、環状の記憶領域における書込位置ポインタによって示される位置と読出位置ポインタによって示される位置との距離が所定の閾値に到達した場合、携帯情報処理端末は、機密通信サポートネットワークからのサービスキーの再送を要求する。
【0058】
例えば、サービスキーを最初にダウンロードした後、環状の記憶領域の前半の50%がサービスキーで満たされる。環状の記憶領域の25%の位置までサービスキーが使用された場合、携帯情報処理端末は機密通信サポートネットワークからのサービスキーのダウンロードを再要求する。その後、携帯情報処理端末は、機密通信サポートネットワークから環状の記憶領域の50%のサイズのサービスキーをダウンロードし、環状の記憶領域の後半50%をダウンロードしたサービスキーで満たす。同様に、環状の記憶領域の75%の位置までサービスキーが使用された場合、携帯情報処理端末は、機密通信サポートネットワークから環状の記憶領域の50%のサイズのサービスキーを再びダウンロードし、環状の記憶領域の前半50%をダウンロードしたサービスキーで満たす。古いサービスキーは、同じ位置で新たにダウンロードされたサービスキーに置き換えられる。例えばVoIPコールやビデオコールなどの、長い通信時間を要し、かつキーの消費速度が速いサービスの場合、携帯情報処理端末にダウンロードされるサービスキーは通信を実施するのに十分ではない場合がある。その場合、携帯情報処理端末が、機密通信サポートネットワークへの通知を行い、使用するためのサービスキーを連続的にダウンロードするようにしてもよい。
【0059】
サービスキーは、不揮発性記憶装置に記憶することなく携帯情報処理端末のメモリに記憶されるので、通信が完了した後、サービスキーを記憶していた記憶領域はシステムによって更新され、当該記憶領域に記憶されていたデータは消去されて読み出しや再利用ができなくなる。
【0060】
ステップ(6)では、携帯情報処理端末は、サービスキーを用いて機密通信を実行する。通信を行う2つの端末が、暗号化のためのそれぞれのサービスキーを用いて文書の暗号化を行い、暗号化した文書を他方の端末に送信し、他方の装置から暗号部を受信した後、対応するサービスキーを用いて暗号文を暗号解読して文書を復元する。
【0061】
本実施例では、アンドロイド情報処理オペレーティングシステムに基づく普遍的機密通信プラットフォームおよび上記の普遍的機密通信プラットフォームを用いた通信キーの配布方法を提供した。通信キーの使用方法の詳細については本明細書では記載を省略した。例えば、本実施例では、機密通信サポートネットワークからダウンロードした対称サービスキーを用いることによって通信情報のワンタイムパッドによる暗号化/暗号解読処理を実行することが好ましい。しかしながら、上記の普遍的機密通信プラットフォームおよび上記の配布方法において、非対称キーを配布するようにしてもよい。また、暗号化/暗号解読処理にサービスキーに関するワンタイムパッドとは異なる処理を適用してもよい。
【0062】
〔変形例〕
上述した実施例では、VoIPサービスの例について説明した。また、開示した解決方法はビデオコールなどの分野に適用できることを説明した。これらのサービスは、リアルタイム双方向通話を行う、情報量が多い、一度に配布されるサービスキーは通信処理全体で要求されるものではない、という共通の特徴を有している。
【0063】
また、SMSショートメッセージなどの他の種類の通信サービスでは、リアルタイム双方向通話を行われず、質問−回答形式のサービスと同様、1度に通信する情報量が少ない。この種のサービスに適用する場合、上記の解決方法を、以下に示すように変更してもよい。
【0064】
<1>携帯情報処理端末によって設定される記憶領域は、論理的に環状の記憶領域である必要はない。なぜなら、SMS情報は短く、要求されるサービスキーの容量も小さいため、サービスキーを1回で完全にダウンロードでき、再ダウンロードする必要がないからである。
【0065】
<2>VoIPサービスのリアルタイム双方向通話の場合、機密通信サポートネットワークは各コールについて2つのブロックのサービスキーを用意する必要があった(図5参照)。これに対して、SMS通信では、機密通信サポートネットワークはSMSメッセージについて1ブロックのサービスキーを準備し、その1ブロックのサービスキーを送信側端末および受信側端末に送信するだけでよい。送信側端末はサービスキーを用いて暗号化を行い、受信側端末はサービスキーを用いて暗号解読を行う。同様に、携帯情報処理端末は、機密通信サポートネットワークからサービスキーを要求するためのスレッドを1つ作成するだけでよい。
【0066】
<3>SMSショートメッセージの送信側端末は、暗号文を送信する前に、機密通信サポートネットワークに暗号化のためのサービスキーを要求する。SMSショートメッセージの受信側端末は、ショートメッセージを受信した後、機密通信サポートネットワークに暗号解読のためのサービスキーを要求する。暗号化のためのサービスキーが要求されてから暗号解読のためのサービスキーが要求されるまでの時間は、ネットワークのオペレータによっては長くなる場合がある。このため、送信側端末から送信されてきたサービスキーの要求を、所定の期間、一時的に記憶する必要がある。その後、機密通信サポートネットワークは、受信側端末からサービスキーの要求を受信した後、送信側端末から送信されてきたサービスキーの要求と、受信側端末から送信されてきたサービスキーの要求とをマッチングする。
【0067】
<4>VoIPサービスでは、サービスキーの一部をダウンロードし、サービスプログラムがサービスキーの使用開始を通知する。これに対して、SMS情報は短いので、サービスキーSMSショートメッセージに要求されるサービスキーは完全にダウンロードされてから使用される。
【0068】
上述した変更、改良、およびSMSショートメッセージなどの双方向通話を行わない非リアルタイム通信サービスに適合させるための簡単な変形は、本明細書に開示した技術的解決策の範囲から逸脱するものではなく、本発明によって保護される範囲内のものである。
【0069】
様々なタイプの通信サービスが存在する。本明細書に開示した実施例では、アンドロイド携帯情報処理端末に基づく普遍的機密通信サポートプラットフォームを確立し、利用する方法、および、上記の普遍的機密通信サポートプラットフォームに基づいて通信キーを配布する方法について、VoIPサービスを例として説明した。しかしながら、本発明の技術的解決策の適用対象は、上述したVoIP、ショートメッセージ、ビデオコールなどに限るものではなく、本発明の開示に従う普遍的機密通信プラットフォームによって他のタイプの通信サービスにおける機密通信を実現することもできる。他の通信サービスにおける上記の普遍的機密通信プラットフォームの起動における細部の変更(起動タイミング、起動位置、サービスキーの要求/ダウンロードのパラメータ、記憶領域管理など)は、本発明の開示に従う技術的解決策の変形であり、本発明の保護対象の範囲内に属するとみなされるべきである。
【0070】
また、本発明の適用対象は、アンドロイド携帯情報処理端末の変更に限るものではなく、上述した情報処理端末の機能に相当する機密通信サービス機能を有する情報処理端末を提供するために、他の端末装置(例えばアンドロイドオペレーティングシステムを実行する情報処理機能付きのテレビやセットトップボックスなど)に直接あるいは少し変更して適用することもできる。
【図面の簡単な説明】
【0071】
図1】アンドロイドのオペレーティングシステムにおけるソフトウェア層の構造を概略的に示した図である。
図2】携帯端末が携帯端末と機密通信サポートネットワークとの間で共有されるキーをダウンロードするための処理を概略的に示した図である。
図3】機密通信サポートネットワークに記憶されている共有キーと携帯端末に記憶されている共有キーとを示す図である。
図4】サービスキーの配布ステップを示す図である。
図5】双方向リアルタイム通信サービスにおけるサービスキーの相互配布を示す図である。
図6】携帯端末におけるサービスキーの記憶構造を示す概念図である。
図1
図2
図3
図4
図5
図6