(57)【要約】      （修正有）【課題】マスタドングルとスレーブドングルとの間でマスタキーマテリアルを安全に転送するための方法を提供する。【解決手段】スレーブドングル１２は公開鍵および秘密鍵を含み、マスタドングル１０はマスタキーマテリアルを含む。データ転送システムは、スレーブドングルの公開鍵を読み取り、それをマスタドングルに送信する。マスタドングルは、スレーブドングルの公開鍵を用いてマスタキーマテリアルを暗号化して、暗号化されたマスタキーマテリアルを生成する。暗号化されたマスタキーマテリアルは、データ転送システムを介してスレーブドングルに送信され、スレーブドングルは、スレーブドングルの秘密鍵を用いて暗号化されたマスタキーマテリアルを解読する。【効果】スレーブドングルを有する複数のユーザが、互いに安全に通信するために同じマスタキーマテリアルを使用することが可能になる。【選択図】図２
2019068413.tif 000002
【特許請求の範囲】
【請求項１】
マスタドングルとスレーブドングルとの間でマスタキーマテリアルを安全に転送する方法であって、
前記スレーブドングルは公開鍵と秘密鍵を含み、
前記マスタドングルはマスタキーマテリアルを含み、前記マスタキーマテリアルは、前記ドングルのユーザが暗号化されたデータに安全にアクセスできるようにするためのものであり、
前記方法は、
前記マスタドングルおよび前記スレーブドングルをデータ転送システムに接続するステップと、
前記スレーブドングルの公開鍵を前記データ転送システムを介して前記マスタドングルに転送するステップと、
前記マスタドングルにおいて前記スレーブドングルの公開鍵を使用して前記マスタキーマテリアルを暗号化し、したがって前記マスタドングルにおいて暗号化されたマスタキーマテリアルを生成するステップと、
前記データ転送システムを介して前記暗号化されたマスタキーマテリアルを前記スレーブドングルに転送するステップと、
前記スレーブドングルにおいて前記スレーブドングルの秘密鍵を用いて前記暗号化されたマスタキーマテリアルを解読するステップと、
前記マスタキーマテリアルを前記スレーブドングルにおいて格納するステップと
を含み、
結果、任意の前記ドングルのユーザが前記マスタキーマテリアルを使用して、同じドングルまたは他のドングルによって暗号化されたデータを解読することができる、方法。
【請求項２】
前記マスタキーマテリアルは、前記マスタドングルが最初に使用されるときにランダムに生成され、好ましくは前記マスタキーマテリアルはFIPS乱数生成器を使用して生成される、請求項1に記載の方法。
【請求項３】
前記スレーブドングルの公開鍵を前記データ転送システムを介して前記マスタドングルに転送する前記ステップの前に、前記方法は、
マスタドングルユーザ認証システムを介して前記マスタドングルをロック解除するステップであって、前記マスタドングルをロック解除することによって、前記マスタドングルはデータを送受信することが可能になる、ロック解除するステップと、
前記スレーブドングルがファクトリーリセットされていない場合、スレーブドングルユーザ認証システムを介して前記スレーブドングルをロック解除するステップであって、前記スレーブドングルをロック解除することによって、前記スレーブドングルはデータを送受信することが可能になる、ロック解除するステップと
を含むことができる、請求項1または2に記載の方法。
【請求項４】
前記スレーブドングルの公開鍵を転送する前に所定のスクランブルアルゴリズムを使用して前記スレーブドングルの公開鍵をスクランブルするステップと、
スレーブドングルの公開鍵を転送した後かつ前記マスタキーマテリアルを暗号化する前に、前記スレーブドングルの公開鍵を前記マスタドングルにおいてアンスクランブルするステップと
を含む、請求項1〜3のいずれか一項に記載の方法。
【請求項５】
前記マスタドングルが第1の取り外し可能なドングルであり、前記スレーブドングルが第2の取り外し可能なドングルである、請求項1〜4のいずれか一項に記載の方法。
【請求項６】
前記スレーブドングルの秘密鍵および前記暗号化されていないマスタキーマテリアルは、前記データ転送システムを介して転送されず、前記データ転送システムによって読み取られない、請求項1〜5のいずれか一項に記載の方法。
【請求項７】
各々がそれぞれの公開鍵およびそれぞれの秘密鍵を有する、複数のスレーブドングルが提供され、
前記方法は、各スレーブドングルに対して、
前記スレーブドングルの公開鍵を前記マスタドングルに転送するステップと、
前記マスタドングルにおいて前記マスタキーマテリアルを前記スレーブドングルの公開鍵を用いて暗号化するステップと、
前記暗号化されたマスタキーマテリアルを前記スレーブドングルに転送するステップと、
前記スレーブドングルにおいて前記スレーブドングルの秘密鍵を用いて前記暗号化されたマスタキーマテリアルを解読するステップと
を含む、請求項1〜6のいずれか一項に記載の方法。
【請求項８】
権限を与えられたコンピューティングデバイス間で安全にデータを共有する方法であって、
第1のコンピューティングデバイスが第1のスレーブドングルに接続され、第2のコンピューティングデバイスが第2のスレーブドングルに接続され、前記第1のスレーブドングルおよび前記第2のスレーブドングルは、請求項1〜7のいずれか一項に記載の方法によって同じマスタキーマテリアルを用いてプラグラムされており、
前記方法は、
前記第1のスレーブドングルに格納された前記マスタキーマテリアルを用いて、前記第1のスレーブドングルを使用して第1のデータを暗号化するステップと、
任意選択的にネットワークを介して、前記暗号化された第1のデータを前記第2のコンピューティングデバイスに転送するステップと、
前記第2のスレーブドングルを使用して前記暗号化された第1のデータを解読するステップと、
前記暗号化されていない第1のデータを前記第2のスレーブドングルから前記第2のコンピューティングデバイスに転送するステップと
を含む、方法。
【請求項９】
マスタドングルとスレーブドングルとの間でマスタキーマテリアルを安全に転送するシステムであって、
データ転送システムと、
マスタプロセッサおよびマスタキーマテリアルを含むマスタドングルと、
スレーブプロセッサ、スレーブ公開鍵およびスレーブ秘密鍵を含むスレーブドングルと
を備え、
前記データ転送システムは、前記マスタドングルおよび前記スレーブドングルに接続するための複数のポートを有し、
前記データ転送システムは、前記スレーブドングルの公開鍵を前記マスタドングルに転送するように構成されており、
前記マスタドングルは、前記スレーブドングルの公開鍵を用いて前記マスタキーマテリアルを暗号化して、暗号化されたマスタキーマテリアルを生成するように構成されており、
前記データ転送システムは、前記暗号化されたマスタキーマテリアルを前記スレーブドングルに転送するように構成されており、
前記スレーブドングルは、前記スレーブドングルの秘密鍵を使用して前記暗号化されたマスタキーマテリアルを解読し、前記マスタキーマテリアルを前記スレーブドングルにおいて格納するように構成されており、結果、任意の前記ドングルのユーザが前記マスタキーマテリアルを使用して、同じドングルまたは他のドングルによって暗号化されたデータを解読することができる、システム。
【請求項１０】
前記マスタドングルはマスタドングルユーザ認証システムを備え、前記スレーブドングルはスレーブドングルユーザ認証システムを備え、および/または、前記データ転送システムはデータ転送システムユーザ認証システムを備え、前記ドングルおよび/またはデータ転送システムは、前記ドングル間のデータ転送を許可する前に、それぞれのユーザ認証システムにおいて認証コード入力を要求するように構成されている、請求項9に記載のシステム。
【請求項１１】
前記マスタドングルは、前記マスタドングルが最初に使用されるときにランダムキーマテリアルを生成するように構成されており、好ましくは前記マスタキーマテリアルはFIPS乱数生成器を使用して生成される、請求項9または10に記載のシステム。
【請求項１２】
前記スレーブドングルは、前記データ転送システムがスクランブルされたスレーブドングルの公開鍵を転送するように、前記スレーブドングルの公開鍵を転送する前に所定のスクランブルアルゴリズムを使用して前記スレーブドングルの公開鍵をスクランブルするように構成されており、前記マスタドングルは、前記スクランブルアルゴリズムを含み、前記マスタキーマテリアルを暗号化する前に、前記スクランブルされたスレーブドングルの公開鍵をアンスクランブルするように構成されている、請求項9〜11のいずれか一項に記載のシステム。
【請求項１３】
前記システムは、各々がそれぞれの公開鍵および秘密鍵を有する複数のスレーブドングルを備え、
前記データ転送システムは少なくとも3つのポートを含み、1つのポートは前記マスタドングルに接続するためのポートであり、前記少なくとも2つの他のポートは前記複数のスレーブドングルのうちの少なくとも2つに接続するためのポートであり、
前記システムは、各スレーブドングルに前記マスタキーマテリアルを順に安全に転送するように構成されている、請求項9〜12のいずれか一項に記載のシステム。
【請求項１４】
ユーザ間でデータを安全に通信するためのシステムであって、
第1のスレーブドングルに結合された第1のコンピューティングデバイスと、
第2のドングルに結合された第2のコンピューティングデバイスとを備え、前記第2のドングルは第2のスレーブドングルまたはマスタドングルであり、
前記マスタドングルおよび前記スレーブドングルは、請求項1〜7のいずれか一項に記載の方法のいずれかを使用して構成されているか、または、前記マスタドングルおよび前記スレーブドングルは、請求項9〜13のいずれか一項に記載のシステムによって構成されており、
前記第1のコンピューティングデバイスが第1のデータを前記第2のコンピューティングデバイスに送信するために使用されるとき、前記第1のコンピューティングデバイスは、前記第1のデータを前記第1のスレーブドングルに送信するように構成されており、
前記第1のスレーブドングルは、前記マスタキーマテリアルを使用して前記第1のデータを暗号化するように構成され、
前記第1のデバイスは、任意選択的にネットワークを介して、前記暗号化された第1のデータを前記第2のコンピューティングデバイスに送信するように構成され、
前記第2のコンピューティングデバイスは、前記第1の暗号化されたデータを受信し、前記第1の暗号化されたデータを前記第2のドングルに送信するように構成されており、
前記第2のドングルは、前記マスタキーマテリアルを使用して前記第1の暗号化されたデータを解読し、前記解読された第1のデータを前記第2のコンピュータデバイスに送信するように構成されている、システム。
【請求項１５】
各ドングルは、使用のために前記ドングルをロック解除するためのユーザ識別情報を要求するように構成され、好ましくは各ドングルは複数のボタンを有し、前記ユーザ識別情報は、前記ボタンを所定の順序で押すことによって入力されるコードである、請求項13に記載のシステム。
【請求項１６】
前記システムはサーバをさらに備え、各ドングルは、識別情報を有するように構成され、暗号化および解読を実行するために前記サーバから認証コードを要求するように構成されており、前記サーバは、前記マスタキーマテリアルを有する権限のないドングルが、前記マスタキーマテリアルを有する権限を与えられたドングルとの通信から除外されるように、ドングル識別情報のホワイトリストまたはブラックリストを有するように構成されている、請求項13または14に記載のシステム。
【請求項１７】
マスタドングルとスレーブドングルとの間でマスタキーマテリアルを安全に転送するための専用デバイスであって、
前記専用デバイスは、前記マスタドングルおよび前記スレーブドングルに接続するための複数のポートを備え、
前記専用デバイスは、前記スレーブドングルから公開鍵を要求し、前記公開鍵を前記マスタドングルに転送し、前記マスタドングルから暗号化されたマスタキーマテリアルを要求し、前記暗号化されたマスタキーマテリアルを前記スレーブドングルに転送するように構成されている、専用デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、マスタドングルとスレーブドングルとの間でマスタキーマテリアルを安全に転送するための方法およびシステム、ならびにユーザ間でデータを安全に通信するための方法およびシステムに関する。
【背景技術】
【０００２】
多くの場合、さまざまなユーザ間でデータを安全に転送することが望ましい。しばしば、そのようなデータ転送は、ローカルネットワークまたはインターネットを介して行われる。データの機密性が高い場合、安全でない可能性のあるネットワークを介してデータを転送する前にデータを暗号化することができる。社内の従業員の間でまたは顧客とデータを転送するためにインターネットを使用する多くの企業は、「公開鍵暗号」を利用している。公開鍵暗号では、各ユーザが、公開鍵および秘密鍵と呼ばれる一対の暗号鍵を有する。公開鍵は、安全にその鍵の所有者と通信することを望む者と公に共有することができるものであり、一方、秘密鍵は、その公開鍵を使用して暗号化されたデータを解読するためのものである。ＡがＢと安全に通信したい場合、ＡはＢの公開鍵を使用してメッセージ（データ）を暗号化し、暗号化されたメッセージをBに送信する。その後、BはBの秘密鍵を使用してメッセージを解読する。有利なことに、この方法は、安全でないチャネルを介して通信する前に、2者のユーザAおよびBが秘密裏に互いに暗号鍵を交換する必要はない。
【０００３】
暗号化の別の形態は、同じ暗号鍵が暗号化と解読の両方に使用される「対称鍵暗号化」である。このようなシステムでは、ユーザAおよびBは、安全ではないチャネルを介して互いに通信する前に、まず暗号鍵を安全に交換しなければならない。
【０００４】
対称鍵暗号システムには、公開鍵暗号と比べると長所と短所がある。一般に、対称鍵システムは、符号化および復号についてより高速である。対称鍵システムでは、データが傍受される可能性がある場合でも、暗号化されたデータを転送することができる。データとともに送信される鍵は存在しないため、データが解読される機会は公開鍵システムよりも低い。最後に、鍵を有する受信者だけがデータを解読できる。したがって、送信者は、権限を与えられた受信者だけがデータを解読できると確信することができる。対称鍵暗号化の主な欠点は、安全な方法ですべてのユーザに初期暗号鍵を提供する必要があることである。
【発明の概要】
【０００５】
第1の態様によれば、マスタドングルとスレーブドングルとの間でマスタキーマテリアルを安全に転送する方法が提供され、スレーブドングルは公開鍵と秘密鍵を含み、マスタドングルはマスタキーマテリアルを含み、マスタキーマテリアルは、ドングルのユーザが暗号化されたデータに安全にアクセスできるようにするためのものであり、方法は、マスタドングルおよびスレーブドングルをデータ転送システムに接続するステップと、スレーブドングルの公開鍵をデータ転送システムを介してマスタドングルに転送するステップと、マスタドングルにおいてスレーブドングルの公開鍵を使用してマスタキーマテリアルを暗号化し、したがってマスタドングルにおいて暗号化されたマスタキーマテリアルを生成するステップと、データ転送システムを介して暗号化されたマスタキーマテリアルをスレーブドングルに転送するステップと、スレーブドングルにおいてスレーブドングルの秘密鍵を用いて暗号化されたマスタキーマテリアルを解読するステップと、マスタキーマテリアルをスレーブドングルにおいて格納するステップとを含み、結果、任意のドングルのユーザがマスタキーマテリアルを使用して、同じドングルまたは他のドングルによって暗号化されたデータを解読することができる。
【０００６】
マスタキーマテリアルは、マスタ暗号鍵であってもよい。
【０００７】
この方法によって、スレーブドングルの秘密鍵および暗号化されていないマスタキーマテリアルは、有利なことに、データ転送システムを介して転送されず、データ転送システムによって読み取られない。したがって、この方法は、マスタキーマテリアルを含む1つまたは複数のスレーブドングルの安全な製造を可能にし、よって、同じマスタキーマテリアルを共有するドングルのセットの安全な製造を可能にする。次いで、ドングルは、安全なドングルに基づいた対称鍵システムを提供することができる。有利なことに、暗号化されていないマスタキーマテリアルは、いかなる時点においてもデータ転送システムによってアクセス可能でなく、そのため、データ転送システムが損なわれても（例えば、盗聴者、コンピュータウィルスなどによって）、転送中にマスタキーマテリアルの機密は保持される。そのようなマスタキーマテリアルを担持するドングルは、ユーザが様々な装置（例えば、仕事用デスクトップから家庭用コンピュータまで）の間でドングルを容易に転送し、暗号化されたデータへの安全なアクセスを維持することを可能にするため、有用である。特に、ドングル（複数可）は、「クラウド」などのリモートアクセス可能なメモリに格納された暗号化されたデータへアクセスするために使用することができ、結果、単一の安全なデータストアに任意の場所から安全にアクセスすることができる。
【０００８】
この方法は、第1の態様で述べたのと同じ方法を使用して、マスタキーマテリアルを複数のスレーブドングルに転送するステップを含むことができる。したがって、複数のスレーブドングルの各々は、単一のマスタドングルからの同じマスタキーマテリアルを用いて安全にプログラムすることができる。これにより、各々がスレーブドングルを有する複数のユーザが、マスタキーマテリアルを使用して互いに安全にデータを通信することが可能になる。さらに、マスタドングルが安全な場所に保持されている間に、データの暗号化および解読がスレーブドングル内で実行されてもよい。これにより、安全でない可能性のあるマシンにも、安全でない可能性のあるネットワークにも転送されないため、マスタキーマテリアルを安全に保つことができる。
【０００９】
ここで、暗号鍵またはキーマテリアルは、明示的にデータのスクランブルおよびアンスクランブル（すなわち、データの暗号化および解読）のために作成されるランダムなビット列であってもよい。暗号鍵は、通常、すべてのキーが予測不可能かつ一意であることを保証するように意図されているアルゴリズムを使用して設計されている。したがって、マスタキーマテリアル、スレーブドングル公開鍵および/またはスレーブドングル秘密鍵は、データを暗号化および解読するために作成されたデータ列であってもよい。キー（複数可）は、256バイト（2048ビット）以上の長さを有することができる。
【００１０】
マスタキーマテリアルは、例えば、FIPS乱数生成器を使用して、マスタドングルが最初に使用されるときにランダムに生成されてもよい。このようにして、マスタドングルを有するユーザがマスタキーマテリアルを生成することができるため、マスタドングルの製造者はマスタキーマテリアルを知らない。これにより、ハッキングまたは盗難に脆弱なマスタキーマテリアルのセントラルリポジトリが存在しないことが保証される。さらに、暗号化された通信を製造者が復号することができないという確信がユーザに与えられる。
【００１１】
データ転送システムは、同じマスタキーマテリアルを有するスレーブドングルのセットを迅速に生成するために、任意選択的に複数のスレーブドングルに接続されたパーソナルコンピュータ（PC）であってもよい。あるいは、データ転送システムは、マスタキーマテリアルを有する多くのスレーブドングルの安全な製造のために設計された専用デバイスであってもよい。そのような専用デバイスは、有利なことに、インターネットに接続されず、マスタドングルとスレーブドングルとの間で（暗号化）データを転送するために必要なプロセスのみを実行するように構成されている。例えば、この方法を実行するためのデータ処理ルーチンは、専用デバイス内のコンピュータチップにハードコード化されてもよい。これにより、マスタキーマテリアルを転送する際に、インターネットを介した攻撃または専用デバイスにプラグ接続された悪意あるドングルからの攻撃に対して、さらなる安全性を提供することができる。別の例では、データ転送システムは、内部プログラムまたはプロセッサを有しないケーブルまたはハブであってもよい。この場合、マスタおよびスレーブドングルは、1つのドングルまたは各ドングル内のデータ処理デバイスを使用してこの方法を実行するように構成することができる。したがって、ドングル（複数可）は、演算処理を実行するためのプロセッサなどを含むことができる。
【００１２】
ドングルのセキュリティをさらに強化するために、マスタドングルおよび/またはスレーブドングル（複数可）は、権限を与えられたユーザを識別し、権限のないユーザによるアクセスを防止するための追加のセキュリティを含むことができる。これには、権限を与えられたユーザだけがマスタキーマテリアルにアクセスすることができ、結果、権限のないユーザによってドングルが取得されても、暗号化されたデータにアクセスすることができないという効果があり得る。また、ドングル（複数可）が、ドングル（複数可）を郵便または宅配便で送るなど、マスタキーマテリアルへの不正アクセスの危険なしに、権限を与えられたユーザの間で安全に転送されることも可能である。したがって、ドングル（複数可）は、ドングルの内容へのアクセスが許可される前に、権限を与えられたユーザの識別を要求することができる。ドングルに新しいデータを書き込むことが許可される前に、追加のセキュリティ層が存在する可能性がある。マスタドングルは、マスタキーマテリアルが別のドングルに転送され得る前に、より高いレベルの権限を必要とする場合がある。したがって、データを暗号化および解読するために使用される場合、スレーブドングル（複数可）およびマスタドングルは、通常のユーザにアクセス可能であり得るが、一方、マスタキーマテリアルを複製するためのマスタドングルへのアクセスおよび／またはユーザスレーブドングル公開鍵にアクセスし、新しいマスタキーマテリアルをインストールするためのスレーブドングル（複数可）へのアクセスが許可されている管理者などのより高いレベルのユーザが存在し得る。
【００１３】
追加されるセキュリティは、例えば、PIN入力システムまたはバイオメトリックセンサなどのユーザ認証システムを含むことができる。したがって、ドングル（複数可）は、ユーザ認証システムによって得られたデータと、権限を与えられたユーザに関するドングルに格納されたデータとを比較することによって、権限を与えられたユーザを識別するように構成することができる。PINシステムの場合、正しいPINのアクセスを受けて、ドングルは通常レベルまたは管理者レベルにおけるアクセスを許可することがある。バイオメトリックシステムの場合、ドングルは、以前にドングルに登録された1人または複数のユーザに対してアクセスを許可することができる。ドングルは、ユーザを任意の適切な方法で登録するように構成されてもよく、第1のユーザが自身のバイオメトリックおよび/または自身のPINを登録することを可能にする登録モードにおいて第1のユーザに供給されてもよく、第1のユーザは任意選択的に、管理者レベルアクセスを有する。管理者レベルアクセスは、追加のユーザをユーザ認証システムに登録することを可能にし得る。
【００１４】
したがって、スレーブドングルの公開鍵をデータ転送システムを介してマスタドングルに転送するステップの前に、この方法は、マスタドングルユーザ認証システムを介してマスタドングルをロック解除するステップであって、マスタドングルをロック解除することによって、マスタドングルはデータを送受信することが可能になる、ロック解除するステップと、スレーブドングルがファクトリーリセットされていない場合、スレーブドングルユーザ認証システムを介してスレーブドングルをロック解除するステップであって、スレーブドングルをロック解除することによって、スレーブドングルはデータを送受信することが可能になる、ロック解除するステップとを含むことができる。ドングルは、マスタキーマテリアルの転送プロセス中にロック解除されたままにすることができ、データ転送システムから接続切断された後など、そのプロセスが完了した後に自動的にロックすることができる。
【００１５】
この方法は、スレーブドングルの公開鍵を転送する前に所定のスクランブルアルゴリズムを使用してスレーブドングルの公開鍵をスクランブルするステップと、スレーブドングルの公開鍵を転送した後かつマスタキーマテリアルを暗号化する前に、スレーブドングルの公開鍵をマスタドングルにおいてアンスクランブルするステップとを含むことができる。この場合、スレーブドングル（複数可）は適切なスクランブルアルゴリズムを含むことができ、マスタドングルは、スクランブルされたスレーブドングルの公開鍵をアンスクランブルするための命令を含むことができる。これは、データ転送システムが侵害され、悪意あるユーザがスレーブドングルをエミュレートし、ただし、マスタキーマテリアルを発見する目的でマスタドングルに送信される自身の公開鍵を生成する事例に対する保護の一助となる。
【００１６】
スレーブドングル公開鍵のスクランブリングの追加使用により、正当なスレーブドングルのみがスクランブルアルゴリズムを知っており、これは例えば、最初に製造された工場においてドングル上にハードコード化され得る。データ転送システム（およびその方法を実行する目的のためにその上にあるソフトウェア）は、スクランブルアルゴリズムの知識を有せず、任意選択的に、マスタドングルだけがスレーブドングル公開鍵をアンスクランブルするのに必要な命令を含む。スクランブルアルゴリズムはデータ転送システムに含まれておらず、さらにデータ転送システムを介して転送もされず、マスタドングル上にのみ常に存在し得、マスタドングルにおいて上で議論したように適切なユーザ認証システムを介して保護することができるために、ハッカーはスクランブルアルゴリズムを知らないため、悪意あるエミューとされたスレーブドングルに対するさらなるセキュリティ層を提供する。公開鍵の長さが256バイト（2048ビット）である場合、スクランブルアルゴリズムを総当たり攻撃するためには、攻撃者はスクランブルアルゴリズムをハッキングするために256！回試行する必要がある。
【００１７】
ドングルは通常、別のデバイスに接続してその他のデバイスに追加の機能を提供する携帯可能なハードウェアである。例えば、1つの既知のタイプのドングルは、データがドングルを介してデバイス間で転送されることを可能にするUSBメモリドングルである。別のタイプのドングルは、ドングル上に格納されているか、または外部メモリに格納されているデータを暗号化するためのデータ暗号化ドングルである。そのようなドングルは、英国のiStorage LimitedによってDatashur（登録商標）の商標名で製造されている。国際公開第2009/136161号パンフレットは、データがドングルを通過する際のハードウェア暗号化のための従来技術のドングルを開示している。本方法のスレーブドングル（複数可）および/またはマスタドングルは、同様に動作するように構成することができる。したがって、ドングルは、フラッシュメモリなどのメモリを含むドングルであってもよい。ドングルは、ドングルをデータ転送システムに結合するためのUSB接続を含むことができる。USBは、デバイス間でデータを転送するために一般的に使用される規格である。したがって、USBを介して一般的なコンピューティングデバイス（デスクトップコンピュータ、ラップトップコンピュータ、タブレット、スマートフォンなど）に接続できるドングルが、広く使用可能である。
【００１８】
上述したように、各々がそれぞれの公開鍵およびそれぞれの秘密鍵を有する、複数のスレーブドングルを提供することができ、この方法は、各スレーブドングルに対して、スレーブドングルの公開鍵をマスタドングルに転送するステップと、マスタドングルにおいてマスタキーマテリアルをスレーブドングルの公開鍵を用いて暗号化するステップと、暗号化されたマスタキーマテリアルをスレーブドングルに転送するステップと、スレーブドングルにおいてスレーブドングルの秘密鍵を用いて暗号化されたマスタキーマテリアルを解読するステップとを含むことができる。
【００１９】
これは、マスタキーマテリアルを用いて暗号化された情報を安全に共有する目的で、複数のユーザに分配することができる複数のスレーブドングルを迅速に製造するという利点を提供する。
【００２０】
別の態様によれば、権限を与えられたコンピューティングデバイス間で安全にデータを共有する方法が提供され、第1のコンピューティングデバイスが第1のスレーブドングルに接続され、第2のコンピューティングデバイスが第2のスレーブドングルに接続され、第1のスレーブドングルおよび第2のスレーブドングルは、上述した方法のいずれかによって同じマスタキーマテリアルを用いてプラグラムされており、方法は、第1のスレーブドングルに格納されたマスタキーマテリアルを用いて、第1のスレーブドングルを使用して第1のデータを暗号化するステップと、任意選択的にネットワークを介して、暗号化された第1のデータを第2のコンピューティングデバイスに転送するステップと、第2のスレーブドングルを使用して暗号化された第1のデータを解読するステップと、暗号化されていない第1のデータを第2のスレーブドングルから第2のコンピューティングデバイスに転送するステップとを含む。
【００２１】
別の態様によれば、マスタドングルとスレーブドングルとの間でマスタキーマテリアルを安全に転送するシステムが提供され、システムは、データ転送システムと、マスタプロセッサおよびマスタキーマテリアルを含むマスタドングルと、スレーブプロセッサ、スレーブ公開鍵およびスレーブ秘密鍵を含むスレーブドングルとを備え、データ転送システムは、マスタドングルおよびスレーブドングルに接続するための複数のポートを有し、データ転送システムは、スレーブドングルの公開鍵をマスタドングルに転送するように構成されており、マスタドングルは、スレーブドングルの公開鍵を用いてマスタキーマテリアルを暗号化して、暗号化されたマスタキーマテリアルを生成し、暗号化されたマスタキーマテリアルをデータ転送システムに返すように構成されており、データ転送システムは、暗号化されたマスタキーマテリアルをスレーブドングルに転送するように構成されており、スレーブドングルは、スレーブドングルの秘密鍵を使用して暗号化されたマスタキーマテリアルを解読し、マスタキーマテリアルをスレーブドングルにおいて格納するように構成されており、結果、任意のドングルのユーザがマスタキーマテリアルを使用して、同じドングルまたは他のドングルによって暗号化されたデータを解読することができる。
【００２２】
マスタドングルはマスタドングルユーザ認証システムを備えることができ、スレーブドングルはスレーブドングルユーザ認証システムを備えることができ、および/または、データ転送システムはデータ転送システムユーザ認証システムを備えることができ、ドングルおよび/またはデータ転送システムは、ドングル間のデータ転送を許可する前に、それぞれのユーザ認証システムにおいて認証コード入力を要求するように構成される。
【００２３】
このシステムは、マスタキーマテリアルを含むスレーブドングルを安全に製造することを可能にする。暗号化されていないマスタキーマテリアルは、いかなる時点においてもデータ転送システムに配置される必要はなく、そのため、データ転送システムが損なわれても（例えば、コンピュータウィルスなどによって）、マスタキーマテリアルは転送中に秘密のままである。このようなシステムによって生成された複数のスレーブドングルは、互いに安全に通信することを所望する複数のユーザに分配することができる。スレーブドングルの各々は、同じマスタキーマテリアルで安全にプログラムされており、そのため、ユーザは安全でない可能性のあるネットワーク（例えば、インターネット）を介して通信する場合であってもマスタキーマテリアルを使用して互いにデータを安全に通信することができる。
【００２４】
スレーブドングルは、データ転送システムがスクランブルされたスレーブドングルの公開鍵を転送するように、スレーブドングルの公開鍵を転送する前に所定のスクランブルアルゴリズムを使用してスレーブドングルの公開鍵をスクランブルするように構成することができ、マスタドングルは、スクランブルアルゴリズムを含むことができ、マスタキーマテリアルを暗号化する前に、スクランブルされたスレーブドングルの公開鍵をアンスクランブルするように構成することができる。
【００２５】
データ転送システム（およびその方法を実行する目的のためのその上の任意のソフトウェア）は、スクランブルアルゴリズムを知らない。スクランブルアルゴリズムはデータ転送システムに含まれておらず、さらにデータ転送システムを介して転送もされないために、ハッカーはスクランブルアルゴリズムを知らないため、さらなるセキュリティ層を提供する。
【００２６】
システムは、各々がそれぞれの公開鍵および秘密鍵を有する複数のスレーブドングルを備えることができ、データ転送システムは少なくとも2つのポートを含み、一方のポートはマスタドングルに接続するためのポートであり、他方のポートは少なくとも1つのドングルに接続するためのポートである。
【００２７】
システムは、各々がそれぞれの公開鍵および秘密鍵を有する複数のスレーブドングルを備えることができ、データ転送システムは少なくとも3つのポートを含み、1つのポートはマスタドングルに接続するためのポートであり、少なくとも2つの他のポートは複数のスレーブドングルのうちの少なくとも2つに接続するためのポートである。
【００２８】
この構成によるシステムは、ユーザが、各スレーブドングルがマスタキーマテリアルを受け取った後に各スレーブドングルを取り外し、新しいスレーブドングルをデータ転送システムに取り付ける必要なく、複数のスレーブドングルを迅速に準備することができる。
【００２９】
別の態様によれば、ユーザ間でデータを安全に通信するためのシステムが提供され、システムは、第1のスレーブドングルに結合された第1のコンピューティングデバイスと、第2のドングルに結合された第2のコンピューティングデバイスとを備え、第2のドングルは第2のスレーブドングルまたはマスタドングルであり、マスタドングルおよびスレーブドングルは、前述の方法のいずれかを使用して構成されているか、または、マスタドングルおよびスレーブドングルは、上述したシステムのいずれかによって構成されており、第1のコンピューティングデバイスが第1のデータを第2のコンピューティングデバイスに送信するために使用されるとき、第1のコンピューティングデバイスは、第1のデータを第1のスレーブドングルに送信するように構成されており、第1のスレーブドングルは、マスタキーマテリアルを使用して第1のデータを暗号化するように構成され、第1のデバイスは、任意選択的にネットワークを介して、暗号化された第1のデータを第2のコンピューティングデバイスに送信するように構成され、第2のコンピューティングデバイスは、第1の暗号化されたデータを受信し、第1の暗号化されたデータを第2のドングルに送信するように構成されており、第2のドングルは、マスタキーマテリアルを使用して第1の暗号化されたデータを解読し、解読された第1のデータを第2のコンピュータデバイスに送信するように構成されている。
【００３０】
このシステムにより、ユーザは、公開鍵暗号化よりも速い対称鍵暗号化を使用して、互いに安全に通信することができる。さらに、本開示は、マスタキーマテリアルをユーザに提供する安全な方法を提供するため、マスタキーマテリアルの初期転送に関する対称鍵暗号化の既知の欠点が克服される。
【００３１】
別の態様によれば、マスタドングルとスレーブドングルとの間でマスタキーマテリアルを安全に転送するための専用デバイスが提供され、専用デバイスは、マスタドングルおよびスレーブドングルに接続するための複数のポートを備え、専用デバイスは、スレーブドングルから公開鍵を要求し、公開鍵をマスタドングルに転送し、マスタドングルから暗号化されたマスタキーマテリアルを要求し、暗号化されたマスタキーマテリアルをスレーブドングルに転送するように構成されている。
【００３２】
この態様による専用デバイスは、この方法を実行するように構成されたユーザのPCよりも高いセキュリティを有することができるスレーブドングルを準備するための独立型デバイスとして提供することができる。
【００３３】
本開示のいくつかの実施形態を、ここで添付の図面を参照して例としてのみ、より詳細に説明する。
【図面の簡単な説明】
【００３４】
【図１】マスタドングルおよびいくつかのスレーブドングルがプラグ接続されているハブに取り付けられたコンピュータを示す図である。
【図２】マスタキーマテリアルをマスタドングルからスレーブドングルに安全に転送するための方法ステップのシーケンス図である。
【図３】マスタドングルおよび複数のスレーブドングルを受け入れるための専用デバイスを示す図である。
【図４】各デバイスがスレーブドングルを有し、ユーザは共通のマスタキーマテリアルを使用してネットワーク上で互いに安全に通信することができる、複数のデバイスのシステムを示す図である。
【発明を実施するための形態】
【００３５】
図1は、コンピュータ20と、コンピュータにプラグ接続されているハブ30とを示す。マスタドングル12は、ハブ30上の第1のポート32aにプラグ接続される。一般に12で示される1つまたは複数のスレーブドングル12a〜nは、ハブ30上の他のポート32b〜mにプラグ接続される。
【００３６】
ハブ30は、任意の標準USBハブ、または別のタイプのポート（例えば、FireWire（登録商標））を備えたハブであってもよい。あるいは、マスタドングル10およびスレーブドングル12は、ハブ30を使用せずにコンピュータ20のポートに直接取り付けられてもよい。
【００３７】
コンピュータ20およびドングル10,12を備える上記のシステムは、マスタキーマテリアルをマスタドングル10からスレーブドングル12a〜nに安全に転送するためのものである。これにより、すべて同じマスタキーマテリアルを共有する複数のスレーブドングルを製造することができる。たとえば、同じ会社またはワーキンググループに属するすべてのスレーブドングルは、その社内またはワーキンググループ内で互いにデータを転送するときに、同じマスタキーマテリアルを暗号化および解読に使用できる。
【００３８】
マスタキーマテリアルは、マスタ暗号鍵であってもよい。
【００３９】
コンピュータ20は、マスタドングル10とスレーブドングル（複数可）12a〜nとを接続するための一般的なデータ転送システムの一例に過ぎない。しかし、他の形態のデータ転送システムを使用することができることを理解されたい。
【００４０】
例えば、データ転送システムは、図3に関連して以下に説明するような、専用デバイス40であってもよい。
【００４１】
あるいは、データ転送システムは、内部プロセッサを持たないケーブルまたはハブであってもよく、この場合、マスタドングル10およびスレーブドングル12の一方または両方は、マスタキーマテリアルを安全に転送するための方法ステップを実行するように構成されたプロセッサを含むことができる。
【００４２】
マスタドングル10が最初に使用されるとき、マスタキーマテリアルはFIPS承認乱数生成器によってランダムに生成され得、これは暗号化された形式でマスタドングル10内の安全なプロセッサの内部に格納される。
【００４３】
各スレーブドングル12a〜nは、公開鍵暗号での使用に適した固有の公開鍵/秘密鍵対を有する。公開鍵暗号でよく理解されているように、公開鍵は、友好的でも非友好的でも、公に共有され、他者に見られる可能性がある。秘密鍵は秘密裏に保持され、公開鍵を使用して暗号化されたデータの解読に使用することができる。
【００４４】
コンピュータ20は、マスタキーマテリアルを各スレーブドングル12a〜nに順に安全に転送するように設計されたソフトウェアを実行することができる。これらのスレーブドングルは、その後、例えば、 会社またはワーキンググループの作業員に、自身のデバイス（例えば、PC、ラップトップ、タブレット、電話機など）とともに使用して、これらのデバイスがマスタキーマテリアルを使用して互いに安全に通信することを可能にするために分配することができる。
【００４５】
図2は、マスタキーマテリアルがマスタドングル10から各スレーブドングル12a〜nに安全に転送され得る方法を示すシーケンス図を示す。
【００４６】
最初のステップ201,202,203は各々任意選択であり、互いに独立している。
【００４７】
ステップ201において、PINまたは他の認証がマスタドングル10に入力されて、マスタドングル10がデータを送信および受信できるようにロック解除される。
【００４８】
ステップ202において、PINまたは他の認証がスレーブドングル12に入力されて、スレーブドングル12がデータを送信および受信できるようにロック解除される。各スレーブドングル12a〜nは、デバイスのロックを解除するために必要な固有のPINまたは他の認証を有することができる。あるいは、複数のスレーブドングル12a〜nが、初期セットアップを容易にするために、同じPINまたは一時的な使い捨てPINを有してもよい。
【００４９】
ステップ203において、PINまたは他の認証が、データ転送システムに入力されて、データ転送システムが、マスタドングル10およびスレーブドングル12間でデータを転送し、および/またはそれらと通信することが可能になる。
【００５０】
任意選択のステップ101：データ転送システムは、スレーブドングル12から公開鍵を要求することができる。この要求は、マスタドングル10（図2の破線で示す）またはコンピュータ20もしくは専用デバイス40などから発せられ得る。
【００５１】
任意選択のステップ102：スレーブドングルは、所定のスクランブルアルゴリズムを使用して（すなわち、スクランブルされた公開鍵がステップ103においてデータ転送システムに提示されるように）その公開鍵をスクランブルすることができる。
【００５２】
ステップ103：スレーブドングルの公開鍵（任意選択的にスクランブルされている）は、データ転送システムに転送される。
【００５３】
ステップ104：スレーブドングルの公開鍵がマスタドングル10に転送される。
【００５４】
任意選択のステップ105：スレーブドングルの公開鍵がステップ102においてスクランブルされた場合、スクランブルアルゴリズムを用いて予めプログラムされたマスタドングルが、公開鍵をアンスクランブルする。
【００５５】
ステップ106：マスタドングル10が、（スクランブルされていない）スレーブドングルの公開鍵を使用してマスタキーマテリアルを暗号化する。
【００５６】
ステップ107：暗号化されたマスタキーマテリアルがマスタドングル10からデータ転送システムに転送される。
【００５７】
ステップ108：暗号化されたマスタキーマテリアルがスレーブドングル12に転送される。
【００５８】
ステップ109：スレーブドングルが、スレーブドングルの秘密鍵を使用してマスタキーマテリアルを解読して格納する。
【００５９】
図2に示す方法によれば、データ転送システムは、暗号化されていないマスタキーマテリアルを決して見ることはない。したがって、データ転送システムが攻撃者によって侵害された場合、攻撃者はマスタキーマテリアルを容易に発見することができない。
【００６０】
データ転送システムは、例えば、スレーブドングルの公開鍵の要求において能動的であってもよく、または受動的であり、単にドングル10,12によって送信されるデータの伝送媒体として機能してもよい。
【００６１】
図3は、マスタキーマテリアルをマスタドングル10からスレーブドングル（複数可）12a〜nに安全に転送するための代替的なシステムを示す。このシステムでは、上記の方法ステップ101〜109を実行するための専用デバイス40が提供される。すなわち、この例では、専用デバイス40がデータ転送システムである。
【００６２】
専用デバイス40は、複数のポート42a〜mを含む。第1のポート42aは、マスタドングル10に接続するためのものである。残りのポート42b〜mは各々、複数のスレーブドングル12a〜nのうちの1つに接続するためのものである。
【００６３】
専用デバイスは、制御キー44、表示デバイス46、および制御ボタン48からなる一組をさらに備える。
【００６４】
制御キー44は、数字0〜9を有する数値キーボード、ロックボタン、ロック解除ボタン、および矢印ボタンを含むことができる。専用デバイス40は、任意選択的に、方法ステップ101〜109を実行する前に、デバイスをロック解除するための数値コードを要求することができる（すなわち、ステップ203）。ロックボタンは、権限のないユーザが自身のスレーブドングル12を作成することを防止するために、使用後に専用デバイス40を再ロックするために使用することができる。
【００６５】
表示画面は、「ロック」、「ロック解除」、「転送準備完了」などのメッセージをユーザに表示するためのLCD画面であってもよい。
【００６６】
コピーボタン48を押すと、専用デバイス40は、第1のポート42aにプラグ接続されたマスタドングル10から、他のポート（複数可）42b〜mにプラグ接続されたスレーブドングル（複数可）12a〜nへの、マスタキーマテリアルの安全な転送を開始し得る。
【００６７】
複数のスレーブドングル12a〜nが専用デバイス40にプラグ接続されるとき、専用デバイス40は各スレーブドングル12に対して順に、方法ステップ101〜109を実行することができる。すなわち、第1のスレーブドングル12aに対してステップ101〜109が実行され、完了すると、第2のスレーブドングル12bに対してステップ101〜109が実行される。
【００６８】
同様に、複数のスレーブドングル12a〜nがコンピュータ20（または一般にデータ転送システム）にプラグ接続されるとき、コンピュータ20は、各スレーブドングル12に対して順に方法ステップ101〜109を実行することができる。すなわち、第1のスレーブドングル12aに対してステップ101〜109が実行され、完了すると、第2のスレーブドングル12bに対してステップ101〜109が実行される。
【００６９】
複数のスレーブドングル12a〜nがマスタキーマテリアルを格納すると、スレーブドングル12a〜nは、複数のユーザ、例えば、被雇用者またはワーキンググループのメンバーが互いにデータを安全に交換できるようにするために、当該ユーザに分配することができる。
【００７０】
図4は、複数の異なるデバイス50a〜eを使用して、複数のユーザがネットワーク60を介して（例えば、クラウドを介して）互いに通信することができる概略図を示す。デバイス50a〜eは、デスクトップコンピュータ、タブレットコンピュータ、スマートフォン、ラップトップコンピュータ、および/または、スレーブドングル12に接続することができる任意の他の一般的に使用されるコンピューティングデバイスのいずれかとすることができる。
【００７１】
それぞれのスレーブドングル12a〜eが、各デバイス50a〜eにプラグ接続される。各スレーブドングル12a〜eは、上記で示した方法によって同じマスタキーマテリアルを用いて準備されている。第1のユーザ52aが別のユーザ52bとデータを共有したい場合、第1のユーザ52aは、自身のデバイス50aに、ネットワーク60を介して他のユーザ52bにデータを送信するよう指示する。第1のユーザ52aのスレーブドングル12aは、マスタキーマテリアルを使用してデータを暗号化する。次に、データは、ネットワーク60を介して第2のユーザ52bに送信される。第2のユーザのデバイス50bは、暗号化されたデータを受信し、それを第2のスレーブドングル12bに渡す。次いで、第2のスレーブドングル12bは、マスタキーマテリアルを使用してデータを解読し、暗号化されていないデータを第2のユーザのデバイス50bに返す。
【００７２】
この構成では、マスタキーマテリアルは、デバイス50a〜eによって読み取られることも、デバイス50a〜eに転送されることも、ネットワーク60に見られることもない。その代わりに、マスタキーマテリアルは、各スレーブドングル12a〜e内の安全なプロセッサ上にしか存在しない。したがって、ネットワーク60のセキュリティが侵害された場合、盗聴者/ハッカーは暗号化されたデータを見るに留まる。
【００７３】
さらに、1つまたは複数のデバイス50a〜eのセキュリティが侵害された場合、盗聴者/ハッカーはそのデバイス上で暗号化されたデータおよび暗号化されていないデータを見るに留まり、ただし、それによってマスタキーマテリアルにアクセスできるようにはならず、したがって、ネットワーク全体を侵害することができるようにはならない。
【００７４】
その結果、新しいマスタキーマテリアルが準備され、新しいスレーブドングル12上で各ユーザに分配されることを要求することなく、侵害されたデバイスが（例えば、アンチウィルスプログラムなどを実行することによって）修復/再び安全確保される。
【００７５】
図示されていない代替の実施形態では、マスタドングル10またはスレーブドングル12のうちの1つは、2つのドングル10,12が、例えば、ケーブルまたはハブを介してともに接続されるときに、本方法を実施するように構成することができる。この場合、ケーブルがデータ転送システムである。この実施形態では、プロセッサを必要とするすべてのステップは、マスタドングル10またはスレーブドングル12によって適宜実行される。それにもかかわらず、この方法は、データ転送システムによって処理が行われる必要がないため、この方法は、マスタドングルとスレーブドングルとの間でマスタキーマテリアルを安全に転送するように機能する。これにより、ケーブル上の信号を読み取る盗聴者が、暗号化されていないマスタキーマテリアルを見ることは決してないと保証される。
【図１】
2019068413.tif 000003
【図２】
2019068413.tif 000004
【図３】
2019068413.tif 000005
【図４】
2019068413.tif 000006
【外国語明細書】
2019068413000001.pdf