(57)【要約】  アンドロイド携帯情報処理端末に基づく通信キーの配布方法を提供する。アンドロイドオペレーティングシステムの最下層に普遍的機密通信プラットフォームを確立することにより、携帯情報処理端末に、機密通信サポートネットワークとの情報交換を行い、２段階のキーを受信し、受信したサービスキーを暗号解読してから用い、ＶｏＩＰ機密コール、機密ショートメッセージ、機密ビデオコール、ファイル暗号化送信、安全なモバイル決済、および機密性が要求される他の通信サービスをサポートするための普遍的最下層を提供する機能を実装する。機密通信サポートネットワークは改良された携帯情報処理端末のための様々な通信サービスに要求されるサービスキーを提供し、携帯情報処理端末は、サービスキーを獲得した後、当該サービスキーを用いて機密通信を行う。
2016528756.tif 000002
【特許請求の範囲】
【請求項１】
アンドロイド携帯情報処理端末に基づく通信キーの配布方法であって、
（１）アンドロイドオペレーティングシステムの最下層に普遍的機密通信プラットフォームを確立し、アプリケーション層の通信ソフトウェアプログラムのソースコード中で前記普遍的機密通信プラットフォームのアプリケーションプログラムインターフェース（ＡＰＩ）を起動し、前記アンドロイドオペレーティングシステムの改変したソースコードをイメージファイル中にコンパイルし、前記イメージファイルを前記携帯情報処理端末に書き込むステップと、
（２）前記携帯情報処理端末を機密通信サポートネットワーク内のキー端末に直接接続し、前記携帯情報処理端末と前記機密通信サポートネットワークとの間で共有される共有キーをダウンロードし、前記共有キーを前記携帯情報処理端末に記憶させ、前記共有キーをダウンロードした後に前記携帯情報処理端末と前記キー端末との接続を遮断するステップと、
（３）通信サービスをインストールした後、前記携帯情報処理端末が、前記システムの前記最下層における前記普遍的機密通信プラットフォームの前記ＡＰＩを起動することによってサービスキー獲得スレッドを生成し、前記機密通信サポートネットワークからの通信のためのサービスキーを要求するステップと、
（４）前記サービスキーの要求を受信した後、前記機密通信サポートネットワークが、前記通信において前記携帯情報処理端末への通信のためのサービスキーを配布するステップと、
（５）前記携帯情報処理端末が、前記システムの前記最下層における前記普遍的機密通信プラットフォームのＡＰＩを起動することにより、前記機密通信サポートネットワークから前記通信のためのサービスキーを受信し、受信したサービスキーを当該携帯情報処理端末の記憶領域に記憶するステップと、
（６）前記携帯情報処理端末が、前記サービスキーを用いて機密通信を実行するステップとを含むことを特徴とする方法。
【請求項２】
前記ステップ（１）は、
（１−１）前記アンドロイドオペレーティングシステムのソースコードのＣ／Ｃ＋＋フレームワーク層に、前記機密通信に関する基本機能を実現するための機密通信機能ライブラリを付加するステップを含み、
前記基本機能は、前記機密通信サポートネットワークとの相互命令機能、キー要求機能、キーダウンロード機能、キー管理機能、および暗号化−解読演算機能を含み、
前記機密通信機能ライブラリへの要求は前記アンドロイドのＪａｖａ（登録商標）フレームワーク層にＪａｖａ（登録商標）ネイティブインターフェース（ＪＮＩ）を介して供給され、
前記機密通信機能ライブラリは、「＊．ｓｏ」ライブラリファイルにコンパイルされ、
（１−２）前記ＪＮＩを用いて前記Ｃ／Ｃ＋＋フレームワーク層で前記機密通信機能ライブラリを起動し、前記アンドロイドオペレーティングシステムの前記ソースコードの前記Ｊａｖａ（登録商標）フレームワーク層に機密通信クラスを付加するステップをさらに含み、
前記機密通信クラスは、前記アプリケーション層の様々な通信ソフトウェアによって起動される前記普遍的機密通信プラットフォームの前記ＡＰＩに関連する機密通信を用いて上層のアプリケーション層に供給することを特徴とする請求項１に記載の方法。
【請求項３】
前記ステップ（３）は、
（３−１）前記通信サービスが開始された後、前記アプリケーション層の前記通信ソフトウェアが、前記システムの前記最下層における前記普遍的機密通信プラットフォームを起動し、前記機密通信サポートネットワークと無線接続される新たなサービスキー要求スレッドを生成するステップと、
（３−２）前記接続が確立した後、前記携帯情報処理端末が、前記通信のためのサービスキー要求のために、前記通信に関連する情報を前記機密通信サポートネットワークに送信するステップとを含み、
前記情報は送信側端末の識別情報、受信側端末の識別情報、認証情報、前記サービスキーが要求されるサービスを示す情報、および前記サービスキーが暗号化を実行するためのものか暗号解読を実行するためのものかを示す情報を含むむことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記ステップ（４）は、
（４−１）前記携帯情報処理端末の前記サービスキー要求スレッドへの接続を待つためにネットワークサービススレッドを確立するステップと、
（４−２）前記携帯情報処理端末との通信が確立され、前記携帯情報処理端末から前記サービスキー要求を受信した後、前記通信のサービスタイプ、前記端末の識別情報、認証情報、および前記サービスキーの目的を取得し、前記携帯情報処理端末が前記サービスキー要求の許可を有しているか否かを判断し、前記許可を有する前記携帯情報処理端末にダウンロードさせるための前記サービスキーを配布するステップと、
（４−３）前記機密通信サポートネットワークが送信すべき前記サービスキーを前記携帯情報処理端末と前記機密通信サポートネットワークとの間で共有される前記共有キーを用いて暗号化するステップと、
（４−４）前記機密通信サポートネットワークが暗号化された前記サービスキーを前記携帯情報処理端末に無線通信により送信するステップとを含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記機密通信サポートネットワークと前記携帯情報処理端末との間で共有される前記共有キーについて、
（５−１）前記機密通信サポートネットワークに記憶されている前記共有キーのヘッダに前記共有キーの現在の使用情報が記憶されており、前記共有キーが前記携帯情報処理端末にダウンロードされた時に前記ヘッダはフィルタリングされて取り除かれ、
（５−２）前記サービスキーを暗号化するときに、前記機密通信サポートネットワークが、前記共有キーの現在の使用位置を前記共有キーの前記ヘッダから抽出し、前記共有キーを前記現在の使用位置から用いて送信すべき前記サービスキーを暗号化し、暗号化した前記サービスキーにおける上記位置の使用されていないビットに情報を埋め込んで前記共有キーの前記ヘッダを更新し、
（５−３）前記機密通信サポートネットワークが送信した暗号化された前記サービスキーを受信した後、前記携帯情報処理端末が、暗号化された前記サービスキーの前記位置に埋め込まれた前記情報を抽出し、受信した前記サービスキーと当該携帯情報処理端末に記憶している前記位置の情報を有する前記共有キーとを組み合わせることにより、前記共有キーの前記位置を用いて受信した前記サービスキーの暗号解読を行い、
（５−４）前記共有キーの量が不十分な場合に、前記携帯情報処理端末が前記機密通信サポートネットワークから前記ステップ（２）に従って新たな共有キーをダウンロードすることを特徴とする請求項４に記載の方法。
【請求項６】
前記ステップ（５）において、
前記携帯情報処理端末によってダウンロードされた前記サービスキーの量が、機密通信を現在のサービスタイプで実行できる所定の閾値に達したときに、前記サービスキーを使用可能である旨を対応するアプリケーションに通知し、前記サービスキーが完全にダウンロードされるまで前記サービスキーのダウンロードを継続しながら前記サービスキーを使用することを特徴とする請求項１に記載の方法。
【請求項７】
前記ステップ（５）における前記携帯情報処理端末の前記記憶領域について、
（７−１）前記携帯情報処理端末は、前記機密通信サポートネットワークから受信した前記サービスキーを記憶するための、サービスタイプに応じたサイズを有する論理的な環状の記憶領域をサービスキー獲得スレッド毎に設定し、
（７−２）前記携帯情報処理端末は、前記サービスキーを記憶するための環状の記憶領域毎に読出位置ポインタを提供し、
前記読出位置ポインタによって示された位置から適切な量のサービスキーが読み出され、前記サービスキーを用いて機密通信の暗号化−暗号解読が実行され、
前記読出位置ポインタは、前記環状の記憶領域内を移動して常に次回の読み出し時の前記サービスキーの読み出し開始位置を示し、
前記読出位置ポインタが前記環状の記憶領域の終端部を通過したときに前記環状の記憶領域の始端部からの読み出しが継続され、
（７−３）前記携帯情報処理端末は、前記サービスキーを記憶するための環状の記憶領域毎に書込位置ポインタを提供し、
受信した前記サービスキーが前記環状の記憶領域に前記書込位置ポインタによって示された位置から記憶され、
前記書込位置ポインタは、前記環状の記憶領域内を移動して常に次回の書き込み時の前記サービスキーの書き込み開始位置を示し、
前記書込位置ポインタが前記環状の記憶領域の終端部を通過する場合、前記環状の記憶領域の始端部からサービスキーの書き込み連続して行われ、
前記機密通信サポートネットワークから要求されるサービスキーの１回あたりの量は前記環状の記憶領域のサイズを超えず、
（７−４）前記サービスキーの初回のダウンロードを行った後、前記環状の記憶領域における前記書込位置ポインタによって示される位置と前記読出位置ポインタによって示される位置との間の距離が所定の閾値に達した場合に、前記携帯情報処理端末が前記機密通信サポートネットワークにサービスキーのダウンロードを再依頼し、
（７−５）前記通信サービスが完了した後、前記サービスキーを記憶するための前記記憶領域は前記システムによって更新され、前記記憶領域のデータは消去されることを特徴とする請求項１に記載の方法。
【請求項８】
前記共有キーおよび前記サービスキーの少なくとも一方が、ワンタイムパッドとして使用されることを特徴とする請求項１〜６のいずれか１項に記載の方法。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
〔技術分野〕
本発明は、携帯端末のための機密通信技術に関するものであり、より具体的には、アンドロイド携帯情報処理端末に基づく通信キー（通信鍵）の配布方法に関するものである。
【０００２】
〔背景技術〕
現在、移動通信技術は、日常生活で広く用いられている。しかしながら、通信のほとんどの過程において暗号化が行われていないので、第三者が容易に通信を妨害できるようになっている。無線通信プロセスの段階でデータフローを暗号化するものもあるが、高い機密性が要求される場合には、通信の中間段階で傍受されないように、通信プロセスの全体を通してデータフローを暗号化した状態にする必要がある。移動通信プロセスでは送信端末から受信端末まで暗号化する必要がある。すなわち、暗号化および暗号解読を送信側端末および受信側端末においてそれぞれ行う必要がある。これにより、データフローが通過するネットワークにかかわらずユーザ情報の安全性を有効に確保することができる。
【０００３】
一般に、携帯端末は送信端末から受信端末までの機密通信をサポートする機能を備えていない。既存の技術の中には、信頼できる機密通信方法をサポートする専用の携帯端末を構築するために、暗号化−暗号解読モジュールやキー記憶モジュールなどを付加することにより携帯端末のハードウェアを改造するものがある。しかしながら、この方法には以下に示す問題がある。第１の問題は、コストが高いことである。高度な技術が要求されるので、普及につながらない新たなタイプの端末を機密通信機能だけのために設計して生成する必要がある。第２の問題は、ユーザの立場では、多くのユーザは、機密通信機能だけのために新たな携帯端末に交換するのではなく、自身の現在の携帯端末に機密通信機能を備えることを望んでいる点である。
【０００４】
近年、アンドロイドの知的なオペレーティングシステムが大衆化し、市場シェアが増大している。アンドロイドを搭載した携帯電話あるいは他の携帯端末に、純粋にソフトウェアを用いた方法により、もともとの機能を維持したまま高度な安全性を有する機密通信機能を付加することができる。現在、アンドロイド環境下、あるいは市販されている他の携帯端末オペレーティングシステム環境下（例えばショートメッセージ暗号化などの小規模なアプリケーションソフトウェアなど）において用いられる簡単な通信暗号化ツールが存在している。しかしながら、キーの配布が困難であるため、暗号化は、数学的アルゴリズムを用いて行われるか、あるいはキーを再利用（あるいは変化させて再利用）して行われている。あるいは、携帯端末の不揮発性記憶媒体に記憶されている１または複数のファイル／キーのブロックが通信毎にサービスキーとして用いられている。しかしながら、キーは破損したり、読み出された後に壊れたりしやすいので、高度な秘密性が要求されるシナリオに適用することができない。また、現在、機密強度を有する暗号化通信ソフトウェアは、一般に、携帯端末プラットフォームにおけるショートメッセージなどの小サイズの情報の暗号化に制限されており、特定の１または複数のサービスしか保護することができない。ＶｏＩＰ（ボイスオンインターネットプロトコル）やビデオ通話などの大容量のデータ通信サービスのためのワンタイムパッドを生成する機能を有する一般的な機密性携帯端末プラットフォームは著しく不足している。アプリケーションソフトウェアを用いて情報を暗号化する方法はまだ信頼性が低い。これは、上記ソフトウェアはアンドロイドオペレーティングシステムにインストールされるため、ユーザが上記ソフトウェアをインストールできる場合、攻撃者が悪意をもってアンインストールすることも可能なためである。したがって、上記ソフトウェアは、安全性が低く、高度な安全性が要求されるシナリオには適していない。
【０００５】
〔発明の概要〕
本明細書では、上記の問題を解決するために、アンドロイド携帯情報処理端末に基づく通信キーの配布方法を開示する。この方法では、アンドロイドオペレーティングシステムの最下層に、携帯情報処理端末が機密通信サポートネットワークと情報交換を行い、２段階のキーを受信し、受信したサービスキーを解読し、解読したサービスキーを利用することを可能にするための、普遍的機密通信プラットフォームが確立される。すなわち、機密性が要求される通信サービス（例えば、ＶｏＩＰ、機密性ショートメッセージ、機密性ビデオ通話、ファイル暗号化送信、安全なモバイル決済など）のために、最下層に普遍的な支持層が形成される。様々な通信サービスに要求される上記サービスキーは、上記機密通信サポートネットワークを介して携帯情報処理端末を改変するために提供され、上記携帯情報処理端末は、上記サービスキーを取得し、取得したサービスキーを用いて機密通信を実行する。
【０００６】
上記の課題を解決するために、本明細書では以下に示す解決策を提示する。
【０００７】
アンドロイド携帯通信処理端末に基づく通信キーの配布方法であって、
（１）アンドロイドオペレーティングシステムの最下層に普遍的機密通信プラットフォームを確立し、アプリケーション層の通信ソフトウェアプログラムのソースコード中で前記普遍的機密通信プラットフォームのアプリケーションプログラムインターフェース（ＡＰＩ）を起動し、前記アンドロイドオペレーティングシステムの改変したソースコードをイメージファイル中にコンパイルし、前記イメージファイルを前記携帯情報処理端末に書き込むステップと、
（２）前記携帯情報処理端末を機密通信サポートネットワーク内のキー端末に直接接続し、前記携帯情報処理端末と前記機密通信サポートネットワークとの間で共有される共有キーをダウンロードし、前記共有キーを前記携帯情報処理端末に記憶させ、前記共有キーをダウンロードした後に前記携帯情報処理端末と前記キー端末との接続を遮断するステップと、
（３）通信サービスをインストールした後、前記携帯情報処理端末が、前記システムの前記最下層における前記普遍的機密通信プラットフォームの前記ＡＰＩを起動することによってサービスキー獲得スレッドを生成し、前記機密通信サポートネットワークからの通信のためのサービスキーを要求するステップと、
（４）前記サービスキーの要求を受信した後、前記機密通信サポートネットワークが、前記通信において前記携帯情報処理端末への通信のためのサービスキーを配布するステップと、
（５）前記携帯情報処理端末が、前記システムの前記最下層における前記普遍的機密通信プラットフォームのＡＰＩを起動することにより、前記機密通信サポートネットワークから前記通信のためのサービスキーを受信し、受信したサービスキーを当該携帯情報処理端末の記憶領域に記憶するステップと、
（６）前記携帯情報処理端末が、前記サービスキーを用いて機密通信を実行するステップとを含む方法。
【０００８】
前記ステップ（１）は、
（１−１）前記アンドロイドオペレーティングシステムのソースコードのＣ／Ｃ＋＋フレームワーク層に、前記機密通信に関する基本機能を実現するための機密通信機能ライブラリを付加するステップを含み、
前記基本機能は、前記機密通信サポートネットワークとの相互命令機能、キー要求機能、キーダウンロード機能、キー管理機能、および暗号化−解読演算機能を含み、
前記機密通信機能ライブラリへの要求は前記アンドロイドのＪａｖａ（登録商標）フレームワーク層にＪａｖａ（登録商標）ネイティブインターフェース（ＪＮＩ）を介して供給され、
前記機密通信機能ライブラリは、「＊．ｓｏ」ライブラリファイルにコンパイルされ、
（１−２）前記ＪＮＩを用いて前記Ｃ／Ｃ＋＋フレームワーク層で前記機密通信機能ライブラリを起動し、前記アンドロイドオペレーティングシステムの前記ソースコードの前記Ｊａｖａ（登録商標）フレームワーク層に機密通信クラスを付加するステップをさらに含み、
前記機密通信クラスは、前記アプリケーション層の様々な通信ソフトウェアによって起動される前記普遍的機密通信プラットフォームの前記ＡＰＩに関連する機密通信を用いて上層のアプリケーション層に供給する。
【０００９】
前記ステップ（３）は、
（３−１）前記通信サービスが開始された後、前記アプリケーション層の前記通信ソフトウェアが、前記システムの前記最下層における前記普遍的機密通信プラットフォームを起動し、前記機密通信サポートネットワークと無線接続される新たなサービスキー要求スレッドを生成するステップと、
（３−２）前記接続が確立した後、前記携帯情報処理端末が、前記通信のためのサービスキー要求のために、前記通信に関連する情報を前記機密通信サポートネットワークに送信するステップとを含み、前記情報は送信側端末の識別情報、受信側端末の識別情報、認証情報、前記サービスキーが要求されるサービスを示す情報、および前記サービスキーが暗号化を実行するためのものか暗号解読を実行するためのものかを示す情報を含む。
【００１０】
前記ステップ（４）は、
（４−１）前記携帯情報処理端末の前記サービスキー要求スレッドからの接続を待つためにネットワークサービススレッドを確立するステップと、
（４−２）前記携帯情報処理端末との通信が確立され、前記携帯情報処理端末から前記サービスキー要求を受信した後、前記通信のサービスタイプ、前記端末の識別情報、認証情報、および前記サービスキーの目的を取得し、前記携帯情報処理端末が前記サービスキー要求の許可を有しているか否かを判断し、前記許可を有する前記携帯情報処理端末にダウンロードさせるための前記サービスキーを配布するステップと、
（４−３）前記機密通信サポートネットワークが送信すべき前記サービスキーを前記携帯情報処理端末と前記機密通信サポートネットワークとの間で共有される前記共有キーを用いて暗号化するステップと、
（４−４）前記機密通信サポートネットワークが暗号化された前記サービスキーを前記携帯情報処理端末に無線通信により送信するステップとを含む。
【００１１】
前記機密通信サポートネットワークと前記携帯情報処理端末との間で共有される前記共有キーについて、
Ｉ．前記機密通信サポートネットワークに記憶されている前記共有キーのヘッダに前記共有キーの現在の使用情報が記憶されており、前記共有キーが前記携帯情報処理端末にダウンロードされた時に前記ヘッダはフィルタリングされて取り除かれ、
ＩＩ．前記サービスキーを暗号化するときに、前記機密通信サポートネットワークが、前記共有キーの現在の使用位置を前記共有キーの前記ヘッダから抽出し、前記共有キーを前記現在の使用位置から用いて送信すべき前記サービスキーを暗号化し、暗号化した前記サービスキーにおける上記位置の使用されていないビットに情報を埋め込んで前記共有キーの前記ヘッダを更新し、
ＩＩＩ．前記機密通信サポートネットワークが送信した暗号化された前記サービスキーを受信した後、前記携帯情報処理端末が、暗号化された前記サービスキーの前記位置に埋め込まれた前記情報を抽出し、受信した前記サービスキーと当該携帯情報処理端末に記憶している前記位置の情報を有する前記共有キーとを組み合わせることにより、前記共有キーの前記位置を用いて受信した前記サービスキーの暗号解読を行い、
ＩＶ．前記共有キーの量が不十分な場合に、前記携帯情報処理端末が前記機密通信サポートネットワークから前記ステップ（２）に従って新たな共有キーをダウンロードするようにしてもよい。
【００１２】
前記ステップ（５）において、前記携帯情報処理端末によってダウンロードされた前記サービスキーの量が、機密通信を現在のサービスタイプで実行できる所定の閾値に達したときに、前記サービスキーを使用可能である旨を対応するアプリケーションに通知し、前記サービスキーが完全にダウンロードされるまで前記サービスキーのダウンロードを継続しながら前記サービスキーを使用するようにしてもよい。
【００１３】
前記ステップ（５）における前記携帯情報処理端末の前記記憶領域について、
（５−１）前記携帯情報処理端末は、前記機密通信サポートネットワークから受信した前記サービスキーを記憶するための、サービスタイプに応じたサイズを有する論理的な環状の記憶領域をサービスキー獲得スレッド毎に設定し、
（５−２）前記携帯情報処理端末は、前記サービスキーを記憶するための環状の記憶領域毎に読出位置ポインタを提供し、前記読出位置ポインタによって示された位置から適切な量のサービスキーが読み出され、前記サービスキーを用いて機密通信の暗号化−暗号解読が実行され、前記読出位置ポインタは、前記環状の記憶領域内を移動して常に次回の読み出し時の前記サービスキーの読み出し開始位置を示し、前記読出位置ポインタが前記環状の記憶領域の終端部を通過したときに前記環状の記憶領域の始端部からの読み出しが継続され、
（５−３）前記携帯情報処理端末は、前記サービスキーを記憶するための環状の記憶領域毎に書込位置ポインタを提供し、受信した前記サービスキーが前記環状の記憶領域に前記書込位置ポインタによって示された位置から記憶され、前記書込位置ポインタは、前記環状の記憶領域内を移動して常に次回の書き込み時の前記サービスキーの書き込み開始位置を示し、前記書込開始ポインタが前記環状の記憶領域の終端部を超える場合、前記環状の記憶領域の始端部からサービスキーの書き込み連続して行われ、前記機密通信サポートネットワークから要求されるサービスキーの１回あたりの量は前記環状の記憶領域のサイズを超えず、
（５−４）前記サービスキーの初回のダウンロードを行った後、前記環状の記憶領域における前記書込位置ポインタによって示される位置と前記読出位置ポインタによって示される位置との間の距離が所定の閾値に達した場合に、前記携帯情報処理端末が前記機密通信サポートネットワークにサービスキーのダウンロードを再依頼し、
（５−５）前記通信サービスが完了した後、前記サービスキーを記憶するための前記記憶領域は前記システムによって更新され、前記記憶領域のデータは消去されるようにしてもよい。
【００１４】
前記共有キーおよび／または前記サービスキーは、ワンタイムパッドとして用いられてもよく、あるいは、様々な一般的な対称／非対称の暗号化キーおよび暗号解読キーとして用いられてもよい。
【００１５】
本発明の方法は、主に以下の特徴を有している。
【００１６】
（１）アンドロイドオペレーティングシステムは、Ｊａｖａ（登録商標）フレームワーク層およびアンドロイドシステムにおけるＪａｖａ（登録商標）フレームワーク層の下層を変更することにより、機密通信サポートネットワークからキーを獲得する機能を有している。前記機能は、前記オペレーティングに固定されていてもよく、前記アプリケーション層のソフトウェアが変更されても変更されない。また、第三者が開発したアプリケーション層内の他の通信ソフトウェアが前記オペレーティングシステムによって最下層の前記機密通信サポートを起動できるように、アプリケーション層にＡＰＩインターフェースを提供し、前記ソフトウェアに機密通信機能を付加する。
【００１７】
（２）前記普遍的機密通信プラットフォームは、特定のサービスから独立しており、アプリケーション層で実行される様々なサービスアプリケーションソフトウェアは、前記普遍的機密通信プラットフォームのＡＰＩを起動することによって前記アプリケーションソフトウェアにおける様々な機密通信処理を実行可能である。
【００１８】
（３）前記機密通信サポートネットワークと前記携帯情報処理端末との間で共有される前記共有キーの前記ヘッダは、前記機密通信サポートネットワーク内にのみ記憶される。前記起動情報処理端末における前記共有キーの複製は、前記キーの現在の使用位置の情報を含んでいない。このため、極端な場合、例えば、前記携帯端末が盗まれて前記共有キーが取り出されても、取り出された共有キーに基づいて、上記第三者が、前の通信において上記キーのどの部分が利用されたのか、および次の通信において上記キーのどの部分が使用されるのかを特定することは困難であり、有効な情報を開くことは困難である。
【００１９】
（４）前記機密通信サポートネットワークは、適切なスレッドに配布されるべきサービスキーの種類を、前記通信に関連する、送信側端末の識別情報、受信側端末の識別情報、認証情報、どのサービスがサービスキーを要求しているのかを示す情報、および暗号化に用いられるサービスキーであるのか暗号解読に用いられるサービスキーであるのかを示す情報を含む情報に基づいて独自に決定する。
【００２０】
（５）各通信についての前記サービスキーは、当該通信が開始されるまで前記携帯情報処理端末によって要求されず、前記機密通信サポートネットワークによって送信される。また、前記携帯情報処理端末に送信された後も、前記サービスキーは一時的に設定される記憶領域にのみ記憶され、通信が完了したら即座に消去される。
【００２１】
（６）前記キーは前記機密通信サポートネットワークからリアルタイムな方法で取得することができる。このため、ワンタイムパッドなどの高度な安全性を有する暗号化方法をサポートすることができる。
【００２２】
（７）前記の論理的な環状の記憶領域は前記サービスキーを記憶するために用意され、前記キーがある程度消費されたときに新しいキーがダウンロードされて古いキーと置き換えられる。
【００２３】
本発明には以下に示す利点がある。本発明の方法により、前記アンドロイド携帯情報処理端末は機密通信サポートネットワークからキーをダウンロードする機能を持つ。アンドロイドシステムを実行する様々な携帯端末に複数の機密通信サービスが提供される。そして、特に、ワンタイムパッドなどの高度な安全性を有する機密通信を実行するための大量のデータを有する通信サービスのために、最下層ソフトウェアプラットフォームが提供される。この場合、携帯端末の製造者は、特別な暗号化携帯端末を製造することなく、アンドロイドオペレーティングシステムをサポートしている携帯情報処理端末に存在するソースコードを修正および更新するだけでよい。また、製造者が、顧客が前記携帯端末を自身で更新することを可能にするために、ディスクあるいはネットワークを介して、機密通信機能を有する完全なＲＯＭあるいは更新されたファームウェアを顧客に提供してもよい。ハードウェアの変更を必要とせずに既存の携帯情報処理端末に高度な安全性を有する機密通信機能を持たせ、ユーザが既存の携帯情報処理端末を用いて機密ネットワークに参加できるようにすると便利である。アンドロイドプラットフォームにおける様々な通信アプリケーションソフトウェアの開発者は、前記機密通信機能を彼自身のソフトウェアに適用できるように設定する場合、当該ソフトウェアの通信データフローを暗号化あるいは暗号解読するために、機密通信に関連する、前記システムの最下層に付加されたＡＰＩを起動するだけでよい。
【００２４】
また、本発明の目的は、アンドロイドオペレーティングシステムの最下層に普遍的機密通信プラットフォームを確立する方法を提供することにある。前記普遍的機密通信プラットフォームは、機密通信サポートネットワークと共同して前記通信サービスキーを配布する。前記方法は、特定の通信サービスあるいは通信端末に限定されるものではない。したがって、前記方法は、携帯情報処理端末に適用できるだけでなく、直接、あるいはわずかな変更を施して、アンドロイドシステムを実行する情報処理機能付きのテレビやセットトップボックスなどに適用することもできる。したがって、これらの装置もまた、当該装置のハードウェアおよびソフトウェアの有効性を前提として、機密通信を実行する機能を有している。本明細書では、アンドロイドオペレーティングシステムの前記アプリケーション層ではなくＪａｖａ（登録商標）フレームワーク層およびＣ／Ｃ＋＋ネイティブフレームワーク層を変更するので、前記機密機能は前記オペレーティングシステム内に固定される。このため、悪意を持ってアンインストールしたり置換したりすることのできる機密アプリケーションソフトウェアとは異なり、安全性を大幅に改善できる。また、市場に存在する特定のサービスのための機密通信アプリケーションソフトウェアと比較すると、本発明は、前記アプリケーション層の第三者の通信プログラムに関する機密サービスを提供できるので、普遍性、発展性、および互換性の点で有利である。
【００２５】
〔図面の簡単な説明〕
図１は、アンドロイドのオペレーティングシステムにおけるソフトウェア層の構造を概略的に示した図である。
【００２６】
図２は、携帯端末が携帯端末と機密通信サポートネットワークとの間で共有されるキーをダウンロードするための処理を概略的に示した図である。
【００２７】
図３は、機密通信サポートネットワークに記憶されている共有キーと携帯端末に記憶されている共有キーとを示す図である。
【００２８】
図４は、サービスキーの配布ステップを示す図である。
【００２９】
図５は、双方向リアルタイム通信サービスにおけるサービスキーの相互配布を示す図である。
【００３０】
図６は、携帯端末におけるサービスキーの記憶構造を示す概念図である。
【００３１】
〔実施形態〕
本発明について、図面および実施例を参照しながら詳細に説明する。
【００３２】
本実施形態では、アンドロイド携帯情報処理端末に基づく通信キーの配布方法であって、以下に示すステップを含む方法を提示する。
【００３３】
ステップ（１）では、アンドロイドオペレーティングシステムの最下層に普遍的機密通信プラットフォームを確立する。上記の普遍的機密通信プラットフォームのＡＰＩ（アプリケーションプログラムインターフェース）は、アプリケーション層の通信ソフトウェアプログラムのソースコード中で起動される。また、アンドロイドオペレーティングシステムの改変されたソースコードがイメージファイルにコンパイルされ、上記イメージファイルは携帯通信端末に書き込まれる。
【００３４】
アンドロイドオペレーティングシステムの最下層における上記の普遍的機密通信プラットフォームは、以下に示す方法により実現される。アンドロイドオペレーティングシステムのソースコードにおけるＣ／Ｃ＋＋フレームワーク層に機密通信基本機能ライブラリを付加する。上記の機密通信基本機能ライブラリを、「バイオニック（ｂｉｏｎｉｃ）」に付加してもよい（「バイオニック」が最適であるが他の位置に付加してもよい）。上記の秘密通信基本機能ライブラリは、機密通信に関する基本機能を実現するように構成されている。上記基本機能には、例えば、機密通信サポートネットワークとの相互命令機能、キー要求機能、キーダウンロード機能、キー管理機能、および暗号化−解読演算機能などが含まれる。（上記機密通信サポートネットワークは、上記携帯情報処理端末とは独立しており、キーを生成し、生成したキーを上記携帯情報処理端末に配布するネットワーク構成要素である。また、上記機密通信サポートネットワークは、上記携帯情報処理端末の普遍的機密通信プラットフォームにおける関連する機能と協働して、携帯情報処理端末からキー要求を受け取り、携帯情報処理端末の通信サービスに要求される各レベルのキーを生成することができる。なお、上記キーは量子キーであってもよく、他のキーであってもよい。）「バイオニック」はアンドロイドオペレーティングシステムのＣ／Ｃ＋＋フレームワーク層で用いられるベーシックＣ言語のライブラリなので、付加される機能もまたアンドロイドシステムの基本機能ライブラリの一部として生成され、アンドロイドのＣ／Ｃ＋＋フレームワーク層において任意に起動することができる。（図１は、アンドロイドオペレーティングシステムのソフトウェア層の構造を示している。第３者によって開発された各ＡＰＰ（アプリケーションプログラム）はアプリケーション層に配置される。本明細書では、アプリケーション層よりも下層に配置された、Ｊａｖａ（登録商標）フレームワーク層、Ｃ／Ｃ＋＋ネイティブフレームワーク層およびアンドロイド実行環境、およびＬｉｎｕｘ（登録商標）カーネル層を全てアンドロイドシステムの最下層と称する。上記システムの最下層は上記オペレーティングシステムの基本部分であり、携帯情報処理端末に固定されている。したがって、アプリケーション層のソフトウェアとは異なり、ユーザが任意にインストールしたりシステムの最下層からアンインストールしたりできないようになっている。）その後、機密通信発展機能ライブラリをアンドロイドＣ／Ｃ＋＋フレームワーク層に追加する。上記発展機能ライブラリは、「バイオニック」の基本機能（例えば、キーダウンロード、キー管理など）を起動し、それに基づいてアンドロイドシステムのＪａｖａ（登録商標）フレームワーク層のためのＪＮＩの起動インターフェースを生成する機能をカプセル化および拡張する。Ｃ／Ｃ＋＋フレームワークにおける上記の機密通信機能ライブラリは「＊．ｓｏ」ライブラリファイルにコンパイルされる。機密通信クラスはアンドロイドシステムのＪａｖａ（登録商標）フレームワーク層に付加される。上記機密通信クラスは、Ｊａｖａ（登録商標）フレームワーク層にカプセル化および拡張されたＪＮＩインターフェースとともにＣ／Ｃ＋＋フレームワーク層に生成された上記機密通信発展機能ライブラリを起動する。このようにして、機密通信に関連するシステムＡＰＩ（追加されたＡＰＩは使用法の観点からアンドロイドシステムの公式システムＡＰＩと同様である）、すなわち上記の普遍的機密通信プラットフォームは、上記アプリケーション層において様々な通信ソフトウェアによって起動されるように、上層のアプリケーション層に供給される。これにより、アンドロイドシステムに基づいて、他人によって生成された様々なアプリケーション通信プログラムが、機密通信サポートネットワークとの接続、キーダウンロード、および暗号化−解読などの様々な動作を実現するために、追加されたシステムＡＰＩを起動することができる。同一のＡＰＩが異なるアプリケーション層のために最下層で供給される。上記ＡＰＩが呼び出されると、異なるサービスのために起動パラメータのみを改変すればよい。例えば、ＶｏＩＰサービスにおいてキーダウンロードが生じた場合、アンドロイドシステムの最下層における普遍的機密通信プラットフォームの「キー要求」のＪａｖａ（登録商標）ＡＰＩを起動するためのコードは、アンドロイドシステムのアプリケーション層のＶｏＩＰコールソフトウェアのソースコードの特定の位置（一般に、コール（呼び出し）要求の開始／取得と実際のコールの確立との間のサービスプロセスを示す上記コード内）に追加され、対応するパラメータが設定される。これにより、要求されたサービスキーのための要求を適切なときに生じさせることができる。
【００３５】
もちろん、上記システムの最下層における上記の普遍的機密通信プラットフォームは、複数の変形例によって実現され、起動されてもよい。例えば、上記基本機能ライブラリおよびアンドロイドＣ／Ｃ＋＋フレームワーク層の上記発展機能ライブラリが互いに組み合わされてもよく、Ｃ／Ｃ＋＋フレームワーク層内で規定された上記機密通信機能ライブラリの機能がＪａｖａ（登録商標）フレームワーク層内で実現されてもよい。しかしながら、Ｊａｖａ（登録商標）フレームワーク層において完全に実現される場合、上記機能は簡単に逆コンパイルされる。このため、より安全な方法は、アンドロイドＣ／Ｃ＋＋フレームワーク層内に上記の普遍的機密通信プラットフォームの中枢機能を実現することである。これにより、コンパイルされた「＊．ｓｏ」ライブラリファイルを有効に逆コンパイルすることは困難であり、キーの取得および利用の詳細および暗号化−解読アルゴリズムの詳細を最大限保護することができる。
【００３６】
また、Ｃ／Ｃ＋＋フレームワーク層およびＪａｖａ（登録商標）フレームワーク層における各機能のインターフェースは、オペレーティングシステムの同じ層における他のソースコードによって起動されるようにしてもよい。例えば、追加されたシステムＡＰＩをアプリケーション層で起動する構成に代えて、上記の普遍的機密通信プラットフォームのＣ／Ｃ＋＋機能ライブラリがアンドロイドシステムの元々のＶｏＩＰのＣ／Ｃ＋＋フレームワーク層で直接起動される構成にしてもよく、上記の普遍的機密通信プラットフォームのＪａｖａ（登録商標）ＡＰＩがアンドロイドシステムの元々のＶｏＩＰのＪａｖａ（登録商標）フレームワーク層で直接起動されるようにしてもよい。しかしながら、アンドロイドの最下層のコードがこの方法によって改変された後にアプリケーション層ソフトウェアの第３者開発者が利用することは適切ではない。
【００３７】
アンドロイドのソースコードは、アンドロイドオペレーティングシステムの上記の普遍的機密通信プラットフォームを含む新たなイメージファイルを生成するために、改変された後に逆コンパイルされ、その後、上記イメージファイルは携帯情報処理端末に書き込まれる。
【００３８】
ステップ（２）では、携帯情報処理端末は、機密通信サポートネットワーク内のキー端末に直接接続され、当該携帯情報処理端末と機密通信サポートネットワークとの間で共有される共有キーがダウンロードされる。上記共有キーは、上記携帯情報処理端末に記憶される。上記携帯情報処理端末と上記キー端末との接続は、共有キーをダウンロードした後に遮断される。
【００３９】
図２に示したように、携帯端末ＡおよびＢは、それぞれキー端末Ｔ１およびＴ２に有線により接続される（理論上、携帯情報処理端末はキー端末Ｔ１〜Ｔｎのいずれかに接続される。ただし、実際の適用時には、ユーザはより近くにあるキー端末を常に選択する。）。上記の２つのキー端末は、機密通信サポートネットワークＳの一部である。携帯端末Ａは、当該携帯情報処理端末Ａと機密通信サポートネットワークＳとの間で共有される共有キー（キー（Ｓ−Ａ））をダウンロードし、ダウンロードした共有キー（キー（Ｓ−Ａ））を当該携帯端末Ａのメモリカードに記憶させる。携帯端末Ｂは、当該携帯情報処理端末Ｂと機密通信サポートネットワークＳとの間で共有される共有キー（キー（Ｓ−Ｂ））をダウンロードし、ダウンロードした共有キー（キー（Ｓ−Ｂ））を当該携帯端末Ｂのメモリカードに記憶させる。上記共有キーをダウンロードした後、携帯情報処理端末とキー端末との間の有線接続は遮断される。機密通信サポートネットワークＳにおける共有キー（キー（Ｓ−Ａ）およびキー（Ｓ−Ｂ））の生成方法は、特に限定されるものではなく、様々な方法を用いることができる。
【００４０】
Ｉ．例えば、量子機密通信において、キー端末が、機密通信サポートネットワーク内の内部量子キートランシーバを用いることにより量子キー（量子鍵）を直接生成してもよい。
【００４１】
ＩＩ．古典的機密通信において、機密通信サポートネットワーク内で、様々な古典的乱数発生装置が様々な古典的乱数発生アルゴリズムに基づいて独立したキーを生成し、生成したキーを古典的ネットワークを介してキー端末に送信するようにしてもよい。
【００４２】
共有キーの現在の使用情報（例えば機密通信サポートネットワークＳと携帯端末Ａとの間の共有キー（キー（Ｓ−Ａ））の現在使用されている部分）は、機密通信サポートネットワーク内に記憶された共有キーのヘッダに記録される。共有キーがダウンロードされる際、携帯端末に記憶された共有キーが悪意のある第三者によって盗まれる損失を低減するために、当該共有キーのヘッダはフィルタリングされて取り除かれ、携帯端末にはダウンロードされず、上記ヘッダは機密通信サポートネットワークにのみ保存される（図３参照）。上記第三者が、共有キーの大容量のデータブロックの中から、前の通信において上記キーのどの部分が利用されたのか、および次の通信において上記キーのどの部分が使用されるのかを特定することは、局所的な位置情報なしでは困難である。
【００４３】
図４は、ステップ（３）〜（６）の全体の流れを示している。ＶｏＩＰコールサービスの例についての詳細を以下に示す。
【００４４】
ステップ（３）では、通信サービスが開始された後、携帯情報処理端末は、システムの最下層内の普遍的機密通信プラットフォームのＡＰＩを起動させることにより、サービスキー獲得スレッドを生成し、機密通信サポートネットワークからの通信のためのサービスキーを要求する。このステップは、以下のステップを含む。
【００４５】
Ｉ．送信側携帯端末（コールする側の携帯端末）がコールを開始し、受信側携帯端末（コールされる側の携帯端末）が上記コールを受信した場合、アプリケーション層の対応する通信ソフトウェアが、システムの最下層における普遍的機密通信プラットフォームのＡＰＩが起動する。その後、新たなサービスキー獲得スレッドが機密通信サポートネットワークに接続され、コールのためのサービスキーのダウンロードが要求される。異なる通信サービス毎に異なるサービスキーが要求される。例えば、ＶｏＩＰコールソフトウェアは数メガビットのサービスキーを要求し、ＳＭＳショートメッセージソフトウェアは数百倍バイトのサービスキーを要求する。システムの最下層における普遍的機密通信プラットフォームのＡＰＩが起動されると、通信ソフトウェアは異なるサービスキーを獲得するために異なるパラメータを供給する。各携帯情報処理端末は２つのスレッドを生成する必要がある。１つはコールを暗号化するためのサービスキーをダウンロードするために用いられ、もう１つは上記コールを暗号解読するためのサービスキーをダウンロードするために用いられる。上記コールを暗号化するためのサービスキーはユーザ自身の音声を暗号化するために用いられ、上記コールの暗号解読を行うためのサービスキーは他のユーザからの音声を暗号解読するために用いられる。
【００４６】
ＩＩ．上記サービスキー要求スレッドが機密通信サポートネットワークと無線通信により接続された後、上記携帯情報処理端末は通信に関連する情報を機密通信サポートネットワークに送信し、機密通信サポートネットワークは上記携帯情報処理端末のためのサービスキーを供給する。上記通信に関連する情報には、送信側端末の識別情報、受信側端末の識別情報、認証情報、どのサービス（例えばＶｏＩＰサービス）がサービスキーを要求しているのかを示す情報、および暗号化に用いられるサービスキーであるのか暗号解読に用いられるサービスキーであるのかを示す情報が含まれる。
【００４７】
ステップ（４）では、機密通信サポートネットワークが、サービスキーの要求を受信した後、通信に参加する携帯情報処理端末との通信のためのサービスキーを配布する。このステップには以下のステップが含まれる。
【００４８】
Ｉ．携帯情報処理端末のサービスキー獲得スレッドの接続を待つために、ネットワークサービススレッドが確立される。
【００４９】
ＩＩ．携帯情報処理端末との接続が確立され、携帯情報処理端末からサービスキー要求を受信すると、機密通信サポートネットワークは接続のサービスタイプ、端末の識別情報、認証情報、サービスキーの目的を取得し、当該携帯情報処理端末がサービスキーを要求する許可を有しているか否かを判断し、当該携帯情報処理端末が上記許可を有している場合には、当該携帯情報処理端末から供給された情報に基づいて、当該携帯情報処理端末にダウンロードさせるサービスキーを配布する。例えば、ＶｏＩＰコールの通信の場合、配布されるサービスキーは数メガビットであってもよい。また、ＳＭＳショートメッセージの通信の場合、数百バイト程度のサービスキーが配布される。例えば、ワンタイムパッドの場合、サービスキーは、量子的方法、ソフトウェアアルゴリズム、および物理的乱数生成方法などを用いて機密通信サポートネットワークにより生成された、一連の乱数からなる対称キーである。
【００５０】
ＶｏＩＰサービスのためにキーを配布する場合、送信側の携帯情報処理端末および受信側の携帯情報処理端末に配布された暗号化および暗号解読のためのサービスキーは、相互に関連している。すなわち、送信側携帯端末に配布される暗号化のためのサービスキーは受信側携帯端末に配布される暗号解読のためのサービスキーに対応しており、送信側携帯端末に配布される暗号解読のためのサービスキーは受信側携帯端末に配布される暗号化のためのサービスキーに対応している。図５に示したように、携帯端末Ａと携帯端末Ｂとが通信を行う場合、機密通信サポートネットワークＳは、サービスキーＫ１を携帯端末Ａに暗号化のためのサービスキーとして送信し、サービスキーＫ１を携帯端末Ｂに暗号解読のためのサービスキーとして送信する。同様に、機密通信サポートネットワークＳは、サービスキーＫ２を携帯端末Ｂに暗号化のためのサービスキーとして送信し、サービスキーＫ２を携帯端末Ａに暗号解読のためのサービスキーとして送信する。
【００５１】
ＩＩＩ．機密通信サポートネットワークは、当該機密通信サポートネットワークと携帯情報処理端末との間で共有される共有キーを用いることにより、送信するサービスキーを暗号化する。サービスキーを暗号化する際、機密通信サポートネットワークは、機密通信サポートネットワークと携帯情報処理端末との間で共有されている共有キーのヘッダから共有キーにおける現在使用されている位置を抽出し、共有キーにおける現在使用されている位置から始まる部分を用いて送信するサービスキーを暗号化し、暗号化したサービスキーにおける上記位置の使用されていないビットに、当該携帯情報処理端末と機密通信サポートネットワークとの間の共有キーを同じ位置から用いて受信したサービスキーを暗号解読すべきことを携帯情報処理端末に通知するための情報を埋め込む。機密通信サポートネットワークは、共有キーの最新の使用状態を正確に反映させるために、機密通信サポートネットワークと携帯情報処理端末との間の共有キーの一部を用いる毎に共有キーのヘッダを更新する。
【００５２】
ＩＶ．機密通信サポートネットワークは、暗号化したサービスキーを携帯情報処理端末に無線で送信する。
【００５３】
ステップ（５）では、携帯情報処理端末が、システムの最下層における普遍的機密通信プラットフォームのＡＰＩを起動することにより、機密通信サポートネットワークからの通信のためのサービスキーを受信し、受信したサービスキーを当該携帯情報処理端末の記憶領域に記憶させる。
【００５４】
携帯情報処理端末は、機密通信サポートネットワークによって送信された暗号化されたサービスキーを受信した後、その暗号化されたサービスキーに含まれている位置情報を抽出する。上記位置情報は、携帯情報処理端末と機密通信サポートネットワークとの間で共有されている共有キーの使用位置を示す。携帯情報処理端末は、上記位置情報によって共有キーのどの位置から使用すればよいのかを把握し、上記位置情報と当該携帯情報処理端末に記憶されている当該携帯情報処理端末と機密通信サポートネットワークとの共有キーとを組み合わせることによって受信したサービスキーの暗号解読を行うことができる。通信毎に要求される上記サービスキーおよび携帯情報処理端末と機密通信サポートネットワークとの間の共有キーの両方が、ワンタイムパッド、すなわち高度な安全性を保証するために使用済みのキーを再使用しない構成であることが好ましい。もちろん、キーの他の使用方法、例えば様々な一般的な対称暗号化アルゴリズムや非対称暗号化アルゴリズムなどを用いてもよい。共有キーの量が不十分な場合、携帯情報処理端末は、機密通信サポートネットワークからステップ（２）に従って新たな共有キーをダウンロードする。
【００５５】
ＶｏＩＰコールは、ある程度の時間がかかり、またリアルタイムでの通信が要求されるので、ＶｏＩＰコールに要求されるサービスキーの量は多く、全てのサービスキーをダウンロードするのに時間がかかる。上記コールは、サービスキーが完全にダウンロードされるまで開始を待つことができない。このため、サービスキーのダウンロードの速度はサービスキーを利用する速度よりも速いので、携帯情報処理端末によってダウンロードされたサービスキーの量がＶｏＩＰ機密コールを実行することのできる下限値に到達したときに、ＶｏＩＰアプリケーションがサービスキーを利用可能であることを通知すべきである。その後、サービスキーが完全にダウンロードされるまで、サービスキーの利用とサービスキーのダウンロードとが連続的に並行して行われる。
【００５６】
携帯情報処理端末は、各サービスキー獲得スレッドについて論理的な環状の記憶領域を設定する（図６参照）。上記の環状の記憶領域のサイズは、通信のサービスタイプに依存する。上記の環状の記憶領域は、機密通信サポートネットワークから受信したサービスキーを記憶するために形成される。この場合、コールに用いられる実際のサービスキーは携帯端末の不揮発性記録媒体には記憶されず、コールが完了したらメモリから即座に消去される。これにより、サービスキーが後から読み出されることが防止され、コール毎のサービスキーは再使用されない。
【００５７】
携帯情報処理端末によってサービスキーを記憶するための環状の記憶領域毎に、環状の記憶領域の適切な位置を示す読み出し位置ポインタが供給される。通信文書のセグメントの暗号化（あるいは暗号文の暗号解読）が要求された場合、サービスキーがポインタによって示された位置から適切な量だけ読み出され、通信文書のセグメントの暗号化（あるいは暗号文の暗号解読）に用いられる。上記ポインタは、環状の記憶領域内で移動し、常に次回の読み出し時のサービスキーの開始位置を示す。ポインタが環状の空間の端部を通過した場合、サービスキーは環状の空間の開始位置から連続的に読み出される。ＶｏＩＰサービスの場合、１回のコールにつき２つの環状の記憶領域、すなわち、暗号化のためのサービスキーを記憶させるための記憶領域とび暗号解読のためのサービスキーを記憶させるための記憶領域の２つの環状の記憶領域とが必要になる。その間、携帯情報処理端末が、サービスキーが記憶されている環状の記憶領域のそれぞれに書込位置ポインタを提供する。受信したサービスキーは、環状の記憶領域におけるポインタによって示された位置から記憶される。上記ポインタは、環状の記憶領域内で移動し、常に次回の記憶時のサービスキーの記憶開始位置を示す。ポインタが環状の空間の端部を通過した場合、サービスキーは環状の空間の開始位置から連続的に書き込まれる。機密通信サポートネットワークから要求されるサービスキーの１回あたりの量が環状の記憶領域のサイズを超えることはない。サービスキーの初回のダウンロードの後、環状の記憶領域における書込位置ポインタによって示される位置と読出位置ポインタによって示される位置との距離が所定の閾値に到達した場合、携帯情報処理端末は、機密通信サポートネットワークからのサービスキーの再送を要求する。
【００５８】
例えば、サービスキーを最初にダウンロードした後、環状の記憶領域の前半の５０％がサービスキーで満たされる。環状の記憶領域の２５％の位置までサービスキーが使用された場合、携帯情報処理端末は機密通信サポートネットワークからのサービスキーのダウンロードを再要求する。その後、携帯情報処理端末は、機密通信サポートネットワークから環状の記憶領域の５０％のサイズのサービスキーをダウンロードし、環状の記憶領域の後半５０％をダウンロードしたサービスキーで満たす。同様に、環状の記憶領域の７５％の位置までサービスキーが使用された場合、携帯情報処理端末は、機密通信サポートネットワークから環状の記憶領域の５０％のサイズのサービスキーを再びダウンロードし、環状の記憶領域の前半５０％をダウンロードしたサービスキーで満たす。古いサービスキーは、同じ位置で新たにダウンロードされたサービスキーに置き換えられる。例えばＶｏＩＰコールやビデオコールなどの、長い通信時間を要し、かつキーの消費速度が速いサービスの場合、携帯情報処理端末にダウンロードされるサービスキーは通信を実施するのに十分ではない場合がある。その場合、携帯情報処理端末が、機密通信サポートネットワークへの通知を行い、使用するためのサービスキーを連続的にダウンロードするようにしてもよい。
【００５９】
サービスキーは、不揮発性記憶装置に記憶することなく携帯情報処理端末のメモリに記憶されるので、通信が完了した後、サービスキーを記憶していた記憶領域はシステムによって更新され、当該記憶領域に記憶されていたデータは消去されて読み出しや再利用ができなくなる。
【００６０】
ステップ（６）では、携帯情報処理端末は、サービスキーを用いて機密通信を実行する。通信を行う２つの端末が、暗号化のためのそれぞれのサービスキーを用いて文書の暗号化を行い、暗号化した文書を他方の端末に送信し、他方の装置から暗号部を受信した後、対応するサービスキーを用いて暗号文を暗号解読して文書を復元する。
【００６１】
本実施例では、アンドロイド情報処理オペレーティングシステムに基づく普遍的機密通信プラットフォームおよび上記の普遍的機密通信プラットフォームを用いた通信キーの配布方法を提供した。通信キーの使用方法の詳細については本明細書では記載を省略した。例えば、本実施例では、機密通信サポートネットワークからダウンロードした対称サービスキーを用いることによって通信情報のワンタイムパッドによる暗号化／暗号解読処理を実行することが好ましい。しかしながら、上記の普遍的機密通信プラットフォームおよび上記の配布方法において、非対称キーを配布するようにしてもよい。また、暗号化／暗号解読処理にサービスキーに関するワンタイムパッドとは異なる処理を適用してもよい。
【００６２】
〔変形例〕
上述した実施例では、ＶｏＩＰサービスの例について説明した。また、開示した解決方法はビデオコールなどの分野に適用できることを説明した。これらのサービスは、リアルタイム双方向通話を行う、情報量が多い、一度に配布されるサービスキーは通信処理全体で要求されるものではない、という共通の特徴を有している。
【００６３】
また、ＳＭＳショートメッセージなどの他の種類の通信サービスでは、リアルタイム双方向通話を行われず、質問−回答形式のサービスと同様、１度に通信する情報量が少ない。この種のサービスに適用する場合、上記の解決方法を、以下に示すように変更してもよい。
【００６４】
＜１＞携帯情報処理端末によって設定される記憶領域は、論理的に環状の記憶領域である必要はない。なぜなら、ＳＭＳ情報は短く、要求されるサービスキーの容量も小さいため、サービスキーを１回で完全にダウンロードでき、再ダウンロードする必要がないからである。
【００６５】
＜２＞ＶｏＩＰサービスのリアルタイム双方向通話の場合、機密通信サポートネットワークは各コールについて２つのブロックのサービスキーを用意する必要があった（図５参照）。これに対して、ＳＭＳ通信では、機密通信サポートネットワークはＳＭＳメッセージについて１ブロックのサービスキーを準備し、その１ブロックのサービスキーを送信側端末および受信側端末に送信するだけでよい。送信側端末はサービスキーを用いて暗号化を行い、受信側端末はサービスキーを用いて暗号解読を行う。同様に、携帯情報処理端末は、機密通信サポートネットワークからサービスキーを要求するためのスレッドを１つ作成するだけでよい。
【００６６】
＜３＞ＳＭＳショートメッセージの送信側端末は、暗号文を送信する前に、機密通信サポートネットワークに暗号化のためのサービスキーを要求する。ＳＭＳショートメッセージの受信側端末は、ショートメッセージを受信した後、機密通信サポートネットワークに暗号解読のためのサービスキーを要求する。暗号化のためのサービスキーが要求されてから暗号解読のためのサービスキーが要求されるまでの時間は、ネットワークのオペレータによっては長くなる場合がある。このため、送信側端末から送信されてきたサービスキーの要求を、所定の期間、一時的に記憶する必要がある。その後、機密通信サポートネットワークは、受信側端末からサービスキーの要求を受信した後、送信側端末から送信されてきたサービスキーの要求と、受信側端末から送信されてきたサービスキーの要求とをマッチングする。
【００６７】
＜４＞ＶｏＩＰサービスでは、サービスキーの一部をダウンロードし、サービスプログラムがサービスキーの使用開始を通知する。これに対して、ＳＭＳ情報は短いので、サービスキーＳＭＳショートメッセージに要求されるサービスキーは完全にダウンロードされてから使用される。
【００６８】
上述した変更、改良、およびＳＭＳショートメッセージなどの双方向通話を行わない非リアルタイム通信サービスに適合させるための簡単な変形は、本明細書に開示した技術的解決策の範囲から逸脱するものではなく、本発明によって保護される範囲内のものである。
【００６９】
様々なタイプの通信サービスが存在する。本明細書に開示した実施例では、アンドロイド携帯情報処理端末に基づく普遍的機密通信サポートプラットフォームを確立し、利用する方法、および、上記の普遍的機密通信サポートプラットフォームに基づいて通信キーを配布する方法について、ＶｏＩＰサービスを例として説明した。しかしながら、本発明の技術的解決策の適用対象は、上述したＶｏＩＰ、ショートメッセージ、ビデオコールなどに限るものではなく、本発明の開示に従う普遍的機密通信プラットフォームによって他のタイプの通信サービスにおける機密通信を実現することもできる。他の通信サービスにおける上記の普遍的機密通信プラットフォームの起動における細部の変更（起動タイミング、起動位置、サービスキーの要求／ダウンロードのパラメータ、記憶領域管理など）は、本発明の開示に従う技術的解決策の変形であり、本発明の保護対象の範囲内に属するとみなされるべきである。
【００７０】
また、本発明の適用対象は、アンドロイド携帯情報処理端末の変更に限るものではなく、上述した情報処理端末の機能に相当する機密通信サービス機能を有する情報処理端末を提供するために、他の端末装置（例えばアンドロイドオペレーティングシステムを実行する情報処理機能付きのテレビやセットトップボックスなど）に直接あるいは少し変更して適用することもできる。
【図面の簡単な説明】
【００７１】
【図１】アンドロイドのオペレーティングシステムにおけるソフトウェア層の構造を概略的に示した図である。
【図２】携帯端末が携帯端末と機密通信サポートネットワークとの間で共有されるキーをダウンロードするための処理を概略的に示した図である。
【図３】機密通信サポートネットワークに記憶されている共有キーと携帯端末に記憶されている共有キーとを示す図である。
【図４】サービスキーの配布ステップを示す図である。
【図５】双方向リアルタイム通信サービスにおけるサービスキーの相互配布を示す図である。
【図６】携帯端末におけるサービスキーの記憶構造を示す概念図である。
【図１】
2016528756.tif 000003
【図２】
2016528756.tif 000004
【図３】
2016528756.tif 000005
【図４】
2016528756.tif 000006
【図５】
2016528756.tif 000007
【図６】
2016528756.tif 000008
【国際調査報告】
2016528756.tif 000009
2016528756.tif 000010
2016528756.tif 000011
2016528756.tif 000012