(57)【特許請求の範囲】
【請求項１】
モバイル・コンピュータティング・デバイスによって、秘密およびＡＳＣＩＩ符号化パスワードを受信し、
前記モバイル・コンピュータティング・デバイスのプロセッサによって、ハフマン圧縮アルゴリズムを用いて、前記ＡＳＣＩＩ符号化パスワードを圧縮し、ここにおいて、前記ハフマン圧縮アルゴリズムは、 前記ＡＳＣＩＩ符号化パスワードの各文字を、前記ＡＳＣＩＩ符号化パスワードの中の当該文字位置に基づいて、前記ＡＳＣＩＩ符号化パスワードの他の文字とは別個に圧縮し、
前記モバイル・コンピュータティング・デバイスの前記プロセッサによって、前記秘密を暗号化キーとして用いて、圧縮されたＡＳＣＩＩ符号化パスワードを暗号化し、
前記モバイル・コンピュータティング・デバイスのメモリによって、圧縮され暗号化された前記ＡＳＣＩＩ符号化パスワードを格納する、方法。
【請求項２】
前記ハフマン圧縮アルゴリズムを達成するために用いるハフマン表は、パスワードに特定の文字が現れる確率を記述している、請求項１に記載の方法。
【請求項３】
前記圧縮されたＡＳＣＩＩ符号化パスワードは、暗号化される前にパッドを入れられる、請求項１に記載の方法。
【請求項４】
前記ＡＳＣＩＩ符号化パスワードの端を示すために、前記モバイル・コンピュータティング・デバイスによって、特定の文字を前記ＡＳＣＩＩ符号化パスワードに追加するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記モバイル・コンピュータティング・デバイスによって、追加されたＡＳＣＩＩ符号化パスワードに、特定の文字のあとにランダムなビット数を追加するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記秘密はＰＩＮ番号を含む、請求項１に記載の方法。
【請求項７】
プロセッサと、前記プロセッサにより実行されたときに、コンピューティング装置を次のように作動させる命令を格納しているメモリとを備えたコンピューティング装置であって、
秘密およびＡＳＣＩＩ符号化パスワードを受信し、ハフマン圧縮アルゴリズムを用いて、前記ＡＳＣＩＩ符号化パスワードを圧縮し、ここにおいて、前記ハフマン圧縮アルゴリズムは、 前記ＡＳＣＩＩ符号化パスワードの各文字を、前記ＡＳＣＩＩ符号化パスワードの中の当該文字の位置に基づいて、前記ＡＳＣＩＩ符号化パスワードの他の文字とは別個に圧縮し、
前記秘密を暗号化キーとして用いて圧縮されたＡＳＣＩＩ符号化パスワードを暗号化し、そして、圧縮され暗号化された前記ＡＳＣＩＩ符号化パスワードを前記メモリに格納する、コンピューティング装置。
【請求項８】
前記ハフマン圧縮アルゴリズムを達成するために用いるハフマン表は、特定の文字がパスワードの中に現れる確率を記述している、請求項７に記載のコンピューティング装置。
【請求項９】
前記圧縮されたＡＳＣＩＩ符号化パスワードは、暗号化される前にパッドを入れられる、請求項７に記載のコンピューティング装置。
【請求項１０】
前記メモリは、前記プロセッサにより実行されたときに、コンピューティング装置において前記ＡＳＣＩＩ符号化パスワードの端を示すために、特定の文字を前記ＡＳＣＩＩ符号化パスワードに追加する、１または複数の追加の命令を格納している、請求項７に記載のコンピューティング装置。
【請求項１１】
前記メモリは、前記プロセッサにより実行されたときに、前記コンピューティング装置を、追加されたＡＳＣＩＩ符号化パスワードに、特定の文字のあとにランダムなビット数を追加するように作動させる１または複数の追加的な命令を格納している、請求項１０に記載のコンピューティング装置。
【請求項１２】
前記秘密はＰＩＮ番号を含む、請求項７に記載のコンピューティング装置。
【請求項１３】
コンピュータ実行可能命令を格納している一つ以上のコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、データ処理システムの一つ以上のプロセッサにより実行されたときに、当該データ処理システムが、
伝送媒体を通して、秘密およびＡＳＣＩＩ符号化パスワードを受信し、
ハフマン圧縮アルゴリズムを用いて、前記ＡＳＣＩＩ符号化パスワードを圧縮し、ここにおいて、前記ハフマン圧縮アルゴリズムは、 前記ＡＳＣＩＩ符号化パスワードの各文字を、前記ＡＳＣＩＩ符号化パスワードの中の当該文字の位置に基づいて、前記ＡＳＣＩＩ符号化パスワードの他の文字とは別個に圧縮し、
前記秘密を暗号化キーとして用いて、圧縮されたＡＳＣＩＩ符号化パスワードを暗号化し、そして、
圧縮され暗号化された前記ＡＳＣＩＩ符号化パスワードをメモリに格納するように機能させる、コンピュータ可読記憶媒体。
【請求項１４】
前記ハフマン圧縮アルゴリズムを達成するために用いるハフマン表は、パスワードに特定の文字が現れる確率を記述している、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記データ処理システムの一つ以上のプロセッサにより実行されたときに、前記ＡＳＣＩＩ符号化パスワードの端を示すために、前記データ処理システムが、特定の文字を前記ＡＳＣＩＩ符号化パスワードに追加する１または複数の追加の命令を格納している、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記データ処理システムの一つ以上のプロセッサにより実行されたときに、前記データ処理システムを、追加されたＡＳＣＩＩ符号化パスワードに、特定の文字のあとにランダムなビット数を追加するように作動させる１または複数の追加的な命令を格納している、請求項１５に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピューティング・デバイスにおけるパスワードの使用に関するものである。
【背景技術】
【０００２】
デバイス（例えばスマートフォンまたはタブレットＰＣ）をクラウドのサービス、または企業のサービスに容易につなげるために、パスワードまたは他の秘密をデバイスに格納することが有用である。しかしながら、デバイスが盗まれた場合、パスワードが悪意をもって回復されるかもしれないため、パスワードを格納することは危険である。
【０００３】
この危険は、パスワードを保護すること、そして、暗号化の鍵としての短い秘密を用いて暗号化されたビット列としてそのパスワードを格納することによって、減らされる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、デバイスが紛失した場合、攻撃者は、例えばパスワードを解読するためにあらゆる可能性のある短い秘密を使用して、これらの解読されたパスワードのうちどれがパスワードのように見えるかを決定するという総当たり攻撃（brute force attack）に基づいてパスワードを推測することが可能となる。したがって、パスワードをオフラインで、より安全に保存したいという要望がある。
【課題を解決するための手段】
【０００５】
以下に、本発明のさまざまな側面の簡単な概要を提示して説明する。本概要は広範な全体像ではないし、重要なもしくは欠かせない要素を特定することを意図しておらず、特許請求の範囲を正確に説明することを意図してもいない。以下の概要は、以下に記載するより詳細な説明の導入として、単にいくつかの概念を簡単な形で提示するにすぎない。
【０００６】
圧縮を使用して、パスワードへの攻撃を阻害するための方法および装置について説明する。利用者パスワードは、モバイル・コンピューティング・デバイスに格納される。パスワードは、例えば、ハフマン圧縮アルゴリズムを使用して圧縮され、キーとして秘密を使用して、暗号化される。利用者パスワードは、圧縮され暗号化されたキーとして格納される。例えば、あらゆる可能性がある短い秘密を使用した、総当たり攻撃により、攻撃者が本当のパスワードを選択するには、あまりに多くの候補を明らかにしなければならないように、圧縮され暗号化されたパスワードを、格納できる。
【０００７】
実施例において、使用するハフマン圧縮アルゴリズムとして、ハフマン圧縮アルゴリズム、文字ごとの（character-by-character）ハフマン圧縮アルゴリズム、およびツリー・ベースのハフマン圧縮アルゴリズムのいずれか１つを用いてもよい。例えば、ハフマン圧縮アルゴリズムのために使用する表は、パスワードに特異な文字が現れる確率を記述する。他の実施形態では、圧縮された長いパスワードは、暗号化の前にパッドを入れられることが可能である。
【０００８】
以上および追加の側面は、以下のさらに詳細に述べる本開示により認識されるであろう。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に従って用いられるコンピュータシステム・アーキテクチャを表す図解図である。
【図２】長いパスワードを暗号化するシステムを示すブロック図である。
【図３】長いパスワードを暗号化するための実施例に係る方法のステップを示すフローチャートである。
【図４】暗号化されたパスワードを解読するための実施例に係る方法のステップを示すフローチャートである。
【図５】長いパスワードを圧縮して、暗号化するシステムを示すブロック図である。
【図６】長いパスワードを圧縮して、暗号化するための実施例に係る方法のステップを示すフローチャートである。
【図７】圧縮され暗号化されたパスワードを解読するための実施例に係る方法のステップを示すフローチャートである。
【発明を実施するための形態】
【００１０】
本明細書で説明する本発明の側面およびその利点は、添付の図面を考慮して以下の説明を参照すると、より完全な理解が得られる。図面において、同じ参照番号は同じ特徴を示す。
【００１１】
さまざまな実施形態を示す以下の説明において、上述のとおり特定され、例示により本明細書で説明される各側面を実施する様々な実施形態を、添付の図面を参照して説明する。本明細書で説明する範囲を逸脱することなく、他の実施形態を利用し、構造および機能に変形を加えることが可能であることは理解されるべきである。すなわち、発明のさまざまな側面は、他の実施形態が利用可能であり、さまざまな異なる方法で実施または実行することが可能である。
【００１２】
本明細書で使用される表現および用語は、説明目的であり、制限と見なしてはならないことが理解されるべきである。むしろ、本明細書で使用される表現および用語には、そのもっとも広い解釈および意味が与えられるべきである。「含む（include）」および「備える(comprise)」ならびにその変形の使用は、これ以降で挙げられるアイテムおよびその等価物ならびに追加アイテムおよびその等価物を包含することが意図されている。「取り付けられている（mounted）」、「接続されている（connected）」、「連結されている（coupled）」、「配置されている（positioned）」、「係合されている（engaged）」および同様な用語の使用は、直接および間接的な両方の取り付け、接続、連結、配置および係合を含むことが意図されている。
【００１３】
〈コンピューティングアーキテクチャ〉
コンピュータソフトウェア、ハードウェアおよびネットワークは、独立型の（standalone）環境、ネットワーク化された環境、リモートアクセス環境（別名、リモートデスクトップ）、仮想化された環境、および／またはクラウド・ベースの環境を含む様々な異なるシステム環境において利用できる。
【００１４】
図１は、独立型および／またはネットワーク化された環境において、本願明細書に記載されている一つ以上の態様を実施するために用いることができるシステムアーキテクチャおよびデータ処理装置の１つの実施例を例示する。
【００１５】
さまざまなネットワークノード１０３、１０５、１０７、および１０９は、広域ネットワーク（ＷＡＮ）１０１（例えばインターネット）を介して相互接続できる。また、個人的なイントラネット、協同ネットワーク、ＬＡＮ、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイヤレス・ネットワーク、個人ネットワーク（ＰＡＮ）、などを含む他のネットワークを追加的にあるいは代替的に用いることもできる。
【００１６】
ネットワーク１０１は、図示目的のためにあって、より少数のあるいは追加的なコンピュータ・ネットワークと置き換えられることが可能である。ローカル・エリア・ネットワーク（ＬＡＮ）は、一つ以上の公知のＬＡＮトポロジを有することができて、様々な異なるプロトコル（例えばＥｔｈｅｒｎｅｔ（登録商標））の一つ以上を使用できる。デバイス１０３、１０５、１０７、１０９および他のデバイス（図示せず）は、ツイストペア線、同軸ケーブル、光ファイバ、電波または他の通信メディアを介して一つ以上のネットワークに接続することができる。
【００１７】
「ネットワーク」という本明細書で用いられ図面で参照される用語は、遠隔記憶装置が一つ以上の通信経路を介して一緒に結合されているシステムだけでなく、記憶能力を有するシステムに随時連結できるスタンドアロン・デバイスにも用いられる。従って、「ネットワーク」という語は、「物理ネットワーク」だけでなく一つのエンティティに適用され、すべての物理ネットワークに存在するデータから成る「コンテントネットワーク」も含む。
【００１８】
各コンポーネントには、データサーバ１０３、ウェブサーバ１０５およびクライアント・コンピュータ１０７、１０９が含まれていてもよい。データサーバ１０３は、本願明細書において記載される一つ以上の態様を実行するために、データベースおよび制御ソフトウェアへの全体のアクセス、コントロールおよび管理を提供する。データサーバ１０３は、ユーザと対話し、要請したデータを取得するためにウェブサーバ１０５に接続することができる。あるいは、データサーバ１０３は、インターネットに直結してウェブサーバ自体として作用することもできる。データサーバ１０３は、直接的または間接的な接続を介して、または、若干の他のネットワークを介して、ウェブサーバ１０５に、ネットワーク１０１（例えば、インターネット）経由で接続されてもよい。
【００１９】
ユーザは、例えば、リモートコンピュータ１０７、１０９においてウェブサーバ１０５がホストになる一つ以上の外部に露出したウェブサイトを経て、データサーバ１０３に接続するためにウェブ・ブラウザを使用してデータサーバ１０３と対話できる。クライアント・コンピュータ１０７、１０９は、データサーバ１０３と協力してそこに格納されるデータにアクセスするために用いられることが可能であり、また他のために用いられることも可能である。例えばユーザは、クライアント装置１０７から公知のようにインターネット・ブラウザを使用して、またはコンピュータ・ネットワーク（例えばインターネット）の上でウェブサーバ１０５および／またはデータサーバ１０３と通信するソフトウェアアプリケーションを実行することによって、ウェブサーバ１０５にアクセスすることができる。
【００２０】
サーバおよびアプリケーションは、同じ物理装置に結合されることができ、仮想アドレスまたは論理アドレスを別々に保持することができ、または別々の物理装置に存在することができる。
【００２１】
図１は採用され得るネットワークアーキテクチャの１つの実施例を示す。しかし、使用される特定のネットワークアーキテクチャおよびデータ処理装置は変更されてもよく、本願明細書において更に記載されるように、それらが提供する機能性に対して二次的なことであるとを、当業者は認めるであろう。例えば、ウェブサーバ１０５およびデータサーバ１０３により提供されるサービスは、単一のサーバに結合されることができる。
【００２２】
各コンポーネント１０３、１０５、１０７、１０９は、周知のコンピュータ、サーバまたはデータ処理装置の任意のタイプであってもよい。データサーバ１０３は、例えば、データサーバ１０３の全作動を制御しているプロセッサ１１１を含んでいてもよい。データサーバ１０３はさらに、ＲＡＭ  １１３、ＲＯＭ  １１５、ネットワークインターフェース１１７、入出力インタフェース１１９（例えば、キーボード、マウス、表示、プリンタなど）およびメモリ１２１を含むことができる。
【００２３】
Ｉ／Ｏ  １１９は、データまたはファイルを読み出し、書き込み、表示しおよび／または、印刷するための様々なインタフェースユニットおよびドライブを含むことができる。メモリ１２１はさらに、データ処理装置１０３の全作動を制御するためのオペレーティングシステムソフトウェア１２３を格納していてもよく、データサーバ１０３に本願明細書において説明されている各態様を実行するように指示するための制御ロジック１２５を格納していてもよく、また本願明細書において説明されている態様と連動して使われるかまたは使われないかもしれない、二次的な、サポート用のおよび／または、他の機能性を提供する他のアプリケーションソフトウェア１２７を格納していてもよい。
【００２４】
制御ロジックは、本明細書において、「データ・サーバ・ソフトウェア１２５」とも称される。データ・サーバ・ソフトウェアの機能性とは、当該制御ロジックに符号化される規則に基づいて自動的になされる動作または決定、システムへの入力を行うユーザにより手動でなされる動作または決定、および／またはユーザー入力（例えば、問合せ、データ更新など）とそれに基づく自動処理の組合せに基づく動作または決定のことをいう。
【００２５】
メモリ１２１は本願明細書において説明されている一つ以上の態様の実施において使用されるデータを格納することができ、第１のデータベース１２９および第２のデータベース１３１を含んでいる。いくつかの実施形態では、第１のデータベースは第２のデータベース（例えば、別々の表、報告などとして）を含むことができる。すなわち、システム設計に応じて、情報は単一のデータベースに格納されることもでき、または異なる論理的な仮想のまたは物理的なデータベースに分割されることもできる。
【００２６】
デバイス１０５、１０７、１０９は、デバイス１０３について述べたのと類似の、もしくは異なるアーキテクチャを有していてもよい。例えば、本願明細書において説明されているデータ処理装置１０３（またはデバイス１０５、１０７、１０９）の機能性が複数のデータ処理装置全体に広げられることが可能であることを、当業者は認めるだろう。すなわち、処理負荷を複数のコンピュータ全体に配布すること、地理的な位置、ユーザ・アクセスレベル、サービス品質（ＱｏＳ）などに基づいてトランザクションを分離すること、などである。
【００２７】
本発明の一つ以上の態様は、コンピュータが使用可能であるか読み込み可能なデータおよび／またはコンピュータが実行可能な命令に、一つ以上のコンピュータまたは他のデバイスにより実行される、例えば以下に述べるように一つ以上のプログラムモジュールの形で、組み込まれてもよい。
【００２８】
通常、プログラムモジュールは、コンピュータまたは他のデバイスのプロセッサにより実行されたときに、特定のタスクを遂行するかまたは特定の抽象データのタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。モジュールは、実行のためにその後コンパイルされるソースコード・プログラミング言語で書き込まれてもよく、またはスクリプト言語（例えばＨＴＭＬまたはＸＭＬ）で書き込まれてもよい。
【００２９】
コンピュータ実行可能命令は、コンピュータ可読媒体（例えば不揮発性記憶デバイス）に保存されることができる。適切なコンピュータ可読の記憶媒体には、ハードディスク、ＣＤ―ＲＯＭ、光記憶デバイス、磁気記憶装置および／またはいかなるそれらの組み合わせも含むものも利用できる。加えて、ここで述べられているデータもしくはイベントを表すさまざまな伝送（非記憶）媒体は、例えば金属線、光ファイバおよび／または無線伝送媒体（例えば、空気または空間）といった信号伝送媒体を進行する電磁波の形で、送信元と送信先の間を伝送される。
【００３０】
本願明細書において説明されているさまざまな態様は、方法、データ処理システムまたはコンピュータ・プログラム製品として実現されることができる。従って、さまざまな機能性は、全体的にあるいは部分的に、ソフトウェア、ファームウェアおよび／またはハードウェアまたはハードウェア同義語（例えば集積回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）など）に具体化されることができる。本願明細書において説明されている一つ以上の態様を実施するために、特定のデータ構造をより効果的に用いることができる。そして、この種のデータ構造は本願明細書において説明されているコンピュータ実行可能命令およびコンピュータが使用可能なデータの範囲内で、考察される。
【００３１】
〈実施例〉
一つの実施例において、タブレット、スマートフォンなどのモバイル機器は、モバイル機器のユーザについての個人情報を格納していてもよい。例えば、ユーザが一つまたはそれ以上の別々のサービス（例えばクラウドサービス）と対話できるように、ユーザについての識別情報を、格納してもよい。この格納された識別情報は、ユーザのためのパスワード、ユーザー名または他の機密情報を含んでいてもよい。しかしながら、最新の（modern day）システムは、記憶させた情報をしばしば暗号化する。例えば、短い秘密（short secret）、例えばＰＩＮ番号を使用する。
【００３２】
図２は長いパスワードを暗号化するシステムのブロック図を示し、図３は長いパスワードを暗号化するための実施例に係る各ステップを示すフローチャートである。いかなる適切なコンピューティング装置（例えばデバイス１０７および１０９）も、図３の方法を実施することができる。
【００３３】
図３の方法は、短い秘密が受け取られるステップ３０２から始まる。例えば、短い秘密２０２が受け取られる。短い秘密は、ＰＩＮ（例えば、４―８数字）から成っていてもよい。これは例示であり、いかなる適切な短い秘密も採用することができる。
【００３４】
図３の方法は、ステップ３０２から長いパスワードが受け取られるステップ３０４に移る。例えば、長いパスワード２０１が受け取られてもよい。長いパスワードは、別のサービスに対するユーザのパスワードでもよい。実施例において、長いパスワードは、８−１２の英数字および／またはシンボルを含むことができる。これは例示であり、いかなる適切な長いパスワードも採用することができる。
【００３５】
図３の方法では、ステップ３０４から長いパスワードが短い秘密をキーとして使用して暗号化されるときに、ステップ３０６に移る。長いパスワードは、暗号化のためのビット列に変換される。例えば、パスワードはＡＳＣＩＩまたはＵｎｉｃｏｄｅフォーマットであってもよく、それがビット列に変換される。ある実施形態において、ＡＥＳ１２８ビット暗号化、または他のいかなる適切な暗号化も採用することができる。例えば、パスワードが対応する暗号化のための好適な長さになるように、パディング・ビットをパスワードに追加してもよい。
【００３６】
図３の方法は、ステップ３０６から暗号化されたパスワードが格納されるステップ３０８に移る。例えば、暗号化されたパスワード２０３を格納してもよい。
【００３７】
暗号化されたパスワードは、図３と同じような形で解読されることができる。例えば、暗号化されたパスワードは短い秘密を使用して解読されてもよい。そして、解読されたビット列はパスワードに対応するフォーマット（例えばＡＳＣＩＩまたはＵｎｉｃｏｄｅ）に変換されてもよい。
【００３８】
その結果、モバイル機器は、短い秘密が暗号化の鍵である暗号化されたパスワードを格納することができる。
【００３９】
例えば、モバイル機器は盗まれることがあり、無名の個人が暗号化された格納されたパスワードを解読することを試みるとする。
【００４０】
図４は、暗号化されたパスワードを解読するための実施例の各ステップを説明するためのフローチャートである。いかなる適切なコンピューティング装置（例えばデバイス１０７および１０９）も、図４の方法を実施するために用いることができる。
【００４１】
図４の方法では、短い秘密が選択されるステップ４０２からスタートする。例えば、短い秘密は４桁ＰＩＮからなり、そしてその短い秘密は、ランダムに選択されることができる。これは実施例にすぎず、いかなる適切な短い秘密が採用されてもよい。
【００４２】
図４でステップ４０４からステップ４０６に移り、暗号化された長いパスワードが読み出される。例えば、無名の個人は、盗まれたモバイル機器上に格納された暗号化されたパスワードを発見することができる。
【００４３】
図４でステップ４０４からステップ４０６に移り、キーとして選ばれた秘密を使用して長いパスワードが解読される。実施例において、ＡＥＳ１２８ビットによる解読または他のいかなる適切な解読を採用してもよい。
【００４４】
図４の方法はステップ４０６からステップ４０８に移り、解読されたパスワードが適法な（legitimate）パスワードであるかどうか決定される。無名の個人は、解読されたパスワードが真正かどうか決定するための多くの戦略を使用できる。例えば、西の（western）システムの多くのパスワードは、ＡＳＣＩＩ ３２からＡＳＣＩＩ １２６にわたる文字を使用する。したがって、使っていないＡＳＣＩＩ文字を含む解読されたパスワードは、おそらく適切なパスワードでない。他の例では、大部分のパスワードの長さは、概して４〜２０文字である。この範囲外のいかなるパスワードも、適法なパスワードでありそうでない。多くのパスワードは、英文字を含む。解読されたパスワードが英文字を含む場合、それはおそらく適法なパスワードである。他の例では、利用可能なパスワード辞書があり、多くの知られたパスワードを記述する。これらの各戦術を結合した後に、無名の個人は、解読されたパスワードが適法なパスワードであるかどうか決定することができる。
【００４５】
図４の方法は、可能性がある短い秘密ごとに、例えば、通過可能なすべての４桁ＰＩＮごとに繰り返されてもよい。この試みの最後に無名の個人は、適法なパスワードのショートリストを作ることができて、最終的に、例えば、試行錯誤に基づく正しいパスワードを決めることが可能になるかもしれない。
【００４６】
無名の個人によるパスワード攻撃は、多くの解読されたパスワードが適法なパスワードでないと決定された原則に依存する。暗号化アルゴリズムに圧縮要素を追加することによって、これを修正できる。
【００４７】
図５は長いパスワードを圧縮して暗号化するシステムのブロック図を示し、図６は長いパスワードを圧縮して暗号化するための実施例に係る方法のフローチャートを示す。
【００４８】
図６の方法は、短い秘密が受け取られるステップ６０２において始まる。例えば、短い秘密５０３が受け取られてもよい。短い秘密はＰＩＮ、例えば、４−８数字から成っていてもよい。これは一例であり、いかなる適切な短い秘密も適用することができる。
【００４９】
図６のステップ６０２からステップ６０４に移り、長いパスワードが受け取られる。例えば、長いパスワード５０１が受け取られてもよい。この長いパスワードは、別のサービスに対するユーザのパスワードであってもよい。実施例において、長いパスワードは、８−１２の英数字またはシンボルを含む。これは一例であり、いかなる適切な長いパスワードも使用することができる。
【００５０】
図６のステップ６０４からステップ６０６に移り、長いパスワードが圧縮される。長いパスワードは、圧縮のためのビット列に変換される。例えば、ＡＳＣＩＩまたはＵｎｉｃｏｄｅフォーマットのパスワードであってもよく、それはビット列に変換される。
【００５１】
実施例において、エントロピー符号化アルゴリズムまたは圧縮アルゴリズムを採用してもよい。例えば、長いパスワードは、そのエントロピーが減じるように処理される。実施例において、エントロピー符号化アルゴリズムまたは圧縮アルゴリズムは、ハフマン圧縮アルゴリズム（ハフマン符号化といわれることがある）を含むことができる。長いパスワード５０１は、圧縮された長いパスワード５０２に圧縮されることができる。
【００５２】
図６のステップ６０６からステップ６０８に移り、圧縮された長いパスワードは、鍵として短い秘密を使用して暗号化される。例えば、ＡＥＳ１２８ビット暗号化または他のいかなる適切な暗号化を使ってもよい。また、パスワードが圧縮されたので、パスワードが対応する暗号化のための好適な長さになるように、パディング・ビットをパスワードに追加してもよい。
【００５３】
図６のステップ６０８からステップ６１０に移り、圧縮され暗号化されたパスワードが格納される。例えば、圧縮され暗号化されたパスワード５０４が格納されてもよい。
【００５４】
圧縮され暗号化されたパスワードは、図６と同じようにして解読され伸長されることができる。例えば、暗号化されたパスワードは短い秘密を使用して解読されることができる。解読されたビット列は任意の適切なアルゴリズムを使用して伸長されることができる。それから、伸長されたビット列は、パスワードに対応するフォーマット（例えばＡＳＣＩＩまたはＵｎｉｃｏｄｅ）に変換されることができる。
【００５５】
したがって、モバイル機器は、短い秘密が暗号化の鍵である圧縮され暗号化されたパスワードを格納することができる。この例では、モバイル機器が盗まれて、無名の個人は圧縮され暗号化されたパスワードを解読することを試みるかもしれない。
【００５６】
図７は、圧縮され暗号化されたパスワードを解読するための実施例に係る方法を示すフローチャートである。図７の方法を実施するためにいかなる適切なコンピューティング装置（例えばデバイス１０７および１０９）も用いることができる。
【００５７】
図７の方法は、短い秘密を選択するステップ７０２から始まる。例えば、短い秘密は４桁ＰＩＮを有することができ、ランダムに選択することができるが、これは実施例であり、いかなる適切な短い秘密も採用することができる。
【００５８】
図７の方法はステップ７０４からステップ７０６に移り、圧縮され暗号化された長いパスワードが読み出される。例えば、無名の個人は、盗まれたモバイル機器上に格納された圧縮され暗号化されたパスワードを発見できる。
【００５９】
図７の方法はステップ７０４からステップ７０６に移り、長いパスワードがキーとして選ばれた秘密を使用して解読される。例えばＡＥＳ１２８ビットの解読または他のいかなる適切な解読も、使うことができる
図７の方法はステップ７０６からステップ７０８に移り、解読されたパスワードが伸長される。例えば、ハフマン伸長アルゴリズムまたは他のいかなる適切なアルゴリズムも、用いることが可能である。
【００６０】
図７の方法はステップ７０６からステップ７０８に移り、解読されたパスワードが適法なパスワードであるかどうか決定される。
【００６１】
圧縮が使われなかった以前のやりとりと対照的に、ここでは、無名の個人は解読され伸長されたパスワードが適法でないと決定することができそうにない。これは、圧縮が冗長性を減らすように設計されているという理由による。圧縮され暗号化されたパスワードの各ビットが重要性を保持しているので、圧縮のない暗号化されたパスワード記憶と比較されるときに、伸長され解読されたパスワードのより高い（much higher）部分が適法なパスワードとして、無名の個人の前に現れる。
【００６２】
例えば、ハフマン・アルゴリズムは、特定のビットシーケンスを特定のシンボルに連結する表を使用する。ハフマン表は、最新の語法の、または、パスワードの特定の記号の発生確率に基づいている。したがって、ランダムに選択された短いキーを圧縮され暗号化されたパスワードを解読するために用いたあと、解読されたパスワードは、例えば、ハフマン表を使用して伸長される。ハフマン表は、長いパスワードの解読されたビットがハフマン表からシンボルに伸長されることを保証（ensure）するであろう。ハフマン表は最新の語法で使われる、または、パスワードで使われるシンボルを含むので、ビットは一般的に用いられるシンボルに伸長される。したがって、伸長されたシンボルは、適法なパスワードであるかのように見える。
【００６３】
他の例では、８文字ＡＳＣＩＩの符号化パスワードで圧縮を実行しないものを想定する。ＡＳＣＩＩは、２５６の可能性があるシンボルを含み、それらのうちのおよそ７０は、パスワードによく現れる、例えば、文字Ａ−Ｚおよびａ−ｚ、番号０−９、句読点である。一つの文字パスワードにおいて、解読されたビットのおよそ２８％（すなわち７０／２５６）がポテンシャル・パスワード、例えば、パスワードでしばしば表示される文字から成る一文字のパスワードを表すことを、これは、意味する。しかしながら、８文字パスワードで、解読されたビットがポテンシャル・パスワードを表すという確率は、0.28＾8（８つの文字の各々に対し２８％）すなわち０．００３％に落下する。このため、暗号化キーが、短い秘密である場合総当たり攻撃（brute force attack）は、暗号化された８文字ＡＳＣＩＩの符号化されたパスワードに対して、高い成功率を有する。
【００６４】
他の例では、８文字ＡＳＣＩＩの符号化されたパスワードで圧縮が行われた場合、この総当たり攻撃の成功率は非常に低い。圧縮アルゴリズムは、パスワードでしばしば使われるＡＳＣＩＩ符号化されたシンボル、例えば、文字Ａ−Ｚおよびａ−ｚ、番号０−９、句読点の各々に短いビットストリームを割り当てる。１つの文字パスワードを考慮するときに、解読されたパスワードはランダムなビットストリームを有する。伸長アルゴリズムは、ビットの解読されたストリームを多くの場合パスワードで使われるＡＳＣＩＩ符号化されたシンボルに割り当てられた短いビットストリームの１つに一致させようとする。この割り当てのため、伸長の後、１文字パスワードは、例えば、１００％に近い非常に高い確率でポテンシャルパスワードであるように見える。したがって、パスワードが１つの文字から８つの文字に増大するにつれて、ランダムに解読されたパスワードが、伸長の後、ポテンシャル・パスワードであるように見えるという確率はほとんど１００％である。
【００６５】
実施例において、上記の確率は、伸長されたランダムな解読されたパスワードにとって、１００％ではなく１００％に近いといえる。なぜなら、ランダムに解読されたパスワード（例えば、ビットのランダムな選択）が適切に伸長されない部分的な文字を含むという可能性があるためである。
【００６６】
ある実施形態において、圧縮の間、例えば図６のステップ６０６で、パスワードの端を意味する特殊キャラクタが、パスワードに追加されてもよい。特殊キャラクタは、残りのパスワードとともに圧縮される。したがって、パスワードが解読されて伸長されたあと、アルゴリズムは特殊キャラクタによってパスワードの端を決定できる。
【００６７】
もう一つの実施形態では、特殊キャラクタの後、ランダムなビットのランダムな数が、圧縮の間、パスワードに追加されてもよい。これは、パスワード長に基づいて適法でないとしてポテンシャル・パスワードを無視することを試みている攻撃者を更に混乱させる。
【００６８】
一つの実施形態において、パスワードの長さが、パスワードとともに符号化されてもよい。例えば、アルゴリズムが付加されたランダムビットの始まりの位置を決定できるように、その長さのパスワードが符号化されてもよい。圧縮技術分野の当業者は、圧縮シーケンスの端を示すための他の技術の存在を容易に理解するであろう。
【００６９】
図７の方法は、可能性がある短い秘密ごとに、例えば、可能性がある４桁のＰＩＮごとに繰り返されてもよい。この結果、無名の個人は適法なパスワードの長いリストとともに取り残され、正しいパスワードを決定することは困難となるかもしれない。
【００７０】
一つの実施形態において、図９の方法で使用された圧縮アルゴリズムは、ハフマン圧縮アルゴリズムである。例えば、ハフマン・アルゴリズムは例えば”a”といった特定の記号が言語に使われる確率を決定するために表を使用することができる。一つの実施形態において、ハフマン表は、パスワードのために特に作られることが可能である。当該表は、例えば”a”といった特定の記号がパスワードで使用される確率を決定する。
【００７１】
下記に、劇「ロメオとジュリエット」の文字使用に基づいて算出されたハフマン表の実施例を示す。
【００７２】
［表１］
ハフマン表
A: 7% 0010
B: 1% 011000
C: 2% 000101
D: 3% 00011
E: 12% 101
F: 1% 001100
G: 1% 001101
H: 6% 0101
I: 6% 0100
J: 0% 011001100
K: 0% 0110010
L: 4% 1101
M: 3% 01101
N: 6% 1001
O: 8% 0000
P: 1% 110000
Q: 0% 0110011101
R: 6% 1000
S: 6% 0111
T: 9% 111
U: 3% 00111
V: 1% 110001
W: 2% 000100
X: 0% 0110011011
Y: 2% 11001
Z: 0% 01100111001
一つの実施形態において、ハフマン圧縮は、パスワードのための各文字の単一の表を使用できる。例えば、たとえどこにそれが現れようとも、文字「ａ」はパスワードの中で同じ方法で符号化できる。
【００７３】
他の実施形態では、異なるハフマン表は、パスワードの各文字に対して算出されてもよい。例えば、第１の表はパスワードの先頭文字のための確率を算出し、先頭文字のために算出された確率に基づいてビットストリームを文字に割り当てることができる。第２の表はパスワードの第２の文字のための確率を算出することができて、第２の文字のために算出された確率に基づいてビットストリームを文字に割り当てることができる。この例では、文字「ａ」は、パスワードにおけるその位置に基づいて異なって符号化されることができる。
【００７４】
他の実施形態では、各文字のために使用する異なる表は、先行するテキストに基づいてもよい。例えば、第２の文字のための確率は先頭文字のための確率に依存してもよい。例えば、第１のシンボルが「ａ」であると想定して、第２のシンボルが「ｅ」となる確率である。
【００７５】
本開示の内容が構造的な特徴および／または方法論的な行為に特有の言語で記載されていたにもかかわらず、添付の特許請求の範囲において定められる内容は、上記の特定の特徴または行為に必ずしも限られているというわけではないことを理解されたい。むしろ、上記の特定の特徴および行為は、以下の特許請求の範囲の実施例としての実現と言うべきである。
【００７６】
本出願は、２０１３年５月３日に出願の同じ表題を有する米国特許出願番号第１３／８８６,９０５号の優先権を主張する。
【図１】
0006346942.tif 000002
【図２】
0006346942.tif 000003
【図３】
0006346942.tif 000004
【図４】
0006346942.tif 000005
【図５】
0006346942.tif 000006
【図６】
0006346942.tif 000007
【図７】
0006346942.tif 000008