(57)【要約】  暗号化データを他の電子装置と交換するための携帯電子装置（１０）が、プロセッサ（２２）と、該プロセッサと動作可能に結合されたメモリ（１６）と、該プロセッサ及びメモリと動作可能に結合された素数生成回路（１２ａ）とを含む。素数生成回路は電子装置内の一意の格納済みデータに基づいて少なくとも２つの素数を生成する論理回路を含むと共に、前記少なくとも２つの素数は常に同じ少なくとも２つの素数である。次いで、生成された素数は、電子装置（１０）内においてＲＳＡ公開キーと秘密キーとを生成するために用いることができる。
2010530081.tif 000002
【特許請求の範囲】
【請求項１】
暗号化データを他の電子装置と交換するための携帯電子装置であって、
プロセッサ（２２）及びメモリ（１６）と、
前記プロセッサ及び前記メモリと動作可能に結合された素数生成回路（１２ａ）とを備え、該素数生成回路は、
前記電子装置内の一意の格納済みデータに基づいて少なくとも２つの素数を生成する論理回路を含むと共に、前記少なくとも２つの素数は常に同じ少なくとも２つの素数である、
ことを特徴とする携帯電子装置。
【請求項２】
前記素数生成回路は、
前記少なくとも２つの推定素数が偶数であれば、前記少なくとも２つの推定素数を奇数に変換する論理回路と、
前記少なくとも２つの推定素数が素数であるかどうかを判定する論理回路と、
をさらに含むことを特徴とする請求項１に記載の携帯電子装置。
【請求項３】
前記少なくとも２つの推定素数が素数であるかどうかを判定する前記論理回路は、
前記少なくとも２つの推定素数を素数判定のために検査を行う論理回路と、
前記それぞれの推定素数が前記素数判定検査に失敗した場合、前記少なくとも２つの推定素数のうちの１つの推定素数を２だけ増分する論理回路と、
前記増分された推定素数を用いて前記判定ステップを反復する論理回路と、
を含むことを特徴とする請求項２に記載の携帯電子装置。
【請求項４】
前記少なくとも２つの推定素数が素数であるかどうかを判定する前記論理回路は、
前記少なくとも２つの推定素数を素数判定のために検査する論理回路と、
前記素数判定検査に失敗した前記少なくとも２つの推定素数のうちの推定素数の所定数の最下位のバイトを再生成する論理回路と、
前記推定素数が素数になるまで、素数判定検査と前記最下位のバイトの前記再生成とを反復する論理回路と、
を含むことを特徴とする請求項２ないし３のいずれか１項に記載の携帯電子装置。
【請求項５】
前記少なくとも２つの素数を生成する際に利用されたパラメータをキャッシュする論理回路と、後続するＲＳＡキーの生成中に前記キャッシュされたパラメータを再使用する論理回路とをさらに備えることを特徴とする請求項１ないし４のいずれか１項に記載の携帯電子装置。
【請求項６】
前記少なくとも２つの素数に基づいて、前記電子装置内において公開及び秘密ＲＳＡキーを生成するように作動するＲＳＡ生成回路をさらに備えることを特徴とする請求項１ないし５のいずれか１項に記載の携帯電子装置。
【請求項７】
前記携帯電子装置はモバイル電話機（１０）であることを特徴とする請求項１ないし５のいずれか１項に記載の携帯電子装置。
【請求項８】
携帯電子装置内においてＲＳＡキーを生成する方法であって、
前記電子装置内の一意の格納済みデータに基づいて少なくとも２つの素数を生成するステップを有し、前記少なくとも２つの素数は常に同じ少なくとも２つの素数であると共に、
秘密及び公開ＲＳＡキーを生成するために前記少なくとも２つの素数を用いる
ことを特徴とする方法。
【請求項９】
生成するステップは、
少なくとも２つの推定素数を生成するステップと、
前記少なくとも２つの推定素数の前記それぞれが偶数であれば、前記少なくとも２つの推定素数のそれぞれを奇数に変換するステップと、
前記少なくとも２つの推定素数が素数であるかどうかを判定するステップと、
を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記少なくとも２つの推定素数が素数であるかどうかを判定するステップは、
素数判定のために前記少なくとも２つの推定素数を検査するステップと、
前記それぞれの推定素数が素数判定検査に失敗したとき、前記少なくとも２つの推定素数のそれぞれを２だけ増分するステップと、
前記それぞれの増分された推定素数を用いて前記判定ステップを反復するステップと、
を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記少なくとも２つの奇数が素数であるかどうかを判定するステップは、
素数判定のために前記少なくとも２つの奇数を検査するステップと、
前記それぞれの奇数が素数でないとき、前記少なくとも２つの推定素数の所定数の最後のバイトを再生するステップと、
前記少なくとも２つの奇数が素数になるまで前記検査ステップと再生ステップとを反復するステップと、
を含むことを特徴とする請求項９ないし１０のいずれか１項に記載の方法。
【請求項１２】
前記少なくとも２つの素数を生成する際にパラメータをキャッシュするステップと、後続するＲＳＡキーの生成中に前記キャッシュされたパラメータを再使用するステップとをさらに含むことを特徴とする請求項８ないし１１のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、音声通信に係る電子装置のような電子装置に関する。より詳細には、本発明は、電子装置内において一意のデバイス依存ＲＳＡキーの対を生成する装置及び方法に関する。
【背景技術】
【０００２】
電子装置の移動アイテムと無線アイテムの少なくともいずれかはますますポピュラーなものになりつつある。さらに、或る特定の種類の電子装置と関連づけられる特徴についてはますます多様化が進んでいる。いくつか例を挙げると、多くの電子装置は、カメラ、テキストメッセージ機能、インターネット閲覧機能、電子メール機能、ビデオ再生機能、オーディオ再生機能、画像表示機能、ナビゲーション機能及びハンズフリー・ヘッドセット・インタフェースを備えている。
【０００３】
明らかなように、電子装置の顕著な特徴は、種々の通信ネットワーク上で行われるデータの交換である。無線通信ネットワーク又はデータネットワークのような通信ネットワーク上でデータを交換するとき、交換されるデータの不正使用を防ぐためにセキュリティのレベルを提供することが望ましい。一般に、このようなセキュリティは暗号化アルゴリズムを用いてデータの暗号化を行うことにより提供される。モバイル電話機のような電子装置において、例えばＲＳＡがこのようなセキュリティの提供のために用いられる場合が多い。
【０００４】
ＲＳＡは公開キー暗号化方式用のアルゴリズムであり、電子商取引プロトコルにおいて広く利用されているものである。ＲＳＡでは公開キーと秘密キーとが使用されるが、公開キーはすべての人に公知のものであり、メッセージの暗号化のために利用することができる。しかし、公開キーを用いて暗号化されたメッセージは秘密キーを用いてしか復号化することはできない。
【０００５】
従来の方式では、個々の電子装置には（例えばコンピュータ上で実行され、次いで、電子装置へ通信されるソフトウェアを介して）外部で生成される一意の秘密キーが提供される。ひとたび生成されると、このキーは電子装置に格納される。セキュリティを維持するために、上記キーは、例えば、電子装置メーカーの設備内の機密保護エリアのような安全な環境において生成され、次いで暗号化された形で電子装置に直ちに格納されることが望ましい。
【０００６】
使用に当たって、キーが必要とされる度に、キーは格納装置から取り出され、復号され、使用される。使用後、復号済みのキーは、キーに対する不正アクセスを防止するためにメモリから取り除かれなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
電子装置に上記のＲＳＡキーを実装する上記方法の欠点として、キー処理にコストがかかり、技術上の問題を引き起す可能性があるという点が挙げられる。例えば、キー処理システムの複雑さに起因して工場の現場で製造停止を引き起こす可能性がある。
【０００８】
本発明は従来技術の欠点を伴うことなく一意のキーの生成を可能にするものである。さらに詳細には、例えばデバイス自身の内部において一意のＲＳＡキーの対が無制限の回数で生成され、使用され、かつ、削除され得ることになる。これによって外部でのキーの生成は不要となる。さらに、キーを必要とする度に電子装置によって同じキーの対の再生成が可能となる。ＲＳＡキーの生成が２つの素数の取得に基づいて行われることに起因して、例えば、電子装置のハードウェアキーのような、電子装置内に格納されているデータに基づいて２つの素数を取得することにより同じキーの生成が可能となる。さらに、特定のデバイスに対して常に同じ素数が得られるように、しかも素数（したがってキー）がデバイス間において一意となるように素数を導き出すアルゴリズムを構成することが可能となる。
【０００９】
セキュリティ破壊を受ける可能性があるキーの外部での生成を実施する必要がないため、本願に記載の方法及び装置はデータ交換のセキュリティを高めるものとなる。さらに、キーが内部で生成されるため、キーの紛失が生じることはあり得なくなる。また、セキュリティ保護キーのためのスキーマに対する変更が行われる場合、メーカーの外部ソフトウェアツールの修正は不要となる。というのは、これらのツールが上記のような変更によって影響を受けることがなくなるからである。
【課題を解決するための手段】
【００１０】
本発明の１つの側面によれば暗号化データを他の電子装置と交換するための携帯電子装置は、プロセッサ及びメモリと、前記プロセッサ及びメモリと動作可能に結合された素数生成回路とを備え、前記素数生成回路は、電子装置に格納された一意のデータに基づいて少なくとも２つの素数を生成する論理回路を含み、前記少なくとも２つの素数は常に少なくとも２つの同じ素数である。
【００１１】
本発明の１つの側面によれば少なくとも２つの素数は互いに異なる。
【００１２】
本発明の１つの側面によれば素数生成回路は少なくとも所定のバイト数の長さを有する素数を導き出す論理回路をさらに含む。
【００１３】
本発明の１つの側面によれば一意のデータは電子装置の特徴データである。
【００１４】
本発明の１つの側面によれば、素数生成回路は特徴データとして、電子装置のハードウェア依存キーを用いる論理回路をさらに含み、前記ハードウェア依存キーは個々の電子装置について一意である。
【００１５】
本発明の１つの側面によれば、素数生成回路は、所定長を有する反復可能なハッシュ値を生成するために、ハードウェア依存キーに制御されるＨＭＡＣ演算を用いる論理回路をさらに含む。
【００１６】
本発明の１つの側面によれば、素数生成回路は、少なくとも２つの推定素数（probably prime number）が偶数であれば、少なくとも２つの推定素数を奇数に変換する論理回路と、少なくとも２つの推定素数が素数であるかどうかを判定する論理回路とをさらに含む。
【００１７】
本発明の１つの側面によれば、少なくとも２つの推定素数が素数であるかどうかを判定する論理回路には、素数判定のために少なくとも２つの推定素数を検査する論理回路と、それぞれの推定素数が素数判定検査に失敗した場合、少なくとも２つの推定素数のうちの１つの推定素数を２だけ増分する論理回路と、この増分された推定素数を用いて判定ステップを反復する論理回路とが含まれる。
【００１８】
本発明の１つの側面によれば、少なくとも２つの推定素数が素数であるかどうかを判定する論理回路には、素数判定のために少なくとも２つの推定素数を検査する論理回路と、少なくとも２つの推定素数のうちの、素数判定検査に失敗した１つの推定素数の所定数の最下位のバイトを再生成する論理回路と、推定素数が素数になるまで素数判定検査及び最下位バイトの再生成を反復する論理回路と、が含まれる。
【００１９】
本発明の１つの側面によれば、デバイスは、少なくとも２つの素数を生成する際に利用されるパラメータをキャッシュする論理回路と、その後のＲＳＡキーの生成中にこのキャッシュされたパラメータを再使用する論理回路とをさらに備える。
【００２０】
本発明の１つの側面によれば、論理回路は、公開キーと秘密キー双方のＲＳＡ公開キー指数又はモジュラスの少なくとも一方をキャッシュする。
【００２１】
本発明の１つの側面によれば、デバイスは、少なくとも２つの素数に基づいて、電子装置内において公開ＲＳＡキーと秘密ＲＳＡキーとを生成するように作動するＲＳＡ生成回路をさらに備える。
【００２２】
本発明の１つの側面によれば携帯電子装置はモバイル電話機である。
【００２３】
本発明の１つの側面によれば、携帯電子装置内においてＲＳＡキーを生成する方法が、電子装置内に格納された一意のデータに基づいて少なくとも２つの素数を生成するステップであって、前記少なくとも２つの素数が常に同じ少なくとも２つの素数となるようにする生成ステップと、この少なくとも２つの素数を用いて、秘密ＲＳＡキーと公開ＲＳＡキーとを生成するステップとを含む。
【００２４】
本発明の１つの側面によれば、本方法は秘密ＲＳＡキーの使用後メモリから秘密ＲＳＡキーを消去するステップをさらに含む。
【００２５】
本発明の１つの側面によれば、生成ステップは少なくとも所定のバイト数の長さを有する素数を導き出すステップを含む。
【００２６】
本発明の１つの側面によれば、生成ステップは一意のデータとして電子装置のハードウェア依存キーを用いるステップを含む。
【００２７】
本発明の１つの側面によれば、生成ステップは所定長を有する反復可能なハッシュ値を生成するために、ハードウェア依存キーと共にＨＭＡＣ演算を用いるステップを含む。
【００２８】
本発明の１つの側面によれば、生成ステップは少なくとも２つの推定素数を生成するステップと、少なくとも２つの推定素数のそれぞれが偶数であれば、少なくとも２つの推定素数を奇数に変換するステップと、少なくとも２つの推定素数が素数であるかどうかを判定するステップとを含む。
【００２９】
本発明の１つの側面によれば、少なくとも２つの推定素数が素数であるかどうかを判定するステップには、素数判定のために少なくとも２つの推定素数を検査するステップと、それぞれの推定素数が素数判定検査に失敗した場合、少なくとも２つの推定素数のそれぞれの推定素数を２だけ増分するステップと、このそれぞれの増分された推定素数を用いて判定ステップを反復するステップとが含まれる。
【００３０】
本発明の１つの側面によれば、少なくとも２つの奇数が素数であるかどうかを判定するステップは、素数判定のために少なくとも２つの奇数を検査するステップと、それぞれの奇数が素数でないとき、少なくとも２つの推定素数の所定数の最後のバイトを再生成するステップと、少なくとも２つの奇数が素数になるまで上記検査及び再生成ステップを反復するステップとを含む。
【００３１】
本発明の１つの側面によれば、本方法は、少なくとも２つの素数を生成する際に利用されるパラメータをキャッシュするステップと、その後のＲＳＡキーの生成中にこのキャッシュされたパラメータを再使用するステップとをさらに含む。
【００３２】
本発明の１つの側面によれば、上記キャッシュするステップは、公開キーと秘密キー双方のＲＳＡ公開キー指数又はモジュラスの少なくとも一方を含む。
【００３３】
次いで、上述の目的及び関連する目的を達成するために、本発明は、本明細書において以下完全に記述され、かつ、請求項において特に指摘されている特徴を有するものであり、以下の説明及び付属図面は、本発明の或る例示の実施形態を詳細に記載するものであり、これらは本発明の原理を適切に採用することができる種々の方法のうちのほんのいくつかの方法を示すものである。
【００３４】
以下の図面及び詳細な説明を検証するとき、本発明の別のシステム、方法、特徴、及び利点は当業者には明らかであるか、あるいは明らかになる。すべてのこのような追加システム、方法、特徴、及び利点は上記説明の中に含まれ、本発明の範囲内に属し、さらに、添付の特許請求の範囲によって保護されることが意図される。
【００３５】
本発明は１以上の実施形態に関して図示され、説明されているが、本明細書を読み、理解するとき、当業者であれば均等物及び変更を思いつくであろうことを理解されたい。本発明は、すべてのこのような均等物及び変更を含み、請求項の範囲によってのみ限定されるものである。
【００３６】
また、それぞれの図面／実施形態において種々の特徴について説明し、例示するが、本発明の１以上の別の図面又は実施形態において所定の図面又は実施形態の特徴を用いてもよいことは理解できよう。
【００３７】
本明細書で使用される場合、「含む（comprise/comprising）」という用語は、言及された特徴、数値、ステップ又は構成の存在を特定するために用いられるが、これら以外の特徴、数値、ステップ、構成、又はこれらのグループの存在又は追加を排除するものではないという点を強調しておく。
【００３８】
以下の図面を参照しながら、本発明の多くの側面をより良く理解することが可能となる。図面の構成要素は必ずしも縮尺どおりであるとはかぎらない。むしろ本発明の原理を明瞭に例示することが強調されている。同様に、１つの図面に描かれている要素及び特徴は追加の図面に描かれている要素及び特徴と組み合わせることができる。さらに、図面において、同じ参照番号はいくつかの図を通して対応する要素を指すものとする。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態に係る例示の電子装置としてのモバイル電話機を示す概略図である。
【図２】本発明の実施形態に係る図１のモバイル電話機に関連する部分を示す概略ブロック図である。
【図３】図１のモバイル電話機が動作することができる通信システムの概略図である。
【図４】本発明に係るＲＳＡキーを生成するために使用することができる例示の素数生成機能を示すフローチャートである。
【図５Ａ】本発明に係る素数生成とキー生成との実現に利用することができる例示のコードを示すフローチャートである。
【図５Ｂ】本発明に係る素数生成とキー生成との実現に利用することができる例示のコードを示すフローチャートである。
【発明を実施するための形態】
【００４０】
以下図面を参照して本発明の実施形態を説明するが、図面を通して同一の参照番号を用いて同じ要素を指すものとする。理解されるように、これらの図は必ずしも縮尺どおりではない。
【００４１】
「電子機器」及び「電子装置」という交換可能な用語は携帯用無線通信機器を含むものとする。「携帯用無線通信機器」という用語は、本明細書において以後「モバイル無線端末」を意味するものとするが、この用語は、モバイル電話機、ポケベル、コミュニケータ、電子手帳、パーソナル・デジタル・アシスタント（ＰＤＡ）、スマートフォン、携帯用通信装置、携帯用ゲーム装置等のようなすべての機器を含むものとする。
【００４２】
本願では主としてモバイル電話機に関連して本発明の実施形態の説明を行う。しかし、本発明がモバイル電話機という文脈に限定されることを意図するものではないこと、及び、任意の種類の適当な電子機器に関するものであってもよいことは理解できよう。
【００４３】
最初に図１及び図２を参照すると、電子装置１０が示されている。電子装置１０は、電子装置１０内においてＲＳＡ秘密キーと公開キーとを自動的に生成するように構成されたＲＳＡキー生成機能１２を含む。ＲＳＡキー生成機能１２の追加の詳細及び動作について以下さらに詳述する。ＲＳＡキー生成機能１２は電子装置１０の中に常駐し、かつ、電子装置１０によって実行される実行可能コードとして実装することができる。１つの実施形態では、ＲＳＡキー生成機能１２はコンピュータ又は機械可読媒体に格納されたプログラムであってもよい。ＲＳＡキー生成機能１２は単体のソフトウェアアプリケーションであってもよく、あるいは、電子装置１０に関係する追加タスクを実行するソフトウェアアプリケーションの一部を形成するものであってもよい。
【００４４】
例示の実施形態の電子装置はモバイル電話機であり、モバイル電話機１０として参照される。モバイル電話機１０は、「レンガ」又は「ブロック」フォームファクタのハウジングを有するものとして示されているが、（シェル型ハウジングのような）「フリップ」オープン型フォームファクタハウジング又は（「スライダ型ハウジング」のような）スライド型フォームファクタハウジングのような他の種類のハウジングを用いてもよいことは理解できよう。
【００４５】
モバイル電話機１０はディスプレイ１４を備えることができる。ディスプレイ１４は、動作状態、時刻、電話番号、連絡先情報、種々のナビゲーションメニューなどのような情報をユーザに対して表示する。この情報によってユーザはモバイル電話機１０の種々の特徴を利用することが可能になる。ディスプレイ１４を用いて、モバイル電話機１０が受信した内容と、モバイル電話機１０のメモリ１６（図２）から取り出した内容の少なくともいずれかの内容を視覚的に表示することも可能となる。ディスプレイ１４を用いて、写真、移動体用テレビのコンテンツ及びゲームに関連づけられたビデオのような画像、ビデオ及び他のグラフィックをユーザに提示するようにしてもよい。
【００４６】
キーパッド１８はユーザによる入力操作を提供する。例えば、キーパッド１８には通常、電話番号、電話リスト、連絡先情報、メモなどのような英数字情報の入力を可能にする英数字キーが含まれている。さらに、キーパッド１８には通常、呼を起動するか、呼に応答するかのいずれかを行うための「呼送信」キー、及び、呼を終了するための「呼終了」キー、又は呼の「停止」キーのような特別の機能キーが含まれている。特別の機能キーが、ディスプレイ１４に表示されるメニューを通じてナビゲーションを容易にするメニューナビゲーションキーと、選択キーとを含むようにしてもよい。例えば、ポインティングデバイスとナビゲーションキーとの少なくともいずれかがユーザからの指向性入力を受け付けるために存在してもよい。この特別の機能キーは、再生の開始、停止及び一時停止と、トラックのスキップ又は反復などを行うための、オーディオビジュアル・コンテンツの再生キーを含んでもよい。モバイル電話機と関連づけられる他のキーとして、音量キー、消音キー、電源オン／オフキー、ウェブブラウザ開始キー、カメラ・キーなどを含むものも考えられる。ディスプレイ１４に関連づけられたタッチスクリーンとしてキー又はキー様の機能を実装することも可能である。また、ディスプレイ１４とキーパッド１８とはソフトキー機能を実現するために相互に関連して使用されてもよい。
【００４７】
モバイル電話機１０には、モバイル電話機１０が通常他のモバイル電話機か有線電話機である被呼／発呼装置と呼を確立するか、信号を交換するかの少なくともいずれかを行うことを可能にする通話回路が含まれている。しかし、被呼／発呼装置は、他の電話機である必要はなく、インターネットウェブサーバ、コンテンツ提供サーバなどのような他の何らかの装置であってもよい。呼は任意の好適な形をとることが可能である。例えば、呼はセルラ回線交換ネットワークを介して確立される通常の呼であってもよいし、あるいは、セルラネットワークのパケット交換機能を介して、あるいは、ＷｉＦｉ（ＩＥＥＥ８０２．１１規格に基づくネットワークなどの）ＷｉＦｉ、ＷｉＭＡＸ、等のような他のパケット交換ネットワークを介して確立されるボイス・オーバ・インターネットプロトコル（ＶｏＩＰ）電話であってもよい。別例として、セルラネットワーク又は他のネットワークを介して確立されるテレビ電話がある。
【００４８】
モバイル電話機１０は、テキストメッセージ（テキストメッセージは通常ショートメッセージサービスを表す「ＳＭＳ」と呼ばれることもある）、インスタントメッセージ、電子メールメッセージ、マルチメディアメッセージ（マルチメディアメッセージは通常マルチメディアメッセージサービスを表す「ＭＭＳ」と呼ばれることもある）、画像ファイル、ビデオファイル、オーディオファイル、着信音、ストリーミングオーディオ、ストリーミングビデオ、（ポッドキャストを含む）データフィードなどのようなデータの送信と、受信と、処理とのうちの少なくともいずれかを行うように構成することができる。このようなデータの処理ステップは、データとのユーザインタラクションを可能にするためにデータをメモリ１６に記憶するステップと、アプリケーションを実行するステップと、データに関連づけられたビデオと画像の少なくともいずれかのコンテンツを表示するステップと、データに関連づけられたオーディオサウンドを出力するステップとを含むものであってもよい。図２はモバイル電話機１０の機能ブロック図を表す図である。簡潔さを旨として、モバイル電話機１０の一般に従来からある特徴については本明細書ではあまり詳細には記載されていない。
【００４９】
モバイル電話機１０は、モバイル電話機１０の機能及び動作の全制御を実行するように構成された主制御回路２０を含む。制御回路２０は、ＣＰＵ、マイクロコントローラ又はマイクロプロセッサのような処理装置２２を含むものであってもよい。処理装置２２は、制御回路２０内のメモリ（図示せず）内か、メモリ１６のような独立のメモリ内かの少なくともいずれかのメモリに記憶されたコードを実行して、モバイル電話機１０の動作を実行することを目的とするものである。
【００５０】
メモリ１６は、不揮発性メモリ１６ａを用いて実現されるリードオンリメモリエリアと、揮発性メモリ１６ｂを用いて実現されるランダムアクセスメモリエリア又はシステムメモリエリアとを含んでもよい。理解されるように、不揮発性メモリは、電力低下の際にデータ記憶機能が失われない傾向があり、かつ、データ、アプリケーションコード、ファイルなどを記憶するために通常用いられる。不揮発性メモリ１６ａは、例えば、フラッシュメモリを用いて実装可能である。フラッシュメモリは、ＮＡＮＤ構成を有する場合もあるが、ＮＯＲ構成のような他のフラッシュメモリ構成が用いられる場合もある。理解されるように、揮発性メモリは、電力低下の際にデータ記憶機能を失う傾向があり、かつ、論理ルーチンの実行中に処理装置２２によるアクセス用データを記憶するために通常用いられる。揮発性メモリ１６ｂはランダムアクセスメモリ（ＲＡＭ）であってもよい。ＲＡＭは、例えば同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）であってもよいが、メモリブロックを利用する他のＲＡＭ構成を用いてもよい。一般に行われているように、データは不揮発性メモリ１６ａと揮発性メモリ１６ｂとの間で交換することができる。不揮発性メモリ１６ａと揮発性メモリ１６ｂのメモリサイズは、モバイル電話機１０又は、メモリ１６が用いられる他の電子装置に適したサイズに変更可能である。
【００５１】
さらに、処理装置２２はＲＳＡキー生成機能１２を実装するコードを実行することができる。モバイル電話機１０をプログラムして、本明細書の説明に基づいてＲＳＡキー生成機能１２に関連づけられた論理機能を作動させ、かつ、この機能を実行する方法は、コンピュータプログラミングの当業者、及び、特にモバイル電話機や他の電子装置用のアプリケーションプログラムの当業者には明らかである。したがって、具体的なプログラミングコードに関する詳細については簡潔さを旨として省略した。また、ＲＳＡキー生成機能１２が本発明の好適な実施形態に従って処理装置２２により実行される一方で、本発明の範囲から逸脱することなく、さらに、専用ハードウェア、ファームウェア、ソフトウェア、又は、これらの組み合わせを介してもこのような機能の実行が可能である。これらの実施構成のいずれもＲＳＡキー生成機能１２あるいは単に論理回路と呼ぶことができる。
【００５２】
引き続き図１及び図２を参照すると、モバイル電話機１０には、無線回路２６と結合されたアンテナ２４が含まれている。一般に行われているように、無線回路２６には、アンテナ２４を介して信号の送受信を行うための無線周波数送受信機が含まれる。無線回路２６は、移動通信システムにおいて動作するように構成することができると共に、データとオーディオビジュアル・コンテンツとの少なくともいずれかの送受信を行うために用いることができる。移動無線ネットワークと放送ネットワークとの少なくともいずれかのネットワークとのインタラクションを行うための受信機には、ＧＳＭ、ＣＤＭＡ、ＷＣＤＭＡ、ＧＰＲＳ、ＷｉＦｉ、ＷｉＭＡＸ、ＤＶＢ−Ｈ、ＩＳＤＢ−Ｔなどと、これらの標準規格の上位バージョンとが含まれるが、これらのみに限定されるわけではない。
【００５３】
モバイル電話機１０には、無線回路２６によって送信されるオーディオ信号と、無線回路２６から受信されるオーディオ信号とを処理するためのサウンド処理回路２８がさらに含まれる。一般に行われているように、モバイル電話機１０を介してユーザが聴き、かつ、通話できるスピーカ３０及びマイク３２がサウンド処理回路２８と結合されている。無線回路２６及びサウンド処理回路２８は処理全体の実行を意図して制御回路２０と個々に結合される。ユーザへの再生用として制御回路２０からサウンド処理回路２８へオーディオデータを渡すことができる。このオーディオデータは、例えば、メモリ１６によって記憶され、かつ、制御回路２０によって取り出されたオーディオファイルから得られるオーディオデータ、又は、移動無線サービスからストリーミングオーディオデータの形などで受信されるオーディオデータなどを含むものであってもよい。サウンド処理回路２８は任意の適当なバッファ、デコーダ、増幅器などを含むものであってもよい。
【００５４】
ディスプレイ１４は、ディスプレイ１４を駆動するために用いられるビデオ信号にビデオデータを変換するビデオ処理回路３４によって制御回路２０と結合することができる。ビデオ処理回路３４は、任意の適当なバッファ、デコーダ、ビデオデータプロセッサなどを含むものであってもよい。上記ビデオデータは、制御回路２０によって生成され、メモリ１６内に記憶されたビデオファイルから取り出され、無線回路２８によって受信された着信ビデオデータストリームから導き出されてもよいし、あるいは、他の好適な方法によって取得されてもよい。
【００５５】
モバイル電話機１０は１以上の（単複の）Ｉ／Ｏインタフェース３６をさらに含むものであってもよい。（単複の）Ｉ／Ｏインタフェース３６は、典型的モバイル電話機用Ｉ／Ｏインタフェースの形のものであってもよく、１以上の電気コネクタを含むものであってもよい。一般に行われているように、（単複の）Ｉ／Ｏインタフェース３６を用いて、モバイル電話機１０内の電力供給装置（ＰＳＵ）３８のバッテリを充電するために、バッテリ充電器とモバイル電話機１０を結合するようにしてもよい。さらに加えて、あるいは代替例において、（単複の）Ｉ／Ｏインタフェース３６は、モバイル電話機１０との有線インタフェースを備えた（個人用ハンズフリー（ＰＨＦ）デバイスなどの）ヘッドセットアセンブリとモバイル電話機１０を接続する役割を果たすようにしてもよい。さらに、（単複の）Ｉ／Ｏインタフェース３６は、データの交換を行うためのデータケーブルを介してモバイル電話機１０をパーソナルコンピュータ又は他のデバイスと接続する役割を果たすようにしてもよい。モバイル電話機１０は、車輌用電源アダプタ又は電気コンセントの電源アダプタに接続されているとき、（単複の）Ｉ／Ｏインタフェース３６を介して動作電力を受け取ることができる。
【００５６】
モバイル電話機１０はまた、制御回路２０のような、移動電話１０の種々の構成要素を計時するためのシステムクロック４０を含むことができる。制御回路２０は、順次、タイムスタンプ及び日付スタンプなどのコンテンツを生成しながら、通話時間のような計時機能を実行することができる。
【００５７】
モバイル電話機１０はデジタル画像と動画との少なくともいずれかを撮影するためのカメラ４２を含んでもよい。写真と動画との少なくともいずれかに対応する画像ファイルとビデオファイルとの少なくともいずれかのファイルをメモリ１６に記憶することができる。
【００５８】
モバイル電話機１０は、全地球測位システム（ＧＰＳ）受信機、ガリレオ衛星システム受信機等のような位置データ受信装置４４も含むことができる。
【００５９】
モバイル電話機１０は、赤外線トランシーバと、（ブルートゥースインタフェースなどの）ＲＦインタフェース４６との少なくともいずれかのようなローカルな無線インタフェース４４であって、アクセサリ、他のモバイル無線端末、コンピュータ又は他のデバイスと通信を確立するための無線インタフェース４４も含むことができる。例えば、ヘッドセットアセンブリが対応する無線インタフェースを備えたある実施形態では、ローカルな無線インタフェース４６はモバイル電話機１０を（ＰＨＦ装置などの）ヘッドセットアセンブリと作動的に結合することができる。
【００６０】
さらに図３を参照すると、モバイル電話機１０は、通信システム４８の一部として動作するように構成することができる。システム４８は、モバイル電話機１０による送信呼と、モバイル電話機１０へ向けられた着信呼との管理と、データの送信と、他の任意のサポート機能の実行とを行うためのサーバ（又は複数のサーバ）５２を有する通信ネットワーク５０を含むことができる。サーバ５２は送信媒体を介してモバイル電話機１０と通信を行う。送信媒体は、例えば、（セルタワーなどの）通信タワー、他のモバイル電話機、無線アクセスポイント、衛星などを含む任意の適当な装置又はアセンブリであってもよい。ネットワークの一部は無線送信路を含むものであってもよい。ネットワーク５０は複数のモバイル電話機１０と、別の種類のエンドユーザ装置との通信活動をサポートすることができる。
【００６１】
理解されるように、サーバ５２はサーバ機能を実行するために用いられる一般的なコンピュータシステムとして構成することが可能であり、さらに、サーバ５２の機能を具現化する論理演算命令を含むソフトウェアを実行するように構成されたプロセッサと、このようなソフトウェアを記憶するためのメモリとを含むことが可能である。
【００６２】
ここでＲＳＡキー生成機能１２の説明に移り、ＲＳＡ公開キーと秘密キーとを作成する一般的ステップを下記に示す。
・  ２つの別個の異なる大きなランダムな素数ｐとｑとを選択する。
・  η＝ｐｑを計算する。但しηは公開キーと秘密キー双方のモジュラスである。
・  トーシェント（totient）Φ（η）＝（ｐ−１）（ｑ−１）を計算する。これは、ＰＫＣＳ＃１ｖ２．０においてλ（η）＝ｌｃｍ（ｐ−１、ｑ−１）に変更されたものである。
・  １＜ｅ＜Φ（η）、かつ、Φ（η）について互いに素となるように整数ｅを選択する。すなわち、ｅとΦ（η）とは１以外の約数を共有しない。ｇｃｄ（ｅ，Φ（η））＝１。
・  ｅは公開キー指数として公開される。
・  合同関係ｄｅ≡１（ｍｏｄΦ（η））を満たすようにｄを計算する。すなわち、或る整数ｋに対してｄｅ＝１＋ｋΦ（η）。
・  ｄは秘密キー指数として保持される。
【００６３】
ＲＳＡキーの計算における主要ステップは素数ｐとｑとの選択である。なぜなら、他のすべての値は直接的にあるいは間接的にこれらの素数から導き出されるからである。同じ素数が常に生成されれば、同じ秘密キーと公開キーも生成されることになる。同じ素数を常に生成する素数生成回路１２をモバイル電話機１０内に実装することによって、ＲＳＡキーを必要とする度に同じＲＳＡキーの生成が可能となり、次いで、ＲＳＡキーを使用後に消去することができる。さらに、モバイル電話機１０の一意の特徴に基づくように回路１２の素数生成を行うことによって、ＲＳＡキーは個々のモバイル電話機１０に対して一意のものになる。これによって、ＲＳＡキーを外部で生成する必要がなくなり、次いで、ＲＳＡキーの暗号化と、モバイル電話機１０におけるＲＳＡキーの格納とが行われることになる。
【００６４】
同じ素数ｐとｑとを生成するために、例えば、モバイル電話機１０のハードウェア依存キーＫのようなキーと共にＨＭＡＣ演算を用いてもよい。このハードウェア依存キーＫは、与えられた文字列に対して、（ｈ＝ＨＭＡＣ（Ｋ，ｄａｔａ）などの）同じハッシュ値を常に生成するものである。当業者に周知のように、キーハッシュメッセージ認証コード（ＨＭＡＣ）は秘密キーと組み合わされた暗号ハッシュ関数を用いて計算される１種のメッセージ認証コード（ＭＡＣ）である。いずれのＭＡＣの場合も同じ様に、ＨＭＡＣを用いて、データの完全性及びメッセージの真正性の双方を同時に検証することができる。反復ハッシュ関数は、メッセージを分割して、固定サイズのブロックに変え、次いで、圧縮関数を用いてこれらのブロックに渡って反復操作を行う。例えば、ＭＤ５及びＳＨＡ−Ｉは５１２ビットのブロックに対して処理を行う。ＨＭＡＣの出力サイズは使用されるハッシュ関数のサイズと同じサイズである。但し、このサイズは所望の場合切り捨てることができる。
【００６５】
好適には、キーＫはランダムに生成され、すべてのモバイル電話機１０に対して一意であることが望ましい。例えば、ハードウェア依存キーとして具現化されるキーＫは、製造中に生成され、暗号化フォーマットで（例えばリードオンリメモリすなわちＲＯＭの中へ焼き込むなどのようにして）モバイル電話機に永久に格納されることができる。
【００６６】
さらに、計算されたハッシュ値は２０バイトの長さを有することが望ましい。但し他の長さであってもよい。２０バイトまたはそれ以上の長さは、同じキー（Ｋ）と同じ文字列とを用いて（例えば、生成された数字が所望の長さになるまで）ＨＭＡＣ関数を複数回呼び出すべきことを示唆する。その場合、いつでも反復して使用できるように当該文字列はシーケンシャルに構成される。例示のコードを下記に示す。
【００６７】
const EHMACJDUTJLEN = 20;
expectedPrimeLen = 128 bytes;
Len = 0; K = GetHardwareKeyO;
p=""
q="" 
generation_string_p = " PJPRIME_STRING " DevicesIMEINumber Len;
generation_string_q = " QJPRIME_STRING " DevicesIMEINumber Len;
while ( Len ＜ expectedPrimeLen )
{
generation_string_p[last2bytes] = Len;
generation_string_q[last2bytes] = Len;
p = p ；； HMAC( K , generation_string_p );
q = q ；； HMAC( K , generation_string_q );
Len += EHMAC_OUT_LEN;
}
【００６８】
ひとたびｐとｑの生成値が所望の長さになると、この生成値は、推定素数（すなわち、すべての素数についても満たされるある特定の条件を満たす整数）と見なされる。推定素数が実際に素数であることを保証するために、推定素数に対するチェックすなわち検査が実行される。さらに詳細には、ｐとｑとの生成値は（予め奇数でなければ）奇数に変換され、次いで、素数判定チェックが行われる。ｐとｑとの生成値が素数であることが判明した場合、これらの値を用いてＲＳＡキーが生成される。推定素数の一方又は双方が素数でないことが判明した場合、素数判定に失敗した数は２だけ増分され、次いで、再び検査が行われる。新たな数が素数判定検査に失敗した場合、この検査を満たすまで、その数は２だけ増加される。その数が素数であると判明するまでこの処理は反復される。ひとたびｐとｑとの双方に対する素数が発見されると、これらの素数を用いて本明細書に記載のようにＲＳＡキーが生成される。
【００６９】
数が奇数であるか偶数であるかをチェックするための、及び、素数判定検査を行うための例示のコードを下記に示す。
【００７０】
If (  p[expectedPrimeLen - l] % 2 = = 0  ) ///＜ Check if even number p[expectedPrimeLen - 1] ++ ;
If (  q[expectedPrimeLen - l] % 2 = = 0  ) ///＜ Check if even number q[expectedPrimeLen - 1] ++ ;
i = 0;
p_test = p ;
while (  !isPrime(  p_test  )  ) /// ＜ Check for primality
{
p_test = p + ( i * 2 ) ; /// ＜ inc number for i*2
i++;
}
p = p_test;
i = 0;
q_test = q ;
while (  !isPrime(  q_test  )  ) /// ＜ Check for primality
{
q_test = q + ( i * 2 ) ; /// ＜ inc number for i*2 i++;
}
q = q_test;
【００７１】
素数を求める別の方法として、素数判定検査が満たされるまで最初に生成された素数（すなわち推定素数）の最後のＸバイトを再生成する方法がある。例示のコードを下記に示す。
【００７２】
If (  pfexpectedPrimeLen - 1] % 2 = = 0  ) ///＜ Check if even number p[expectedPrimeLen - 1] ++ ;
If (  q[expectedPrimeLen - 1] % 2 = = 0  ) ///＜ Check if even number q[expectedPrimeLen - 1] ++ ; i = Len + 1 ;
while (  !isPrime(  p_test  )  ) III ＜ Check for primality
{
// Replace last X bytes in p with new value
P[lastXbytes] = HMAC ( K3 generation_strig_p i  ) ; 
i++;p = p_test;
}
p = p_test;
i = Len + 1 ;
while (  !isPrime(  q_test  )  ) III ＜ Check for primality
{
// Replace last X bytes in p with new value Q[lastXbytes] = HMAC ( K , generation_string_q i  ) ; i++;
}
q = q_test;
【００７３】
上記の例において、推定素数の最後のＸバイトは、キーＫ及び文字列データに基づいてＨＭＡＣ関数を用いて、新しく生成済みのデータによって置き換えられる。その推定素数が素数であると判明するまでこの処理は反復される。
【００７４】
上記アルゴリズムのいずれが用いられるかに関係なく、同じ２つの素数ｐとｑとが常に生成され、したがって同じＲＳＡキー計算が実行される。
【００７５】
同じ素数の生成に加えて、種々のデータをキャッシュすることで計算全体の速度の向上を図ることができる。例えば、計算が実行される最初の回に、ｑ及びｐと、ＲＳＡキーに必要な中間データとを生成するためにアルゴリズム全体を実行してもよい。ひとたびこれらのキーが用いられると、秘密指数ｄと共にこれらのキーをメモリからクリアすることができる。公開キー指数ｅとモジュラスηとは公知のものであるためメモリからこれらを消去する必要はない。というのは、これらはセキュリティ上の問題を生じないからである。言い換えれば、モジュラスη及び公開キー指数ｅは後で利用するためにメモリの中にキャッシュされてもよい。
【００７６】
ＲＳＡキーが後続して計算される際、秘密キー指数ｄに関連づけられたデータのみを計算する必要がある。なぜなら、公開キーに関連づけられたデータがメモリから取り出される可能性があるからである。さらに、キーが初めて生成されてしまうとすぐに、生成処理は、公開キーをキャッシュすることによって（フラッシュメモリ、ハードドライブなどの）不揮発性メモリにおいて最適化を行うことが可能となる。この場合、公開キーが必要となったとき、公開キーを生成するための計算は行う必要がない。なぜなら、公開キーはメモリから簡単に取り出して、すぐに使用できるからである。
【００７７】
この提案されたキー生成方法の効果として、キーの生成、キーのフォーマット後の適当な画像への変換、画像の保護、モバイル電話機への画像のフラッシングという工場で行われる処理を省くことが可能となるという点が挙げられる。これによって、すべてのキーに関連するデータベースを維持し、かつ、異なる工場ツールとデータベースとを同期させるという要件が本質的に不要になる。さらに、ハードウェア依存キーを用いてＲＳＡキーを再暗号化するためにモバイル電話機のブートを工場で行う必要がなくなり、これによってキーの保護におけるさらに高いレベルのセキュリティが保証されることになる。
【００７８】
その他の効果として、（モバイル電話機内での破損や消去などで）ＲＳＡキーを紛失しても、モバイル電話機は再び作業を行う必要がないという点が挙げられる。なぜなら、ＲＳＡキーは必要となる度に自動的に生成されるからである。さらに、特定の国際移動局装置識別子（ＩＭＥＩ）を表すキーＫが保護されたデータベースに記憶されていれば、ＩＭＥＩとハードウェア依存キーとをフラッシュすることによってモバイル電話機のクローンを作成することも可能である。これによって、ユーザは、事前にダウンロードされ、かつ、メモリスティックなどに記憶済みの（ＤＲＭコンテンツなどの）保護されたコンテンツを利用することが可能になる。
【００７９】
さらに図４を参照すると、モバイル電話機１０において秘密及び公開ＲＳＡキーを作成する際に用いる、例示の素数生成方法を実行するための論理動作が示されている。図４は、ＲＳＡキーが必要となる度に、同じ素数を導き出すために実行可能なステップを例示する図である。ＲＳＡキー生成機能１２の実施形態を実行することにより上記方法例を実施することができる。したがって、図４フローチャートは、モバイル電話機１０により実行される方法を描いたものと考えることができる。図４は、機能論理ブロックを実行するある特定の順序を示すものではあるが、ブロックの実行指令の順序は、示された順序に対応して変更することも可能である。また、連続して示される２以上のブロックを同時に実行してもよいし、あるいは部分的に同時に実行してもよい。或る種のブロックは省くことも可能である。さらに、強化されたユーティリティ、課金、パフォーマンス、測定、トラブル・シューティング等を目的として、任意の数の機能、論理処理、コマンド、状態変数、セマフォ、又はメッセージを論理フローに追加することが可能である。すべてのこのような変更例は本発明の範囲内に属すると理解されたい。
【００８０】
ＲＳＡキー生成機能１２を表す論理フローはブロック６０から開始することができ、このブロックにおいて、（素数のバイト数などの）所望のサイズのｐとｑとが選択され、かつ、素数を導き出すための文字列が取得される。この文字列は、デバイスの一意の識別子と組み合わされた固定文字列又は予め定められた文字列から取得することができる。好適には、選択される素数のサイズは１２８バイトまたはそれ以上のような大きなサイズであることが望ましい。なぜなら、より大きな素数ほどＲＳＡキーにおけるセキュリティのレベルを強化することができるからである。ブロック６１において、推定素数のｐとｑとは０に設定される（例えば推定素数に対応する変数が０に初期化される）。
【００８１】
次いで、ブロック６２において、電子装置のハードウェア依存キーのようなキーＫが取り出される。上述したように、本願では、ハードウェア依存キーＫは電子装置内に格納された一意の識別子であり、かつ、電子装置の製造時点に指定できるものである。
【００８２】
次に、素数ｐとｑとを導き出す際に用いられるデータストリングがブロック６４において構成される。モバイル電話機１０として具現化される電子装置の場合、例えば、定義済みのデータストリングと組み合わされてＩＭＥＩから文字列を構成することができる。例示のコードを下記に示すが、ここで、「文字列」とはブロック６０において取得される文字列データであり、数字「１４」はバイトで表されるＩＭＥＩの長さに対応し、数字「２」は変数の長さ“primeLength”に対応する。
【００８３】
primeLength = 0;
prime = " " ;
generation_string = string GetIMEI(  ) primeLength;
generation_string_length = strlen( string ) +14 + 2;
【００８４】
次にブロック６６において、推定素数のｐとｑとのそれぞれに対応する数字部分が構成されたデータストリング（generation_string）及びモバイル電話機の一意の識別子（ハードウェアキーなど）から生成される。個々の推定素数の数字部分はＨＭＡＣ演算を用いて生成することができる。次いで、ブロック６７において、個々の生成済みの数字部分をそれぞれの推定素数ｐ又はｑにアペンドしてもよい。推定素数ｐとｑとが（一定のバイト数のような）或る一定の長さを有するように指定されているため、ブロック６８及び７０に図示のように推定素数の長さのチェックが行われる。生成された素数が指定の長さを満たさなければ、ブロック７２において生成処理が継続し、さらに大きな推定素数を発見するようにする（例えば、追加データを構成済み文字列にアペンドすることができ、次いで、新たな文字列から新たな推定素数が生成され得る）。推定素数がブロック６０において指定された長さを満たすようになるまで上記処理は反復される。ひとたび十分な長さの推定素数が得られると、ブロック７４及び７６において、推定素数は素数判定を受けるために検査される。素数判定検査は推定素数を奇数に変換するステップを含んでもよい（事前に奇数でなかった場合）。その数が素数でなければ、ブロック７８において推定素数の修正が行われる。上述のように、最初に生成された推定素数の修正ステップはその数を２だけ増分するステップを含んでよい。次いで、本方法は素数判定の再検査を行うために元のブロック７４と７６へ戻る。その数が素数でないことが再び判明した場合、その数は４だけ（次いで６、８、１０等々だけ）増分され、それから素数が発見されるまで再検査が行われる。上記とは別に、この修正処理は、素数判定検査が満たされるまで最初に生成された推定素数の最後のＸバイトを再生成するステップを含むことができる。
【００８５】
ひとたび素数ｐとｑとの双方について検知が行われると、ブロック８０において素数を用いてＲＳＡキーが生成される。
【００８６】
さらに図５Ａ及び図５Ｂを参照すると、上記のアルゴリズムを実行する例示のコードを示すフローチャートが示されている。さらに詳細には、図５Ａが素数の生成ステップを示す図であるのに対して、図５Ｂは公開キーと秘密キーの生成ステップを示す図である。コンピュータプログラミングの一般の当業者であれば、本明細書における開示に照らして図５Ａ及び図５Ｂに示されているステップは容易に理解できるものであるため、個々のステップに関するさらなる詳細については記載しない。
【００８７】
したがって、ＲＳＡ秘密キーと公開キーとの生成のために利用される素数を電子装置内において生成することが可能となり、その結果、素数（したがってＲＳＡキー）はその特定のデバイスについて常に同じ素数となる。しかし、素数の生成がモバイル電話機の一意のキーに基づいて行われるため、素数（したがってＲＳＡキー）はデバイス間で異なるものとなる。
【００８８】
本発明の特定の実施形態をここに開示した。当業者であれば、本発明が別の環境において別の用途を有するものであることは直に認識できよう。実際、多くの実施形態及び実装構成が可能である。特許請求の範囲は決して本発明の範囲を前記した特定の実施例に限定するものではない。さらに、「〜のための手段」なる記載は構成要素および特許請求の範囲の「手段プラス機能」の表示を喚起するものであるが、「〜のための手段」なる記載を特に使用していない構成要素は、たとえ特許請求の範囲が「手段」なる用語を含む場合であっても手段プラス機能要素として解釈すべきではない。
【００８９】
本発明のコンピュータプログラム要素は、ハードウェアと、ソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコード、その他を含む）との少なくともいずれかの中に組み込まれてもよい。本発明はコンピュータプログラム製品の形をとるものであってもよく、該製品は、命令実行システムによりまたは命令実行システムと関連して使用する媒体内において実施されたコンピュータ使用可能またはコンピュータ読取可能プログラム命令、「コード」または「コンピュータプログラム」を有するコンピュータ使用可能またはコンピュータ読取可能記憶媒体により実施することができる。本明細書の文脈では、コンピュータ使用可能なまたはコンピュータ読取り可能な媒体は、命令実行システム、機器、または装置によりまたはこれらに関して用いるためのプログラムを含み、記憶し、通信し、伝播し、または転送することのできる任意の媒体とすることができる。コンピュータ使用可能なまたはコンピュータ読取り可能な媒体は、例えば、電子的、磁気的、光学的、電磁的、赤外線、半導体のシステム、機器、装置、インターネットなどの伝播媒体であってもよいが、これらに限定されない。注意すべきことであるが、コンピュータ使用可能なまたはコンピュータ読取り可能な媒体は、プログラムを印刷することができる紙や他の適当な媒体でもよい。なぜならプログラムは、例えば紙または他の媒体を光学的に走査することにより電子的に捕捉して、適当な方法で編集し、変換し、またはその他の処理をすることができるからである。ここに述べたコンピュータプログラム製品及び任意のソフトウェアやハードウェアは、例示の実施形態において本発明の機能を実行する種々の手段を形成するものである。
【００９０】
或る好適な（単複の）実施形態と関連して、本発明を示し、説明したが、本明細書及び付属図面を読み、理解するとき、均等な変更及び修正が他の当業者の心に浮かぶであろうことは明らかである。上記記載の要素（構成要素、アセンブリ、装置、構成等）により実行される、特に種々の機能に関して、このような要素を記述するのに用いる用語（「手段」への言及を含む）は、別段の指示がされていなければ、たとえ、本明細書に例示されている本発明の（単複の）例示の実施形態において機能を実行する開示された構造と構造的に同等でなくても、記載された要素の指定された（機能的に均等な）機能を実行する任意の要素に対応することを意図するものである。さらに、複数の例示の実施形態のうちの１つだけに関して、本発明の特定の特徴について上述したかもしれないが、このような特徴は、所望のように、及び、所定の用途か、又は特別の用途かのいずれかの用途にとって好都合なものとなるように、その他の実施形態の１以上の別の特徴と組み合わせることが可能である。
【図１】
2010530081.tif 000003
【図２】
2010530081.tif 000004
【図３】
2010530081.tif 000005
【図４】
2010530081.tif 000006
【図５Ａ】
2010530081.tif 000007
【図５Ｂ】
2010530081.tif 000008
【手続補正書】
【提出日】平成20年7月2日(2008.7.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
暗号化データを他の電子装置と交換するための携帯電子装置であって、
プロセッサ（２２）及びメモリ（１６）と、
前記プロセッサ及び前記メモリと動作可能に結合された素数生成回路（１２ａ）とを備え、該素数生成回路は、
前記電子装置内の一意の格納済みデータに基づいて少なくとも２つの素数を生成する論理回路を含むと共に、前記少なくとも２つの素数は常に同じ少なくとも２つの素数である、
ことを特徴とする携帯電子装置。
【請求項２】
前記素数生成回路は、
前記少なくとも２つの推定素数が偶数であれば、前記少なくとも２つの推定素数を奇数に変換する論理回路と、
前記少なくとも２つの推定素数が素数であるかどうかを判定する論理回路と、
をさらに含むことを特徴とする請求項１に記載の携帯電子装置。
【請求項３】
前記少なくとも２つの推定素数が素数であるかどうかを判定する前記論理回路は、
前記少なくとも２つの推定素数を素数判定のために検査を行う論理回路と、
前記それぞれの推定素数が前記素数判定検査に失敗した場合、前記少なくとも２つの推定素数のうちの１つの推定素数を２だけ増分する論理回路と、
前記増分された推定素数を用いて前記判定ステップを反復する論理回路と、
を含むことを特徴とする請求項２に記載の携帯電子装置。
【請求項４】
前記少なくとも２つの推定素数が素数であるかどうかを判定する前記論理回路は、
前記少なくとも２つの推定素数を素数判定のために検査する論理回路と、
前記素数判定検査に失敗した前記少なくとも２つの推定素数のうちの推定素数の所定数の最下位のバイトを再生成する論理回路と、
前記推定素数が素数になるまで、素数判定検査と前記最下位のバイトの前記再生成とを反復する論理回路と、
を含むことを特徴とする請求項２ないし３のいずれか１項に記載の携帯電子装置。
【請求項５】
前記少なくとも２つの素数を生成する際に利用されたパラメータをキャッシュする論理回路と、後続するＲＳＡキーの生成中に前記キャッシュされたパラメータを再使用する論理回路とをさらに備えることを特徴とする請求項１ないし４のいずれか１項に記載の携帯電子装置。
【請求項６】
前記少なくとも２つの素数に基づいて、前記電子装置内において公開及び秘密ＲＳＡキーを生成するように作動するＲＳＡ生成回路をさらに備えることを特徴とする請求項１ないし５のいずれか１項に記載の携帯電子装置。
【請求項７】
前記携帯電子装置はモバイル電話機（１０）であることを特徴とする請求項１ないし５のいずれか１項に記載の携帯電子装置。
【請求項８】
携帯電子装置（１０）内においてＲＳＡキーを生成する方法であって、
前記電子装置内の一意の格納済みデータ（６２）に基づいて少なくとも２つの素数（ｐ，ｑ）を生成するステップを有し、前記少なくとも２つの素数は常に同じ少なくとも２つの素数であると共に、
秘密及び公開ＲＳＡキー（８０）を生成するために前記少なくとも２つの素数を用いる
ことを特徴とする方法。
【請求項９】
生成するステップは、
少なくとも２つの推定素数を生成するステップと、
前記少なくとも２つの推定素数の前記それぞれが偶数であれば、前記少なくとも２つの推定素数のそれぞれを奇数に変換するステップと、
前記少なくとも２つの推定素数が素数であるかどうかを判定するステップと、
を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記少なくとも２つの推定素数が素数であるかどうかを判定するステップは、
素数判定のために前記少なくとも２つの推定素数を検査するステップと、
前記それぞれの推定素数が素数判定検査に失敗したとき、前記少なくとも２つの推定素数のそれぞれを２だけ増分するステップと、
前記それぞれの増分された推定素数を用いて前記判定ステップを反復するステップと、
を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記少なくとも２つの奇数が素数であるかどうかを判定するステップは、
素数判定のために前記少なくとも２つの奇数を検査するステップと、
前記それぞれの奇数が素数でないとき、前記少なくとも２つの推定素数の所定数の最後のバイトを再生するステップと、
前記少なくとも２つの奇数が素数になるまで前記検査ステップと再生ステップとを反復するステップと、
を含むことを特徴とする請求項９ないし１０のいずれか１項に記載の方法。
【請求項１２】
前記少なくとも２つの素数を生成する際にパラメータをキャッシュするステップと、後続するＲＳＡキーの生成中に前記キャッシュされたパラメータを再使用するステップとをさらに含むことを特徴とする請求項８ないし１１のいずれか１項に記載の方法。
【手続補正書】
【提出日】平成22年1月14日(2010.1.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
暗号化データを他の電子装置と交換するための携帯電子装置であって、
前記電子装置内に格納された一意のデータに基づいて少なくとも２つの素数を生成する素数生成回路と、
前記素数生成回路に動作可能に接続された、前記少なくとも２つの素数に基づいて、公開ＲＳＡキー及び秘密ＲＳＡキーを生成する鍵生成回路（１２）と
を備え、
前記少なくとも２つの素数は常に同じ少なくとも２つの素数であることを特徴とする携帯電子装置。
【請求項２】
前記素数生成回路は、
少なくとも２つの推定素数を判定し、
前記少なくとも２つの推定素数が偶数であれば、当該少なくとも２つの推定素数に関数を適用して当該少なくとも２つの推定素数を奇数にし、
前記少なくとも２つの推定素数が素数であるかどうかを判定する
ことを特徴とする請求項１に記載の携帯電子装置。
【請求項３】
前記素数生成回路は、さらに、
前記少なくとも２つの推定素数を素数判定のために検査を行い、
前記それぞれの推定素数が前記素数判定検査に失敗した場合、前記少なくとも２つの推定素数のうちの１つの推定素数を２だけ増分し、
前記増分された推定素数を用いて前記判定ステップを反復する
ことを特徴とする請求項２に記載の携帯電子装置。
【請求項４】
前記素数生成回路は、さらに、
前記少なくとも２つの推定素数を素数判定のために検査し、
前記素数判定検査に失敗した前記少なくとも２つの推定素数のうちの推定素数の所定数の最下位のバイトを再生成し、
前記推定素数が素数になるまで、素数判定検査と前記最下位のバイトの前記再生成とを反復する
ことを特徴とする請求項２又は３に記載の携帯電子装置。
【請求項５】
前記素数生成回路は、さらに、
前記少なくとも２つの素数を生成する際に利用されたパラメータをキャッシュし、
後続するＲＳＡキーの生成中に前記キャッシュされたパラメータを再使用する
ことを特徴とする請求項１ないし４のいずれか１項に記載の携帯電子装置。
【請求項６】
前記携帯電子装置はモバイル電話機（１０）であることを特徴とする請求項１ないし５のいずれか１項に記載の携帯電子装置。
【請求項７】
携帯電子装置（１０）内においてＲＳＡキーを生成する方法であって、
前記電子装置内に格納された一意のデータ（６２）に基づいて少なくとも２つの素数（ｐ，ｑ）を生成するステップと、
秘密ＲＳＡキー及び公開ＲＳＡキー（８０）を生成するために前記少なくとも２つの素数を用いるステップと
を有し、
前記少なくとも２つの素数は常に同じ少なくとも２つの素数であることを特徴とする方法。
【請求項８】
前記生成するステップは、
少なくとも２つの推定素数を生成するステップと、
前記少なくとも２つの推定素数のそれぞれが偶数であれば、当該少なくとも２つの推定素数のそれぞれに関数を適用して奇数を取得するステップと、
前記少なくとも２つの推定素数が素数であるかどうかを判定するステップと
を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記少なくとも２つの推定素数が素数であるかどうかを判定するステップは、
素数判定のために前記少なくとも２つの推定素数を検査するステップと、
前記それぞれの推定素数が素数判定検査に失敗したとき、前記少なくとも２つの推定素数のそれぞれを２だけ増分するステップと、
前記それぞれの増分された推定素数を用いて前記判定ステップを反復するステップと、
を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記少なくとも２つの奇数が素数であるかどうかを判定するステップは、
素数判定のために前記少なくとも２つの奇数を検査するステップと、
前記それぞれの奇数が素数でないとき、前記少なくとも２つの推定素数の所定数の最後のバイトを再生するステップと、
前記少なくとも２つの奇数が素数になるまで前記検査ステップと再生ステップとを反復するステップと、
を含むことを特徴とする請求項８又は９に記載の方法。
【国際調査報告】
2010530081.tif 000009
2010530081.tif 000010
2010530081.tif 000011