(57)【要約】      （修正有）【課題】サイクル冗長コード機能を使用して算出した呼びかけ、応答を使用した認証方法を提供する。【解決手段】デバイスをホストに接続するときデバイスがホストから呼びかけを受信し、デバイス応答発生器がシード値と呼びかけを使用して認証応答を計算する。認証プロセスは、呼掛けを受信し、記憶されたシード値を検索することにより実行される。応答は、呼掛けとシード値に基づいて発生される。【効果】迅速に実行され、しかも充分安全な認証を提供する。【選択図】    図５
2005253041.tif 000002
【特許請求の範囲】
【請求項１】
デバイス入力／出力インターフェイス、
デバイス入力／出力インターフェイスに接続されたデバイス応答発生器、および
デバイス応答発生器に接続されたシード値を記憶するデバイスメモリを含む認証システムにおいて、
デバイス入力／出力インターフェイスを介してデバイスをホストに接続するとき、デバイスがホストから呼掛けを受信し、デバイス応答発生器がシード値と呼掛けを使用して認証応答を計算することを特徴とする、デバイスをホストに認証する認証システム。
【請求項２】
前記デバイス応答発生器が呼掛けにハッシュ機能を実行してハッシュコードを発生することを特徴とする請求項１記載の認証システム。
【請求項３】
前記ハッシュ機能がサイクル冗長コード（ＣＲＣ）機能であることを特徴とする請求項２記載の認証システム。
【請求項４】
前記デバイス応答発生器が複数のハッシュ計算器を含むことを特徴とする請求項１記載の認証システム。
【請求項５】
前記複数のハッシュ計算器が複数のサイクル冗長コード（ＣＲＣ）計算器であることを特徴とする請求項４記載の認証システム。
【請求項６】
前記複数のハッシュ計算器が複数の出力ハッシュコードを発生することを特徴とする請求項４記載の認証システム。
【請求項７】
前記デバイス応答発生器が、発生した複数の出力ハッシュコードの合成から認証応答を計算することを特徴とする請求項４記載の認証システム。
【請求項８】
前記複数のサイクル冗長コード（ＣＲＣ）計算器が複数の出力サイクル冗長コードを発生することを特徴とする請求項５記載の認証システム。
【請求項９】
前記デバイス応答発生器が、発生した複数の出力サイクル冗長コードの合成から認証応答を計算することを特徴とする請求項８記載の認証システム。
【請求項１０】
前記デバイス応答発生器が、複数のハッシュ計算器にビットを選択的に入力する複数のアドレッサブルマルチプレクサをさらに含むことを特徴とする請求項４記載の認証システム。
【請求項１１】
前記複数のアドレッサブルマルチプレクサが、ハッシュ計算器に呼掛けビットとシリアル出力ビットを選択的に入力することを特徴とする請求項１０記載の認証システム。
【請求項１２】
前記シード値が多項式コードを含むことを特徴とする請求項１記載の認証システム。
【請求項１３】
前記シード値が初期レジスタ値を含むことを特徴とする請求項１記載の認証システム。
【請求項１４】
前記シード値がマルチプレクサアドレス値を含むことを特徴とする請求項１記載の認証システム。
【請求項１５】
応答発生器、および
応答発生器に接続されたシード値を記憶するメモリを含む認証システムにおいて、
応答発生器が呼掛けを受信するとき、応答発生器がシード値と呼掛けを使用して認証応答を計算することを特徴とする認証システム。
【請求項１６】
前記応答発生器が呼掛けにハッシュ機能を実行してハッシュコードを発生することを特徴とする請求項１５記載の認証システム。
【請求項１７】
前記ハッシュ機能がサイクル冗長コード（ＣＲＣ）機能であることを特徴とする請求項１６記載の認証システム。
【請求項１８】
前記応答発生器が複数のハッシュ計算器を含むことを特徴とする請求項１５記載の認証システム。
【請求項１９】
前記複数のハッシュ計算器が複数のサイクル冗長コード（ＣＲＣ）計算器であることを特徴とする請求項１８記載の認証システム。
【請求項２０】
前記複数のハッシュ計算器が複数の出力ハッシュコードを発生することを特徴とする請求項１８記載の認証システム。
【請求項２１】
前記応答発生器が、発生した複数の出力ハッシュコードの合成から認証応答を計算することを特徴とする請求項１８記載の認証システム。
【請求項２２】
前記複数のサイクル冗長コード（ＣＲＣ）計算器が複数の出力サイクル冗長コードを発生することを特徴とする請求項１９記載の認証システム。
【請求項２３】
前記応答発生器が、発生した複数の出力サイクル冗長コードの合成から認証応答を計算することを特徴とする請求項２２記載の認証システム。
【請求項２４】
前記応答発生器が、複数のハッシュ計算器にビットを選択的に入力する複数のアドレッサブルマルチプレクサをさらに含むことを特徴とする請求項１８記載の認証システム。
【請求項２５】
前記複数のアドレッサブルマルチプレクサが、複数のハッシュ計算器に呼掛けビットとシリアル出力ビットを選択的に入力することを特徴とする請求項２４記載の認証システム。
【請求項２６】
前記シード値が多項式コードを含むことを特徴とする請求項１５記載の認証システム。
【請求項２７】
前記シード値が初期レジスタ値を含むことを特徴とする請求項１５記載の認証システム。
【請求項２８】
前記シード値がマルチプレクサアドレス値を含むことを特徴とする請求項１５記載の認証システム。
【請求項２９】
デバイスでホストから呼掛けを受信し、
デバイスによりメモリからシード値を検索し、
呼掛けとシード値に基づいて応答を発生することを含むことを特徴とする、デバイスをホストに認証する認証方法。
【請求項３０】
前記応答を発生する工程は呼掛けにハッシュ機能を実行してハッシュコードを発生することを含むことを特徴とする請求項２９記載の認証方法。
【請求項３１】
前記ハッシュ機能がサイクル冗長コード（ＣＲＣ）機能であることを特徴とする請求項３０記載の認証方法。
【請求項３２】
前記応答を発生する工程は複数のハッシュ計算を含むことを特徴とする請求項２９記載の認証方法。
【請求項３３】
前記複数のハッシュ計算が複数のサイクル冗長コード（ＣＲＣ）計算であることを特徴とする請求項３２記載の認証方法。
【請求項３４】
前記複数のハッシュ計算が複数の出力ハッシュコードを発生することを特徴とする請求項３２記載の認証方法。
【請求項３５】
前記応答を発生する工程は、発生した複数の出力ハッシュコードを合成することを含むことを特徴とする請求項３４記載の認証方法。
【請求項３６】
前記応答を発生する工程は、複数の出力サイクル冗長コードを発生することを含むことを特徴とする請求項３４記載の認証方法。
【請求項３７】
前記応答を発生する工程は、発生した複数の出力サイクル冗長コードを合成することを含むことを特徴とする請求項３６記載の認証方法。
【請求項３８】
ハッシュ計算にビットを選択的に入力することをさらに含むことを特徴とする請求項３２記載の認証方法。
【請求項３９】
前記ビットを選択的に入力する工程は、ハッシュ計算に呼掛けビットとシリアル出力ビットを選択的に入力することを含むことを特徴とする請求項３８記載の認証方法。
【請求項４０】
前記シード値が多項式コードを含むことを特徴とする請求項２９記載の認証方法。
【請求項４１】
前記シード値が初期レジスタ値を含むことを特徴とする請求項２９記載の認証方法。
【請求項４２】
前記シード値がマルチプレクサアドレス値を含むことを特徴とする請求項２９記載の認証方法。
【請求項４３】
呼掛けを受信し、
記憶したシード値を検索し、
呼掛けとシード値に基づいて応答を発生することを含むことを特徴とする認証方法。
【請求項４４】
前記応答を発生する工程は呼掛けにハッシュ機能を実行してハッシュコードを発生することを特徴とする請求項４３記載の認証方法。
【請求項４５】
前記ハッシュ機能がサイクル冗長コード（ＣＲＣ）機能であることを特徴とする請求項４４記載の認証方法。
【請求項４６】
前記応答を発生する工程は複数のハッシュ計算を含むことを特徴とする請求項４３記載の認証方法。
【請求項４７】
前記複数のハッシュ計算が複数のサイクル冗長コード（ＣＲＣ）計算であることを特徴とする請求項４６記載の認証方法。
【請求項４８】
前記複数のハッシュ計算が複数の出力ハッシュコードを発生することを特徴とする請求項４７記載の認証方法。
【請求項４９】
前記応答を発生する工程は、発生した複数の出力ハッシュコードを合成することを特徴とする請求項４８記載の認証方法。
【請求項５０】
前記応答を発生する工程は、複数の出力サイクル冗長コードを発生することを特徴とする請求項４９記載の認証方法。
【請求項５１】
前記応答を発生する工程は、発生した複数の出力サイクル冗長コードを合成することを特徴とする請求項５０記載の認証方法。
【請求項５２】
ハッシュ計算にビットを選択的に入力することをさらに含むことを特徴とする請求項４３記載の認証方法。
【請求項５３】
前記ビットを選択的に入力する工程は、ハッシュ計算に呼掛けビットとシリアル出力ビットを選択的に入力することを特徴とする請求項５２記載の認証方法。
【請求項５４】
前記シード値が多項式コードを含むことを特徴とする請求項４３記載の認証方法。
【請求項５５】
前記シード値が初期レジスタ値を含むことを特徴とする請求項４３記載の認証方法。
【請求項５６】
前記シード値がマルチプレクサアドレス値を含むことを特徴とする請求項４３記載の認証方法。
【発明の詳細な説明】
【関連する特許の相互参照】
【０００１】
この出願は、２００４年２月２４日に申請された仮出願第６０／５４７，１４４号の優先権を主張するものである。
【技術分野】
【０００２】
本発明は、認証プロトコルに関し、特に、サイクル冗長コード（ＣＲＣ）機能を使用して算出した呼掛け‐応答を使用した認証に関するものである。
【背景技術】
【０００３】
デジタル認証は現代システムの重要な部分になり得る。認証は通信、トランザクションおよびデバイスに使用する。しばしばスピードと安全性との間の認証プロトコルの得失がある。迅速に実行され、しかも十分安全な認証を提供し得る認証システムを有することが重要になり得る。従って必要とされるものは安全な認証応答を算出する効率的なシステムおよび方法である。
【０００４】
認証プロセスは、呼掛けを受信し、記憶されたシード値を検索することにより実行される。応答は、呼掛けとシード値に基づいて発生される。
【０００５】
図は必ずしも尺度に合わせて描かず、幾つかの例では図面を図示の目的のみ
のため誇張あるいは単純化してある。当業者は、本発明の以下の可能な実施例に基づいた本発明の多くの可能な応用および変更を認識する。
【０００６】
図１は、呼掛け‐応答認証システム１００の機能ブロック図を示す。呼掛け‐応答認証システム１００は、認証ユニット１０２と通信的に接続された認証符号ユニット１０１を含む。通常、認証符号ユニット１０１はオーソリティ１０３に接続あるいは一体化され得る。認証ユニット１０２はデバイス１０４に接続あるいは一体化され得る。幾つかの実施例では、認証符号ユニット１０１はオーソリティ１０３なしで十分であり得る。幾つかの実施例では、認証ユニット１０２はデバイス１０４なしで十分であり得る。特にこの場合、認証ユニット１０２はトークンあるいはキーとして認証ユニット１０２の所有を認証するために使用する。
【０００７】
オーソリティ１０３は、デバイス１０４がオーソリティ１０３にうまく認証された場合デバイス１０４が通信可能に接続され得るシステムあるいはリソースであってよい。実施例によると、オーソリティ１０３は携帯電話であり、デバイス１０４は携帯電話バッテリであってよい。オーソリティ１０３はコンピュータネットワークであり、デバイス１０４はコンピュータであってよい。オーソリティ１０３はロックであり、デバイス１０４あるいは認証ユニットはキーであってよい。
【０００８】
実施例によると、認証符号ユニット１０１と認証ユニット１０２は相互認証できペアで分配され得る。これらのペア分配の認証符号ユニット１０１と認証ユニット１０２は、実施例の特定の安全性の問題に依存してリソースを共有あるいは独立に実行してよい。ユニット内の冗長機能のため、認証符号ユニット１０１は、かかる構成が十分な認証安全性を提供するとき、実質的に認証ユニット１０２として機能できる。
【０００９】
認証符号ユニット１０１と認証ユニット１０２が機能素子を含んでいるように描く。これらの機能素子はマイクロプロセッサで実行されるソフトウェアで、１つ以上の集積回路で、個々の回路であるいはソフトウェアとハードウェアの組み合わせとして実施し得る。議論の容易のため、これらの機能素子は、（素子の実際の実施は通常、記載した実施例から変化するだろうが）、互いに独立して実施し通信可能に接続するように扱う。
【００１０】
認証符号ユニット１０１は、認証符号Ｉ／Ｏ素子１０５、呼掛け発生器１０６、認証符号応答発生器１０７および認証符号メモリ１０８を含んでよい。実施例によると、認証符号Ｉ／Ｏ素子１０５はオーソリティ１０３、認証ユニット１０２、呼掛け発生器１０６、認証符号応答発生器１０７および認証符号メモリ１０８に接続する。認証符号応答発生器１０７は直接に呼掛け発生器１０６と認証符号メモリ１０８に接続してよい、あるいは認証符号Ｉ／Ｏ素子１０５を介してそれらの素子に接続してよい。
【００１１】
認証符号ユニット１０１は認証符号Ｉ／Ｏ素子１０５を含んでよい。認証符号Ｉ／Ｏ素子１０５は認証符号ユニット１０１、認証ユニット１０２およびオーソリティ１０３の素子間の通信を制御し得る。認証符号Ｉ／Ｏ素子１０５は１つ以上のポート、ジャック、ワイヤコネクタを含む受動接続素子あるいは他の受動接続素子を含んでよい。認証符号Ｉ／Ｏ素子１０５はプロセッサ、送信機、受信機、変調器、復調器、論理回路を含む能動接続素子あるいは他の能動接続素子を含んでよい。認証符号Ｉ／Ｏ素子１０５は通信の処理、送信および受信を制御するようにソフトウェア接続素子を含んでよい。
【００１２】
認証符号ユニット１０１は呼掛け発生器１０６を含んでよい。呼掛け発生器１０６は呼掛け‐応答認証の呼掛けとして使用のビットシーケンスを提供し得る。呼掛け発生器１０６は認証ユニット１０２への送信のため、認証符号応答発生器１０７および認証符号Ｉ／Ｏ素子１０５に呼掛けを提供し得る。一実施例によると、呼掛け発生器１０６は擬似乱数発生器である。呼掛け発生器１０６は乱数発生器であってよい。呼掛けは、シードあるいはパスフレーズ、スタティックメモリに記憶された所定の呼掛けシーケンスセットから選択されたビットシーケンスあるいはダイナミックメモリから選択されたシーケンスパターン、あるいは任意の他の適当なビットシーケンスからの計算を含む、ビットシーケンスを作成する任意の方法で形成し得る。認証プロセスの安全性は発生した呼掛けに依存するので、呼掛け発生器１０６の選択は認証プロセスのコンテキストにより要求される安全性のレベルに依存し得る。通常、最強の呼掛けは、真の乱数発生器から得られる。
【００１３】
一実施例によると、呼掛け発生器１０６は３２ビットランダムシーケンスを提供する。一実施例によると、認証プロセスで一度呼掛けを提供するのみの場合、真の乱数発生器を利用できる。別の実施例によると、通常、シードあるいはパスフレーズを使用して、別の時間で呼掛けを再生成する必要があっても良い。その場合、擬似乱数発生器が必要になり得る。呼掛けは呼掛け発生器１０６により任意のフォーマットで提供され他の素子により要求されるどんなフォーマットにも変換され得るが、一実施例によると、呼掛け発生器１０６は連続的に呼掛けを提供する。
【００１４】
認証符号ユニット１０１は認証符号メモリ１０８を含んでよい。実施例によると、認証符号メモリ１０８は、記憶されたビットが許可なしに読まれたり、アクセスされたり、識別されたり、あるいは変更されたりすることができないようなセキュアメモリであってよい。実施例によると、認証符号メモリ１０８は電子的に消去可能なプログラム可能リード・オンリ・メモリ（ＥＥＰＲＯＭ）であってよい。感知可能データを認証符号メモリ１０８に記憶するとき、感知可能データへの無許可リード／ライトアクセスが可能でない、あるいは困難であるようにロックアウトビットを融合し得る。認証符号メモリ１０８を含む集積回路は、認証符号メモリ１０８の安全性を探るあるいは破る他の物理的方法を困難にするように設計し得る。感知可能データを認証符号メモリ１０８に記憶する前に暗号化し得る。当業者は認識するように、認証符号メモリ１０８内に感知可能データを確保する他の形態を採用してよい。
【００１５】
認証符号メモリ１０８はシードデータを記憶してよい。与えられたシードデータセットを認証ユニット１０２に連携させ得る。数個の認証ユニット１０２を各々異なったシードデータセットに連携させ得る。一実施例によると、認証符号メモリ１０８は各々がユニークシードデータセットに連携したユニーク認証ユニット１０２用に認証ユニット識別データを記憶してよい。
【００１６】
認証符号ユニット１０１は認証符号応答発生器１０７を含んでよい。認証符号応答発生器１０７は呼掛け発生器１０６から呼掛けを受信し、呼掛けを変換して呼掛け‐応答認証プロトコルの応答として機能するビットシーケンスを発生する。認証符号応答発生器１０７は変換における使用に認証符号メモリ１０８からシードデータを受信し得る。認証符号応答発生器１０７により発生する応答を認証ユニット１０２に連携させるようにシードデータを認証ユニット１０２に連携させ得る。
【００１７】
機能的に、認証符号応答発生器１０７は任意の変換機能を使用して応答を発生し得る。呼掛け‐応答認証プロセスの強度と効率は使用される変換機能に大きく依存する。実施例によると、認証符号応答発生器１０７は複数の独立サイクル冗長コード（ＣＲＣ）機能から得た変換機能を使用する。一実施例による固有の変換機能を使用した認証符号応答発生器１０７を図２と図７を参照して説明する。
【００１８】
認証ユニット１０２は、認証Ｉ／Ｏ素子１０９、認証応答発生器１１０および認証メモリ１１１を含んでよい。実施例によると、認証Ｉ／Ｏ素子１０９はデバイス１０４、認証符号ユニット１０１、認証応答発生器１１０および認証メモリ１１１に接続する。認証応答発生器１１０は直接に認証メモリ１１１に接続してよい、あるいは認証Ｉ／Ｏ素子１０９を介して認証メモリ１１１に接続してよい。
【００１９】
認証符号ユニット１０１は認証Ｉ／Ｏ素子１０９を含んでよい。認証Ｉ／Ｏ素子１０９は認証符号ユニット１０１、認証ユニット１０２およびデバイス１０４の素子間の通信を制御し得る。認証Ｉ／Ｏ素子１０９は１つ以上のポート、ジャック、ワイヤコネクタを含む受動接続素子あるいは他の受動接続素子を含んでよい。認証Ｉ／Ｏ素子１０９はプロセッサ、送信機、受信機、変調器、復調器、論理回路を含む能動接続素子あるいは他の能動接続素子を含んでよい。認証Ｉ／Ｏ素子１０９は通信の処理、送信および受信を制御するようにソフトウェア接続素子を含んでよい。
【００２０】
認証ユニット１０２は認証メモリ１１１を含んでよい。実施例によると、認証メモリ１１１は、記憶されたビットが許可なしに読まれたり、アクセスされたり、識別されたり、あるいは変更されたりすることができないようなセキュアメモリであってよい。実施例によると、認証メモリ１１１は電子的に消去可能なプログラム可能リード・オンリ・メモリ（ＥＥＰＲＯＭ）であってよい。感知可能データを認証メモリ１１１に記憶するとき、感知可能データへの無許可リード／ライトアクセスが可能でない、あるいは困難であるようにロックアウトビットを融合し得る。認証メモリ１１１を含む集積回路は、認証メモリ１１１の安全性を探るあるいは破る他の物理的方法を困難にするように設計し得る。感知可能データを認証メモリ１１１に記憶する前に暗号化し得る。当業者は認識するように、認証メモリ１１１内に感知可能データを安全確保する他の形態を採用してよい。
【００２１】
認証ユニット１０２は認証応答発生器１１０を含んでよい。認証応答発生器１１０は認証Ｉ／Ｏ素子１０９から呼掛けを受信し、呼掛けを変換して呼掛け‐応答認証プロトコルの応答として機能するビットシーケンスを発生する。通常、認証応答発生器１１０により実行される変換機能は認証符号応答発生器１０７により実行される変換機能と同一である。別の実施例によると、認証応答発生器１１０の変換機能は認証符号応答発生器１０７の変換機能に逆あるいは関係している。認証応答発生器１１０は変換における使用に認証メモリ１１１からシードデータを受信し得る。
【００２２】
機能的に、認証応答発生器１１０は任意の変換機能を使用して応答を発生し得る。呼掛け‐応答認証プロセスの強度と効率は使用される変換機能に大きく依存する。実施例によると、認証応答発生器１１０は複数の独立サイクル冗長コード（ＣＲＣ）機能から得た変換機能を使用する。一実施例による固有の変換機能を使用した認証応答発生器１１０を図２と図７を参照して説明する。
【００２３】
認証符号ユニット１０１と認証ユニット１０２は認証符号Ｉ／Ｏ素子１０５と認証Ｉ／Ｏ素子１０９を介して相互通信する。通常、通信は物理的導電接触の直接接続により確立する。当業者は認識するように、認証プロセスのコンテキストに応じて他の通信形態を実施してよい。通信は通信ラインあるいはワイヤレス通信を使用して実行し得る。通信はパケットネットワークプロトコル、光学信号あるいは機械的信号を使用して確立し得る。通信は１つ以上の通信方法を適宜使用して実行し得る。
【００２４】
図２は、一実施例による応答発生器１１２の機能ブロック図を示す。応答発生器１１２は、図１に示すように、認証符号Ｉ／Ｏ素子１０５と認証応答発生器１１０として使用し得る。応答発生器１１２は個々の機能部品を使用して実施されるように描くが、当業者は、実際は、プロセッサで実行されるソフトウェアあるいは種々のソフトウェアとハードウェア部品の組み合わせで実行され、単一の集積回路に一体化された個々の部品で実施されることを認識する。同様に、応答発生器１１２の認証符号Ｉ／Ｏ素子１０５としての実施は認証応答発生器１１０としての実施と異なり得るが、機能的に同じであり得る。
【００２５】
応答発生器１１２は通常、入力１１３から入力ビットストリームを受信する。実施例によると、入力ビットストリームは呼掛け‐応答認証プロトコルの呼掛けである。入力１１３の機能は呼掛け発生器１０６、認証符号Ｉ／Ｏ素子１０５あるいは認証Ｉ／Ｏ素子１０９により実行し得る。入力１１３は呼掛けビットストリームをマルチプレクサセット１１４、１１５、１１６および１１７の入力に提供する。
【００２６】
実施例によると、応答発生器１１２は４つのマルチプレクサ１１４、１１５、１１６および１１７を含む。４つのマルチプレクサ１１４、１１５、１１６および１１７の各々は１セットのアドレッサブル入力を含む。実施例によると、各マルチプレクサは４つのアドレッサブル入力を有する。第１のマルチプレクサ１１４はアドレッサブル入力１２９、１３０、１３１および１３２を含む。第２のマルチプレクサ１１５はアドレッサブル入力１３４、１３５、１３６および１３７を含む。第３のマルチプレクサ１１６はアドレッサブル入力１３８、１３９、１４０および１４１を含む。第４のマルチプレクサ１１７はアドレッサブル入力１４４、１４５、１４６および１４７を含む。
【００２７】
マルチプレクサ１１４、１１５、１１６および１１７の各々は２ビットアドレス入力１３３、１４２、１４３および１４８を含む。２ビット入力コードＡＤA、ＡＤB、ＡＤCおよびＡＤDを２ビットアドレス入力１３３、１４２、１４３および１４８に印加することにより、マルチプレクサ１１４、１１５、１１６および１１７は出力用にアドレッサブル入力の１つを選択する。例えば、マルチプレクサ１１４はアドレッサブル入力１２９、１３０、１３１および１３２を含む。ＡＤAを００に等しいように設定しアドレス入力１３３に印加するとき、入力１２９の入力信号はマルチプレクサ１１４から出力される。ＡＤAを０１に等しいように設定しアドレス入力１３３に印加するとき、入力１３０の入力信号はマルチプレクサ１１４から出力される。同様に、各マルチプレクサの各アドレッサブル入力は適切なアドレスコードを適切なアドレス入力に印加することにより選択され得る。入力コードは通常、認証符号メモリ１０８あるいは認証メモリ１１１のようなセキュアメモリから受信される。
【００２８】
各マルチプレクサ１１４、１１５、１１６および１１７の出力はそれぞれ、１セットのＣＲＣ計算器１１９、１２０、１２１および１２２の１つにビット的に入力される。各ＣＲＣ計算器１１９、１２０、１２１および１２２はそれぞれ、レジスタシード１４９、１５０、１５１および１５２で初期化する。レジスタシード１４９、１５０、１５１および１５２は通常、認証符号メモリ１０８あるいは認証メモリ１１１のようなセキュアメモリから受信される。
【００２９】
実施例によると、ＣＲＣ計算器１１９、１２０、１２１および１２２は連続的呼掛けの各ビットに作用する。各計算サイクルにより、１ビットの呼掛けシーケンスが各マルチプレクサ１１４、１１５、１１６および１１７の入力の１つに入力される。各計算サイクルにより、シリアル出力ビットＳＯA１２５、ＳＯB１２６、ＳＯC１２７およびＳＯD１２８がそれぞれのＣＲＣ計算器１１９、１２０、１２１および１２２の各々から出力される。実施例によると、シリアル出力ビット１２５、１２６、１２７および１２８をマルチプレクサ１１４、１１５、１１６および１１７のアドレッサブル入力にフィードバックする。
【００３０】
ＣＲＣ計算器１１９、１２０、１２１および１２２からマルチプレクサ１１４、１１５、１１６および１１７のアドレッサブル入力へのシリアル出力ビット１２５、１２６、１２７および１２８のフィードバックは、応答発生器１１２の最終出力の大きな予測不可能性を提供するようにパターン化し得る。実施例によると、入力１１３を第１のマルチプレクサ１１４の第１のアドレッサブル入力１２９、第２のマルチプレクサ１１５の第２のアドレッサブル入力１３５、第３のマルチプレクサ１１６の第３のアドレッサブル入力１４０および第４のマルチプレクサ１１７の第４のアドレッサブル入力１４７に供給する。第１のＣＲＣ計算器１１９のシリアル出力ビット１２５を第２のマルチプレクサ１１５の第１のアドレッサブル入力１３４、第３のマルチプレクサ１１６の第１のアドレッサブル入力１３８および第４のマルチプレクサ１１７の第１のアドレッサブル入力１４４に供給する。第２のＣＲＣ計算器１２０のシリアル出力ビット１２６を第１のマルチプレクサ１１４の第２のアドレッサブル入力１３０、第３のマルチプレクサ１１６の第２のアドレッサブル入力１３９および第４のマルチプレクサ１１７の第２のアドレッサブル入力１４５に供給する。第３のＣＲＣ計算器１２１のシリアル出力ビット１２７を第１のマルチプレクサ１１４の第３のアドレッサブル入力１３１、第２のマルチプレクサ１１５の第３のアドレッサブル入力１３６および第４のマルチプレクサ１１７の第３のアドレッサブル入力１４６に供給する。第４のＣＲＣ計算器１２２のシリアル出力ビット１２８を第１のマルチプレクサ１１４の第４のアドレッサブル入力１３２、第２のマルチプレクサ１１５の第４のアドレッサブル入力１３７および第３のマルチプレクサ１１６の第４のアドレッサブル入力１４１に供給する。当業者は他のフィードバックパターンを実施できることを認識する。
【００３１】
入力１１３により提供される完全入力ビットシーケンスをＣＲＣ計算器１１９、１２０、１２１および１２２で処理するとき、８ビット出力シーケンスが各ＣＲＣ計算器１１９、１２０、１２１および１２２からそれぞれ出力される。８ビット出力シーケンスを排他的ＯＲ素子１２３に入力する。排他的ＯＲ素子１２３は８ビット出力シーケンスにビット的排他的ＯＲ機能を実行して８ビット応答シーケンスを発生する。ここで、応答シーケンスの第１のビットは各８ビット出力シーケンスの第１のビットの排他的ＯＲであるなどである。他の実施例によると、８ビット出力シーケンスを相対的にシフトする。即ち、第２の出力シーケンスを第１の出力シーケンスに対して２ビット右へシフトし、第３の出力シーケンスを第１の出力シーケンスに対して４ビット右へシフトし、第４の出力シーケンスを第１の出力シーケンスに対して６ビット右へシフトする。それから、シフトした出力シーケンスを合成して８ビット応答シーケンスを形成する。応答は出力素子１２４で通常シリアルメッセージ信号として提供される。出力素子１２４は、応答発生器１１２を認証符号応答発生器１０７として使用するとき、認証符号Ｉ／Ｏ素子１０５であり得る。出力素子１２４は、応答発生器１１２を認証応答発生器１１０として使用するとき、認証Ｉ／Ｏ素子１０９であり得る。
【００３２】
図３は、実施例によるＣＲＣ計算器１５０の機能ブロック図を示す。ＣＲＣ計算器１５０の機能ブロック図を個々の素子で実施するように示すが、当業者はＣＲＣ計算器１５０の機能が他の実施で行えることを認識する。機能は１つ以上の集積回路、論理回路、プロセッサで実行されるソフトウェアあるいはこれらの実施部品を組み合わせて実施され得る。実施の具体的方法は、実施例のパラメータとコンテキストに依存し得る。当業者はシフトレジスタモデルの他にＣＲＣ計算器１５０の他の知られた実施方法があり、特に、ＣＲＣ計算器１５０をルックアップテーブルを使用して実施し得ることを認識する。実施例に必要な出力が得られる場合、任意のＣＲＣ計算器１５０の具体的実施を選び得る。
【００３３】
ＣＲＣ計算器１５０は、レジスタ配置１５６，１５７、１５８，１５９、１６０、１６１、１６２および１６３を含むシフトレジスタ１５１を含む。実施例によると、シフトレジスタ１５１は８つのレジスタ配置を含む。当業者は８つ以上または８つ以下のレジスタ配置を有するＣＲＣ計算器１５０を使用できることを認識する。各レジスタ配置にビットｂを記憶する。即ち、第１のビットｂ7を第１のレジスタ配置１５６に記憶し、第２のビットｂ6を第２のレジスタ配置１５７に記憶し、第３のビットｂ5を第３のレジスタ配置１５８に記憶し、第４のビットｂ4を第４のレジスタ配置１５９に記憶し、第５のビットｂ3を第５のレジスタ配置１６０に記憶し、第６のビットｂ2を第６のレジスタ配置１６１に記憶し、第７のビットｂ1を第７のレジスタ配置１６２に記憶し、第８のビットｂ0を第８のレジスタ配置１６３に記憶する。各計算サイクルにより、第８のレジスタ配置１６３に記憶したビットｂ0をシリアル出力１５４として出力し、第７のレジスタ配置１６２に記憶したビットｂ1を第８のレジスタ配置１６３に移し、第６のレジスタ配置１６１に記憶したビットｂ2を第７のレジスタ配置１６２に移し、第５のレジスタ配置１６０に記憶したビットｂ3を第６のレジスタ配置１６１に移し、第４のレジスタ配置１５９に記憶したビットｂ4を第５のレジスタ配置１６０に移し、第３のレジスタ配置１５８に記憶したビットｂ5を第４のレジスタ配置１５９に移し、第２のレジスタ配置１５７に記憶したビットｂ6を第３のレジスタ配置１５８に移し、第１のレジスタ配置１５６に記憶したビットｂ7を第２のレジスタ配置１５７に移し、シリアル入力１５２からの入力ビットをシリアル出力ビット１５４と合成し（排他的ＯＲ１７２）、第１のレジスタ配置１５６に移す。
【００３４】
レジスタ配置１５６，１５７、１５８，１５９、１６０、１６１、１６２および１６３の各々は初期にシード入力１５３から入力したシードビットを記憶する。実施例では、シード入力１５３は認証符号メモリ１０８あるいは認証メモリ１１１である。
【００３５】
ＣＲＣ計算器１５０は多項式コードｐを使用して出力シーケンス１５５を算出する。実施例によると、多項式コードｐは６ビットバイナリコードであり、３ビット正指数と３ビット負指数を表す。正指数は正フィードバック項の位置、排他的ＯＲ機能１７６をＣＲＣレジスタ１５１のビットシーケンスに配置する。ゼロは正フィードバック項がないことを表す。負指数は負フィードバック項の位置、排他的ＮＯＲ機能１７４をＣＲＣレジスタ１５１のビットシーケンスに配置する。ゼロは負フィードバック項がないことを表す。実施例において、３ビット正指数が２であり、３ビット負指数が４である。
【００３６】
標準的ＣＲＣ計算によると、シリアル出力ビット１５４が「１」に等しいとき、シフトレジスタ１５１に記憶した各ビットを、ｐによって表される多項式の対応するビットに加える（ここで、バイナリ加算は排他的ＯＲ機能に等しく、バイナリ減算は排他的ＮＯＲ機能に等しい）。実施例によると、排他的ＯＲ機能１７６と排他的ＮＯＲ機能１７４はそれらの位置とシリアル出力ビットとシリアル入力ビットの排他的ＯＲに従ってそれぞれのビットに作用する。
【００３７】
シリアル入力１５２からの最終ビットを第１のレジスタ配置１５６にシフトし、多項式を必要に応じてシフトレジスタの内容に加えた後、シフトレジスタの最終内容は出力１５５により受信される。
【００３８】
図４は、認証符号ユニット１０１による認証ユニット１０２の初期化２００のフローチャートを示す。認証ユニット１０２は認証符号ユニット１０１に通信可能に接続して機能ブロック２０２で認証ユニット１０２を初期化する。当業者は、この初期化プロトコルの認証符号ユニット１０１が認証プロトコルを実行する認証符号ユニット１０１と物理的に同一である必要はないことを認識する。初期化プロトコルは物理的同一ではなく、記憶された情報の連続性を要求する。
【００３９】
認証符号ユニット１０１は機能ブロック２０４で認証ユニット１０２に連携した認証識別コードを捕捉し得る。認証識別コードを認証符号メモリ１０８から読み出し得る、あるいは同時に認証ユニット１０２に割り当て、認証符号メモリ１０８に記憶し得る。認証識別コードは特定の認証ユニット１０２を識別し得る、あるいは認証ユニット１０２の部類またはタイプを識別し得る。実施例によると、初期化が特定の認証符号ユニット１０１または認証ユニットタイプに合っていない場合、認証識別コードを使用できないが、ステップを省略し得る。
【００４０】
プロセスは認証符号ユニット１０１が多項式コードを割り当てる機能ブロック２０６に進む。通常、多項式コードは所定の多項式コードセットから選ぶ。多項式コードは所定の多項式コードセットからランダムに、あるいは所定のパターンに従って選べる。多項式コードは所定の多項式コードセットからランダムに、あるいは多項式コード発生プロトコルに従って発生できる。実施例によると、多項式コードは８ビットバイナリコードである。当業者は、与えられた実施に適切な多項式コードが８ビットより大きくまたは小さくなり得る、あるいは適切な他の形式で表され得ることを認識する。
【００４１】
プロセスはシードコードを割り当てる機能ブロック２０８に進む。通常、シードコードはランダムに発生される。シードコードは所定のシードコードセットから選ぶ。シードコードは所定のシードコードセットからランダムに、あるいは所定のパターンに従って選べる。実施例によると、シードコードは８ビットバイナリコードである。当業者は、与えられた実施に適切なシードコードが８ビットより大きくまたは小さくなり得る、あるいは適切な他の形式で表され得ることを認識する。
【００４２】
プロセスは機能ブロック２１０と２１２に進む。機能ブロック２１０で、多項式コードとシードコードを認証メモリ１１１に記憶する。機能ブロック２１２で、多項式コードとシードコードを認証符号メモリ１０８に記憶する。認証識別コードを認証ユニット１０２に連携した場合、多項式コードとシードコードは認証識別コードに連携した認証符号メモリ１０８に記憶する。多項式コードとシードコードは、機能ブロック２１０で認証メモリ１１１に記憶する前に機能ブロック２１４で暗号化しても良い。多項式コードとシードコードは、機能ブロック２１２で認証符号メモリ１０８に記憶する前に機能ブロック２１６で暗号化しても良い。認証識別コードは、安全性と実施したデータ修復技術に依存して機能ブロック２１６で暗号化しても良い。
【００４３】
多項式コードとシードコードを機能ブロック２１０で認証メモリ１１１に記憶したとき、プロセスは、認証メモリ１１１内に記憶したデータを確保する機能ブロック２１８に進む。認証メモリ１１１内にデータを確保するステップはデジタル安全性尺度、物理的安全性尺度、あるいはその両方になる。当業者は、この時点前に認証メモリ１１１を確保でき、さらに安全性尺度となり得ることを認識する。
【００４４】
多項式コードとシードコードを機能ブロック２１２で認証符号メモリ１０８に記憶したとき、プロセスは、認証符号メモリ１０８内に記憶したデータを確保する機能ブロック２２０に進む。認証符号メモリ１０８内にデータを確保するステップはデジタル安全性尺度、物理的安全性尺度、あるいはその両方になる。当業者は、この時点前に認証符号メモリ１０８を確保でき、さらに安全性尺度となり得ることを認識する。
【００４５】
図５は、認証ユニット１０２またはデバイス１０４を認証符号ユニット１０１またはオーソリティ１０３に認証する認証プロセス２２２のフローチャートを示す。機能ブロック２２４で認証を初期化する。プロセスは機能ブロック２２６に進む。ここで、オーソリティ１０３とデバイス１０４間で通信を確立する。通常、オーソリティ１０３とデバイス１０４間の通信は、認証符号Ｉ／Ｏ素子１０５と認証Ｉ／Ｏ素子１０９の直接接続によって確立される。
【００４６】
プロセスは機能ブロック２２８に進む。ここで、オーソリティ１０３が呼掛けコードを発生する。実施例によると、呼掛けコードは呼掛け発生器１０６によって発生される。機能ブロック２３０でオーソリティ１０３が呼掛けコードをデバイス１０４に送る。
【００４７】
機能ブロック２３２でデバイス１０４はデバイス１０４で記憶した多項式コードとシードコードを読み出し多項式コードとシードコードを認証応答発生器１１０に入力する。通常、このステップは機能ブロック２２４で認証初期化の一部として、あるいはその後で応答計算の前に行う。機能ブロック２３４で必要に応じて多項式コードとシードコードを復号できる。
【００４８】
機能ブロック２３６で多項式コード、シードコードおよび呼掛けコードを使用して、デバイス１０４は応答を計算する。実施例によると、認証応答発生器１１０を使用して応答を計算する。機能ブロック２３８でデバイス１０４は呼掛け応答をオーソリティ１０３に発信する。
【００４９】
機能ブロック２４０でオーソリティ１０３は認証符号メモリ１０８から多項式コードとシードコードを読み出す。認証符号メモリ１０８の多項式コードとシードコードを認証識別コードに連携して記憶する場合、オーソリティ１０３は認証識別コードを受信し認証符号メモリ１０８から多項式コードとシードコードを読み出す。多項式コードとシードコードを暗号形式で記憶したとき、機能ブロック２４２でコードを復号する。機能ブロック２４４で多項式コード、シードコードおよび呼掛けコードを使用して、オーソリティ１０３は応答コードを計算する。実施例によると、オーソリティ１０３は認証符号応答発生器１０７で応答コードを計算する。
【００５０】
機能ブロック２４６で、オーソリティ１０３はデバイス１０４から受信した呼掛け応答からの応答コードを、オーソリティ１０３により計算した応答コードと比較する。決定ブロック２４８で、受信した応答コードと計算した応答コードとが等しい場合、プロセスはＹＥＳ路に従って機能ブロック２５２に進み、デバイス認証状態を認証として確立する。決定ブロック２４８で、受信した応答コードと計算した応答コードとが等しくない場合、プロセスはＮＯ路に従って機能ブロック２５０に進み、デバイス認証状態を非認証として確立する。オーソリティ１０３は、認証のコンテキストに応じて変動するデバイス認証状態に応答して措置を取っても良い。例えば、オーソリティ１０３は、デバイス１０４が認証されたときリソースへのデバイス１０４アクセスを許可し得る。オーソリティ１０３は、デバイス１０４が認証されなかったときデバイス１０４との更なる通信を拒否できる。
【００５１】
図６は、応答発生器１１２を初期化するプロセス２６０のフローチャートを示す。プロセスは機能ブロック２６２から開始する。ここで、記憶した多項式コードをメモリから検索する。実施例によると、８と０の指数間にゼロでない多項式係数が２つのみあるように、記憶した多項式コードを６ビットバイナリコードとして表す。８と０の指数の係数を１に設定する。６ビットバイナリコードの最初の３ビットは負フィードバック指数を識別し、６ビットバイナリコードの第２の３ビットは正フィードバック指数を識別する。記憶した多項式コード表示は８ビット多項式コードｐ1、ｐ2、ｐ3およびｐ4に変換される。
【００５２】
プロセスは機能ブロック２６４に進む。ここで、記憶したシードコードをメモリから検索する。実施例によると、記憶したシードコードを８ビットバイナリコードとして記憶する。
【００５３】
プロセスは機能ブロック２６６に進む。ここで、記憶したアドレスコードをメモリから検索する。実施例によると、記憶したアドレスコードを２ビットバイナリコードとして記憶する。
【００５４】
プロセスは機能ブロック２６８に進む。ここで、多項式コードをそれぞれのＣＲＣ計算器に入力する。実施例によると、多項式コードをそれぞれのＣＲＣ計算器に入力する前に、記憶した多項式コードをデコードする。ＣＲＣ計算器は、記憶した多項式コードをＣＲＣ計算器に直接入力するように必要な仮定をしても良い。
【００５５】
プロセスは機能ブロック２７０に進む。ここで、シードコードをそれぞれのＣＲＣ計算器のレジスタに入力する。プロセスは機能ブロック２７２に進む。ここで、記憶したアドレスコードをそれぞれのマルチプレクサの各々に入力する。
【００５６】
図７は、応答発生器１１２に適したＣＲＣアルゴリズムのフローチャートを示す。プロセスはカウンタを初期化することにより機能ブロック３００から開始する。決定ブロック３０２で、プロセスはカウンタが呼掛けシーケンスのビット数に達したかを判定する。実施例では、呼掛けシーケンスのビット数は３２である。カウンタが３２に達さない場合、プロセスはＹＥＳ路に従って機能ブロック３０４に進み、カウンタは増加する。プロセスは機能ブロック３０６に進み、各ＣＲＣ計算器のシリアル出力ビットをＣＲＣ計算器シフトレジスタの最高位ビット（ＭＳＢ）に等しいように設定する。機能ブロック３０８で、アドレッサブルマルチプレクサの選択された入力ビットをＣＲＣ計算器に出力する。プロセスは機能ブロック３１０に進む。ここで、入力ビットを各シフトレジスタの最下位ビット（ＬＳＢ）に配置してシフトレジスタのデータを右にシフトする。各シフトレジスタに対して、機能ブロック３１２で、シリアル出力ビットを読み出す。決定ブロック３１４でシリアル出力ビットが１に等しい場合、プロセスはＹＥＳ路に従って機能ブロック３１６に進み、ここで各レジスタ配置をレジスタ配置のビットと多項式コードのそれぞれのビットのＸＯＲで置換する。それから、プロセスは決定ブロック３０２に戻り、カウンタが３２に達したかを判定する。決定ブロック３１４でシリアル出力ビットがゼロに等しい場合、プロセスはＮＯ路に従って決定ブロック３０２に戻り、カウンタが３２に達したかを判定する。
【００５７】
決定ブロック３０２でカウンタが３２に達した場合、プロセスはＹＥＳ路に従って機能ブロック３１８に進む。各ＣＲＣ計算器に対して、出力シーケンスをＣＲＣ計算器シフトレジスタのビットに等しいように設定する。プロセスは機能ブロック３２２に進む。ここで、応答をＣＲＣ計算器からの出力のＸＯＲに等しいように設定する。
【００５８】
本開示の利益を有する当業者は、本発明が認証システムおよび方法を提供することを認識する。図面と詳細な説明は限定的ではなく図示的にみなし、発明を開示した特定の形態と例に限定するように意図されない。反対に、発明は、本発明の請求の範囲から逸脱せずに当業者に明白な任意の更なる修正、変更、再配置、置換、代替、設計選択、および実施例を含む。従って、本発明の請求の範囲は、全ての斯かる更なる修正、変更、再配置、置換、代替、設計選択、および実施例を含むように解するように意図される。
【図面の簡単な説明】
【００５９】
【図１】図１は、呼掛け‐応答認証システムの機能ブロック図を示す。
【図２】図２は、応答発生器素子の詳細を示す機能ブロック図を示す。
【図３】図３は、呼掛け‐応答認証システムの初期化プロセスのフローチャートを示す  。
【図４】図４は、呼掛け‐応答認証システムの呼掛け‐応答認証プロセスのフローチャートを示す。
【図５】図５は、呼掛け‐応答認証プロセス内の認証初期化プロセスのフローチャートを示す。
【図６】図６は、シフトレジスタＣＲＣ計算器を示す。
【図７】図７は、応答計算プロセスのフローチャートを示す。
【図１】
2005253041.tif 000003
【図２】
2005253041.tif 000004
【図３】
2005253041.tif 000005
【図４】
2005253041.tif 000006
【図５】
2005253041.tif 000007
【図６】
2005253041.tif 000008
【図７】
2005253041.tif 000009