(57)【要約】【課題】暗号システムを提供する。【解決手段】前記暗号システムは、入力データに関するアドレスを使用する入力データにマスク演算を行うことによって、入力データを暗号化するように構成される暗号化ロジックを含む。【選択図】図２
2007328789.tif 000002
【特許請求の範囲】
【請求項１】
入力データに関するアドレスを使用して、前記入力データにマスク演算を行うことによって、前記入力データを暗号化するように構成された暗号化ロジックを含むことを特徴とする暗号システム。
【請求項２】
前記暗号化ロジックは、
第１出力を発生するために、少なくとも前記アドレスの一部分を用いて、前記入力データに第１マスク演算を行うように構成される第１ロジック回路と、
第２出力を発生するために、キー値を用いて前記第１出力に第２マスク演算を行うように構成された第２ロジック回路と、を含むことを特徴とする請求項１に記載の暗号システム。
【請求項３】
前記第１及び第２マスク演算それぞれは、排他的論理和演算、加算演算、減算演算、乗算演算及び／又は除算演算を含み、前記加算演算、減算演算、乗算演算及び除算演算は、係数に対して行われることを特徴とする請求項２に記載の暗号システム。
【請求項４】
前記第２出力を変換するように構成されるＳボックス回路と、
前記暗号化された入力データを発生するために、前記変換された第２出力を置換するように構成された置換回路と、をさらに含むことを特徴とする請求項３に記載の暗号システム。
【請求項５】
前記置換回路は、前記変換された第２出力に線形機能を行うように構成されることを特徴とする請求項４に記載の暗号システム。
【請求項６】
前記線形機能は、第２出力のビットの線形変換またはシフト機能であることを特徴とする請求項５に記載の暗号システム。
【請求項７】
前記入力データは少なくともバイトデータであり、前記Ｓボックス回路は、前記第２出力の第１二ブル及び前記第２出力の第２二ブルをそれぞれ変換するように構成された第１Ｓボックス回路及び第２Ｓボックス回路を含むことを特徴とする請求項４に記載の暗号システム。
【請求項８】
前記入力データは少なくともバイトデータであることを特徴とする請求項１に記載の暗号システム。
【請求項９】
処理装置をさらに含み、
前記暗号化ロジックは、前記処理装置と協働して動作する協働処理装置を含み、前記協働処理装置は前記処理装置から入力データを受信することを特徴とする請求項１に記載の暗号システム。
【請求項１０】
処理装置をさらに含み、
前記暗号化ロジックは、単一論理装置を形成するために前記処理装置に集積されることを特徴とする請求項１に記載の暗号システム。
【請求項１１】
前記暗号化ロジックは、
前記入力データ、少なくともアドレスの一番目の部分及び第１キー値に応答して、第１ラウンドロジック回路出力を発生するように構成された第１ラウンドロジック回路と、
前記第１ラウンドロジック回路出力を変換するように構成された第１ラウンドＳ−ボックス回路と、
第１ラウンド出力を発生するために、前記変換された第１ラウンドロジック回路出力を置換するように構成された第１ラウンド置換回路と、
前記第１ラウンド出力、少なくとも前記アドレスの二番目の部分及び第２キー値に応答して、第２ラウンドロジック回路出力を発生するように構成された第２ラウンドロジック回路と、
前記第２ラウンドロジック回路出力を変換するように構成された第２ラウンドＳボックス回路と、
前記暗号化された入力データを発生するために、前記変形された第２ラウンドロジック回路出力を置換するように構成された第２ラウンド置換回路と、を含むことを特徴とする請求項１に記載の暗号システム。
【請求項１２】
前記入力データは少なくともバイトデータであり、前記第１ラウンドＳボックス回路は、前記第１ラウンドロジック回路出力の上位ビット二ブル及び前記第１ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第１Ｓボックス回路及び第２Ｓボックス回路を含み、前記第２ラウンドＳボックス回路は、それぞれ前記第１Ｓボックス回路及び前記第２Ｓボックス回路に対応し、前記第２ラウンドロジック回路出力の上位ビット二ブル及び前記第２ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第３Ｓボックス回路及び第４Ｓボックス回路を含むことを特徴とする請求項１１に記載の暗号システム。
【請求項１３】
入力データに関するアドレスを使用して、前記入力データにマスク演算を行うことによって、前記入力データを暗号化するステップを含むことを特徴とする暗号システム動作方法。
【請求項１４】
前記入力データを暗号化するステップは、
第１出力を発生するために、アドレスの少なくとも一部分を用いて、前記入力データに第１マスク演算を行うステップと、
第２出力を発生するために、キー値を用いて前記第１出力に第２マスク演算を行うステップと、を含むことを特徴とする請求項１３に記載の暗号システム動作方法。
【請求項１５】
前記第１及び第２マスク演算のそれぞれは、排他的論理和演算、加算演算、減算演算、乗算演算及び／又は除算演算を含み、前記加算演算、減算演算、乗算演算及び除算演算は、係数に対して行われることを特徴とする請求項１４に記載の暗号システム動作方法。
【請求項１６】
Ｓボックス回路を用いて前記第２出力を変換するステップと、
前記暗号化された入力データを発生するために、前記変換された第２出力を置換するステップと、をさらに含むことを特徴とする請求項１５に記載の暗号システム動作方法。
【請求項１７】
コンピュータが実行可能なコンピュータ可読プログラムであって、前記コンピュータ可読プログラムは、コンピュータに請求項１３に記載された方法を実行させるように構成されていることを特徴とするコンピュータ可読プログラム。
【請求項１８】
第１出力を発生するために、入力情報及び第１パターンにロジック演算を行うように構成された第１ロジック回路と、
第２出力を発生するために、前記入力情報及び第２パターンにロジック演算を行うように構成された第２ロジック回路と、
第３出力を発生するために、前記第１出力及び前記第２出力にロジック演算を行うように構成された第３ロジック回路と、
第１及び第２パターンの論理組合せに対応する値と前記第３出力とを比べて、前記論理組合せ値が前記第３出力と等しくなければ、エラーを検出するように構成された検出器回路と、を含むことを特徴とするエラー検出回路。
【請求項１９】
前記第１ロジック回路はマスク演算を行うように構成され、前記第２ロジック回路は前記マスク演算を行うように構成され、前記第３ロジック回路は前記マスク演算を行うように構成されていることを特徴とする請求項１８に記載のエラー検出回路。
【請求項２０】
前記マスク演算は、排他的論理和演算、加算演算、減算演算、乗算演算及び／又は除算演算を含み、前記加算演算、減算演算、乗算演算及び除算演算は、係数に対して行われることを特徴とする請求項１９に記載のエラー検出回路。
【請求項２１】
前記第１ロジック回路と前記第３ロジック回路とを連結する第１バスと、
前記第２ロジック回路と前記第３ロジック回路とを連結する第２バスと、をさらに含むことを特徴とする請求項１８に記載のエラー検出回路。
【請求項２２】
前記入力情報は入力データを含むことを特徴とする請求項１８に記載のエラー検出回路。
【請求項２３】
前記入力情報は入力アドレスを含むことを特徴とする請求項１８に記載のエラー検出回路。
【請求項２４】
前記入力情報を得るために、前記第１出力及び前記第１パターンにマスク演算を行うように構成された第４ロジック回路をさらに含むことを特徴とする請求項１８に記載のエラー検出回路。
【請求項２５】
第１出力を発生するために、入力情報及び第１パターンにロジック動作を行うステップと、
第２出力を発生するために、前記入力情報及び第２パターンにロジック動作を行うステップと、
第３出力を発生するために、前記第１出力及び前記第２出力にロジック動作を行うステップと、
前記第１及び第２パターンの論理組合せに対応する値と前記第３出力とを比べるステップと、
前記論理組合せ値が前記第３出力と等しくなければ、エラーを検出するステップと、を含むことを特徴とするエラー検出回路動作方法。
【請求項２６】
前記入力情報は入力データを含むことを特徴とする請求項２５に記載のエラー検出回路動作方法。
【請求項２７】
前記入力情報は入力アドレスを含むことを特徴とする請求項２５に記載のエラー検出回路動作方法。
【請求項２８】
コンピュータが実行可能なコンピュータ可読プログラムであって、前記コンピュータ可読プログラムは、コンピュータに請求項２５に記載された方法を実行させるように構成されていることを特徴とするコンピュータ可読プログラム。
【請求項２９】
第１パターンを使用してマスク演算がなされた暗号化された入力データに対応する第１出力を、入力データに応答して発生するように構成された第１暗号化回路と、
第２パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する第２出力を、入力データに応答して発生するように構成された第２暗号化回路と、
第３出力を発生するために、前記第１出力及び前記第２出力に前記マスク演算を行うように構成された検出器入力ロジック回路と、
前記第２パターンを使用して前記マスク演算がなされた前記第１パターンに対応する値と第３出力とを比べ、前記第１パターンに対応する値が第３出力と等しくなければエラーを検出するように構成された検出器回路と、を含むことを特徴とする暗号システム。
【請求項３０】
前記第１暗号化回路は、
前記入力データに関するアドレスを用いて、前記入力データにマスク演算を行うことによって、前記入力データを暗号化するように構成される暗号化ロジックを含むことを特徴とする請求項２９に記載の暗号システム。
【請求項３１】
前記暗号化ロジックは、
第１ロジック回路出力を発生するために、前記第１パターンを用いて前記入力データに前記マスク演算を行うように構成された第１ロジック回路と、
第２ロジック回路出力を発生するために、少なくとも前記アドレスの一部分を用いて、前記第１ロジック回路出力に前記マスク演算を行うように構成された第２ロジック回路と、
第３ロジック回路出力を発生するために、キー値を用いて前記第２ロジック回路出力に前記マスク演算を行うように構成された第３ロジック回路と、を含むことを特徴とする請求項３０に記載の暗号システム。
【請求項３２】
前記マスク演算は、排他的論理和演算、加算演算、減算演算、乗算演算及び／又は除算演算を含み、前記加算演算、減算演算、乗算演算及び除算演算は、係数に対して行われることを特徴とする請求項３１に記載の暗号システム。
【請求項３３】
前記第３ロジック回路出力を変換するように構成されたＳ’ボックス回路と、
前記第１パターンを使用してマスク演算がなされた前記暗号化された入力データに対応する前記第１出力を発生するために、前記変換された第３ロジック回路出力を置換するように構成された置換回路と、をさらに含むことを特徴とする請求項３２に記載の暗号システム。
【請求項３４】
前記Ｓ’ボックス回路は、
Ｓ’（Ｄ  ＸＯＲ  Ｍ１  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ１）を満足させ、
前記Ｄは前記入力データ、前記Ｍ１は前記第１パターン、前記Ａは少なくとも前記アドレスの一部分、そしてＫは前記キー値、前記Ｐ−１は逆置換演算、前記Ｓ’（  ）はＳ’ボックス変換機能、そして前記Ｓ（  ）は復号化動作に使用される他のＳボックス変換機能であることを特徴とする請求項３３に記載の暗号システム。
【請求項３５】
前記入力データは少なくともバイトデータであり、前記Ｓ’ボックス回路は、前記第３ロジック回路出力の第１二ブル及び前記第３ロジック回路出力の第２二ブルをそれぞれ変換するように構成された第１Ｓ−ボックス回路及び第２Ｓ−ボックス回路を含むことを特徴とする請求項３３に記載の暗号システム。
【請求項３６】
前記暗号化ロジックは、
前記入力データ、前記第１パターン、少なくともアドレスの第１部分及び第１キー値に応答して、第１ラウンドロジック回路出力を発生するように構成された第１ラウンドロジック回路と、
前記第１ラウンドロジック回路出力を変換するように構成された第１ラウンドＳ’ボックス回路と、
第１ラウンド出力を発生するために、前記変換された第１ラウンドロジック回路出力を置換するように構成された第１ラウンド置換回路と、
前記第１ラウンド出力、少なくとも前記アドレスの第２部分及び第２キー値に応答して、第２ラウンドロジック回路出力を発生するように構成された第２ラウンドロジック回路と、
前記第２ラウンドロジック回路出力を変換するように構成された第２ラウンドＳ’ボックス回路と、
前記第１パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する前記第１出力を発生するために、前記変形された第２ラウンドロジック回路出力を置換するように構成された第２ラウンド置換回路と、を含むことを特徴とする請求項３０に記載の暗号システム。
【請求項３７】
前記第１及び第２ラウンドＳ’ボックス回路は、
Ｓ’（Ｄ  ＸＯＲ  Ｍ１  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ１）を満足させ、
前記Ｄは前記入力データ、前記Ｍ１は前記第１パターン、前記Ａは少なくとも前記アドレスの一部分、そしてＫは前記キー値、前記Ｐ−１は逆置換演算、前記Ｓ’（  ）はＳ’−ボックス変換機能、そして前記Ｓ（  ）は復号化動作に使用される他のＳボックス変換機能であることを特徴とする請求項３６に記載の暗号システム。
【請求項３８】
前記入力データは少なくともバイトデータであり、前記第１ラウンドＳボックス回路は、前記第１ラウンドロジック回路出力の上位ビット二ブル及び前記第１ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第１Ｓ’ボックス回路及び第２Ｓ’ボックス回路を含み、前記第２ラウンドＳ’ボックス回路は、第２ラウンドロジック回路出力の上位ビット二ブル及び前記第２ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第３Ｓ’ボックス回路及び第４Ｓ’ボックス回路を含むことを特徴とする請求項３７に記載の暗号システム。
【請求項３９】
前記第２暗号化回路は、前記入力データに関するアドレスを用いて、前記入力データに前記マスク演算を行うことによって、前記入力データを暗号化するように構成される暗号化ロジックを含むことを特徴とする請求項２９に記載の暗号システム。
【請求項４０】
前記暗号化ロジックは、
第１ロジック回路出力を発生するために、前記第１パターンを用いて前記入力データに前記マスク演算を行うように構成された第１ロジック回路と、
第２ロジック回路出力を発生するために、少なくとも前記アドレスの一部分を用いて、前記第１ロジック回路出力に前記マスク演算を行うように構成された第２ロジック回路と、
第３ロジック回路出力を発生するために、キー値を用いて前記第２ロジック回路出力に前記マスク演算を行うように構成された第３ロジック回路と、を含むことを特徴とする請求項３９に記載の暗号システム。
【請求項４１】
前記マスク演算は、排他的論理和演算、加算演算、減算演算、乗算演算及び／又は除算演算を含み、前記加算演算、減算演算、乗算演算及び除算演算は、係数に対して行われることを特徴とする請求項４０に記載の暗号システム。
【請求項４２】
前記第３ロジック回路出力を変換するように構成されたＳ’ボックス回路と、
前記第２パターンを使用して、その直後行われた前記マスク演算を終え、前記暗号化された入力データに対応する前記第２出力を発生するために、前記変換された第３ロジック回路出力を置換するように構成された置換回路と、をさらに含むことを特徴とする請求項４１に記載の暗号システム。
【請求項４３】
前記Ｓ’ボックス回路は、
Ｓ’（Ｄ  ＸＯＲ  Ｍ２  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ２）を満足させ、
前記Ｄは前記入力データ、前記Ｍ２は前記第２パターン、前記Ａは少なくとも前記アドレスの一部分、そしてＫは前記キー値、前記Ｐ−１は逆置換演算、前記Ｓ’（  ）はＳ’−ボックス変換機能、そして前記Ｓ（  ）は復号化動作に使用される他のＳボックス変換機能であることを特徴とする請求項４２に記載の暗号システム。
【請求項４４】
前記入力データは少なくともバイトデータであり、前記Ｓ’−ボックス回路は前記第３ロジック回路出力の第１二ブル及び前記第３ロジック回路出力の第２二ブルをそれぞれ変換するように構成された第１Ｓ’ボックス回路及び第２Ｓ’ボックス回路を含むことを特徴とする請求項４２に記載の暗号システム。
【請求項４５】
前記暗号化ロジックは、
前記入力データ、前記第２パターン、少なくともアドレスの第１部分及び第１キー値に応答して、第１ラウンドロジック回路出力を発生するように構成された第１ラウンドロジック回路と、
前記第１ラウンドロジック回路出力を変換するように構成された第１ラウンドＳ’ボックス回路と、
第１ラウンド出力を発生するために、前記変換された第１ラウンドロジック回路出力を置換するように構成された第１ラウンド置換回路と、
前記第１ラウンド出力、少なくとも前記アドレスの二番目の部分及び第２キー値に応答して、第２ラウンドロジック回路出力を発生するように構成された第２ラウンドロジック回路と、
前記第２ラウンドロジック回路出力を変換するように構成された第２ラウンドＳ’−ボックス回路と、
前記第２パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する前記第２出力を発生するために、前記変換された第２ラウンドロジック回路出力を置換するように構成された第２ラウンド置換回路と、を含むことを特徴とする請求項３９に記載の暗号システム。
【請求項４６】
前記第１及び第２ラウンドＳ’−ボックス回路は、
方程式Ｓ’（Ｄ  ＸＯＲ  Ｍ２  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ２）を満足させ、
前記Ｄは前記入力データ、前記Ｍ２は前記第２パターン、前記Ａは少なくとも前記アドレスの一部分、前記Ｋは前記キー値、前記Ｐ−１は逆置換演算、前記Ｓ’（  ）はＳ’−ボックス変換機能、そして前記Ｓ（  ）は復号化動作に使用されるまた他のＳ−ボックス変換機能であることを特徴とする請求項４５に記載の暗号システム。
【請求項４７】
前記入力データは少なくともバイトデータであり、前記第１ラウンドＳボックス回路は、前記第１ラウンドロジック回路出力の上位ビット二ブル及び前記第１ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第１Ｓ’ボックス回路及び第２Ｓ’ボックス回路を含み、前記第２ラウンドＳ’ボックス回路は、第２ラウンドロジック回路出力の上位ビット二ブル及び前記第２ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第３Ｓ’ボックス回路及び第４Ｓ’ボックス回路を含むことを特徴とする請求項４６に記載の暗号システム。
【請求項４８】
前記入力データは少なくともバイトデータであることを特徴とする請求項２９に記載の暗号システム。
【請求項４９】
第１パターンを使用してマスク演算がなされた暗号化された入力データに対応する第１出力を、入力データに応答して発生するステップと、
第２パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する第２出力を、前記入力データに応答して発生するステップと、
第３出力を発生するために、前記第１出力及び前記第２出力に前記マスク演算を行うステップと、
前記第２パターンを使用して前記マスク演算がなされた前記第１パターンに対応する値と前記第３出力とを比べるステップと、
前記第１パターンに対応する値が前記第３出力と等しくなければ、エラーを検出するステップと、を含むことを特徴とする暗号システム動作方法。
【請求項５０】
前記第１出力を発生するステップは、前記入力データに関するアドレスを用いて前記入力データに前記マスク演算を行うことによって、前記入力データを暗号化するステップを含むことを特徴とする請求項４９に記載の暗号システム動作方法。
【請求項５１】
前記入力データを暗号化するステップは、
第１ロジック出力を発生するために、前記第１パターンを用いて前記入力データに前記マスク演算を行うステップと、
第２ロジック出力を発生するために、少なくとも前記アドレスの一部分を用いて前記第１ロジック出力に前記マスク演算を行うステップと、
前記第３ロジック出力を発生するために、キー値を用いて前記第２ロジック出力に前記マスク演算を行うステップと、を含むことを特徴とする請求項５０に記載の暗号システム動作方法。
【請求項５２】
前記マスク演算は、排他的論理和演算、加算演算、減算演算、乗算演算及び／又は除算作演算を含み、前記加算演算、減算演算、乗算演算及び除算演算は、係数に対して行われることを特徴とする請求項５１に記載の暗号システム動作方法。
【請求項５３】
Ｓ’ボックス回路を用いて前記第３ロジック出力を変換するステップと、
前記第１パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する前記第１出力を発生するために、前記変換された第３ロジック回路出力を置換するステップと、をさらに含むことを特徴とする請求項５２に記載の暗号システム動作方法。
【請求項５４】
前記Ｓ’ボックス回路は、
Ｓ’（Ｄ  ＸＯＲ  Ｍ１  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ１）を満足させ、
前記Ｄは前記入力データ、前記Ｍ１は前記第１パターン、前記Ａは少なくとも前記アドレスの一部分、前記Ｋは前記キー値、前記Ｐ−１は逆置換演算、前記Ｓ’（  ）はＳ’−ボックス変換機能、そして前記Ｓ（  ）は復号化動作に使用される他のＳボックス変換機能であることを特徴とする請求項５３に記載の暗号システム動作方法。
【請求項５５】
コンピュータが実行可能なコンピュータ可読プログラムであって、前記コンピュータ可読プログラムは、コンピュータに請求項４９に記載された方法を実行させるように構成されていることを特徴とするコンピュータ可読プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置及びそれの動作方法に関し、さらに詳細には、暗号システム、エラー検出回路、及びそれの動作方法に関する。
【背景技術】
【０００２】
スマートカードは、集積回路（ＩＣ）を内蔵して、クレジットカードのような機能を提供することができるプラスティックカードである。スマートカード技術のための標準は、国際標準機構（ＩＳＯ：Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｓ  Ｏｒｇａｎｉｚａｔｉｏｎ）及び国際電子委員会（ＩＥＣ：Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｍｍｉｔｔｅｅ）の共同技術委員会（ＪＴＣ１：Ｊｏｉｎｔ  Ｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｔｔｅｅ  １）により定義されている。国際標準シリーズＩＳＯ／ＩＥＣ  ７８１６は、電子信号、物理的連結、物理的特性、伝送プロトコル、命令、保安設計およびデータ構成のようなスマートカードの様々な特性を定義する。
【０００３】
スマートカードは、一般的な磁気カードより高いデータ保有力や高い保安性を提供することから、マルチメディア情報装置として使用されている。スマートカードは、高い保安性と大きいデータ保存容量を持つという長所があり、そのゆえも非常に広い分野に応用されている。かかるスマートカードは、財政、流通、交通、移動通信、身分証明などの様々な分野に適用及び使用することを考慮している。
【０００４】
図１は、一般的なスマートカードの構造を示すブロック図である。
【０００５】
図１に示すように、一般的なスマートカードは、ＣＰＵ（中央処理装置）１１、ＲＯＭ１２、ＲＡＭ１３、ＥＥＰＲＯＭ１４、入出力モジュール（Ｉ／Ｏ  ｍｏｄｕｌｅ）１５及びバス（ＢＵＳ）１６を含む。ＣＰＵ１１は、総合的なデータ処理及び数式演算を制御するように構成される。ＲＯＭ１２は、オペレーティングシステム、ブートコード、初期化プログラムを格納するように構成される。ＲＡＭ１３は、修正可能なプログラム及び／又はテンポラリデータを格納するために使用される。ＥＥＰＲＯＭ１４は、一つまたはそれ以上のアプリケーションプログラムを格納するために使用される。入出力モジュール１５は、ＣＰＵ１１と外部装置との通信のために使用される。ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３及びＥＥＰＲＯＭ１４は、バス１６を介して連結される。バス１６は、データバス及びアドレスバスを含む。データバスは、バス１６に連結されうる他の装置と共に、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３及びＥＥＰＲＯＭ１４の間で電気データの移動通路となる。アドレスバスは、メインメモリの中の特定の位置（アドレス）を指定するために、メインメモリ装置にＣＰＵ１１を連結する。アドレスバスの幅は、アクセス可能なアドレスの数を定める。
【０００６】
スマートカード装置では、データバスを通して運ばれるデータの完全性（ｉｎｔｅｇｒｉｔｙ）及び確実性（ｃｏｎｆｉｄｅｎｔｉａｌｉｔｙ）を保障することが重要である。同様に、スマートカード装置では、アドレスバスを通して運ばれるアドレスの完全性を保障することが重要である。ユーザまたはシステム運営者がスマートカードに個人情報または秘密情報を格納するためには、スマートカードに格納／使用されるデータ及び／又はアドレスが安全でなければならない。スマートカードに権限を持たずアクセスする状態をテムパリング（ｔａｍｐｅｒｉｎｇ）という。テムパリング技術は、マイクロプローブ（ｍｉｃｒｏｐｒｏｂｅ）を用いる侵入攻撃及びソフトウェアツールを用いる非侵入攻撃を含む。非侵入攻撃は、電力消耗（または、電流損失）のパターンを使用する暗号アルゴリズム（例えば、ＤＥＳアルゴリズム）のキーコードを解読したり、スマートカードの動作の間、タイミングを変化させる技術であるサイドチャンネル分析（ｓｉｄｅ  ｃｈａｎｎｅｌ  ａｎａｌｙｓｉｓ）を伴う。サイドチャンネル分析技術は、単一電力分析（ＳＰＡ：Ｓｉｍｐｌｅ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ）と差別電力分析（ＤＰＡ：Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ）とに分類される。差別電力分析（ＤＰＡ）及び単一電力分析（ＳＰＡ）は、ブロック暗号アルゴリズム（ｂｌｏｃｋ  ｃｉｐｈｅｒ  ａｌｇｏｒｉｔｈｍ）がスマートカードに印加される時、スマートカードに格納されている機密情報を発見するための計算（または動作）過程で、スマートカードのような低電力消耗装置で発生する電力信号を分析する方法である。差別電力分析（ＤＰＡ）及び単一電力分析（ＳＰＡ）は、原文（ｐｌａｉｎｔｅｘｔ）に対応する一ラウンド（ｒｏｕｎｄ）後の暗号文（ｃｉｐｈｅｒｔｅｘｔ）の特定のビットを統計的に予測する攻撃者により行なわれる。差別電力分析（ＤＰＡ）及び単一電力分析（ＳＰＡ）の一つの対応策として、スマートカードで行なわれる計算過程で、原文に対する攻撃者を阻止することができる。
【０００７】
差別電力分析（ＤＰＡ）及び単一電力分析（ＳＰＡ）に対抗する様々な対応策が提案されている。対応策は、ハードウェア方法及びソフトウェア方法を含む。ハードウェア方法は、ノイズパワーを発生する方法、動作順番をランダムにする方法及び／又はパワー信号をフィルタリングする方法を含む。ソフトウェア方法は、原文をランダムナンバーのように見せるために、スマートカードで発生したランダウナンバーと原文との排他的論理和（ｅｘｃｌｕｓｉｖｅ−ＯＲ）を演算させることによって、電力分析を不能にするマスキング技術を含む。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上述の問題点を解決するためのものであって、その目的は、外部攻撃からデータを安全に保護することができるスマートカード及びそれのデータ伝送方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記の目的を達成すべく、本発明の一特徴によれば、暗号システムは、入力データに関するアドレスを使用して、前記入力データにマスク演算を行うことによって、前記入力データを暗号化するように構成される暗号化ロジックを含む。
【００１０】
一つの実施の形態によれば、前記暗号化ロジックは、第１出力を発生するために、少なくとも前記アドレスの一部分を用いて、前記入力データに第１マスク演算を行うように構成される第１ロジック回路と、第２出力を発生するために、キー値を用いて前記第１出力に第２マスク演算を行うように構成される第２ロジック回路と、を含む。
【００１１】
一つの実施の形態によれば、前記第１及び第２マスク演算のそれぞれは、排他的論理和演算、加算演算、減算演算、乗算演算及び／又は除算演算を含み、前記加算演算、減算演算、乗算演算及び除算演算は、係数に対して行われる。
一つの実施の形態によれば、前記暗号システムは、前記第２出力を変換するように構成されるＳボックス回路と、前記暗号化された入力データを発生するために、前記変換された第２出力を置換するように構成される置換回路と、をさらに含。
【００１２】
一つの実施の形態によれば、前記置換回路は、前記変換された第２出力に線形機能を行うように構成される。
【００１３】
一つの実施の形態によれば、前記線形機能は、第２出力のビットの線形変換またはシフト機能である。
【００１４】
一つの実施の形態によれば、前記入力データは少なくともバイトデータであり、前記Ｓ−ボックス回路は、前記第２出力の第１二ブル及び前記第２出力の第２二ブルをそれぞれ変換するように構成された第１Ｓボックス回路及び第２Ｓボックス回路を含む。
【００１５】
一つの実施の形態によれば、前記暗号システムは、処理装置をさらに含み、前記暗号化ロジックは、前記処理装置に通信的に連結された暗号共同処理機（ｃｒｙｐｔｏｇｒａｐｈｉｃ  ｃｏ−ｐｒｏｃｅｓｓｏｒ）を含み、前記暗号共同処理機は前記処理装置から入力データを受信。
【００１６】
一つの実施の形態によれば、前記暗号化ロジックは、単一論理装置を形成するために前記処理装置に集積される。
【００１７】
一つの実施の形態によれば、前記暗号化ロジックは、前記入力データ、少なくともアドレスの第１部分及び第１キー値に応答して、第１ラウンドロジック回路出力を発生するように構成された第１ラウンドロジック回路と、前記第１ラウンドロジック回路出力を変換するように構成された第１ラウンドＳボックス回路と、第１ラウンド出力を発生するために、前記変換された第１ラウンドロジック回路出力を置換するように構成された第１ラウンド置換回路と、前記第１ラウンド出力、少なくとも前記アドレスの第２部分及び第２キー値に応答して、第２ラウンドロジック回路出力を発生するように構成された第２ラウンドロジック回路と、前記第２ラウンドロジック回路出力を変換するように構成された第２ラウンドＳボックス回路と、前記暗号化された入力データを発生するために、前記変形された第２ラウンドロジック回路出力を置換するように構成された第２ラウンド置換回路と、を含む。
【００１８】
一つの実施の形態によれば、前記入力データは少なくともバイトデータであり、前記第１ラウンドＳボックス回路は、前記第１ラウンドロジック回路出力の上位ビット二ブル及び前記第１ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第１Ｓボックス回路及び第２Ｓボックス回路を含み、前記第２ラウンドＳボックス回路は、それぞれ前記第１Ｓボックス回路及び前記第２Ｓボックス回路に対応し、前記第２ラウンドロジック回路出力の上位ビット二ブル及び前記第２ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第３Ｓボックス回路及び第４Ｓボックス回路を含む。
【００１９】
本発明の他の特徴による暗号システム動作方法は、入力データに関するアドレスを使用して、前記入力データにマスク演算を行うことによって、前記入力データを暗号化するステップを含む。
【００２０】
一つの実施の形態によれば、前記入力データを暗号化するステップは、第１出力を発生するために、アドレスの少なくとも一部分を用いて、前記入力データに第１マスク演算を行うステップと、第２出力を発生するために、キー値を用いて前記第１出力に第２マスク演算を行うステップと、を含む。
【００２１】
一つの実施の形態によれば、前記第１及び第２マスク演算のそれぞれは、排他的論理合（ｅｘｃｌｕｓｉｖｅ  ＯＲ）動作、加算動作、減算動作、掛け算動作及び／または割り算動作を含み、前記加算動作、減算動作、掛け算動作及び割り算動作は、係数に対して行われる。
【００２２】
一つの実施の形態によれば、前記暗号システム動作方法は、Ｓ−ボックス回路を用いて前記第２出力を変換するステップと、前記暗号化された入力データを発生するために、前記変換された第２出力を置換するステップと、をさらに含む。
【００２３】
本発明の他の特徴によるエラー検出回路は、第１出力を発生するために、入力情報及び第１パターンにロジック動作を行うように構成された第１ロジック回路と、第２出力を発生するために、前記入力情報及び第２パターンにロジック動作を行うように構成された第２ロジック回路と、第３出力を発生するために、前記第１出力及び前記第２出力にロジック動作を行うように構成された第３ロジック回路と、第１及び第２パターンの論理組合せに対応する値と前記第３出力を比べ、前記論理組合せ値が前記第３出力と等しくなければ、エラーを認知するように構成された検出器回路と、を含む。
【００２４】
一つの実施の形態によれば、前記第１ロジック回路はマスク演算を行うように構成され、前記第２ロジック回路は前記マスク演算を行うように構成され、そして前記第３ロジック回路は前記マスク演算を行うように構成される。
【００２５】
一つの実施の形態によれば、前記マスク演算は、排他的論理和（ｅｘｃｌｕｓｉｖｅ  ＯＲ）演算、加算演算、減算演算、乗算演算及び／又は除算演算を含み、前記加算演算、減算演算、乗算演算及び除算演算は、係数に対して行われる。
【００２６】
一つの実施の形態によれば、前記エラー検出回路は、前記第１ロジック回路と前記第３ロジック回路とを連結する第１バスと、前記第２ロジック回路と前記第３ロジック回路とを連結する第２バスと、をさらに含む。
【００２７】
一つの実施の形態によれば、前記入力情報は入力データ及び入力アドレスを含む。
【００２８】
一つの実施の形態によれば、前記エラー検出回路は、前記入力情報を得るために、前記第１出力及び前記第１パターンにマスク演算を行うように構成された第４ロジック回路をさらに含む。
【００２９】
本発明の他の特徴によるエラー検出回路動作方法は、第１出力を発生するために、入力情報及び第１パターンにロジック動作を行うステップと、第２出力を発生するために、前記入力情報及び第２パターンにロジック動作を行うステップと、第３出力を発生するために、前記第１出力及び前記第２出力にロジック動作を行うステップと、前記第１及び第２パターンの論理組合せに対応する値と前記第３出力とを比べるステップと、前記論理組合せ値が前記第３出力と等しくなければ、エラーを認知ステップと、を含む。
【００３０】
一つの実施の形態によれば、前記入力情報は入力データ及び入力アドレスを含む。
【００３１】
本発明の他の特徴による暗号システムは、第１パターンを使用してマスク演算がなされた暗号化された入力データに対応する第１出力を、入力データに応答して発生するように構成された第１暗号化回路と、第２パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する第２出力を、入力データに応答して発生するように構成された第２暗号化回路と、第３出力を発生するために、前記第１出力及び前記第２出力に前記マスク演算を行うように構成された検出器入力ロジック回路と、前記第２パターンを使用して前記マスク演算がなされた前記第１パターンに対応する値と第３出力とを比べ、前記第１パターンに対応する値が第３出力と等しくなければエラーを認知するように構成された検出器回路と、を含む。
【００３２】
一つの実施の形態によれば、前記第１暗号化回路は、前記入力データい関するアドレスを用いて、前記入力データにマスク演算を行うことによって、前記入力データを暗号化するように構成される暗号化ロジックを含む。
【００３３】
一つの実施の形態によれば、前記暗号化ロジックは、第１ロジック回路出力を発生するために、前記第１パターンを用いて前記入力データに前記マスク演算を行うように構成された第１ロジック回路と、第２ロジック回路出力を発生するために、少なくとも前記アドレスの一部分を用いて、前記第１ロジック回路出力に前記マスク演算を行うように構成された第２ロジック回路と、第３ロジック回路出力を発生するために、キー値を用いて前記第２ロジック回路出力に前記マスク演算を行うように構成された第３ロジック回路と、を含む。
【００３４】
一つの実施の形態によれば、前記マスク演算は、排他的論理和動作、加算演算、減算演算、乗算演算及び／又は除算演算を含み、前記加算演算、減算演算、乗算演算及び除算演算は、係数に対して行われる。
【００３５】
一つの実施の形態によれば、前記暗号システムは、前記第３ロジック回路出力を変換するように構成されたＳ’ボックス回路と、前記第１パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する前記第１出力を発生するために、前記変換された第３ロジック回路出力を置換するように構成された置換回路と、をさらに含む。
【００３６】
一つの実施の形態によれば、前記Ｓ’ボックス回路は、Ｓ’（Ｄ  ＸＯＲ  Ｍ１  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ１）を満足させ、前記Ｄは前記入力データ、前記Ｍ１は前記第１パターン、前記Ａは少なくとも前記アドレスの一部分、そしてＫは前記キー値、前記Ｐ−１は逆置換演算、前記Ｓ’（  ）はＳ’ボックス変換機能、前記Ｓ（  ）は復号化動作に使用される他のＳボックス変換機能である。
【００３７】
一つの実施の形態によれば、前記入力データは少なくともバイトデータであり、前記Ｓ’−ボックス回路は、前記第３ロジック回路出力の第１二ブル及び前記第３ロジック回路出力の第２二ブルをそれぞれ変換するように構成された第１Ｓ−ボックス回路及び第２Ｓ−ボックス回路を含む。
【００３８】
一つの実施の形態によれば、前記暗号化ロジックは、前記入力データ、前記第１パターン、少なくともアドレスの一番目の部分及び第１キー値に応答して、第１ラウンドロジック回路出力を発生するように構成された第１ラウンドロジック回路と、前記第１ラウンドロジック回路出力を変換するように構成された第１ラウンドＳ’−ボックス回路と、第１ラウンド出力を発生するために、前記変換された第１ラウンドロジック回路出力を置換するように構成された第１ラウンド置換回路と、前記第１ラウンド出力、少なくとも前記アドレスの二番目の部分及び第２キー値に応答して、第２ラウンドロジック回路出力を発生するように構成された第２ラウンドロジック回路と、前記第２ラウンドロジック回路出力を変換するように構成された第２ラウンドＳ’−ボックス回路と、前記第１パターンを使用して、その直後行われた前記マスク演算を終え、前記暗号化された入力データに対応する前記第１出力を発生するために、前記変形された第２ラウンドロジック回路出力を置換するように構成された第２ラウンド置換回路と、を含む。
【００３９】
一つの実施の形態によれば、前記第１及び第２ラウンドＳ’−ボックス回路は、方程式Ｓ’（Ｄ  ＸＯＲ  Ｍ１  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ１）を満足させ、前記Ｄは前記入力データ、前記Ｍ１は前記第１パターン、前記Ａは少なくとも前記アドレスの一部分、そしてＫは前記キー値、前記Ｐ−１は逆置換演算、前記Ｓ’（  ）はＳ’−ボックス変換機能、そして前記Ｓ（  ）は復号化動作に使用されるまた他のＳ−ボックス変換機能である。
【００４０】
一つの実施の形態によれば、前記入力データは少なくともバイトデータであり、前記第１ラウンドＳ−ボックス回路は、前記第１ラウンドロジック回路出力の上位ビット二ブル及び前記第１ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第１Ｓ’−ボックス回路及び第２Ｓ’−ボックス回路を含み、前記第２ラウンドＳ’−ボックス回路は、第２ラウンドロジック回路出力の上位ビット二ブル及び前記第２ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第３Ｓ’−ボックス回路及び第４Ｓ’−ボックス回路を含む。
【００４１】
一つの実施の形態によれば、前記第２暗号化回路は、前記入力データに関するアドレスを用いて、前記入力データに前記マスク演算を行うことによって、前記入力データを暗号化するように構成される暗号化ロジックを含む。
【００４２】
一つの実施の形態によれば、前記暗号化ロジックは、第１ロジック回路出力を発生するために、前記第１パターンを用いて前記入力データに前記マスク演算を行うように構成された第１ロジック回路と、第２ロジック回路出力を発生するために、少なくとも前記アドレスの一部分を用いて、前記第１ロジック回路出力に前記マスク演算を行うように構成された第２ロジック回路と、第３ロジック回路出力を発生するために、キー値を用いて前記第２ロジック回路出力に前記マスク演算を行うように構成された第３ロジック回路と、を含む。
【００４３】
一つの実施の形態によれば、前記マスク演算は、排他的論理和演算、加算演算、減算演算、乗算演算及び／又は除算演算を含み、前記加算演算、減算演算、掛け算乗算演算及び除算演算は、係数に対して行われる。
【００４４】
一つの実施の形態によれば、前記暗号システムは、前記第３ロジック回路出力を変換するように構成されたＳ’−ボックス回路と、前記第２パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する前記第２出力を発生するために、前記変換された第３ロジック回路出力を置換するように構成された置換回路と、をさらに含む。
【００４５】
一つの実施の形態によれば、前記Ｓ’−ボックス回路は、方程式Ｓ’（Ｄ  ＸＯＲ  Ｍ２  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ２）を満足させ、前記Ｄは前記入力データ、前記Ｍ２は前記第２パターン、前記Ａは少なくとも前記アドレスの一部分、そしてＫは前記キー値、前記Ｐ−１は逆置換演算、前記Ｓ’（  ）はＳ’−ボックス変換機能、そして前記Ｓ（  ）は復号化動作に使用されるまた他のＳ−ボックス変換機能である。
【００４６】
一つの実施の形態によれば、前記入力データは少なくともバイトデータであり、前記Ｓ’−ボックス回路は前記第３ロジック回路出力の第１二ブル及び前記第３ロジック回路出力の第２二ブルをそれぞれ変換するように構成された第１Ｓ’−ボックス回路及び第２Ｓ’−ボックス回路を含む。
【００４７】
一つの実施の形態によれば、前記暗号化ロジックは、前記入力データ、前記第２パターン、少なくともアドレスの一番目の部分及び第１キー値に応答して、第１ラウンドロジック回路出力を発生するように構成された第１ラウンドロジック回路と、前記第１ラウンドロジック回路出力を変換するように構成された第１ラウンドＳ’−ボックス回路と、第１ラウンド出力を発生するために、前記変換された第１ラウンドロジック回路出力を置換するように構成された第１ラウンド置換回路と、前記第１ラウンド出力、少なくとも前記アドレスの二番目の部分及び第２キー値に応答して、第２ラウンドロジック回路出力を発生するように構成された第２ラウンドロジック回路と、前記第２ラウンドロジック回路出力を変換するように構成された第２ラウンドＳ’ボックス回路と、前記第２パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する前記第２出力を発生するために、前記変換された第２ラウンドロジック回路出力を置換するように構成された第２ラウンド置換回路と、を含む。
【００４８】
一つの実施の形態によれば、前記第１及び第２ラウンドＳ’ボックス回路は、Ｓ’（Ｄ  ＸＯＲ  Ｍ２  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ２）を満足させ、前記Ｄは前記入力データ、前記Ｍ２は前記第２パターン、前記Ａは少なくとも前記アドレスの一部分、前記Ｋは前記キー値、前記Ｐ−１は逆置換演算、前記Ｓ’（  ）はＳ’ボックス変換機能、そして前記Ｓ（  ）は復号化動作に使用されるまた他のＳ−ボックス変換機能である。
【００４９】
一つの実施の形態によれば、前記入力データは少なくともバイトデータであり、前記第１ラウンドＳ−ボックス回路は、前記第１ラウンドロジック回路出力の上位ビット二ブル及び前記第１ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第１Ｓ’ボックス回路及び第２Ｓ’ボックス回路を含み、前記第２ラウンドＳ’ボックス回路は、第２ラウンドロジック回路出力の上位ビット二ブル及び前記第２ラウンドロジック回路出力の下位ビット二ブルをそれぞれ変換するように構成された第３Ｓ’ボックス回路及び第４Ｓ’ボックス回路を含む。
【００５０】
本発明の他の特徴による暗号システム動作方法は、第１パターンを使用して、その直後行われたマスク演算を終え、暗号化された入力データに対応する第１出力を、入力データに応答して発生するステップと、第２パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する第２出力を、前記入力データに応答して発生するステップと、第３出力を発生するために、前記第１出力及び前記第２出力に前記マスク演算を行うステップと、前記第２パターンを使用して前記マスク演算がなされた前記第１パターンに対応する値と前記第３出力とを比べるステップと、前記第１パターンに対応する値が前記第３出力と等しくなければ、エラーを検出するステップと、を含む。
【００５１】
一つの実施の形態によれば、前記第１出力を発生するステップは、前記入力データに関するアドレスを用いて前記入力データに前記マスク演算を行うことによって、前記入力データを暗号化するステップを含む。
【００５２】
一つの実施の形態によれば、前記入力データを暗号化するステップは、第１ロジック出力を発生するために、前記第１パターンを用いて前記入力データに前記マスク演算を行うステップと、第２ロジック出力を発生するために、少なくとも前記アドレスの一部分を用いて前記第１ロジック出力に前記マスク演算を行うステップと、前記第３ロジック出力を発生するために、キー値を用いて前記第２ロジック出力に前記マスク演算を行うステップと、を含む。
【００５３】
一つの実施の形態によれば、前記マスク演算は、排他的論理和演算、加算演算、減算演算、乗算演算及び／又は除算演算を含み、前記加算演算、減算演算、乗算演算及び除算演算は、係数に対して行われる。
【００５４】
一つの実施の形態によれば、前記暗号システム動作方法は、Ｓ’ボックス回路を用いて前記第３ロジック出力を変換するステップと、前記第１パターンを使用して前記マスク演算がなされた前記暗号化された入力データに対応する前記第１出力を発生するために、前記変換された第３ロジック回路出力を置換するステップと、をさらに含む。
【００５５】
一つの実施の形態によれば、前記Ｓ’ボックス回路は、方程式Ｓ’（Ｄ  ＸＯＲ  Ｍ１  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ１）を満足させ、前記Ｄは前記入力データ、前記Ｍ１は前記第１パターン、前記Ａは少なくとも前記アドレスの一部分、前記Ｋは前記キー値、前記Ｐ−１は逆置換演算、前記Ｓ’（  ）はＳ’−ボックス変換機能、そして前記Ｓ（  ）は復号化動作に使用されるまた他のＳ−ボックス変換機能である。
【発明の効果】
【００５６】
本発明によれば、スマートカードは、データを安全に保護することができるだけでなく、データ伝送の間バスで発生したエラーを検出することができる。
【発明を実施するための最良の形態】
【００５７】
本発明は、例えば、システム、方法及び／又はコンピュータプログラムとして具体化されうる。或いは、本発明は、ハードウェア及び／又はソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）として具体化されうる。
【００５８】
さらに、本発明は、コンピュータが使用可能なコンピュータ可読プログラムコード、またはコンピュータ可読記憶媒体であって、コンピュータプログラムの形式、または命令実行システムに連結されて使用されるための記憶媒体に記録されたコンピュータ可読プログラムとして具体化されうる。この明細書において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスに連結されて使用されるためのプログラムを含み、そのプログラムを格納、伝達、伝播または伝送することができる任意の媒体を含むであろう。
【００５９】
コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、または半導体システム、装置、デバイス、または伝播媒体であり得るが、これに限定されるのではない。コンピュータ可読記憶媒体のより具体的な例としては、一つまたはそれ以上のワイヤを持つ電気的連結装置、携帯用コンピュータディスケット、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭまたはフラッシュメモリ（ＥＥＰＲＯＭ  ｏｒ  Ｆｌａｓｈ  ｍｅｍｏｒｙ）、光繊維、そしてＣＤ−ＲＯＭなどを含む。
【００６０】
本発明の実施の形態において、スマートカードは、前述したようなテムパリング攻撃を防ぐために、入力データに関するアドレスを使用して、入力データを暗号化するために使用できる暗号システムを含むことができる。スマートカードは、データ及び／又はアドレス情報が間違っていれば、様々な動作をデータバスを通して運ばれるデータに、及び／又は、アドレスバスを通して運ばれるアドレスに対してエラー検出を実行するエラー検出回路を含む。
【００６１】
本発明の実施の形態において、スマートカードは、暗号機能及び／又はエラー検出機能を含みうる。本発明の実施の形態は、スマートカード及びこの明細書に記述された他の装置に使用できる暗号システム及びエラー検出回路にのみ限定されるものではない。
（実施の形態）
以下、添付の図面を参照して、本発明の実施の形態について詳細に説明する。
【００６２】
図２に示すように、本発明の実施の形態に係るスマートカード１００は、ＣＰＵ１１０、暗号回路１３０、キースケジューラ１４０及びメモリ１２０を含んで構成されうる。暗号回路１３０は、ＣＰＵ１１０と協働して動作する処理装置として具体化することもできる。ＣＰＵ１１０と暗号回路１３０は、互いにデータ及びアドレス情報を伝達する。キースケジューラ１４０は、データを暗号化及び／又は復号化する暗号回路１３０にキー値を提供する。具体的に、暗号回路１３０は、データに関するアドレス及び／又はキースケジューラ１４０から提供されたキー値を使用して、暗号回路１３０及びメモリ１２０を連結するバス１５０を介して運ばれるデータを暗号化する暗号化回路１３１を含む。暗号回路１３０は、以前に暗号化されたデータを解読するために使用される復号化回路１３２をさらに含む。
【００６３】
図３は、本発明の実施の形態に係る、図２に図示された暗号化回路１３１に使用される暗号化ロジック回路を示すブロック図である。暗号化ロジック回路１３１は、第１ラウンドロジック回路２１０及び第２ラウンドロジック回路２２０を含む。第１ラウンドロジック回路２１０は、ＸＯＲロジック回路２１１、２１２、データレジスタ２１３、Ｓボックス回路２１４、２１５及び置換回路２１６を含む。これらは、ここに記載した順番で直列に連結されている。暗号化すべきデータは、ＸＯＲ回路２１１に入力され、ＸＯＲ回路２１１は、入力されるデータに関するアドレスａｄｄｒ１を使用して、入力されたデータに対してマスク演算を行なう。ＸＯＲ回路２１２は、キースケジューラ１４０から提供されたキー値ｋｅｙ１を使用して、ＸＯＲ回路２１１の出力に対して第２マスク演算を行なう。
【００６４】
図３におけるブロック２１１、２１２のマスク演算として、排他的論理和（ｅｘｃｌｕｓｉｖｅ  ＯＲ）ロジック演算が図示されているが、このマスク演算は、排他的論理和演算、加算演算、減算演算、乗算及び／又は除算演算を含み、排他的論理和演算、加算演算、減算演算、乗算演算及び除算演算は、本発明の様々な実施の形態にしたがって、係数に対して行なわれることが分かるであろう。
【００６５】
データレジスタ２１３は、ＸＯＲ回路２１２の出力を保持し、第１Ｓボックス回路（Ｓ１）２１４にはＸＯＲ回路２１２の出力の第１部分を、そして第２Ｓボックス回路（Ｓ２）２１５にはＸＯＲ回路２１２の出力の第２部分を提供する。Ｓボックスは、暗号システムに一般的に使用される簡単な代替ボックスである。特に、Ｓボックスは、平文（ｐｌａｉｎｔｅｘｔ）及び暗号文（ｃｉｐｈｅｒｔｅｘｔ）の間の関係を隠すために使用される。Ｓボックスは、例えば、動作中にルックアップテーブルを使用して、入力ビットを変換して出力する。図４には、例示的なＳボックステーブルが示されており、Ｓボックステーブルは、Ｓボックス回路２１４、２１５によって使用される。例えば、入力データは、１バイトデータであり、データ値が「１００１  １０１０」、アドレスａｄｄｒ１が「０１１１  ００１１」、及びキー値ｋｅｙ１が「１１００  ０１０１」であれば、その時にデータレジスタに格納される値は「００１０  １１００」である。第１Ｓボックス回路（Ｓ１）２１４には「００１０」が入力され、第２Ｓボックス回路（Ｓ２）２１５には「１１００」が入力される。図４のテーブルを参照すると、Ｓ１（２）＝１３＝１１０１であり、Ｓ２（１２）＝９＝１００１である。よって、置換回路２１６には「１１０１  １００１」が入力される。
【００６６】
本発明の実施の形態にしたがって、置換回路２１６は、入力されるデータに線形機能（ｌｉｎｅａｒ  ｆｕｎｃｔｉｏｎ）をするように構成される。本発明の多様な実施の形態によれば、線形機能は、ビットのシフト機能または線形変換機能である。図３に図示された置換回路２１６は、Ｐ１（１１０１  １００１）＝１０１１  ００１１のように、シフト動作を行うように構成される。
【００６７】
第２ラウンドロジック回路２２０は、ＸＯＲロジック回路２２１、２２２、データレジスタ２２３、Ｓ−ボックス回路２２４、２２５及び置換回路２２６を含む。これらは、ここに記載した順番で直列に連結されている。第２ラウンドロジック回路２２０の動作は、第１アドレスａｄｄｒ１及び第１キー値ｋｅｙ１の代わりに第２アドレスａｄｄｒ２及び第２キー値ｋｅｙ２が、ＸＯＲロジック回路２２１、２２２により行われるマスク演算に使用されることを除いて、前述した第１ラウンドロジック回路２１０の動作と類似している。また、第２ラウンドロジック回路２２０において、Ｓボックス回路（Ｓ１）２２４は、上位ニブル（ｎｉｂｂｌｅ）の代わりに下位二ブルに対して動作し、Ｓボックス回路（Ｓ２）２２５は、下位二ブルの代わりに上位二ブルに対して動作する。
【００６８】
第２ラウンドロジック回路２２０から出力される暗号化されたデータは、解読（ｄｅｃｏｄｅ）が非常に難しい。結果的に、前述したように、スマートカードに対するテムパリング攻撃は、本発明の多様な実施の形態による暗号化されたスマートカードに使用される機密（ｃｏｎｆｉｄｅｎｔｉａｌ）データを得ることができない。
【００６９】
図５は、本発明の実施の形態に係る、図２に図示された復号化回路１３２に使用される復号化ロジック回路を示すブロック図である。
【００７０】
復号化ロジック回路１３２は、第１ラウンドロジック回路３１０及び第２ラウンドロジック回路３２０を含む。第１ラウンドロジック回路３１０は、逆置換回路３１１、逆Ｓボックス回路３１２、３１３、データレジスタ３１４及びＸＯＲロジック回路３１５、３１６を含む。これらは、ここに記載した順番で直列に連結されている。第１ラウンドロジック回路３１０は、図３に図示された第２ラウンドロジック回路２２０により行われた動作を元の状態に戻すために動作することができる。図３に図示された第１ラウンドロジック回路２１０の出力がＯＰであり、及び、｜｜が連結動作を示すものとすれば、逆置換回路３１１は、次の式にしたがう出力を発生する。
【００７１】
Ｐ−２［Ｐ２（Ｓ２（ＯＰ  ＸＯＲ  ＡＤＤＲ２  ＸＯＲ  ＫＥＹ２）  ｜｜  Ｓ１（ＯＰ  ＸＯＲ  ＡＤＤＲ２  ＸＯＲ  Ｋ２））］＝Ｓ２（ＯＰ  ＸＯＲ  ＡＤＤＲ２  ＸＯＲ  ＫＥＹ２）  ｜｜  Ｓ１（ＯＰ  ＸＯＲ  ＡＤＤＲ２  ＸＯＲ  Ｋ２）
逆Ｓボックス回路３１２、３２２は、次の方程式にしたがう演算を行う。
【００７２】
Ｓ−２（Ｓ２（ＯＰ  ＸＯＲ  ＡＤＤＲ２  ＸＯＲ  ＫＥＹ２）＝ＯＰ  ＸＯＲ  ＡＤＤＲ２  ＸＯＲ  ＫＥＹ２及びＳ−１（Ｓ１（ＯＰ  ＸＯＲ  ＡＤＤＲ２  ＸＯＲ  ＫＥＹ２））＝ＯＰ  ＸＯＲ  ＡＤＤＲ２  ＸＯＲ  ＫＥＹ２
第１ＸＯＲロジック回路３１５は、次の式にしたがう演算を行う。
【００７３】
ＯＰ  ＸＯＲ  ＡＤＤＲ２  ＸＯＲ  ＫＥＹ２  ＸＯＲ  ＡＤＤＲ２＝ＯＰ  ＸＯＲ  ＫＥＹ２
最終的に、第２ＸＯＲロジック回路３１６は、次の式にしたがう演算を行う。
【００７４】
ＯＰ  ＸＯＲ  ＫＥＹ２  ＸＯＲ  ＫＥＹ２＝ＯＰ
従って、第１ラウンドロジック回路３１０は、暗号化回路１３１の第１ラウンドロジック回路２１０の暗号化された出力を元通りに戻すことができる。
【００７５】
第２ラウンドロジック回路３２０は、逆置換回路３２１、逆Ｓボックス回路３２２、３２３、データレジスタ３２４及びＸＯＲロジック回路３２５、３２６を含む。これらは、ここに記載した順番で直列に連結されている。第２ラウンドロジック回路３２０は、図３に図示された第２ラウンドロジック回路２２０により行われた演算の結果を、元の状態に戻すための演算をすることができる。第２ラウンドロジック回路３２０の動作は、前述した第１ラウンドロジック回路３１０の動作と同様である。第２ラウンドロジック回路３２０は、図３に図示された暗号化回路１３１の第１ラウンドロジック回路２１０の出力が入力され、入力された暗号化されたデータから復号化された原本データを生成する。
【００７６】
図２をまた参照すると、スマートカード１００は、図３及び図４に記述された多様な実施の形態にしたがって、バス１５０を介して暗号化されたデータをメモリ１２０に伝送することができる。暗号化されたデータは、マスク演算、Ｓボックス動作及び／又は暗号化回路により行われる置換動作のため、パワー技術分析を通じて解読（ｄｅｃｏｄｅ）することが難しい。本発明の実施の形態は、希望される保安レベルによって調節されることができる。例えば、図３〜図５に図示された暗号化及び復号化回路は、暗号化／複合化動作の二つのラウンドを合体させる。暗号化及び復号化動作のより少ないラウンドが、本発明の実施の形態にしたがって使用されるであろう。図３〜図５に図示された実施の形態において、入力データは１バイトである。それが理想的な場合ではあるが、バス幅によって異なるデータサイズに対して、前述された暗号動作が行われることができる。したがって、図３〜図５に前述された暗号動作は、例えば、１６ビット、３２ビット、６４ビット、または他のバス幅を支援するために、並列に行われることもできる。
【００７７】
図６は、本発明の他の実施の形態に係る暗号システムのブロック図である。図６に示すように、本発明の他の実施の形態に係るスマートカード１００’は、ＣＰＵ１１０’、暗号化回路１３１’、復号化回路１３２’、キースケジューラ１４０’及びメモリ１２０’を含んで構成される。メモリ１２０’は、データバス１５０’を介してＣＰＵ１１０’に連結される。暗号化回路１３１’及び復号化回路１３２’の動作は、前述された図２の暗号化回路１３１及び復号化回路１３２の動作と同様である。図６のスマートカード１００’と図２のスマートカード１００との異なるところは、図６のスマートカード１００’は、単一ロジック装置を形成するために、スマートカード１００’に暗号化ロジックがＣＰＵ１１０’と共に集積されているが、図２の暗号回路１３０は、ＣＰＵ１００に連結された共同処理機として構成される。
【００７８】
図７は、本発明の実施の形態に係るエラー検出回路を示すブロック図である。図７に示すように、エラー検出回路は、ＣＰＵ４１０、３つのロジック回路４３０、４４０、４５０及びメモリ４２０を含む。ＣＰＵ４１０に連結されたデータバスは、ロジック回路４３０、４４０、４５０に並列連結される。ＸＯＲロジック回路４３１は、第１パターンマスク（ＭＡＳＫ１）Ｍ１を用いて、ＣＰＵ４１０から提供される入力データにマスク演算を行い、マスク演算を行ったデータをレジスタ４３２に格納する。同様に、ＸＯＲロジック回路４４１は、第２パターンマスク（ＭＡＳＫ２）Ｍ２を用いて、ＣＰＵ４１０から提供される入力データにマスク演算を行い、マスク演算を行ったデータをレジスタ４４２に格納する。排他的論理和（ｅｘｃｌｕｓｉｖｅ  ＯＲ）ロジック演算が、図７でＸＯＲロジック回路４３１、４４１のマスク演算として図示されているが、このマスク演算は、排他的論理和演算、加算演算、減算演算、乗算演算及び／又は除算演算を含み、排他的論理和演算、加算演算、減算演算、乗算演算及び除算演算は、本発明の多様な実施の形態にしたがって、係数に対して行われることが分かるであろう。
【００７９】
ロジック回路４３０は、入力データとＭ１との排他的論理和（ＸＯＲ）演算の結果を出力４６０に提供し、ロジック回路４４０は、入力データとＭ２との排他的論理和（ＸＯＲ）演算の結果を出力４７０に提供する。このような出力は、それぞれロジック回路４５０のレジスタ４５１、４５２に提供される。ロジック回路４５０は、ＸＯＲロジック回路４５３、４５４をさらに含む。ＸＯＲロジック回路４５３は、第１パターンマスク（ＭＡＳＫ１）Ｍ１を用いてレジスタ４５１内のデータにマスク演算を行うことによって、元の入力データを回復するために使用される。ＸＯＲロジック回路４５３の出力は、次の方によって与えられる。
【００８０】
入力データ  ＸＯＲ  Ｍ１  ＸＯＲ  Ｍ１  ＝  入力データ
よって、入力データは、メモリ４２０に格納される。
【００８１】
ＸＯＲロジック回路４５４は、レジスタ４５１のデータを用いて、レジスタ４５２のデータにマスク演算を行う。ＸＯＲロジック回路４５４の出力は、次の式によって与えられる。
【００８２】
入力データ  ＸＯＲ  Ｍ１  ＸＯＲ  入力データ  ＸＯＲ  Ｍ２  ＝  Ｍ１  ＸＯＲ  Ｍ２
エラー検出回路４５５は、（Ｍ１  ＸＯＲ  Ｍ２）とＸＯＲロジック回路４５４の出力とを比較する。ＸＯＲロジック回路４５４の出力が（Ｍ１  ＸＯＲ  Ｍ２）でなければ、デュアルデータバスの少なくとも一つのブランチ（ｂｒａｎｃｈ）からの入力データは間違ったものであり、この時、エラー状態であることが認識される。
【００８３】
図８は、本発明の他の実施の形態に係るエラー検出回路を示すブロック図である。図８に示されたエラー検出回路は、図７のエラー検出回路と同様な構成を有するので、同一な構成には同一な符号を使用し、符号の後に（’）を付ける。図７に図示されたようなデュアルデータバスの代わりに、図８にはデュアルアドレスバスが示されている。図８のエラー検出回路の動作は、デュアルアドレスバスを通してアドレス情報を運ぶことを除いて、図７のエラー検出回路の動作と同様である。
【００８４】
本発明の他の実施の形態では、図２〜図６の暗号システムは、図７及び図８のエラー検出回路と結合される。図９に示すように、本発明の実施の形態に係る暗号システムは、ＣＰＵ５１０、暗号回路５３０、キースケジューラ５４０、エラー検出回路５５０及びメモリ５２０を含む。
【００８５】
暗号回路５３０は、ＣＰＵ５１０と協働して動作する処理装置として具体化されることもできる。ＣＰＵ５１０と暗号回路５３０は、互いにデータとアドレスを伝達する。他の実施の形態において、ＣＰＵ５１０と暗号回路５３０は、前述した図６に図示されたように、単一論理装置として具体化されることができる。暗号化回路５３１、５３２の構造及び動作は、Ｓボックス回路が設けられていることを除いて、実質的に図２の暗号化回路１３１の構造及び動作と同様である。同じく、復号化回路５３３の構造及び動作は、逆Ｓ−ボックス回路が設けられていることを除いて、実質的に図２の復号化回路１３２の構造及び動作と同様である。
【００８６】
図９に図示されたように、暗号回路５３０は、出力５６０に暗号化されたデータＸＯＲ  ＭＡＳＫ１（Ｍ１）を発生し、出力５７０に暗号化されたデータＸＯＲ  ＭＡＳＫ２（Ｍ２）を発生する。エラー検出回路５５０の構造及び動作は、図７及び図８のエラー検出回路のロジック回路４５０、４５０’とそれぞれ同様である。
【００８７】
以下、図１０を参照して、本発明の実施の形態に係る図９の暗号化回路５３１及び／又は５３２に使用される暗号化ロジック回路が記述される。図１０の暗号化ロジック回路においては、暗号化回路５３１の実行について記述される。第１および第２ラウンドロジック回路６１０、６２０は、実質的に、図３で記述された第１及び第２ラウンドロジック回路２１０、２２０と同様である。第１及び第２ラウンドロジック回路６１０、６２０の下位構成は、第１及び第２ラウンドロジック回路２１０、２２０の下位構成に対応するように構成されている。しかし、図３の暗号化ロジック回路と比べて、Ｓボックス回路６１４、６１５、６２４、６２５は、対応する図３のＳボックス回路とは異なる。第１ラウンドロジック回路６１０に入力されるデータは、単に入力データではなく、ＸＯＲロジック回路６０５でパターンマスク（ＭＡＳＫ１）Ｍ１を用いてマスク演算が行われた入力データでる。
【００８８】
暗号化回路５３１の目的は、（暗号化されたデータ  ＸＯＲ  Ｍ１）を出力に発生することである。これは、簡単なＸＯＲマスク演算によりパターンマスク（ＭＡＳＫ１）Ｍ１を除去することを可能にし、そして、復号化回路５３３が元の入力データを回復するために、図４に図示されたＳボックステーブルを含む暗号化ロジックを使用して暗号化されたデータを復号化することを可能にする。暗号化回路５３１の出力が（暗号化されたデータ  ＸＯＲ  Ｍ１）であることを保障するために、新しいＳ１回路６１４、６２４は次の式を満足させる。
【００８９】
Ｓ１’（Ｄ  ＸＯＲ  Ｍ１  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ１（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ１）
Ｄは入力データ、Ｍ１は第１パターン、Ａは少なくともアドレスａｄｄｒ１の一部分、Ｋはキー値ｋｅｙ１、Ｐ−１は逆置換演算、Ｓ１’（  ）はｓＳ１変換機能、そしてＳ（  ）は復号化動作に使用されるまた他のＳ−ボックス変換である。
【００９０】
同様に、新しいＳ１回路６１５、６２５は、次の方程式を満足させる。
【００９１】
Ｓ２’（Ｄ  ＸＯＲ  Ｍ１  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）＝Ｓ２（Ｄ  ＸＯＲ  Ａ  ＸＯＲ  Ｋ）ＸＯＲ  Ｐ−１（Ｍ１）
Ｄは入力データ、Ｍ１は第１パターン、Ａは少なくとも前記アドレスａｄｄｒ１の一部分、Ｋは前記キー値ｋｅｙ１、Ｐ−１は逆置換演算、Ｓ２’（  ）はＳ２変換機能、そしてＳ（  ）は復号化動作に使用されるまた他のＳ−ボックス変換である。
【００９２】
ｉ＝Ｄ  ＸＯＲ  Ａ１  ＸＯＲ  Ｋ１であれば、前述した新しいＳ１回路６１４、６２４及びＳ２回路６１５、６２５のための方程式は、次のように与えられることができる。
【００９３】
Ｓ１’（ｉ  ＸＯＲ  Ｍ１）＝Ｓ１（ｉ）ＸＯＲ  Ｐ−１（Ｍ１）；及び
Ｓ２’（ｉ  ＸＯＲ  Ｍ１）＝Ｓ２（ｉ）ＸＯＲ  Ｐ−１（Ｍ１）
第１ラウンドロジック回路６１０の出力は次の方程式により与えられる。
【００９４】
Ｐ（Ｓ１’（ｉ  ＸＯＲ  Ｍ１）  ｜｜  Ｓ２’（ｉ  ＸＯＲ  Ｍ１）
前記式は次のように与えられることができる。
【００９５】
Ｐ（Ｓ１（ｉ）ＸＯＲ  Ｐ−１（Ｍ１）  ｜｜  Ｓ２（ｉ）ＸＯＲ  Ｐ−１（Ｍ１））＝Ｐ（（Ｓ１（ｉ）  ｜｜  Ｓ２（ｉ））ＸＯＲ  Ｐ−１（Ｍ１））
前記式は次のように与えられることができる。
【００９６】
Ｐ（Ｓ１（ｉ）  ｜｜  Ｓ２（ｉ））ＸＯＲ  Ｐ（Ｐ−１（Ｍ１））＝Ｐ（Ｓ１（ｉ）  ｜｜  Ｓ２（ｉ））ＸＯＲ  Ｍ１
よって、第１ラウンドロジック回路６１０の出力はＥＤ１  ＸＯＲ  Ｍ１となる。
【００９７】
図２の暗号化回路１３１及び復号化回路１３２、図６の暗号化回路１３１’及び復号化回路１３２’、図７のロジック回路４３０、４４０、４５０、図８のロジック回路４３０’、４４０’、４５０’、及び図９の暗号化回路５３１、５３２、復号化回路５３３及びエラー検出回路５５０の何れかの、または全てのモジュールの機能性は、独立のハードウェア構成、一つまたは複数のＡＳＩＣｓ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ）、またはプログラムされたデジタル信号処理機またはマイクロコントローラを使用して理解できる。前述した暗号システム及び／又はエラー検出回路の動作を行うためのコンピュータコードは、ＪＡＶＡ(登録商標)、Ｃ及び／またはＣ＋＋のようなハイレベルプログラミング言語により書かれうる。また、本発明の動作を行うためのコンピュータコードは、他のプログラミング言語により書かれることも可能であり、前記の言語に限定されるのではない。幾つかのモジュールまたはルーティンは、性能及び／またはメモリ使用を向上させるために、アセンブリ語またはイーブン（ｅｖｅｎ）マイクロコードにより書かれることができる。
【００９８】
以上、図面と明細書にて最良の実施の形態が開示されている。ここで特定の用語が使用されているが、これは単に本発明を説明するための目的で使用されたのであって、意味を限定したり、特許請求の範囲に記載された本発明の範囲を制限するために使用されたのではない。よって、本技術分野における通常の知識を有する者であれば、これから様々な変形及び均等な他の実施の形態が可能であることが分かるであろう。したがって、本発明の真の技術的保護範囲は、添付の特許請求の範囲の技術的思想により決まるべきである。
【図面の簡単な説明】
【００９９】
【図１】一般的なスマートカードの構造を示すブロック図である。
【図２】本発明の実施の形態に係る暗号システムのブロック図である。
【図３】図２に図示された暗号システムの暗号化回路を例示的に示すブロック図である。
【図４】図３に図示された暗号化回路に使用するためのＳボックステーブである。
【図５】図２に図示された暗号システムの復号化回路を例示的に示すブロック図である。
【図６】本発明の他の実施の形態に係る暗号システムのブロック図である。
【図７】本発明の実施の形態に係るエラー検出回路を示すブロック図である。
【図８】本発明の他の実施の形態に係るエラー検出回路を示すブロック図である。
【図９】図７に図示されたエラー検出回路を含む暗号システムを示すブロック図である。
【図１０】図９に図示された暗号システムの暗号化回路を例示的に示すブロック図である。
【符号の説明】
【０１００】
１００：スマートカード
１１０：ＣＰＵ
１２０：メモリ
１３０：暗号回路
１３１：暗号化回路
１３２  ： 複合化回路
１４０：キースケジューラ
１５０：バス
【図１】
2007328789.tif 000003
【図２】
2007328789.tif 000004
【図３】
2007328789.tif 000005
【図４】
2007328789.tif 000006
【図５】
2007328789.tif 000007
【図６】
2007328789.tif 000008
【図７】
2007328789.tif 000009
【図８】
2007328789.tif 000010
【図９】
2007328789.tif 000011
【図１０】
2007328789.tif 000012