(57)【特許請求の範囲】
【請求項１】
少なくとも２つの装置（Ｄ１、Ｄ２）に共通の共有秘密鍵（Ｋ）を各々格納する前記装置の間でメッセージ（Ｍ）を安全に交換するための暗号方式であって、
各装置で乱数（Ｒ１、Ｒ２）を発生する段階と、
各装置によって前記発生した乱数（Ｒ１、Ｒ２）を他の装置に送信する段階と、
各装置で、オペランドとして前記共有秘密鍵（Ｋ）及び各乱数（Ｒ１、Ｒ１）の両方を使用する第１の演算を算出することによって第１の鍵（Ｋ１）を決定する段階と、
各装置で、暗号鍵として前記第１の鍵（Ｋ１）を用いて第１のアルゴリズムで第２の演算の結果を暗号化することによって第２の鍵（Ｋ２）を決定する段階であって、前記第２の演算は、少なくとも、オペランドとして各乱数（Ｒ１、Ｒ２）を使用する段階と、
送信装置（Ｄ１）として機能する前記装置のうちの１つによってオペランドとして前記メッセージ（Ｍ）及び各乱数（Ｒ１、Ｒ２）の両方を使用する可逆的な第３の演算を算出することによって疑似メッセージ（Ｍ´）を決定する段階と、
前記送信装置（Ｄ１）によって直接的又は間接的な暗号鍵として前記第２の鍵（Ｋ２）を用いた第２のアルゴリズムによって前記疑似メッセージ（Ｍ´）の暗号化から生じる暗号（Ｃ）を算出する段階と、
前記送信装置（Ｄ１）から受信装置（Ｄ２）として機能する少なくとも１つの他の装置へ前記暗号（Ｃ）を送信する段階と、
前記受信装置（Ｄ２）で前記暗号（Ｃ）を受信する段階と、
前記疑似メッセージ（Ｍ´）を回復するために、前記第２のアルゴリズムの直接的又は間接的な解読鍵として前記第２の鍵（Ｋ２）を用いて前記受信装置（Ｄ２）で前記暗号（Ｃ）を解読する段階と、
前記第３の演算を反転させることによって前記メッセージ（Ｍ）を前記疑似メッセージ（Ｍ´）から検索する段階と、
を含む暗号方式。
【請求項２】
前記第２のアルゴリズムの中で、間接的な暗号又は解読鍵としての前記第２の鍵（Ｋ２）の使用は、各装置で、オペランドとして前記第２の鍵（Ｋ２）及び前記共有秘密鍵（Ｋ）を使用して第４の演算により決定される第３の鍵（Ｋ３）で実行される請求項１に記載の暗号方式。
【請求項３】
前記演算の少なくともいずれかの少なくとも一部は論理演算を含む請求項１又は２に記載の暗号方式。
【請求項４】
前記論理演算は排他的論理和演算である請求項３に記載の暗号方式。
【請求項５】
前記演算のいずれか１つのオペランドがいろいろなビット長を有する場合、前記オペランドの各々に対して同じビット長を復元する請求項１〜４のいずれか一項に記載の暗号方式。
【請求項６】
同じビット長を復元することは、そのビット長が他のオペランドのいずれかのビット長に等しくなるまで、最小ビット長を有するオペランドを補充することを目的とする平衡段階によって、そしてすべての前記オペランド（又は補充されたオペランド）が同じビット長を有するまで、前記平衡段階を繰り返すことにより達成される請求項５に記載の暗号方式。
【請求項７】
前記平衡段階は、他のオペランドと同じビット長に達するまで、又は連結されたオペランドのビット長より小さい残余値だけ減少したビット長に達するまで、最小ビット長を有する前記オペランドをそれ自体と連結することによって最初に実行される請求項６に記載の暗号方式。
【請求項８】
前記平衡段階は前記第３の演算に適用されて、最小ビット長を有する前記オペランドは前記乱数（Ｒ１、Ｒ２）のいずれかであるが、前記他のオペランドは前記メッセージ（Ｍ）である請求項７に記載の暗号方式。
【請求項９】
前記第１のアルゴリズムは一方向性関数を使用する請求項１〜８のいずれか１項に記載の暗号方式。
【請求項１０】
前記演算の少なくともいずれかの少なくとも一部は累乗にされた数を含み、前記オペランドのいずれも、他のオペランドから選択される前記数の累指数として使われる請求項１〜９のいずれか１項に記載の暗号方式。
【請求項１１】
請求項１〜１０のいずれか１項に記載の前記暗号方式を実施するための暗号装置（１０、２０）であって、
データ交換のための通信インタフェース（１）と、
共有秘密鍵（Ｋ）を格納するための安全メモリ（２）と、
乱数（Ｒ１、Ｒ２）を発生するための乱数発生器（３）と、
入力としてオペランドを使用して演算の結果を出力する少なくとも１つの算出ユニット（７）と、
少なくとも１つの暗号鍵（Ｋ１、Ｋ２、Ｋ３）によってアルゴリズムを実行するための少なくとも１つの暗号ユニット（８）と、
前記暗号方式の前記段階に従って前記構成要素を管理することを担当する中央処理ユニット（５）と、
を少なくとも含むいくつかの構成要素を備える暗号装置（１０、２０）。
【請求項１２】
モノリシック回路で作られていることを特徴とする請求項１１に記載の暗号装置（１０、２０）。
【請求項１３】
請求項１〜１０のいずれか１項に記載の前記暗号方式を実施するために相互に接続された少なくとも２つの暗号装置（１０、２０）を備えるシステムであって、
前記装置の各々は、
データ交換のための通信インタフェース（１）と、
共有秘密鍵（Ｋ）を格納するための安全メモリ（２）と、
乱数（Ｒ１、Ｒ２）を発生するための乱数発生器（３）と、
入力としてオペランドを使用して演算の結果を出力する少なくとも１つの算出ユニット（７）と、
少なくとも１つの暗号鍵（Ｋ１、Ｋ２、Ｋ３）によってアルゴリズムを実行するための少なくとも１つの暗号ユニット（８）と、
前記暗号方式の前記段階に従って前記構成要素を管理することを担当する中央処理ユニット（５）と、
を少なくとも含むいくつかの構成要素を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、相互に接続された装置間のデータ転送の分野に関するものであり、これらの装置の間で交換する必要があるいかなる種類のメッセージも安全に送受信するための暗号演算を含む。
【背景技術】
【０００２】
いかなる種類の電子装置も接続する安全対策が施されていないチャネル又はネットワークを介して送信されるデータを暗号化して、解読するための暗号アルゴリズム、例えば、データ暗号化規格（ＤＥＳ）又は先進暗号化標準（ＡＥＳ）を含む多くの周知の方式がある。そのために、この種の装置は、それらを秘密の解読鍵なしでは理解できなくするようにメッセージをスクランブルするために暗号演算を実行する暗号構成要素を備える。これらの構成要素は、通常、ＣＭＯＳ技術（相補型金属酸化膜半導体技術）により実現される。この種の構成要素において実施される暗号アルゴリズムは、通常、数学的観点から十分に安全である。また一方、この種のアルゴリズムがこのアルゴリズムの論理的機能を生成するために相互接続したトランジスタで作られた集積回路によって物理的に実施されるという事実は、観察可能な物理量を生じる。この種の量の観察は、例えば、集積回路の電力消費をモニターするためにオシロスコープを用いて行うことができる。突然の電力消費の変動は、オシロスコープのスクリーン上にピークとして現れる。例えば、各ピークは、通常は、暗号化する入力メッセージが「ラウンド」と呼ばれている一連の演算のグループに適用されるＤＥＳ及びＡＥＳのようなアルゴリズムで、いわゆる「ラウンド」の始まりを識別できる。この種のアルゴリズムによって、各ラウンドは、以前のラウンドから生じる下位鍵の制御の下で配置される。従って、この種のアルゴリズムは、アルゴリズムの中で初期鍵として使用する秘密鍵から導出される一連の下位鍵を含む。この初期秘密鍵が悪意のある人に知られている場合には、後者は、対称形の暗号化方式に従って同じ秘密鍵を有する同じアルゴリズムを使用する対応する装置と交換されるいかなるメッセージも解読して、適切に暗号化することが可能になる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
初期秘密鍵を回復するために暗号回路をアタックするいくつかの方法がある。いくつかのアタックが、回路の電力消費、電磁気放射、又は処理時間を観察することを目的とするので、それらは非侵襲性アタックとして公知である。他のアタックが、回路、特に時間の短い経過の間にその挙動を変更することを含むので、それらは侵襲性アタックとして参照される。この最後のカテゴリにおいて、ディファレンシャル・フォールト・アナリシス（ＤＦＡ）はいかなる暗号化／解読システムに対しても重大な脅威であることが分かる。ディファレンシャル・フォールト・アナリシスは、２つの異なる状態の下で暗号回路により提供される出力の観察及び比較に基づく。これらの状態のうちの一方は回路の通常動作に対応するが、他方は、０から１又はその逆へ切り替えることによって、１つあるいはいくつかのビットを変えることを目的とするフォールトを自発的に注入することによって得られる。この種の物理的なビット反転は、例えば、集積回路の表面をレーザービームで掃引することによって実行できる。暗号回路の中に高感度領域の位置を決めることによって、レーザーショットが、非常に良好な空間的且つ時間的な解像度で作用すると共に、コンピュータの制御の下で実施されることができるので、それらは正確で簡単な方法で回路の動作を乱すことを可能にする。いくつかのフォールトが暗号アルゴリズムの処理の間に注入されるときに、誤った出力の分析により、アルゴリズムの中のフォールト伝播を観察することによって秘密鍵を推測することが可能である。
【０００４】
従って、いかなるディファレンシャル・フォールト・アナリシスによっても秘密鍵を推測するアタッカーを阻止するか、又は更に一般的にいえばいかなる種類の分析によっても得られる情報によってこの種の鍵を推測することが可能である効果的な解決策を提供する必要がある。
【課題を解決するための手段】
【０００５】
本発明の目的は、上述した欠点を少なくとも部分的に解決することである。そのために、本発明は、特に複雑である暗号処理の実施を含む、少なくとも２つの装置の間でデータを安全に交換する暗号方式及び装置を提案する。本発明によれば、対称鍵と同じシステムの装置の全てにより共有される秘密鍵は、交換されるメッセージの暗号／解読鍵として決して直接使われない。実際、同じシステムの装置の間で交換されるメッセージを暗号化／解読するために用いる鍵は、特に、複数の乱数に常に依存する。より詳しくは、各装置は、交換されるメッセージを暗号化／解読するために用いる鍵を決定するために考慮される少なくとも１つの乱数を発生する。従って、システムが３つの装置を備える場合、上述した鍵は少なくとも３つの乱数に依存する。
【０００６】
更に、追加鍵レベルが、交換されるメッセージを暗号化／解読する前に決定される。従って、本方式は、メッセージを暗号化／解読するための３つの鍵レベルを含む。加えて、交換するメッセージは、送る必要がある暗号を発生するためにアルゴリズムの入力データとして決して直接使われないが、それは、上述した暗号アルゴリズムによって次に暗号化される疑似メッセージを最初に生成するために、乱数の各々と共に常に使用される。
【０００７】
好ましくは、メッセージを交換する必要があるたびに、乱数は更新される。従って、本発明は、いかなる悪意のある人も、ディファレンシャル・フォールト・アナリシスを含むいかなるアタックによっても共有秘密鍵を推測することを阻止する。更に、疑似メッセージ及び暗号化のために使用する導出鍵の両方により提供される複雑さのため、本発明の暗号方式は特に高いレベルのセキュリティに達する。
【０００８】
本発明の目的及び利点は、請求項１の主題と一致する暗号方式のおかげで、そして請求項１１の主題と一致する装置のおかげで達成される。
【０００９】
他の利点及び実施形態は以下の詳細な説明に示される。
【００１０】
本発明は添付図によってより良く理解される。
【図面の簡単な説明】
【００１１】
【図１】一実施形態による本発明のシステムの概要を示す。
【図２】本発明の暗号方式の例示的実施形態を示すフローチャートである。
【図３】図２のフローチャートの抜粋の変形例を示す。
【図４】図１に示すシステムの装置のうちの１つの概略図である。
【発明を実施するための形態】
【００１２】
図１を参照すると、後者は、方式及び本発明の複数の装置を実現できるシステム実施形態の概要を図式的に示す。この図に示す通信システムは、何らかの方法によって相互に接続される３つの装置Ｄ１、Ｄ２、Ｄ３を示す。装置Ｄ１、Ｄ２、Ｄ３などの数が制限されず、そしてこの図に示すシステムが、接続又は装置数の両方に関して、数ある可能性の中の１つの実施例とみなされることに留意する必要がある。この種のシステムは、インターネットのようなネットワークを介してか、又はその他の種類の接続（有線又は無線）、特に安全でない接続によって相互に接続される、２つの装置だけを含むことができる。
【００１３】
各装置Ｄ１、Ｄ２、Ｄ３は、メッセージＭを少なくとも１つの他の装置と、好ましくはシステムのその他の装置と交換できる。これらのメッセージＭが安全に交換されるので、それらは、南京錠で各々識別されたエンベロープによってこの図に示された。安全なメッセージＭを暗号化又は解読するために、各装置Ｄ１、Ｄ２、Ｄ３は、少なくとも３つの暗号鍵Ｋ、Ｋ１、Ｋ２を扱わなければならない。これらの鍵のうちの１つは、システムの装置Ｄ１、Ｄ２、Ｄ３の全てに共通の共有秘密鍵Ｋである。この秘密鍵Ｋは、装置Ｄ１、Ｄ２、Ｄ３又はその関連したチップセットの製造の間に、あるいはその後のそれらの個人化段階の間に、あるいは初期設定段階の間に実現することができる。
【００１４】
この図に図式的に示すように、各装置は、Ｒ１、Ｒ２、Ｒ３と表示された他のデータを送受信する。この種のデータは乱数に関連する。各装置（例えば、Ｄ１）は、他の装置（Ｄ２、Ｄ３）に送られる１つの乱数（Ｒ１）を発生して、他の装置（Ｄ２、Ｄ３）の各々によって発生する乱数（Ｒ２、Ｒ３）を受信する。図１により提供される概要に基づいて、少なくとも２つの装置の間でメッセージＭを安全に交換する方式は、図２を参照して詳細に説明される。
【００１５】
簡潔に説明するために、図２は、参照番号１０、２０によってそれぞれ識別される２つの装置Ｄ１及びＤ２だけから成るシステムに関連すると共に、本発明の方式を段階的に開示する。この図に、これらの装置の各々により実行される段階は、いくつかの欄に示されて、上から下まで互いに続く。装置の各々によって両方とも実行される共通の段階は、中央の欄に表示される。これらの共通の段階が個々の方法で各装置により実行される点に留意する必要がある。メッセージを交換するために各関連する装置内で同時に共通の段階を処理する必要性がない。
【００１６】
既に述べたように、各装置Ｄ１、Ｄ２は、メッセージを相互に交換することを必要とするすべての装置に共通の共有秘密鍵Ｋを備える。この秘密鍵Ｋは図２のボックス３１に示される。この実施形態において、装置Ｄ１はメッセージＭを装置Ｄ２に送ることを目的とする。従って、第１の装置Ｄ１は送信装置に相当し、そして第２の装置Ｄ２は受信装置に相当する。１つの受信装置だけしかこの図に示されないけれども、同じメッセージＭが送信装置から複数の受信装置へ送られることが可能であることを理解すべきである。ボックス１１で、送信装置Ｄ１は、送らなければならないメッセージＭを作成又は検索しなければならない。この種のメッセージＭはいかなる種類のデータにも関連できるが、通常、それは極秘データに関連し、その性状は、問題の通信システムに関係する装置のタイプに主に依存する。
【００１７】
各装置Ｄ１、Ｄ２は、乱数を他の装置へ送る前に、特にシステムが３つ以上の装置から成る場合に、複数の選択された装置へ送る前に、又は他の装置の全てへ送る前に、乱数を発生する。この段階は、ボックス１２、２１で示されて、そこでは送信装置Ｄ１は第１の乱数Ｒ１を発生し、それは受信装置Ｄ２に送信されて、後者は送信装置Ｄ１に送信される第２の乱数Ｒ２を発生する。例えば、前の段階の間にこれらの装置により識別された特定の信号によって、これらの装置が次のメッセージを交換することを前もって同意しなかった場合であっても、乱数の各装置との相互交換を実行することは達成できる。この場合、乱数Ｒ１（すなわち、特定の識別子によって、又は特定のフォーマットによって、このように識別できるデータ）を受信するという単なる事実が、メッセージＭを送信装置から受信しなければならないことを知らせるトリガー信号であると受信装置により認識されることができると予期できる。従って、各装置は、そのうちに本方式の必要な段階を実行することが完全に可能になる。
【００１８】
更に、システムが３つ以上の装置を含む場合には、図１の実施例に示すように、必要に応じて、受信装置で送信装置を識別する手段を更に提供できる。通信が、例えば現行セッションの間に、送信装置と受信装置の間にまだ確立されていない場合、可能な方法は、送信装置のアドレスを識別することか又は送信装置の識別子（ＩＤ）を受信装置の方へ送信することであり得る。これは、例えば、乱数Ｒ１に、送信装置Ｄ１に帰属するＩＤ番号を追加することによって、又はこの種のＩＤをその他のデータに含むことによって達成できる。
【００１９】
ボックス３３で、各装置Ｄ１、Ｄ２は、オペランドとして共有秘密鍵Ｋ及び各乱数Ｒ１、Ｒ２の両方を使用する第１の演算ＯＰ１を算出することによって、第１の鍵Ｋ１を決定する。図２により提供される具体例において、この第１の演算ＯＰ１は、他の次の演算と同様に、非制限的な実施例として、排他的論理和演算に関連する。好ましい実施形態に従って、そしてこのボックス３３に示すように、第１の演算ＯＰ１の結果は、第１の鍵Ｋ１として直接使われる。
【００２０】
ボックス３５で、各装置Ｄ１、Ｄ２は、オペランドとして少なくとも各乱数Ｒ１、Ｒ２を使用する第２の演算ＯＰ２を続いて算出する。次に、この第２の演算ＯＰ２の結果に基づいて、各装置Ｄ１、Ｄ２は第２の鍵Ｋ２を更に決定する。ボックス３５の実施例に従って、これは、暗号鍵として第１の鍵Ｋ１を使用する、Ａ１と表示された第１のアルゴリズムを用いて第２の演算ＯＰ２の結果を暗号化することにより実行される。従って、第２の演算、又は直接その結果は、必要な第１の暗号鍵Ｋ１と共に第１のアルゴリズムＡ１に入力される。応答して、この第１のアルゴリズムは、出力として第２の暗号鍵Ｋ２を提供する。
【００２１】
ボックス１４で、送信装置Ｄ１として機能する装置は、オペランドとしてメッセージＭ及び各乱数Ｒ１、Ｒ２の両方を使用する第３の演算ＯＰ３を算出する。これにより、いわゆる疑似メッセージＭ´がメッセージＭに基づいていると想定すれば、送信装置Ｄ１は疑似メッセージＭ´を決定するが、後者がまだ暗号化されていないけれども、それは最初のメッセージＭと異なるように見える。
【００２２】
ボックス１６で、送信装置Ｄ１は疑似メッセージＭ´の暗号化から生じる暗号Ｃを算出する。このために、それは暗号鍵として、第２の鍵Ｋ２と共に、第２のアルゴリズムＡ２の入力として疑似メッセージＭ´を使用する。
【００２３】
ボックス１８で、暗号Ｃは、送信装置によって、受信装置として機能する少なくとも１つの他の装置に送信される。
【００２４】
受信装置Ｄ２が暗号Ｃを得ると、ボックス２３に示すように、同じアルゴリズムＡ２及び同じ鍵Ｋ２を用いてそれを解読することが可能である。このために、第２のアルゴリズムＡ２は、反転可能である双方向関数であるか、又はそれを含む（図２の表記Ａ２−１参照）。もちろん、同じアルゴリズムは、送信装置及び受信装置の両方によって使われなければならない。好ましい実施形態によれば、第２の鍵Ｋ２は、第２のアルゴリズムの直接的又は間接的な解読鍵として使われる。間接的な鍵としての第２の鍵Ｋ２の使用は、図３を参照して説明される。いずれにせよ、暗号Ｃの解読によって、第２のアルゴリズムＡ２の結果として疑似メッセージＭ´を検索することが可能である。
【００２５】
最後に、ボックス２５で、各受信装置Ｄ２は、第３の演算ＯＰ３を反転させることによって疑似メッセージＭ´からその最初の平文形式でメッセージＭを検索する（図２の表記ＯＰ３−１参照）。
【００２６】
第１のアルゴリズムＡ１が第２のアルゴリズムＡ２と同一であるか又は異なることがあり得る点に留意する必要がある。しかしながら、第２のアルゴリズムに反して、第１のアルゴリズムは、第２の鍵Ｋ２を提供する一方向関数を使用できる（又はそれはそれ自体この種の関数でもよい）。従って、この種の第２の鍵Ｋ２は、ハッシュ関数のダイジェストであり得るか、又は、例えば、この種の関数から導出されることがあり得る。
【００２７】
この方式で使用するアルゴリズム（Ａ１、Ａ２）がどうであろうとも、それらはメッセージＭを交換することを必要とするすべての装置に対して同じでなければならない。これらのアルゴリズムは、例えば、装置の製造の間、それらの個人化の間、又は初期設定段階の間にいろいろな方法によって各装置の中で実施できる。
【００２８】
ここで図３を参照すると、この図は、図２に示す方式の最終段階を示し、そこにおいてボックス３７は、前のフローチャートの変形例として追加段階を表す。この変形は、第２の鍵Ｋ２が第２のアルゴリズムＡ２の中の間接的な暗号／解読鍵として使われるケースに対応する。このために、第３の鍵Ｋ３は、オペランドとして第２の鍵Ｋ２及び共有秘密鍵Ｋの両方を使用する第４の演算ＯＰ４によって、各装置Ｄ１、Ｄ２で決定される。ボックス３７に示すように、この第４の演算ＯＰ４の結果は第３の暗号鍵Ｋ３を提供する。
【００２９】
アルゴリズムに関して類似の方法で、演算ＯＰ１、ＯＰ２、ＯＰ３、ＯＰ４の全て、又はそれらの一部は、装置の製造の間、それらの個人化の間、又は初期設定段階の間に各装置の中で実施できる。
【００３０】
送信装置Ｄ１に関しては、それが第２の鍵Ｋ２（ボックス３５の段階によって決定される）を必要として、この追加段階の結果が第２のアルゴリズムＡ２とともに（ボックス１６で示される段階の間に）使われるので、ボックス３７に示す段階は、ボックス３５と１６の段階の間に実行される。受信装置Ｄ２に関しては、この追加段階は、同じ理由からボックス３５と２３の段階の間に実行される。
【００３１】
図３に示すように、第２のアルゴリズムＡ２の中（すなわち、ボックス１６及び２３の段階の中）の第２の鍵Ｋ２の使用は、第３の鍵Ｋ３により置換された。これは第２の鍵Ｋ２がこれらの段階で間接的な方法で使われるという事実から生じる。この理由により、これらの２つのボックスの参照番号は、図３で１６´及び２３´にそれぞれ改められた。
【００３２】
図２又は図３に示す特定の段階が異なる順序に置かれることができる点に留意する必要がある。例えば、ボックス１４の段階は、（ボックス１２、２１での）乱数Ｒ１、Ｒ２の交換と（ボックス１６、１６´での）疑似メッセージＭ´の暗号化の間のどこでも実行できる。同じ原理は、前に説明したように、ボックス３７の段階に適用される。
【００３３】
一実施形態によれば、演算ＯＰ１、ＯＰ２、ＯＰ３、ＯＰ４の少なくともいずれかの少なくとも一部は論理演算（ブール代数）を含む。より詳しくは、この論理演算は排他的論理和演算（図２及び３の記号表記?参照）である。他の論理関数（すなわち、基本的な及び／又は導出された演算）が、排他的論理和演算子の代わりに、又は排他的論理和演算子とともに用いることができる点に留意する必要がある。
【００３４】
別の実施形態によれば、演算ＯＰ１、ＯＰ２、ＯＰ３、ＯＰ４の少なくともいずれかの少なくとも一部は、累乗にされた数を含む。この場合、関連する演算のオペランドのいずれも、この演算の他のオペランドから選択されるこの数の累指数として使われる。
【００３５】
論理演算を実行するために、関連のあるオペランドは同じ桁数を有しなければならない。言い換えれば、演算が２項演算を指すので、オペランドは同じビット長を有しなければならない。従って、例えばボックス３３において実行される演算のタイプ（ＯＰ１）に応じて、乱数Ｒ１、Ｒ２のビット長及び共有秘密鍵Ｋのビット長の両方は同じでなければならない。ボックス３５の実施例で示す第２の演算ＯＰ２に関して、乱数Ｒ１、Ｒ２は同じビット長を有しなければならない。同じ原理は、一方では、乱数Ｒ１、Ｒ２及びメッセージＭの両方に、他方では、暗号鍵Ｋ２、Ｋに関して第３及び第４の演算に適用される。
【００３６】
この理由により、演算ＯＰ１、ＯＰ２、ＯＰ３、ＯＰ４のいずれか１つのオペランドがいろいろなビット長を有する場合、本方式は、これらのオペランドの各々に対して同じビット長を復元することを目的とする段階を更に含むことができる。このために、同じビット長を復元することは、いくつかの異なる方法によって達成できる。
【００３７】
一実施形態によれば、それは、そのビット長が関連した演算の他のオペランドのいずれかのビット長に等しくなるまで、最小ビット長を有するオペランドを補充することを目的とする「平衡段階」によって達成できる。次に、関連した演算のすべてのオペランドが同じビット長を有するまで、この平衡段階を繰り返すことができる。オペランドを補充することを目的とする段階は、一連のビット０によって、一連のビット１によって、これらの２つのビット０及び１の一連の特定の組合せによっても達成できる。もちろん、選択されたビットサクセッションは、例えば、装置又はそれらのチップセットの個人化の間に、前述のどんな方法によっても、送信装置及び受信装置の両方で周知でなければならない。
【００３８】
変形において、この平衡段階は、他のオペランド（すなわち、好ましくは、最も長いビット長を有するオペランド）のビット長が、補充されたオペランドのビット長の倍数に等しくなるまで、最小ビット長を有するオペランドを補充することによって達成できる。
【００３９】
別の実施形態によれば、いわゆる平衡段階は、他のオペランドと同じビット長に達するまで、最小ビット長を有するオペランドをそれ自体と連結することによって最初に実行できる。この方法は、最長ビット長を有するオペランドが他のオペランド（すなわち、連結されたオペランド）の倍数であることを示す。１つのオペランドが正確に他のオペランドの倍数でない場合には、連結されたオペランドのビット長より小さい残余値だけ減少したビット長に達するまで、上述した連結を実行できる。この残余ビット長はユークリッド除算の剰余に対応し、そこでは最長ビット長を有するオペランドが被除数であり、そして連結するオペランドが除数である。次に、前述したように、残余ビット長（すなわち、残余値）はいかなる一連のビットによっても補充できる。
【００４０】
特に第３の演算ＯＰ３に適用されるこれらの実施形態のうちの１つの実施例として、同じビット長を復元することは、メッセージＭのそれと同じビット長に達するまで、前記乱数をそれ自体と連結することによって、前記乱数Ｒ１、Ｒ２の各々に対して達成できる。この実施形態では、乱数Ｒ１、Ｒ２は同じビット長を有し、そしてメッセージＭのビット長は乱数のうちの１つのそれの倍数である。この後の条件が満たされない場合、残余ビット長は既に説明されたように補充できる。
【００４１】
変形において、第３の演算ＯＰ３になお関連すると共に、同じビット長を復元することは、そのビット長が乱数Ｒ１、Ｒ２のいずれかのビット長の倍数に等しくなるまで、メッセージＭを補充することによって、そして本暗号方式の段階により処理される新規なメッセージ（Ｍ）としてこれらのブロックの各々を使用する前に、補充されたメッセージＭを乱数のビット長と同じビット長を有するブロックにスライスすることによって最初に達成できる。
【００４２】
別の実施形態によれば、簡略化のために、本方式で使用する暗号鍵、好ましくは、少なくとも第２の鍵Ｋ２及び共有秘密鍵Ｋは、同じビット長を有する。同じ理由から、乱数Ｒ１、Ｒ２のすべてはまた同じビット長を有する。
【００４３】
有利なことに、各装置で乱数を発生することによって、そして暗号Ｃを算出するために用いる暗号鍵Ｋ２、Ｋ３を導出するために、且つ暗号化する疑似メッセージＭ´を決定するために、発生された乱数の全てを用いることによって、本発明の主題は、交換されるメッセージＭに適用されるセキュリティを著しく向上させる。
【００４４】
更に有利なことに、乱数のうちの１つが悪意のある人により推測される場合であっても、後者は、疑似メッセージＭ´を暗号化するために用いられた鍵を導き出すことが不可能である。更に、その鍵がこの種の人により発見されることができる場合であっても、最初のメッセージＭを回復するために、この種の人がすべての乱数を持っていることがまず必要であり、そして彼が、本方式で行われる第３の演算（ＯＰ３）について知っていなければならないということを考えれば、彼は最初のメッセージＭを疑似メッセージＭ´から検索することができない。これはまた、この演算において使用するすべての演算子を知っていること、そして更に、この演算の性質に応じて、各演算子の順序及びこの演算の中で使用する各オペランドを知っていることが必要である。
【００４５】
更に有利なことに、共有秘密鍵Ｋは、本方式で実施される暗号アルゴリズムＡ１、Ａ２のいずれか１つにおいて暗号鍵として決して直接使われない。対照的に、共有秘密鍵Ｋは数値演算（ＯＰ１、ＯＰ４）の中で使われるだけであり、その結果はこれらのアルゴリズムへの鍵としてその後使われる。従って、共有秘密鍵Ｋは、暗号アルゴリズムの中で、第１のプランでは決して直接露出しない。
【００４６】
好ましくは、本方式の段階は、メッセージＭを交換する必要があるたびに行われる。これは、方式のいかなる実施形態にも適用できる。従って、新規なメッセージを送る必要があるたびに、新しい乱数が各装置によって発生すると考えれば、各装置によって発生する乱数の使用は１回限りである。従って、共有秘密鍵Ｋは、メッセージＭが交換されるたびに異なることが有利である。これは、メッセージを安全に交換する強力な方式、特にいかなるＤＦＡアタックも阻止する方式を提供する。
【００４７】
最後に、メッセージＭが、あらゆるタイプのデータ、特に極秘データ、例えば、パスワード、制御語、暗号鍵、又はその他の秘密情報を含むことができる点に留意する必要がある。
【００４８】
本発明はまた、上記の方式の実施形態のどれでも実施するのに適している装置又はシステムに関連する。
【００４９】
図４を参照すると、後者は、図１のシステムに示す装置１０、２０のうちの１つをより詳細に図式的に示す。この装置は、送信装置Ｄ１として、又は受信装置Ｄ２として、そして好ましく送信装置と受信装置の両方として偏りなく使用できる。このために、それは少なくとも以下を含むいくつかの構成要素から成る。
-データ交換（Ｍ´、Ｒ１、Ｒ２、...）のための、特にデータを少なくとも１つの他の装置と交換するための通信インタフェース１、
-共有秘密鍵Ｋを格納するための安全メモリ２、
-メッセージＭを交換する必要があるとき、好ましくは、この種のメッセージを交換する必要があるたびに乱数Ｒ１を発生するための乱数発生器３、
-入力としてオペランド（例えば、Ｒ１、Ｒ２、Ｋ、Ｍ）を使用して演算（ＯＰ１、ＯＰ２、ＯＰ３，ＯＰ４）の少なくとも１つの結果を出力するための少なくとも１つの算出ユニット７、
-少なくとも１つの暗号鍵（Ｋ１、Ｋ２、Ｋ３）によってアルゴリズム（Ａ１、Ａ２）を実行する少なくとも１つの暗号ユニット８、及び
-上述の暗号方式の段階に従って前記の構成要素（１、２、３、７、８）を管理することを担当する中央処理ユニット５。
【００５０】
装置１０、２０は、極秘データを安全に交換しなければならないすべてのケースにおいて用いることができる。この種の装置は、電子回路（集積回路、好ましくはモノリシック回路）、例えば、別の装置に挿入されるのに適しているスマートカード又はチップセットという形をとることができる。後者は、セットトップボックス（有料テレビ分野の）、スマートフォン、又はその他の通信装置であり得る。変形において、この種のスマートカードは、スタンドアローンの装置として、例えばアクセスカードとして、制御端末と通信するためのバンクカード（クレジットカード又は支払いカード）として使用することもできる。
【００５１】
各演算ＯＰ１、ＯＰ２、ＯＰ３、ＯＰ４の算出は、いろいろな演算を実行するように構成される単一の算出ユニット７又は各々がこれらの演算のうちの１つの専用であるいくつかの算出ユニット７を用いて実行できる。同じ原理は、アルゴリズムＡ１、Ａ２に関して暗号ユニット８に適用される。
【００５２】
本発明は図１に示すシステムにも関連する。この種のシステムは、上記の方式のいかなる実施形態も実施するために相互に接続される、少なくとも２つの暗号装置１０、２０を備える。このシステムの各装置１０、２０は、少なくとも、本発明の更なる内容として示された装置の詳細な説明の間に上記の構成要素を備える。また、システムの装置のいずれも、上述の関連した任意の機能のうちの少なくとも１つを含むことができる。
【符号の説明】
【００５３】
１    通信インタフェース
２    安全メモリ
３    乱数発生器
５    中央処理ユニット
７    算出ユニット
８    暗号ユニット
１０    暗号装置
２０    暗号装置
１１    ボックス
１２    ボックス
１４    ボックス
１６    ボックス
１８    ボックス
２１    ボックス
２３    ボックス
２５    ボックス
３３    ボックス
３５    ボックス
３７    ボックス
Ａ１    第１のアルゴリズム
Ａ２    第２のアルゴリズム
Ｃ    暗号
Ｄ１    送信装置
Ｄ２    受信装置
Ｄ３    装置
Ｋ    暗号鍵
Ｋ１    第１の暗号鍵
Ｋ２    第２の暗号鍵
Ｋ３    第３の暗号鍵
Ｍ    メッセージ
Ｍ’    擬似メッセージ
ＯＰ１    第１の演算
ＯＰ２    第２の演算
ＯＰ３    第３の演算
ＯＰ４    第４の演算
Ｒ１    乱数
Ｒ２    乱数
Ｒ３    乱数
【図１】
0006499519.tif 000002
【図２】
0006499519.tif 000003
【図３】
0006499519.tif 000004
【図４】
0006499519.tif 000005