JP2010530081A - デバイス依存rsaキーの生成 - Google Patents
デバイス依存rsaキーの生成 Download PDFInfo
- Publication number
- JP2010530081A JP2010530081A JP2010511734A JP2010511734A JP2010530081A JP 2010530081 A JP2010530081 A JP 2010530081A JP 2010511734 A JP2010511734 A JP 2010511734A JP 2010511734 A JP2010511734 A JP 2010511734A JP 2010530081 A JP2010530081 A JP 2010530081A
- Authority
- JP
- Japan
- Prior art keywords
- prime
- estimated
- prime numbers
- numbers
- electronic device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/041—Key generation or derivation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephone Function (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
暗号化データを他の電子装置と交換するための携帯電子装置(10)が、プロセッサ(22)と、該プロセッサと動作可能に結合されたメモリ(16)と、該プロセッサ及びメモリと動作可能に結合された素数生成回路(12a)とを含む。素数生成回路は電子装置内の一意の格納済みデータに基づいて少なくとも2つの素数を生成する論理回路を含むと共に、前記少なくとも2つの素数は常に同じ少なくとも2つの素数である。次いで、生成された素数は、電子装置(10)内においてRSA公開キーと秘密キーとを生成するために用いることができる。
Description
本発明は、一般に、音声通信に係る電子装置のような電子装置に関する。より詳細には、本発明は、電子装置内において一意のデバイス依存RSAキーの対を生成する装置及び方法に関する。
電子装置の移動アイテムと無線アイテムの少なくともいずれかはますますポピュラーなものになりつつある。さらに、或る特定の種類の電子装置と関連づけられる特徴についてはますます多様化が進んでいる。いくつか例を挙げると、多くの電子装置は、カメラ、テキストメッセージ機能、インターネット閲覧機能、電子メール機能、ビデオ再生機能、オーディオ再生機能、画像表示機能、ナビゲーション機能及びハンズフリー・ヘッドセット・インタフェースを備えている。
明らかなように、電子装置の顕著な特徴は、種々の通信ネットワーク上で行われるデータの交換である。無線通信ネットワーク又はデータネットワークのような通信ネットワーク上でデータを交換するとき、交換されるデータの不正使用を防ぐためにセキュリティのレベルを提供することが望ましい。一般に、このようなセキュリティは暗号化アルゴリズムを用いてデータの暗号化を行うことにより提供される。モバイル電話機のような電子装置において、例えばRSAがこのようなセキュリティの提供のために用いられる場合が多い。
RSAは公開キー暗号化方式用のアルゴリズムであり、電子商取引プロトコルにおいて広く利用されているものである。RSAでは公開キーと秘密キーとが使用されるが、公開キーはすべての人に公知のものであり、メッセージの暗号化のために利用することができる。しかし、公開キーを用いて暗号化されたメッセージは秘密キーを用いてしか復号化することはできない。
従来の方式では、個々の電子装置には(例えばコンピュータ上で実行され、次いで、電子装置へ通信されるソフトウェアを介して)外部で生成される一意の秘密キーが提供される。ひとたび生成されると、このキーは電子装置に格納される。セキュリティを維持するために、上記キーは、例えば、電子装置メーカーの設備内の機密保護エリアのような安全な環境において生成され、次いで暗号化された形で電子装置に直ちに格納されることが望ましい。
使用に当たって、キーが必要とされる度に、キーは格納装置から取り出され、復号され、使用される。使用後、復号済みのキーは、キーに対する不正アクセスを防止するためにメモリから取り除かれなければならない。
電子装置に上記のRSAキーを実装する上記方法の欠点として、キー処理にコストがかかり、技術上の問題を引き起す可能性があるという点が挙げられる。例えば、キー処理システムの複雑さに起因して工場の現場で製造停止を引き起こす可能性がある。
本発明は従来技術の欠点を伴うことなく一意のキーの生成を可能にするものである。さらに詳細には、例えばデバイス自身の内部において一意のRSAキーの対が無制限の回数で生成され、使用され、かつ、削除され得ることになる。これによって外部でのキーの生成は不要となる。さらに、キーを必要とする度に電子装置によって同じキーの対の再生成が可能となる。RSAキーの生成が2つの素数の取得に基づいて行われることに起因して、例えば、電子装置のハードウェアキーのような、電子装置内に格納されているデータに基づいて2つの素数を取得することにより同じキーの生成が可能となる。さらに、特定のデバイスに対して常に同じ素数が得られるように、しかも素数(したがってキー)がデバイス間において一意となるように素数を導き出すアルゴリズムを構成することが可能となる。
セキュリティ破壊を受ける可能性があるキーの外部での生成を実施する必要がないため、本願に記載の方法及び装置はデータ交換のセキュリティを高めるものとなる。さらに、キーが内部で生成されるため、キーの紛失が生じることはあり得なくなる。また、セキュリティ保護キーのためのスキーマに対する変更が行われる場合、メーカーの外部ソフトウェアツールの修正は不要となる。というのは、これらのツールが上記のような変更によって影響を受けることがなくなるからである。
本発明の1つの側面によれば暗号化データを他の電子装置と交換するための携帯電子装置は、プロセッサ及びメモリと、前記プロセッサ及びメモリと動作可能に結合された素数生成回路とを備え、前記素数生成回路は、電子装置に格納された一意のデータに基づいて少なくとも2つの素数を生成する論理回路を含み、前記少なくとも2つの素数は常に少なくとも2つの同じ素数である。
本発明の1つの側面によれば少なくとも2つの素数は互いに異なる。
本発明の1つの側面によれば素数生成回路は少なくとも所定のバイト数の長さを有する素数を導き出す論理回路をさらに含む。
本発明の1つの側面によれば一意のデータは電子装置の特徴データである。
本発明の1つの側面によれば、素数生成回路は特徴データとして、電子装置のハードウェア依存キーを用いる論理回路をさらに含み、前記ハードウェア依存キーは個々の電子装置について一意である。
本発明の1つの側面によれば、素数生成回路は、所定長を有する反復可能なハッシュ値を生成するために、ハードウェア依存キーに制御されるHMAC演算を用いる論理回路をさらに含む。
本発明の1つの側面によれば、素数生成回路は、少なくとも2つの推定素数(probably prime number)が偶数であれば、少なくとも2つの推定素数を奇数に変換する論理回路と、少なくとも2つの推定素数が素数であるかどうかを判定する論理回路とをさらに含む。
本発明の1つの側面によれば、少なくとも2つの推定素数が素数であるかどうかを判定する論理回路には、素数判定のために少なくとも2つの推定素数を検査する論理回路と、それぞれの推定素数が素数判定検査に失敗した場合、少なくとも2つの推定素数のうちの1つの推定素数を2だけ増分する論理回路と、この増分された推定素数を用いて判定ステップを反復する論理回路とが含まれる。
本発明の1つの側面によれば、少なくとも2つの推定素数が素数であるかどうかを判定する論理回路には、素数判定のために少なくとも2つの推定素数を検査する論理回路と、少なくとも2つの推定素数のうちの、素数判定検査に失敗した1つの推定素数の所定数の最下位のバイトを再生成する論理回路と、推定素数が素数になるまで素数判定検査及び最下位バイトの再生成を反復する論理回路と、が含まれる。
本発明の1つの側面によれば、デバイスは、少なくとも2つの素数を生成する際に利用されるパラメータをキャッシュする論理回路と、その後のRSAキーの生成中にこのキャッシュされたパラメータを再使用する論理回路とをさらに備える。
本発明の1つの側面によれば、論理回路は、公開キーと秘密キー双方のRSA公開キー指数又はモジュラスの少なくとも一方をキャッシュする。
本発明の1つの側面によれば、デバイスは、少なくとも2つの素数に基づいて、電子装置内において公開RSAキーと秘密RSAキーとを生成するように作動するRSA生成回路をさらに備える。
本発明の1つの側面によれば携帯電子装置はモバイル電話機である。
本発明の1つの側面によれば、携帯電子装置内においてRSAキーを生成する方法が、電子装置内に格納された一意のデータに基づいて少なくとも2つの素数を生成するステップであって、前記少なくとも2つの素数が常に同じ少なくとも2つの素数となるようにする生成ステップと、この少なくとも2つの素数を用いて、秘密RSAキーと公開RSAキーとを生成するステップとを含む。
本発明の1つの側面によれば、本方法は秘密RSAキーの使用後メモリから秘密RSAキーを消去するステップをさらに含む。
本発明の1つの側面によれば、生成ステップは少なくとも所定のバイト数の長さを有する素数を導き出すステップを含む。
本発明の1つの側面によれば、生成ステップは一意のデータとして電子装置のハードウェア依存キーを用いるステップを含む。
本発明の1つの側面によれば、生成ステップは所定長を有する反復可能なハッシュ値を生成するために、ハードウェア依存キーと共にHMAC演算を用いるステップを含む。
本発明の1つの側面によれば、生成ステップは少なくとも2つの推定素数を生成するステップと、少なくとも2つの推定素数のそれぞれが偶数であれば、少なくとも2つの推定素数を奇数に変換するステップと、少なくとも2つの推定素数が素数であるかどうかを判定するステップとを含む。
本発明の1つの側面によれば、少なくとも2つの推定素数が素数であるかどうかを判定するステップには、素数判定のために少なくとも2つの推定素数を検査するステップと、それぞれの推定素数が素数判定検査に失敗した場合、少なくとも2つの推定素数のそれぞれの推定素数を2だけ増分するステップと、このそれぞれの増分された推定素数を用いて判定ステップを反復するステップとが含まれる。
本発明の1つの側面によれば、少なくとも2つの奇数が素数であるかどうかを判定するステップは、素数判定のために少なくとも2つの奇数を検査するステップと、それぞれの奇数が素数でないとき、少なくとも2つの推定素数の所定数の最後のバイトを再生成するステップと、少なくとも2つの奇数が素数になるまで上記検査及び再生成ステップを反復するステップとを含む。
本発明の1つの側面によれば、本方法は、少なくとも2つの素数を生成する際に利用されるパラメータをキャッシュするステップと、その後のRSAキーの生成中にこのキャッシュされたパラメータを再使用するステップとをさらに含む。
本発明の1つの側面によれば、上記キャッシュするステップは、公開キーと秘密キー双方のRSA公開キー指数又はモジュラスの少なくとも一方を含む。
次いで、上述の目的及び関連する目的を達成するために、本発明は、本明細書において以下完全に記述され、かつ、請求項において特に指摘されている特徴を有するものであり、以下の説明及び付属図面は、本発明の或る例示の実施形態を詳細に記載するものであり、これらは本発明の原理を適切に採用することができる種々の方法のうちのほんのいくつかの方法を示すものである。
以下の図面及び詳細な説明を検証するとき、本発明の別のシステム、方法、特徴、及び利点は当業者には明らかであるか、あるいは明らかになる。すべてのこのような追加システム、方法、特徴、及び利点は上記説明の中に含まれ、本発明の範囲内に属し、さらに、添付の特許請求の範囲によって保護されることが意図される。
本発明は1以上の実施形態に関して図示され、説明されているが、本明細書を読み、理解するとき、当業者であれば均等物及び変更を思いつくであろうことを理解されたい。本発明は、すべてのこのような均等物及び変更を含み、請求項の範囲によってのみ限定されるものである。
また、それぞれの図面/実施形態において種々の特徴について説明し、例示するが、本発明の1以上の別の図面又は実施形態において所定の図面又は実施形態の特徴を用いてもよいことは理解できよう。
本明細書で使用される場合、「含む(comprise/comprising)」という用語は、言及された特徴、数値、ステップ又は構成の存在を特定するために用いられるが、これら以外の特徴、数値、ステップ、構成、又はこれらのグループの存在又は追加を排除するものではないという点を強調しておく。
以下の図面を参照しながら、本発明の多くの側面をより良く理解することが可能となる。図面の構成要素は必ずしも縮尺どおりであるとはかぎらない。むしろ本発明の原理を明瞭に例示することが強調されている。同様に、1つの図面に描かれている要素及び特徴は追加の図面に描かれている要素及び特徴と組み合わせることができる。さらに、図面において、同じ参照番号はいくつかの図を通して対応する要素を指すものとする。
以下図面を参照して本発明の実施形態を説明するが、図面を通して同一の参照番号を用いて同じ要素を指すものとする。理解されるように、これらの図は必ずしも縮尺どおりではない。
「電子機器」及び「電子装置」という交換可能な用語は携帯用無線通信機器を含むものとする。「携帯用無線通信機器」という用語は、本明細書において以後「モバイル無線端末」を意味するものとするが、この用語は、モバイル電話機、ポケベル、コミュニケータ、電子手帳、パーソナル・デジタル・アシスタント(PDA)、スマートフォン、携帯用通信装置、携帯用ゲーム装置等のようなすべての機器を含むものとする。
本願では主としてモバイル電話機に関連して本発明の実施形態の説明を行う。しかし、本発明がモバイル電話機という文脈に限定されることを意図するものではないこと、及び、任意の種類の適当な電子機器に関するものであってもよいことは理解できよう。
最初に図1及び図2を参照すると、電子装置10が示されている。電子装置10は、電子装置10内においてRSA秘密キーと公開キーとを自動的に生成するように構成されたRSAキー生成機能12を含む。RSAキー生成機能12の追加の詳細及び動作について以下さらに詳述する。RSAキー生成機能12は電子装置10の中に常駐し、かつ、電子装置10によって実行される実行可能コードとして実装することができる。1つの実施形態では、RSAキー生成機能12はコンピュータ又は機械可読媒体に格納されたプログラムであってもよい。RSAキー生成機能12は単体のソフトウェアアプリケーションであってもよく、あるいは、電子装置10に関係する追加タスクを実行するソフトウェアアプリケーションの一部を形成するものであってもよい。
例示の実施形態の電子装置はモバイル電話機であり、モバイル電話機10として参照される。モバイル電話機10は、「レンガ」又は「ブロック」フォームファクタのハウジングを有するものとして示されているが、(シェル型ハウジングのような)「フリップ」オープン型フォームファクタハウジング又は(「スライダ型ハウジング」のような)スライド型フォームファクタハウジングのような他の種類のハウジングを用いてもよいことは理解できよう。
モバイル電話機10はディスプレイ14を備えることができる。ディスプレイ14は、動作状態、時刻、電話番号、連絡先情報、種々のナビゲーションメニューなどのような情報をユーザに対して表示する。この情報によってユーザはモバイル電話機10の種々の特徴を利用することが可能になる。ディスプレイ14を用いて、モバイル電話機10が受信した内容と、モバイル電話機10のメモリ16(図2)から取り出した内容の少なくともいずれかの内容を視覚的に表示することも可能となる。ディスプレイ14を用いて、写真、移動体用テレビのコンテンツ及びゲームに関連づけられたビデオのような画像、ビデオ及び他のグラフィックをユーザに提示するようにしてもよい。
キーパッド18はユーザによる入力操作を提供する。例えば、キーパッド18には通常、電話番号、電話リスト、連絡先情報、メモなどのような英数字情報の入力を可能にする英数字キーが含まれている。さらに、キーパッド18には通常、呼を起動するか、呼に応答するかのいずれかを行うための「呼送信」キー、及び、呼を終了するための「呼終了」キー、又は呼の「停止」キーのような特別の機能キーが含まれている。特別の機能キーが、ディスプレイ14に表示されるメニューを通じてナビゲーションを容易にするメニューナビゲーションキーと、選択キーとを含むようにしてもよい。例えば、ポインティングデバイスとナビゲーションキーとの少なくともいずれかがユーザからの指向性入力を受け付けるために存在してもよい。この特別の機能キーは、再生の開始、停止及び一時停止と、トラックのスキップ又は反復などを行うための、オーディオビジュアル・コンテンツの再生キーを含んでもよい。モバイル電話機と関連づけられる他のキーとして、音量キー、消音キー、電源オン/オフキー、ウェブブラウザ開始キー、カメラ・キーなどを含むものも考えられる。ディスプレイ14に関連づけられたタッチスクリーンとしてキー又はキー様の機能を実装することも可能である。また、ディスプレイ14とキーパッド18とはソフトキー機能を実現するために相互に関連して使用されてもよい。
モバイル電話機10には、モバイル電話機10が通常他のモバイル電話機か有線電話機である被呼/発呼装置と呼を確立するか、信号を交換するかの少なくともいずれかを行うことを可能にする通話回路が含まれている。しかし、被呼/発呼装置は、他の電話機である必要はなく、インターネットウェブサーバ、コンテンツ提供サーバなどのような他の何らかの装置であってもよい。呼は任意の好適な形をとることが可能である。例えば、呼はセルラ回線交換ネットワークを介して確立される通常の呼であってもよいし、あるいは、セルラネットワークのパケット交換機能を介して、あるいは、WiFi(IEEE802.11規格に基づくネットワークなどの)WiFi、WiMAX、等のような他のパケット交換ネットワークを介して確立されるボイス・オーバ・インターネットプロトコル(VoIP)電話であってもよい。別例として、セルラネットワーク又は他のネットワークを介して確立されるテレビ電話がある。
モバイル電話機10は、テキストメッセージ(テキストメッセージは通常ショートメッセージサービスを表す「SMS」と呼ばれることもある)、インスタントメッセージ、電子メールメッセージ、マルチメディアメッセージ(マルチメディアメッセージは通常マルチメディアメッセージサービスを表す「MMS」と呼ばれることもある)、画像ファイル、ビデオファイル、オーディオファイル、着信音、ストリーミングオーディオ、ストリーミングビデオ、(ポッドキャストを含む)データフィードなどのようなデータの送信と、受信と、処理とのうちの少なくともいずれかを行うように構成することができる。このようなデータの処理ステップは、データとのユーザインタラクションを可能にするためにデータをメモリ16に記憶するステップと、アプリケーションを実行するステップと、データに関連づけられたビデオと画像の少なくともいずれかのコンテンツを表示するステップと、データに関連づけられたオーディオサウンドを出力するステップとを含むものであってもよい。図2はモバイル電話機10の機能ブロック図を表す図である。簡潔さを旨として、モバイル電話機10の一般に従来からある特徴については本明細書ではあまり詳細には記載されていない。
モバイル電話機10は、モバイル電話機10の機能及び動作の全制御を実行するように構成された主制御回路20を含む。制御回路20は、CPU、マイクロコントローラ又はマイクロプロセッサのような処理装置22を含むものであってもよい。処理装置22は、制御回路20内のメモリ(図示せず)内か、メモリ16のような独立のメモリ内かの少なくともいずれかのメモリに記憶されたコードを実行して、モバイル電話機10の動作を実行することを目的とするものである。
メモリ16は、不揮発性メモリ16aを用いて実現されるリードオンリメモリエリアと、揮発性メモリ16bを用いて実現されるランダムアクセスメモリエリア又はシステムメモリエリアとを含んでもよい。理解されるように、不揮発性メモリは、電力低下の際にデータ記憶機能が失われない傾向があり、かつ、データ、アプリケーションコード、ファイルなどを記憶するために通常用いられる。不揮発性メモリ16aは、例えば、フラッシュメモリを用いて実装可能である。フラッシュメモリは、NAND構成を有する場合もあるが、NOR構成のような他のフラッシュメモリ構成が用いられる場合もある。理解されるように、揮発性メモリは、電力低下の際にデータ記憶機能を失う傾向があり、かつ、論理ルーチンの実行中に処理装置22によるアクセス用データを記憶するために通常用いられる。揮発性メモリ16bはランダムアクセスメモリ(RAM)であってもよい。RAMは、例えば同期ダイナミックランダムアクセスメモリ(SDRAM)であってもよいが、メモリブロックを利用する他のRAM構成を用いてもよい。一般に行われているように、データは不揮発性メモリ16aと揮発性メモリ16bとの間で交換することができる。不揮発性メモリ16aと揮発性メモリ16bのメモリサイズは、モバイル電話機10又は、メモリ16が用いられる他の電子装置に適したサイズに変更可能である。
さらに、処理装置22はRSAキー生成機能12を実装するコードを実行することができる。モバイル電話機10をプログラムして、本明細書の説明に基づいてRSAキー生成機能12に関連づけられた論理機能を作動させ、かつ、この機能を実行する方法は、コンピュータプログラミングの当業者、及び、特にモバイル電話機や他の電子装置用のアプリケーションプログラムの当業者には明らかである。したがって、具体的なプログラミングコードに関する詳細については簡潔さを旨として省略した。また、RSAキー生成機能12が本発明の好適な実施形態に従って処理装置22により実行される一方で、本発明の範囲から逸脱することなく、さらに、専用ハードウェア、ファームウェア、ソフトウェア、又は、これらの組み合わせを介してもこのような機能の実行が可能である。これらの実施構成のいずれもRSAキー生成機能12あるいは単に論理回路と呼ぶことができる。
引き続き図1及び図2を参照すると、モバイル電話機10には、無線回路26と結合されたアンテナ24が含まれている。一般に行われているように、無線回路26には、アンテナ24を介して信号の送受信を行うための無線周波数送受信機が含まれる。無線回路26は、移動通信システムにおいて動作するように構成することができると共に、データとオーディオビジュアル・コンテンツとの少なくともいずれかの送受信を行うために用いることができる。移動無線ネットワークと放送ネットワークとの少なくともいずれかのネットワークとのインタラクションを行うための受信機には、GSM、CDMA、WCDMA、GPRS、WiFi、WiMAX、DVB−H、ISDB−Tなどと、これらの標準規格の上位バージョンとが含まれるが、これらのみに限定されるわけではない。
モバイル電話機10には、無線回路26によって送信されるオーディオ信号と、無線回路26から受信されるオーディオ信号とを処理するためのサウンド処理回路28がさらに含まれる。一般に行われているように、モバイル電話機10を介してユーザが聴き、かつ、通話できるスピーカ30及びマイク32がサウンド処理回路28と結合されている。無線回路26及びサウンド処理回路28は処理全体の実行を意図して制御回路20と個々に結合される。ユーザへの再生用として制御回路20からサウンド処理回路28へオーディオデータを渡すことができる。このオーディオデータは、例えば、メモリ16によって記憶され、かつ、制御回路20によって取り出されたオーディオファイルから得られるオーディオデータ、又は、移動無線サービスからストリーミングオーディオデータの形などで受信されるオーディオデータなどを含むものであってもよい。サウンド処理回路28は任意の適当なバッファ、デコーダ、増幅器などを含むものであってもよい。
ディスプレイ14は、ディスプレイ14を駆動するために用いられるビデオ信号にビデオデータを変換するビデオ処理回路34によって制御回路20と結合することができる。ビデオ処理回路34は、任意の適当なバッファ、デコーダ、ビデオデータプロセッサなどを含むものであってもよい。上記ビデオデータは、制御回路20によって生成され、メモリ16内に記憶されたビデオファイルから取り出され、無線回路28によって受信された着信ビデオデータストリームから導き出されてもよいし、あるいは、他の好適な方法によって取得されてもよい。
モバイル電話機10は1以上の(単複の)I/Oインタフェース36をさらに含むものであってもよい。(単複の)I/Oインタフェース36は、典型的モバイル電話機用I/Oインタフェースの形のものであってもよく、1以上の電気コネクタを含むものであってもよい。一般に行われているように、(単複の)I/Oインタフェース36を用いて、モバイル電話機10内の電力供給装置(PSU)38のバッテリを充電するために、バッテリ充電器とモバイル電話機10を結合するようにしてもよい。さらに加えて、あるいは代替例において、(単複の)I/Oインタフェース36は、モバイル電話機10との有線インタフェースを備えた(個人用ハンズフリー(PHF)デバイスなどの)ヘッドセットアセンブリとモバイル電話機10を接続する役割を果たすようにしてもよい。さらに、(単複の)I/Oインタフェース36は、データの交換を行うためのデータケーブルを介してモバイル電話機10をパーソナルコンピュータ又は他のデバイスと接続する役割を果たすようにしてもよい。モバイル電話機10は、車輌用電源アダプタ又は電気コンセントの電源アダプタに接続されているとき、(単複の)I/Oインタフェース36を介して動作電力を受け取ることができる。
モバイル電話機10はまた、制御回路20のような、移動電話10の種々の構成要素を計時するためのシステムクロック40を含むことができる。制御回路20は、順次、タイムスタンプ及び日付スタンプなどのコンテンツを生成しながら、通話時間のような計時機能を実行することができる。
モバイル電話機10はデジタル画像と動画との少なくともいずれかを撮影するためのカメラ42を含んでもよい。写真と動画との少なくともいずれかに対応する画像ファイルとビデオファイルとの少なくともいずれかのファイルをメモリ16に記憶することができる。
モバイル電話機10は、全地球測位システム(GPS)受信機、ガリレオ衛星システム受信機等のような位置データ受信装置44も含むことができる。
モバイル電話機10は、赤外線トランシーバと、(ブルートゥースインタフェースなどの)RFインタフェース46との少なくともいずれかのようなローカルな無線インタフェース44であって、アクセサリ、他のモバイル無線端末、コンピュータ又は他のデバイスと通信を確立するための無線インタフェース44も含むことができる。例えば、ヘッドセットアセンブリが対応する無線インタフェースを備えたある実施形態では、ローカルな無線インタフェース46はモバイル電話機10を(PHF装置などの)ヘッドセットアセンブリと作動的に結合することができる。
さらに図3を参照すると、モバイル電話機10は、通信システム48の一部として動作するように構成することができる。システム48は、モバイル電話機10による送信呼と、モバイル電話機10へ向けられた着信呼との管理と、データの送信と、他の任意のサポート機能の実行とを行うためのサーバ(又は複数のサーバ)52を有する通信ネットワーク50を含むことができる。サーバ52は送信媒体を介してモバイル電話機10と通信を行う。送信媒体は、例えば、(セルタワーなどの)通信タワー、他のモバイル電話機、無線アクセスポイント、衛星などを含む任意の適当な装置又はアセンブリであってもよい。ネットワークの一部は無線送信路を含むものであってもよい。ネットワーク50は複数のモバイル電話機10と、別の種類のエンドユーザ装置との通信活動をサポートすることができる。
理解されるように、サーバ52はサーバ機能を実行するために用いられる一般的なコンピュータシステムとして構成することが可能であり、さらに、サーバ52の機能を具現化する論理演算命令を含むソフトウェアを実行するように構成されたプロセッサと、このようなソフトウェアを記憶するためのメモリとを含むことが可能である。
ここでRSAキー生成機能12の説明に移り、RSA公開キーと秘密キーとを作成する一般的ステップを下記に示す。
・ 2つの別個の異なる大きなランダムな素数pとqとを選択する。
・ η=pqを計算する。但しηは公開キーと秘密キー双方のモジュラスである。
・ トーシェント(totient)Φ(η)=(p−1)(q−1)を計算する。これは、PKCS#1v2.0においてλ(η)=lcm(p−1、q−1)に変更されたものである。
・ 1<e<Φ(η)、かつ、Φ(η)について互いに素となるように整数eを選択する。すなわち、eとΦ(η)とは1以外の約数を共有しない。gcd(e,Φ(η))=1。
・ eは公開キー指数として公開される。
・ 合同関係de≡1(modΦ(η))を満たすようにdを計算する。すなわち、或る整数kに対してde=1+kΦ(η)。
・ dは秘密キー指数として保持される。
・ 2つの別個の異なる大きなランダムな素数pとqとを選択する。
・ η=pqを計算する。但しηは公開キーと秘密キー双方のモジュラスである。
・ トーシェント(totient)Φ(η)=(p−1)(q−1)を計算する。これは、PKCS#1v2.0においてλ(η)=lcm(p−1、q−1)に変更されたものである。
・ 1<e<Φ(η)、かつ、Φ(η)について互いに素となるように整数eを選択する。すなわち、eとΦ(η)とは1以外の約数を共有しない。gcd(e,Φ(η))=1。
・ eは公開キー指数として公開される。
・ 合同関係de≡1(modΦ(η))を満たすようにdを計算する。すなわち、或る整数kに対してde=1+kΦ(η)。
・ dは秘密キー指数として保持される。
RSAキーの計算における主要ステップは素数pとqとの選択である。なぜなら、他のすべての値は直接的にあるいは間接的にこれらの素数から導き出されるからである。同じ素数が常に生成されれば、同じ秘密キーと公開キーも生成されることになる。同じ素数を常に生成する素数生成回路12をモバイル電話機10内に実装することによって、RSAキーを必要とする度に同じRSAキーの生成が可能となり、次いで、RSAキーを使用後に消去することができる。さらに、モバイル電話機10の一意の特徴に基づくように回路12の素数生成を行うことによって、RSAキーは個々のモバイル電話機10に対して一意のものになる。これによって、RSAキーを外部で生成する必要がなくなり、次いで、RSAキーの暗号化と、モバイル電話機10におけるRSAキーの格納とが行われることになる。
同じ素数pとqとを生成するために、例えば、モバイル電話機10のハードウェア依存キーKのようなキーと共にHMAC演算を用いてもよい。このハードウェア依存キーKは、与えられた文字列に対して、(h=HMAC(K,data)などの)同じハッシュ値を常に生成するものである。当業者に周知のように、キーハッシュメッセージ認証コード(HMAC)は秘密キーと組み合わされた暗号ハッシュ関数を用いて計算される1種のメッセージ認証コード(MAC)である。いずれのMACの場合も同じ様に、HMACを用いて、データの完全性及びメッセージの真正性の双方を同時に検証することができる。反復ハッシュ関数は、メッセージを分割して、固定サイズのブロックに変え、次いで、圧縮関数を用いてこれらのブロックに渡って反復操作を行う。例えば、MD5及びSHA−Iは512ビットのブロックに対して処理を行う。HMACの出力サイズは使用されるハッシュ関数のサイズと同じサイズである。但し、このサイズは所望の場合切り捨てることができる。
好適には、キーKはランダムに生成され、すべてのモバイル電話機10に対して一意であることが望ましい。例えば、ハードウェア依存キーとして具現化されるキーKは、製造中に生成され、暗号化フォーマットで(例えばリードオンリメモリすなわちROMの中へ焼き込むなどのようにして)モバイル電話機に永久に格納されることができる。
さらに、計算されたハッシュ値は20バイトの長さを有することが望ましい。但し他の長さであってもよい。20バイトまたはそれ以上の長さは、同じキー(K)と同じ文字列とを用いて(例えば、生成された数字が所望の長さになるまで)HMAC関数を複数回呼び出すべきことを示唆する。その場合、いつでも反復して使用できるように当該文字列はシーケンシャルに構成される。例示のコードを下記に示す。
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;
}
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;
}
ひとたびpとqの生成値が所望の長さになると、この生成値は、推定素数(すなわち、すべての素数についても満たされるある特定の条件を満たす整数)と見なされる。推定素数が実際に素数であることを保証するために、推定素数に対するチェックすなわち検査が実行される。さらに詳細には、pとqとの生成値は(予め奇数でなければ)奇数に変換され、次いで、素数判定チェックが行われる。pとqとの生成値が素数であることが判明した場合、これらの値を用いてRSAキーが生成される。推定素数の一方又は双方が素数でないことが判明した場合、素数判定に失敗した数は2だけ増分され、次いで、再び検査が行われる。新たな数が素数判定検査に失敗した場合、この検査を満たすまで、その数は2だけ増加される。その数が素数であると判明するまでこの処理は反復される。ひとたびpとqとの双方に対する素数が発見されると、これらの素数を用いて本明細書に記載のようにRSAキーが生成される。
数が奇数であるか偶数であるかをチェックするための、及び、素数判定検査を行うための例示のコードを下記に示す。
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 ( 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;
素数を求める別の方法として、素数判定検査が満たされるまで最初に生成された素数(すなわち推定素数)の最後のXバイトを再生成する方法がある。例示のコードを下記に示す。
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;
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;
上記の例において、推定素数の最後のXバイトは、キーK及び文字列データに基づいてHMAC関数を用いて、新しく生成済みのデータによって置き換えられる。その推定素数が素数であると判明するまでこの処理は反復される。
上記アルゴリズムのいずれが用いられるかに関係なく、同じ2つの素数pとqとが常に生成され、したがって同じRSAキー計算が実行される。
同じ素数の生成に加えて、種々のデータをキャッシュすることで計算全体の速度の向上を図ることができる。例えば、計算が実行される最初の回に、q及びpと、RSAキーに必要な中間データとを生成するためにアルゴリズム全体を実行してもよい。ひとたびこれらのキーが用いられると、秘密指数dと共にこれらのキーをメモリからクリアすることができる。公開キー指数eとモジュラスηとは公知のものであるためメモリからこれらを消去する必要はない。というのは、これらはセキュリティ上の問題を生じないからである。言い換えれば、モジュラスη及び公開キー指数eは後で利用するためにメモリの中にキャッシュされてもよい。
RSAキーが後続して計算される際、秘密キー指数dに関連づけられたデータのみを計算する必要がある。なぜなら、公開キーに関連づけられたデータがメモリから取り出される可能性があるからである。さらに、キーが初めて生成されてしまうとすぐに、生成処理は、公開キーをキャッシュすることによって(フラッシュメモリ、ハードドライブなどの)不揮発性メモリにおいて最適化を行うことが可能となる。この場合、公開キーが必要となったとき、公開キーを生成するための計算は行う必要がない。なぜなら、公開キーはメモリから簡単に取り出して、すぐに使用できるからである。
この提案されたキー生成方法の効果として、キーの生成、キーのフォーマット後の適当な画像への変換、画像の保護、モバイル電話機への画像のフラッシングという工場で行われる処理を省くことが可能となるという点が挙げられる。これによって、すべてのキーに関連するデータベースを維持し、かつ、異なる工場ツールとデータベースとを同期させるという要件が本質的に不要になる。さらに、ハードウェア依存キーを用いてRSAキーを再暗号化するためにモバイル電話機のブートを工場で行う必要がなくなり、これによってキーの保護におけるさらに高いレベルのセキュリティが保証されることになる。
その他の効果として、(モバイル電話機内での破損や消去などで)RSAキーを紛失しても、モバイル電話機は再び作業を行う必要がないという点が挙げられる。なぜなら、RSAキーは必要となる度に自動的に生成されるからである。さらに、特定の国際移動局装置識別子(IMEI)を表すキーKが保護されたデータベースに記憶されていれば、IMEIとハードウェア依存キーとをフラッシュすることによってモバイル電話機のクローンを作成することも可能である。これによって、ユーザは、事前にダウンロードされ、かつ、メモリスティックなどに記憶済みの(DRMコンテンツなどの)保護されたコンテンツを利用することが可能になる。
さらに図4を参照すると、モバイル電話機10において秘密及び公開RSAキーを作成する際に用いる、例示の素数生成方法を実行するための論理動作が示されている。図4は、RSAキーが必要となる度に、同じ素数を導き出すために実行可能なステップを例示する図である。RSAキー生成機能12の実施形態を実行することにより上記方法例を実施することができる。したがって、図4フローチャートは、モバイル電話機10により実行される方法を描いたものと考えることができる。図4は、機能論理ブロックを実行するある特定の順序を示すものではあるが、ブロックの実行指令の順序は、示された順序に対応して変更することも可能である。また、連続して示される2以上のブロックを同時に実行してもよいし、あるいは部分的に同時に実行してもよい。或る種のブロックは省くことも可能である。さらに、強化されたユーティリティ、課金、パフォーマンス、測定、トラブル・シューティング等を目的として、任意の数の機能、論理処理、コマンド、状態変数、セマフォ、又はメッセージを論理フローに追加することが可能である。すべてのこのような変更例は本発明の範囲内に属すると理解されたい。
RSAキー生成機能12を表す論理フローはブロック60から開始することができ、このブロックにおいて、(素数のバイト数などの)所望のサイズのpとqとが選択され、かつ、素数を導き出すための文字列が取得される。この文字列は、デバイスの一意の識別子と組み合わされた固定文字列又は予め定められた文字列から取得することができる。好適には、選択される素数のサイズは128バイトまたはそれ以上のような大きなサイズであることが望ましい。なぜなら、より大きな素数ほどRSAキーにおけるセキュリティのレベルを強化することができるからである。ブロック61において、推定素数のpとqとは0に設定される(例えば推定素数に対応する変数が0に初期化される)。
次いで、ブロック62において、電子装置のハードウェア依存キーのようなキーKが取り出される。上述したように、本願では、ハードウェア依存キーKは電子装置内に格納された一意の識別子であり、かつ、電子装置の製造時点に指定できるものである。
次に、素数pとqとを導き出す際に用いられるデータストリングがブロック64において構成される。モバイル電話機10として具現化される電子装置の場合、例えば、定義済みのデータストリングと組み合わされてIMEIから文字列を構成することができる。例示のコードを下記に示すが、ここで、「文字列」とはブロック60において取得される文字列データであり、数字「14」はバイトで表されるIMEIの長さに対応し、数字「2」は変数の長さ“primeLength”に対応する。
primeLength = 0;
prime = " " ;
generation_string = string GetIMEI( ) primeLength;
generation_string_length = strlen( string ) +14 + 2;
prime = " " ;
generation_string = string GetIMEI( ) primeLength;
generation_string_length = strlen( string ) +14 + 2;
次にブロック66において、推定素数のpとqとのそれぞれに対応する数字部分が構成されたデータストリング(generation_string)及びモバイル電話機の一意の識別子(ハードウェアキーなど)から生成される。個々の推定素数の数字部分はHMAC演算を用いて生成することができる。次いで、ブロック67において、個々の生成済みの数字部分をそれぞれの推定素数p又はqにアペンドしてもよい。推定素数pとqとが(一定のバイト数のような)或る一定の長さを有するように指定されているため、ブロック68及び70に図示のように推定素数の長さのチェックが行われる。生成された素数が指定の長さを満たさなければ、ブロック72において生成処理が継続し、さらに大きな推定素数を発見するようにする(例えば、追加データを構成済み文字列にアペンドすることができ、次いで、新たな文字列から新たな推定素数が生成され得る)。推定素数がブロック60において指定された長さを満たすようになるまで上記処理は反復される。ひとたび十分な長さの推定素数が得られると、ブロック74及び76において、推定素数は素数判定を受けるために検査される。素数判定検査は推定素数を奇数に変換するステップを含んでもよい(事前に奇数でなかった場合)。その数が素数でなければ、ブロック78において推定素数の修正が行われる。上述のように、最初に生成された推定素数の修正ステップはその数を2だけ増分するステップを含んでよい。次いで、本方法は素数判定の再検査を行うために元のブロック74と76へ戻る。その数が素数でないことが再び判明した場合、その数は4だけ(次いで6、8、10等々だけ)増分され、それから素数が発見されるまで再検査が行われる。上記とは別に、この修正処理は、素数判定検査が満たされるまで最初に生成された推定素数の最後のXバイトを再生成するステップを含むことができる。
ひとたび素数pとqとの双方について検知が行われると、ブロック80において素数を用いてRSAキーが生成される。
さらに図5A及び図5Bを参照すると、上記のアルゴリズムを実行する例示のコードを示すフローチャートが示されている。さらに詳細には、図5Aが素数の生成ステップを示す図であるのに対して、図5Bは公開キーと秘密キーの生成ステップを示す図である。コンピュータプログラミングの一般の当業者であれば、本明細書における開示に照らして図5A及び図5Bに示されているステップは容易に理解できるものであるため、個々のステップに関するさらなる詳細については記載しない。
したがって、RSA秘密キーと公開キーとの生成のために利用される素数を電子装置内において生成することが可能となり、その結果、素数(したがってRSAキー)はその特定のデバイスについて常に同じ素数となる。しかし、素数の生成がモバイル電話機の一意のキーに基づいて行われるため、素数(したがってRSAキー)はデバイス間で異なるものとなる。
本発明の特定の実施形態をここに開示した。当業者であれば、本発明が別の環境において別の用途を有するものであることは直に認識できよう。実際、多くの実施形態及び実装構成が可能である。特許請求の範囲は決して本発明の範囲を前記した特定の実施例に限定するものではない。さらに、「〜のための手段」なる記載は構成要素および特許請求の範囲の「手段プラス機能」の表示を喚起するものであるが、「〜のための手段」なる記載を特に使用していない構成要素は、たとえ特許請求の範囲が「手段」なる用語を含む場合であっても手段プラス機能要素として解釈すべきではない。
本発明のコンピュータプログラム要素は、ハードウェアと、ソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード、その他を含む)との少なくともいずれかの中に組み込まれてもよい。本発明はコンピュータプログラム製品の形をとるものであってもよく、該製品は、命令実行システムによりまたは命令実行システムと関連して使用する媒体内において実施されたコンピュータ使用可能またはコンピュータ読取可能プログラム命令、「コード」または「コンピュータプログラム」を有するコンピュータ使用可能またはコンピュータ読取可能記憶媒体により実施することができる。本明細書の文脈では、コンピュータ使用可能なまたはコンピュータ読取り可能な媒体は、命令実行システム、機器、または装置によりまたはこれらに関して用いるためのプログラムを含み、記憶し、通信し、伝播し、または転送することのできる任意の媒体とすることができる。コンピュータ使用可能なまたはコンピュータ読取り可能な媒体は、例えば、電子的、磁気的、光学的、電磁的、赤外線、半導体のシステム、機器、装置、インターネットなどの伝播媒体であってもよいが、これらに限定されない。注意すべきことであるが、コンピュータ使用可能なまたはコンピュータ読取り可能な媒体は、プログラムを印刷することができる紙や他の適当な媒体でもよい。なぜならプログラムは、例えば紙または他の媒体を光学的に走査することにより電子的に捕捉して、適当な方法で編集し、変換し、またはその他の処理をすることができるからである。ここに述べたコンピュータプログラム製品及び任意のソフトウェアやハードウェアは、例示の実施形態において本発明の機能を実行する種々の手段を形成するものである。
或る好適な(単複の)実施形態と関連して、本発明を示し、説明したが、本明細書及び付属図面を読み、理解するとき、均等な変更及び修正が他の当業者の心に浮かぶであろうことは明らかである。上記記載の要素(構成要素、アセンブリ、装置、構成等)により実行される、特に種々の機能に関して、このような要素を記述するのに用いる用語(「手段」への言及を含む)は、別段の指示がされていなければ、たとえ、本明細書に例示されている本発明の(単複の)例示の実施形態において機能を実行する開示された構造と構造的に同等でなくても、記載された要素の指定された(機能的に均等な)機能を実行する任意の要素に対応することを意図するものである。さらに、複数の例示の実施形態のうちの1つだけに関して、本発明の特定の特徴について上述したかもしれないが、このような特徴は、所望のように、及び、所定の用途か、又は特別の用途かのいずれかの用途にとって好都合なものとなるように、その他の実施形態の1以上の別の特徴と組み合わせることが可能である。
Claims (12)
- 暗号化データを他の電子装置と交換するための携帯電子装置であって、
プロセッサ(22)及びメモリ(16)と、
前記プロセッサ及び前記メモリと動作可能に結合された素数生成回路(12a)とを備え、該素数生成回路は、
前記電子装置内の一意の格納済みデータに基づいて少なくとも2つの素数を生成する論理回路を含むと共に、前記少なくとも2つの素数は常に同じ少なくとも2つの素数である、
ことを特徴とする携帯電子装置。 - 前記素数生成回路は、
前記少なくとも2つの推定素数が偶数であれば、前記少なくとも2つの推定素数を奇数に変換する論理回路と、
前記少なくとも2つの推定素数が素数であるかどうかを判定する論理回路と、
をさらに含むことを特徴とする請求項1に記載の携帯電子装置。 - 前記少なくとも2つの推定素数が素数であるかどうかを判定する前記論理回路は、
前記少なくとも2つの推定素数を素数判定のために検査を行う論理回路と、
前記それぞれの推定素数が前記素数判定検査に失敗した場合、前記少なくとも2つの推定素数のうちの1つの推定素数を2だけ増分する論理回路と、
前記増分された推定素数を用いて前記判定ステップを反復する論理回路と、
を含むことを特徴とする請求項2に記載の携帯電子装置。 - 前記少なくとも2つの推定素数が素数であるかどうかを判定する前記論理回路は、
前記少なくとも2つの推定素数を素数判定のために検査する論理回路と、
前記素数判定検査に失敗した前記少なくとも2つの推定素数のうちの推定素数の所定数の最下位のバイトを再生成する論理回路と、
前記推定素数が素数になるまで、素数判定検査と前記最下位のバイトの前記再生成とを反復する論理回路と、
を含むことを特徴とする請求項2ないし3のいずれか1項に記載の携帯電子装置。 - 前記少なくとも2つの素数を生成する際に利用されたパラメータをキャッシュする論理回路と、後続するRSAキーの生成中に前記キャッシュされたパラメータを再使用する論理回路とをさらに備えることを特徴とする請求項1ないし4のいずれか1項に記載の携帯電子装置。
- 前記少なくとも2つの素数に基づいて、前記電子装置内において公開及び秘密RSAキーを生成するように作動するRSA生成回路をさらに備えることを特徴とする請求項1ないし5のいずれか1項に記載の携帯電子装置。
- 前記携帯電子装置はモバイル電話機(10)であることを特徴とする請求項1ないし5のいずれか1項に記載の携帯電子装置。
- 携帯電子装置内においてRSAキーを生成する方法であって、
前記電子装置内の一意の格納済みデータに基づいて少なくとも2つの素数を生成するステップを有し、前記少なくとも2つの素数は常に同じ少なくとも2つの素数であると共に、
秘密及び公開RSAキーを生成するために前記少なくとも2つの素数を用いる
ことを特徴とする方法。 - 生成するステップは、
少なくとも2つの推定素数を生成するステップと、
前記少なくとも2つの推定素数の前記それぞれが偶数であれば、前記少なくとも2つの推定素数のそれぞれを奇数に変換するステップと、
前記少なくとも2つの推定素数が素数であるかどうかを判定するステップと、
を含むことを特徴とする請求項8に記載の方法。 - 前記少なくとも2つの推定素数が素数であるかどうかを判定するステップは、
素数判定のために前記少なくとも2つの推定素数を検査するステップと、
前記それぞれの推定素数が素数判定検査に失敗したとき、前記少なくとも2つの推定素数のそれぞれを2だけ増分するステップと、
前記それぞれの増分された推定素数を用いて前記判定ステップを反復するステップと、
を含むことを特徴とする請求項9に記載の方法。 - 前記少なくとも2つの奇数が素数であるかどうかを判定するステップは、
素数判定のために前記少なくとも2つの奇数を検査するステップと、
前記それぞれの奇数が素数でないとき、前記少なくとも2つの推定素数の所定数の最後のバイトを再生するステップと、
前記少なくとも2つの奇数が素数になるまで前記検査ステップと再生ステップとを反復するステップと、
を含むことを特徴とする請求項9ないし10のいずれか1項に記載の方法。 - 前記少なくとも2つの素数を生成する際にパラメータをキャッシュするステップと、後続するRSAキーの生成中に前記キャッシュされたパラメータを再使用するステップとをさらに含むことを特徴とする請求項8ないし11のいずれか1項に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/763,564 US8472620B2 (en) | 2007-06-15 | 2007-06-15 | Generation of device dependent RSA key |
US11/763,564 | 2007-06-15 | ||
PCT/IB2007/003931 WO2008152440A1 (en) | 2007-06-15 | 2007-12-14 | Generation of device dependant rsa key |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010530081A true JP2010530081A (ja) | 2010-09-02 |
Family
ID=39338418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010511734A Pending JP2010530081A (ja) | 2007-06-15 | 2007-12-14 | デバイス依存rsaキーの生成 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8472620B2 (ja) |
EP (1) | EP2168302A1 (ja) |
JP (1) | JP2010530081A (ja) |
CN (1) | CN101682507A (ja) |
BR (1) | BRPI0721813A2 (ja) |
TW (1) | TWI366374B (ja) |
WO (1) | WO2008152440A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016535310A (ja) * | 2013-08-30 | 2016-11-10 | クアルコム,インコーポレイテッド | 素数の生成および記憶のための方法および装置 |
JP2021534443A (ja) * | 2018-08-07 | 2021-12-09 | ヘイヴンテック プロプライエタリー リミテッドHaventec Pty Ltd | データをセキュアにするための方法およびシステム |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7970381B2 (en) * | 2007-08-13 | 2011-06-28 | General Motors Llc | Method of authenticating a short message service (sms) message |
US8077869B2 (en) * | 2008-04-09 | 2011-12-13 | Lockheed Martin Corporation | Organic keyed encryption |
FR2946207A1 (fr) * | 2009-05-28 | 2010-12-03 | Proton World Internat Nv | Protection d'une generation de nombres premiers pour algorithme rsa |
CN103180897B (zh) * | 2010-10-21 | 2016-11-09 | 3D声学控股有限公司 | 声音漫射发生器 |
CN101969640B (zh) * | 2010-11-15 | 2012-10-10 | 成都信息工程学院 | 一种用于移动终端设备的计算密钥生成方法 |
TWI483606B (zh) * | 2011-01-27 | 2015-05-01 | Chi Mei Comm Systems Inc | 手機檔案保護系統及方法 |
CN104025500B (zh) * | 2011-12-29 | 2017-07-25 | 英特尔公司 | 使用在物理上不可克隆的函数的安全密钥存储 |
US9182943B2 (en) | 2013-03-08 | 2015-11-10 | Qualcomm Incorporated | Methods and devices for prime number generation |
CN103780600B (zh) * | 2013-11-01 | 2017-01-11 | 国家电网公司 | 一种基于rsa公钥密码的离线电力交易信息系统授权方法 |
KR101745706B1 (ko) * | 2015-12-18 | 2017-06-09 | 주식회사 케이티 | 생체 정보 기반 인증 장치 그리고 이의 동작 방법 |
CN106850212A (zh) * | 2017-03-06 | 2017-06-13 | 西安电子科技大学 | 基于rsa密码算法的密钥生成系统及方法 |
CN107579815B (zh) * | 2017-08-18 | 2020-11-20 | 瑞芯微电子股份有限公司 | 一种安全烧写密钥的方法及其装置 |
CN109633546A (zh) * | 2018-12-18 | 2019-04-16 | 中国电子科技集团公司第四十九研究所 | 一种加密信息簇式高保真海上目标探测装置 |
US11411732B2 (en) * | 2020-04-17 | 2022-08-09 | Juniper Networks, Inc. | Prime number generation for encryption |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57502145A (ja) * | 1980-12-15 | 1982-12-02 | ||
JP2005506758A (ja) * | 2001-10-01 | 2005-03-03 | ゲンケイ アクティーゼルスカブ | 一時的に暗号鍵を作成することによる、デジタル認証、暗号化、署名のためのシステム、携帯端末、及び方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4736423A (en) | 1985-04-30 | 1988-04-05 | International Business Machines Corporation | Technique for reducing RSA Crypto variable storage |
WO1997004378A1 (en) * | 1995-07-20 | 1997-02-06 | Dallas Semiconductor Corporation | Microcircuit with memory that is protected by both hardware and software |
US5717756A (en) * | 1995-10-12 | 1998-02-10 | International Business Machines Corporation | System and method for providing masquerade protection in a computer network using hardware and timestamp-specific single use keys |
DE19837405A1 (de) * | 1998-08-18 | 2000-02-24 | Siemens Ag | Verfahren und Anordnung zur Bildung eines geheimen Kommunikationsschlüssels zu einem zuvor ermittelten asymmetrischen kryptographischen Schlüsselpaar |
FR2811442B1 (fr) | 2000-07-10 | 2002-09-13 | Gemplus Card Int | Procede de generation d'une cle electronique a partir d'un nombre premier compris dans un intervalle determine et dispositif de mise en oeuvre du procede |
TWI244610B (en) * | 2001-04-17 | 2005-12-01 | Matsushita Electric Ind Co Ltd | Information security device, prime number generation device, and prime number generation method |
FR2841411B1 (fr) | 2002-06-19 | 2004-10-29 | Gemplus Card Int | Procede de generation de cles electroniques pour procede de crytographie a cle publique et objet portatif securise mettant en oeuvre le procede |
CN1795639A (zh) * | 2003-05-22 | 2006-06-28 | 松下电器产业株式会社 | 版权保护系统,模幂运算设备和模幂运算方法 |
WO2005064843A1 (ja) | 2003-12-26 | 2005-07-14 | Matsushita Electric Industrial Co.,Ltd. | 素数算出装置及び方法並びに鍵発行システム |
CN1898897A (zh) | 2003-12-26 | 2007-01-17 | 松下电器产业株式会社 | 素数计算装置及方法、以及密钥发行系统 |
-
2007
- 2007-06-15 US US11/763,564 patent/US8472620B2/en not_active Expired - Fee Related
- 2007-12-14 EP EP07859059A patent/EP2168302A1/en not_active Withdrawn
- 2007-12-14 JP JP2010511734A patent/JP2010530081A/ja active Pending
- 2007-12-14 BR BRPI0721813-3A2A patent/BRPI0721813A2/pt not_active IP Right Cessation
- 2007-12-14 WO PCT/IB2007/003931 patent/WO2008152440A1/en active Application Filing
- 2007-12-14 CN CN200780053302A patent/CN101682507A/zh active Pending
-
2008
- 2008-04-15 TW TW097113687A patent/TWI366374B/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57502145A (ja) * | 1980-12-15 | 1982-12-02 | ||
JP2005506758A (ja) * | 2001-10-01 | 2005-03-03 | ゲンケイ アクティーゼルスカブ | 一時的に暗号鍵を作成することによる、デジタル認証、暗号化、署名のためのシステム、携帯端末、及び方法 |
Non-Patent Citations (4)
Title |
---|
CSNG199800887006; 後藤 寧子 他: 'RSA暗号鍵高速生成法' 電子情報通信学会論文誌 第J72-D-I巻 第3号, 19890325, p.213〜220, 社団法人電子情報通信学会 * |
JPN6012031244; 後藤 寧子 他: 'RSA暗号鍵高速生成法' 電子情報通信学会論文誌 第J72-D-I巻 第3号, 19890325, p.213〜220, 社団法人電子情報通信学会 * |
JPN6012031246; Mohammad Peyravian et al: 'Generation of RSA Keys That Are Guaranteed to be Unique for Each User' Computers & Security Vol. 19 Issue 3, 20000301, p. 282-288 * |
JPN6012031250; Marc Joye et al: 'Fast Generation of Prime Numbers on Portable Devices: An Update' [online] , 2006 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016535310A (ja) * | 2013-08-30 | 2016-11-10 | クアルコム,インコーポレイテッド | 素数の生成および記憶のための方法および装置 |
JP2021534443A (ja) * | 2018-08-07 | 2021-12-09 | ヘイヴンテック プロプライエタリー リミテッドHaventec Pty Ltd | データをセキュアにするための方法およびシステム |
Also Published As
Publication number | Publication date |
---|---|
US20080310634A1 (en) | 2008-12-18 |
WO2008152440A1 (en) | 2008-12-18 |
BRPI0721813A2 (pt) | 2014-02-18 |
TWI366374B (en) | 2012-06-11 |
CN101682507A (zh) | 2010-03-24 |
TW200849927A (en) | 2008-12-16 |
US8472620B2 (en) | 2013-06-25 |
EP2168302A1 (en) | 2010-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010530081A (ja) | デバイス依存rsaキーの生成 | |
US11864263B2 (en) | Wireless connection establishing methods and wireless connection establishing apparatuses | |
EP2011339B1 (en) | Method and system for managing audio data | |
CN104349288B (zh) | 一种消息传输方法及装置 | |
CN106712932A (zh) | 密钥管理方法、装置及系统 | |
CN104821937A (zh) | 令牌获取方法、装置及系统 | |
KR20110118975A (ko) | 휴대용 단말기에서 펌웨어 업데이트를 수행하기 위한 장치 및 방법 | |
CN104378801A (zh) | 接入无线网络的方法及装置 | |
TW201129000A (en) | Automatic audio transition | |
US20080133775A1 (en) | Method, Apparatus and Computer Program Product for Providing Intelligent Synchronization | |
CN104333643B (zh) | 添加联系人的方法、系统及终端 | |
CN109525372A (zh) | 终端数据传输方法、装置及存储介质 | |
Zeqiri et al. | Comparison of Algorithms and Technologies 2G, 3G, 4G and 5G | |
US20080254835A1 (en) | System and method for a portable communication device to ... | |
CN108028754B (zh) | 加密、解密方法、装置及终端 | |
CN108650265B (zh) | 文件的下载方法及其装置、存储介质、电子终端 | |
JP4280272B2 (ja) | 情報処理装置 | |
CN104506575B (zh) | 推送主题的方法及装置 | |
CN105682088A (zh) | 一种无线网络共享方法及终端 | |
TWI451267B (zh) | 資料傳輸系統以及方法 | |
US9003180B2 (en) | Data encryption and decryption | |
JP2010004170A (ja) | 情報処理装置 | |
JP4756944B2 (ja) | 通信システムおよび通信システムを構成する端末、サーバ、これらを実現するための通信方法、およびプログラム | |
US11031828B2 (en) | Method and apparatus for receiving and transmitting data information | |
JP4491012B2 (ja) | 携帯電話機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120622 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121116 |