(57)【要約】【課題】安全性の向上と処理の高速化を図った暗号／復号器を提供する。【解決手段】暗号／復号器は共通鍵ＫＥＹとブロックデータのカウントデータＣＮＴと乱数ＣＤｎを用いて暗号用乱数ＲＮＤを生成する暗号用乱数生成部１と、共通鍵ＫＥＹとカウントデータＣＮＴと暗号用乱数ＲＮＤを用いてブロックデータＢＳを暗号化し、暗号化ブロックデータＢＣＳを生成すると共に、暗号化されたブロックデータＲＢＣＳを復号化し、復号化ブロックデータＲＢＳを生成する暗号化／復号化処理部３と、共通鍵ＫＥＹとカウントデータＣＮＴと乱数ＣＤｎを用いて暗号用乱数生成部１および暗号化／復号化処理部３で使用する各種制御データを生成する制御データ生成部２とで構成される。暗号／復号化のための各種データ変換にスクランブル処理（置換、鏡像置換、反転）と変換テーブルによる非線形変換処理を用いる。【選択図】　　図１
2004117429.tif 000002
【特許請求の範囲】
【請求項１】
共通鍵（ＫＥＹ）とブロックデータのカウントデータ（ＣＮＴ）と単数もしくは複数の乱数（ＣＤｎ）を用いて暗号用乱数（ＲＮＤ）を生成する暗号用乱数生成部（１）と、
前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いてブロックデータ（ＢＳ）を暗号化し、暗号化ブロックデータ（ＢＣＳ）を生成すると共に、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いて暗号化されたブロックデータ（ＲＢＣＳ）を復号化し、復号化ブロックデータ（ＲＢＳ）を生成する暗号化／復号化処理部（３）と、
前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記乱数（ＣＤｎ）を用いて前記暗号用乱数生成部（１）および前記暗号化／復号化処理部（３）で使用する各種制御データを生成する制御データ生成部（２）とで構成される暗号／復号器であって、
前記制御データ生成部（２）は、補助制御データに基づいてデータの攪拌を行う複数のスクランブル手段（２６〜３１）を有し、
前記乱数（ＣＤｎ）の任意の２組の排他的論理和でデータ（ＸＣｎ）を生成し、
当該データ（ＸＣｎ）の内の幾つかと前記カウントデータ（ＣＮＴ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りのデータ（ＸＣｎ）と前記共通鍵（ＫＥＹ）の論理和でデータ（ＸＫＣｎ）を生成し、
これらデータ（ＸＴＣｎ）とデータ（ＸＫＣｎ）の全ての排他的論理和で複数の前記補助制御データを生成し、
前記カウントデータ（ＣＮＴ）および前記共通鍵（ＫＥＹ）および前記データ（ＸＴＣｎ）および前記データ（ＸＫＣｎ）の各々データを、これら補助制御データに基づき、前記スクランブル手段で攪拌して各々データ（ＳＴｃ）およびデータ（ＳＫｃ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を生成し、
これらデータ（ＳＴｃ）およびデータ（ＳＫｃ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を用いて前記各種制御データ（ＭＣｎ、ＭＫ０、ＭＳｎ）を生成することを特徴とする暗号／復号器。
【請求項２】
前記乱数（ＣＤｎ）の任意の２組の排他的論理和でデータ（ＸＣｎ）を生成するにあたり、
前記各乱数（ＣＤｎ）にオフセット値を付加したことを特徴とする請求項１に記載の暗号／復号器。
【請求項３】
前記データ（ＸＣｎ）の内の幾つかと前記カウントデータ（ＣＮＴ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りのデータ（ＸＣｎ）と前記共通鍵（ＫＥＹ）の排他的論理和でデータ（ＸＫＣｎ）を生成するにあたり、
前記カウントデータ（ＣＮＴ）および／または前記共通鍵（ＫＥＹ）にオフセット値を付加したことを特徴とする請求項１または請求項２の何れかに記載の暗号／復号器。
【請求項４】
さらに、前記制御データ生成部（２）は、前記補助制御データに基づいてデータの攪拌を行う複数のスクランブル手段（３２〜３５）を有し、
前記データ（ＳＸＫＣｎ）と前記データ（ＳＴｃ）の全ての排他的論理和でデータ（ＸＳＸＫＣ２３３０Ｔ）を生成すると共に、前記データ（ＳＸＴＣｎ）と前記データ（ＳＫｃ）の全ての排他的論理和でデータ（ＸＳＸＴＣ０１１２Ｋ）を生成し、
前記データ（ＸＳＸＫＣ２３３０Ｔ）および前記データ（ＸＳＸＴＣ０１１２Ｋ）を各々前記複数のスクランブル手段で攪拌して各々データ（ＳＳＸＳＸＫＣ２３３０Ｔ）およびデータ（ＳＳＸＳＸＴＣ０１１２Ｋ）を生成し、
これらのデータ（ＳＳＸＳＸＫＣ２３３０Ｔ）およびデータ（ＳＳＸＳＸＴＣ０１１２Ｋ）より前記各種制御データ（ＭＣｎ、ＭＫ０、ＭＳｎ）を生成することを特徴とする請求項１から請求項３までの何れかに記載の暗号／復号器。
【請求項５】
さらに、前記制御データ生成部（２）は、前記補助制御データに基づいてデータの攪拌を行う複数のスクランブル手段（３３〜３５）およびデータの非線形変換を行う非線形変換手段（１２３）を有し、
前記データ（ＳＸＫＣｎ）と前記データ（ＳＴｃ）の全ての排他的論理和でデータ（ＸＳＸＫＣ２３３０Ｔ）を生成すると共に、前記データ（ＳＸＴＣｎ）と前記データ（ＳＫｃ）の全ての排他的論理和でデータ（ＸＳＸＴＣ０１１２Ｋ）を生成し、
前記データ（ＸＳＸＫＣ２３３０Ｔ）を前記非線形変換手段（１２３）にて非線形変換してデータ（ＮＸＳＸＫＣ２３３０Ｔ）を生成すると共に、このデータ（ＮＸＳＸＫＣ２３３０Ｔ）を前記スクランブル手段で攪拌してデータ（ＳＮＸＳＸＫＣ２３３０Ｔ）を生成し、
前記データ（ＸＳＸＴＣ０１１２Ｋ）と前記データ（ＮＸＳＸＫＣ２３３０Ｔ）の排他的論理和でデータ（ＸＸＳＸＴＣ０１１２ＫＮＴ）を生成すると共に、このデータ（ＸＸＳＸＴＣ０１１２ＫＮＴ）を前記複数のスクランブル手段で攪拌してデータ（ＳＳＸＸＳＸＴＣ０１１２ＫＮＴ）を生成し、
これらのデータ（ＳＮＸＳＸＫＣ２３３０Ｔ）およびデータ（ＳＳＸＸＳＸＴＣ０１１２ＫＮＴ）より前記各種制御データ（ＭＣｎ、ＭＫ０、ＭＳｎ、ＣＴＬ）を生成することを特徴とする請求項１から請求項３までの何れかに記載の暗号／復号器。
【請求項６】
前記複数のスクランブル手段（２６〜３５）が、データの置換、或いはデータの反転、或いはデータの鏡像置換であり、これらを単独、或いは混合して用いることを特徴とする請求項１から請求項５までの何れかに記載の暗号／復号器。
【請求項７】
共通鍵（ＫＥＹ）とブロックデータのカウントデータ（ＣＮＴ）と単数もしくは複数の乱数（ＣＤｎ）を用いて暗号用乱数（ＲＮＤ）を生成する暗号用乱数生成部（１）と、
前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いてブロックデータ（ＢＳ）を暗号化し、暗号化ブロックデータ（ＢＣＳ）を生成すると共に、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いて暗号化されたブロックデータ（ＲＢＣＳ）を復号化し、復号化ブロックデータ（ＲＢＳ）を生成する暗号化／復号化処理部（３）と、
前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記乱数（ＣＤｎ）を用いて前記暗号用乱数生成部（１）および前記暗号化／復号化処理部（３）で使用する各種制御データを生成する制御データ生成部（２）とで構成される暗号／復号器であって、
前記乱数生成部（１）は、制御データに基づいてデータの攪拌を行う複数のスクランブル手段（１７〜２２）を有し、
前記乱数（ＣＤｎ）の内の幾つかと前記カウントデータ（ＣＮＴ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りの乱数（ＣＤｎ）と前記共通鍵（ＫＥＹ）の論理和でデータ（ＸＫＣｎ）を生成し、
前記カウントデータ（ＣＮＴ）および前記共有鍵（ＫＥＹ）および前記データ（ＸＴＣｎ）および前記データ（ＸＫＣｎ）の各データを前記スクランブル手段で攪拌して各々データ（ＳＴ）およびデータ（ＳＫ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を生成し、
これらデータ（ＳＴ）およびデータ（ＳＫ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を用いて前記暗号用乱数（ＲＮＤ）を生成することを特徴とする暗号／復号器。
【請求項８】
前記乱数（ＣＤｎ）の内の幾つかと前記カウントデータ（ＣＮＴ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りの乱数（ＣＤｎ）と前記共通鍵（ＫＥＹ）の論理和でデータ（ＸＫＣｎ）を生成するにあたり、
前記カウントデータ（ＣＮＴ）および／または前記共通鍵（ＫＥＹ）にオフセット値を付加したことを特徴とする請求項７に記載の暗号／復号器。
【請求項９】
さらに、前記制御データに基づいてデータの攪拌を行うスクランブル手段（２３、２４）を有し、
前記データ（ＳＸＴＣｎ）と前記データ（ＳＫ）の全ての排他的論理和でデータ（ＸＸＳＸＴＣ０１Ｋ）を生成すると共に、前記データ（ＳＸＫＣｎ）と前記データ（ＳＴ）の全ての排他的論理和でデータ（ＸＸＳＸＫＣ２３Ｔ）を生成し、
前記データ（ＸＸＳＸＴＣ０１Ｋ）および前記データ（ＸＸＳＸＫＣ２３Ｔ）を各々前記スクランブル手段で攪拌して各々データ（ＳＸＸＳＸＴＣ０１Ｋ）およびデータ（ＳＸＸＳＸＫＣ２３Ｔ）を生成し、
これらのデータ（ＳＸＸＳＸＴＣ０１Ｋ）およびデータ（ＳＸＸＳＸＫＣ２３Ｔ）を用いて前記暗号用乱数（ＲＮＤ）を生成することを特徴とする請求項７または請求項８の何れかに記載の暗号／復号器。
【請求項１０】
さらに、前記制御データに基づいてデータの攪拌を行うスクランブル手段（２５）を有し、
前記データ（ＳＸＸＳＸＴＣ０１Ｋ）と前記データ（ＳＸＸＳＸＫＣ２３Ｔ）の排他的論理和でデータ（ＸＳＸＸＳＸＴＫＣ０１２３ＫＴ）を生成し、
このデータ（ＸＳＸＸＳＸＴＫＣ０１２３ＫＴ）を前記スクランブル手段（２５）で攪拌して前記暗号用乱数（ＲＮＤ）を生成することを特徴とする請求項７から請求項９までの何れかに記載の暗号／復号器。
【請求項１１】
共通鍵（ＫＥＹ）と単数もしくは複数の乱数（ＣＤｎ）を用いて暗号用乱数（ＲＮＤ）を生成する暗号用乱数生成部（１）と、
前記共通鍵（ＫＥＹ）とブロックデータのカウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いてブロックデータ（ＢＳ）を暗号化し、暗号化ブロックデータ（ＢＣＳ）を生成すると共に、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いて暗号化されたブロックデータ（ＲＢＣＳ）を復号化し、復号化ブロックデータ（ＲＢＳ）を生成する暗号化／復号化処理部（３）と、
前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記乱数（ＣＤｎ）を用いて前記暗号用乱数生成部（１）および前記暗号化／復号化処理部（３）で使用する各種制御データを生成する制御データ生成部（２）とで構成される暗号／復号器であって、
前記乱数生成部（１）は、制御データに基づいてデータの攪拌を行う複数のスクランブル手段（１７〜２２）を有し、
前記乱数（ＣＤｎ）の内の幾つかと前記制御データ（ＣＴＬ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りの乱数（ＣＤｎ）と前記共通鍵（ＫＥＹ）の論理和でデータ（ＸＫＣｎ）を生成し、
前記制御データ（ＣＴＬ）および前記共有鍵（ＫＥＹ）および前記データ（ＸＴＣｎ）および前記データ（ＸＫＣｎ）の各データを前記スクランブル手段で攪拌して各々データ（ＳＴ）およびデータ（ＳＫ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を生成し、
これらデータ（ＳＴ）およびデータ（ＳＫ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を用いて前記暗号用乱数（ＲＮＤ）を生成することを特徴とする暗号／復号器。
【請求項１２】
前記乱数（ＣＤｎ）の内の幾つかと前記制御データ（ＣＴＬ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りの乱数（ＣＤｎ）と前記共通鍵（ＫＥＹ）の論理和でデータ（ＸＫＣｎ）を生成するにあたり、
前記制御データ（ＣＴＬ）および／または前記共通鍵（ＫＥＹ）にオフセット値を付加したことを特徴とする請求項１１に記載の暗号／復号器。
【請求項１３】
さらに、前記制御データに基づいてデータの攪拌を行うスクランブル手段（２３）およびデータの非線形変換を行う非線形変換手段（１２２）を有し、
前記データ（ＳＸＴＣｎ）と前記データ（ＳＫ）の全ての排他的論理和でデータ（ＸＸＳＸＴＣ０１Ｋ）を生成すると共に、このデータ（ＸＸＳＸＴＣ０１Ｋ）を前記スクランブル手段で攪拌してデータ（ＳＸＸＳＸＴＣ０１Ｋ）を生成し、
前記データ（ＳＸＫＣｎ）と前記データ（ＳＴ）の全ての排他的論理和でデータ（ＸＸＳＸＫＣ２３Ｔ）を生成すると共に、このデータ（ＸＸＳＸＫＣ２３Ｔ）を前記非線形変換手段（１２２）にて非線形変換してデータ（ＮＸＸＳＸＫＣ２３Ｔ）を生成し、
これらのデータ（ＳＸＸＳＸＴＣ０１Ｋ）およびデータ（ＮＸＸＳＸＫＣ２３Ｔ）を用いて前記暗号用乱数（ＲＮＤ）を生成することを特徴とする請求項１１または請求項１２の何れかに記載の暗号／復号器。
【請求項１４】
さらに、前記制御データに基づいてデータの攪拌を行うスクランブル手段（２５）を有し、
前記データ（ＳＸＸＳＸＴＣ０１Ｋ）と前記データ（ＮＸＸＳＸＫＣ２３Ｔ）の排他的論理和でデータ（ＸＮＸＸＳＸＴＫＣ０１２３ＫＴ）を生成し、
このデータ（ＸＮＸＸＳＸＴＫＣ０１２３ＫＴ）を前記スクランブル手段（２５）で攪拌して前記暗号用乱数（ＲＮＤ）を生成することを特徴とする請求項１１から請求項１３までの何れかに記載の暗号／復号器。
【請求項１５】
前記複数のスクランブル手段（１７〜２５）が、データの置換、或いはデータの反転、或いはデータの鏡像置換であり、これらを単独、或いは混合して用いることを特徴とする請求項７から請求項１４までの何れかに記載の暗号／復号器。
【請求項１６】
請求項１から請求項６までの何れかに記載の制御データ生成部（２）を備えたことを特徴とする請求項７から請求項１５までの何れかに記載の暗号／復号器。
【請求項１７】
共通鍵（ＫＥＹ）とブロックデータのカウントデータ（ＣＮＴ）と単数もしくは複数の乱数（ＣＤｎ）を用いて暗号用乱数（ＲＮＤ）を生成する暗号用乱数生成部（１）と、
前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いてブロックデータ（ＢＳ）を暗号化し、暗号化ブロックデータ（ＢＣＳ）を生成すると共に、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いて暗号化されたブロックデータ（ＲＢＣＳ）を復号化し、復号化ブロックデータ（ＲＢＳ）を生成する暗号化／復号化処理部（３）と、
前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記乱数（ＣＤｎ）を用いて前記暗号用乱数生成部（１）および前記暗号化／復号化処理部（３）で使用する各種制御データを生成する制御データ生成部（２）とで構成される暗号／復号器であって、
前記暗号化／復号化処理部（３）は、制御データに基づいてデータの攪拌を行うスクランブル手段（１１）を有し、
前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）の排他的論理和でデータ（ＸＣＫ）を生成し、
当該データ（ＸＣＫ）を前記スクランブル手段（１１）で攪拌してデータ（ＳＣＫ）生成し、
当該データ（ＳＣＫ）を用いて前記暗号化ブロックデータ（ＢＣＳ）および前記復号化ブロックデータ（ＲＢＳ）を生成することを特徴とする暗号／復号器。
【請求項１８】
さらに、前記暗号化／復号化処理部（３）は、前記制御データに基づいてデータの攪拌を行うスクランブル手段（１２）と前記制御データに基づいて前記スクランブル手段（１２）と全く逆のデータの攪拌を行う逆スクランブル手段（４２）を有し、
前記ブロックデータ（ＢＳ）を前記スクランブル（１２）で攪拌して暗号用のデータ（ＳＢＳ）を生成すると共に、復号用のデータ（ＳＢＳ）を前記逆スクランブル手段（４２）で逆攪拌して復号化ブロックデータ（ＲＢＳ）を生成することを特徴とする請求項１７に記載の暗号／復号器。
【請求項１９】
さらに、前記暗号化／復号化処理部（３）は、前記制御データに基づいてデータの攪拌を行うスクランブル手段（１３）と前記制御データに基づいて前記スクランブル手段（１３）と全く逆のデータの攪拌を行う逆スクランブル手段（４３）を有し、
前記データ（ＳＣＫ）と前記暗号用のデータ（ＳＢＳ）の排他的論理和でデータ（ＸＳＢＣＫ）を生成し、当該データ（ＸＳＢＣＫ）を前記スクランブル手段（１３）で攪拌して暗号用のデータ（ＳＸＳＢＣＫ）を生成すると共に、復号用のデータ（ＳＸＳＢＣＫ）を逆スクランブル（４３）で逆攪拌してデータ（ＸＳＢＣＫ）を生成し、
このデータ（ＸＳＢＣＫ）と前記データ（ＳＣＫ）の排他的論理和で前記復号用のデータ（ＳＢＳ）を生成することを特徴とする請求項１７または請求項１８の何れかに記載の暗号／復号器。
【請求項２０】
さらに、前記暗号化／復号化処理部（３）は、前記制御データに基づいてデータの攪拌を行う単数もしくは複数のスクランブル手段（１４〜１６）と前記制御データに基づいて前記スクランブル手段（１４〜１６）に対応して全く逆のデータの攪拌を行う単数もしくは複数の逆スクランブル手段（４４〜４６）を有し、
前記暗号用のデータ（ＳＸＳＢＣＫ）と前記暗号用乱数（ＲＮＤ）の排他的論理和でデータ（ＸＳＸＳＢＣＫＲ）を生成し、このデータ（ＸＳＸＳＢＣＫＲ）を前記単数もしくは複数のスクランブル手段（１４〜１６）で攪拌して前記暗号化ブロックデータ（ＢＣＳ）を生成すると共に、暗号化されたブロックデータ（ＲＢＣＳ）を前記単数もしくは複数の逆スクランブル手段（４６〜４４）で逆攪拌してデータ（ＸＳＸＳＢＣＫＲ）を生成し、
このデータ（ＸＳＸＳＢＣＫＲ）と前記暗号用乱数（ＲＮＤ）の排他的論理和で前記復号用のデータ（ＳＸＳＢＣＫ）を生成することを特徴とする請求項１７から請求項１９までの何れかに記載の暗号／復号器。
【請求項２１】
さらに、前記暗号化／復号化処理部（３）は、前記制御データに基づいてデータの攪拌を行うスクランブル手段（１３）と前記制御データに基づいて前記スクランブル手段（１３）と全く逆のデータの攪拌を行う逆スクランブル手段（４３）とデータの非線形変換を行う非線形変換手段（１２０）とこの非線形変換手段（１２０）と全く逆のデータの非線形変換を行う逆非線形変換手段（１３０）を有し、
前記暗号用のデータ（ＳＢＳ）を前記非線形変換手段（１２０）にて非線形変換してデータ（ＮＳＢＳ）を生成し、このデータ（ＮＳＢＳ）と前記データ（ＳＣＫ）の排他的論理和でデータ（ＸＮＳＢＣＫ）を生成し、このデータ（ＸＮＳＢＣＫ）を前記スクランブル手段（１３）で攪拌して暗号用のデータ（ＳＸＮＳＢＣＫ）を生成すると共に、復号用のデータ（ＳＸＮＳＢＣＫ）を逆スクランブル（４３）で逆攪拌してデータ（ＸＮＳＢＣＫ）を生成し、
このデータ（ＸＮＳＢＣＫ）と前記データ（ＳＣＫ）の排他的論理和でデータ（ＮＳＢＳ）を生成し、このデータ（ＮＳＢＳ）を前記逆非線形変換手段（１３０）にて非線形変換して前記復号用のデータ（ＳＢＳ）を生成することを特徴とする請求項１７または請求項１８の何れかに記載の暗号／復号器。
【請求項２２】
さらに、前記暗号化／復号化処理部（３）は、前記制御データに基づいてデータの攪拌を行う単数もしくは複数のスクランブル手段（１４〜１６）と前記制御データに基づいて前記スクランブル手段（１４〜１６）に対応して全く逆のデータの攪拌を行う単数もしくは複数の逆スクランブル手段（４４〜４６）とデータの非線形変換を行う非線形変換手段（１２１）とこの非線形変換手段（１２１）と全く逆のデータの非線形変換を行う逆非線形変換手段（１３１）を有し、
前記暗号用のデータ（ＳＸＮＳＢＣＫ）と前記制御データ（ＣＴＬ）の排他的論理和でデータ（ＸＳＸＮＳＢＣＫＮＴＫ）を生成し、このデータ（ＸＳＸＮＳＢＣＫＮＴＫ）を前記非線形変換手段（１２１）にて非線形変換してデータ（ＮＸＳＸＮＳＢＣＫＮＴＫ）を生成し、このデータ（ＮＸＳＸＮＳＢＣＫＮＴＫ）と前記暗号用乱数（ＲＮＤ）の排他的論理和でデータ（ＸＮＸＳＸＮＳＢＣＫＮＴＫＲ）を生成し、このデータ（ＸＮＸＳＸＮＳＢＣＫＮＴＫＲ）を前記単数もしくは複数のスクランブル手段（１４〜１６）で攪拌して前記暗号化ブロックデータ（ＢＣＳ）を生成すると共に、暗号化されたブロックデータ（ＲＢＣＳ）を前記単数もしくは複数の逆スクランブル手段（４６〜４４）で逆攪拌してデータ（ＸＮＸＳＸＮＳＢＣＫＮＴＫＲ）を生成し、
このデータ（ＸＮＸＳＸＮＳＢＣＫＮＴＫＲ）と前記暗号用乱数（ＲＮＤ）の排他的論理和で得たデータ（ＮＸＳＸＮＳＢＣＫＮＴＫ）を前記逆非線形変換手段（１３１）にて逆非線形変換してデータ（ＸＳＸＮＳＢＣＫＮＴＫ）を生成し、このデータ（ＸＳＸＮＳＢＣＫＮＴＫ）と前記制御データ（ＣＴＬ）の排他的論理和で前記復号用のデータ（ＳＸＮＳＢＣＫ）を生成することを特徴とする請求項１７または請求項１８または請求項２１の何れかに記載の暗号／復号器。
【請求項２３】
前記スクランブル手段（１１〜１６）が、データの置換、或いはデータの反転、或いはデータの鏡像置換であり、且つ、前記逆スクランブル手段（４２〜４６）が、前記スクランブル手段（１２〜１６）に対応したデータの逆置換、或いはデータの逆反転、或いはデータの逆鏡像置換であり、これらを単独、或いは混合して用いることを特徴とする請求項１７から請求項２２までの何れかに記載の暗号／復号器。
【請求項２４】
請求項１から請求項６までの何れかに記載の制御データ生成部（２）および／または請求項７から請求項１６までの何れかに記載の暗号用乱数生成部（１）を備えたことを特徴とする請求項１７から請求項２３までの何れかに記載の暗号／復号器。
【請求項２５】
前記乱数（ＣＤｎ）として自然乱数を用いることを特徴とする請求項１から請求項２４までの何れかに記載の暗号／復号器。
【請求項２６】
請求項１から請求項２５までの何れかに記載の暗号／複号器（８１）と、
入力データバス（ＤＢ＿ＩＮ）より、ブロックデータ（ＢＳ）および暗号化されたブロックデータ（ＲＢＣＳ）および共通鍵（ＫＥＹ）および単数もしくは複数の乱数（ＣＤｎ）の各種データを保持し、前記暗号／復号器（８１）に出力する複数のレジスター（８８）と、
前記各レジスター（８８）へのデータ書き込みを制御するデコーダー（８２）を備え、
ブロックデータ（ＢＳ）の暗号化と暗号化されたブロックデータ（ＲＢＣＳ）の復号化を行う暗号化／復号化装置。
【請求項２７】
さらに、書込信号（ＷＲ）で前記暗号／復号器（８１）の暗号化出力（ＢＣＳ）を保持するレジスター（８５）と復号化出力（ＲＢＳ）を保持するレジスター（８４）と、
これらの保持データの何れかを選択して出力データバス（ＤＢ＿ＯＵＴ）に出力するセレクター（８６）を備える請求項２６に記載の暗号化／復号化装置。
【請求項２８】
さらに、前記ブロックデータ（ＢＳ）もしくは暗号化されたブロックデータ（ＲＢＣＳ）を任意のブロック単位でカウントして前記暗号／復号器（８１）に出力するカウンター（８７）を備える請求項２６または請求項２７の何れかに記載の暗号化／復号化装置。
【請求項２９】
前記カウンター（８７）は、任意の時間に、且つ任意の値に初期設定可能とする請求項２８に記載の暗号化／復号化装置。
【請求項３０】
請求項１から請求項２５までの何れかに記載の暗号／復号器（９１）と、
ブロックデータ（ＢＳ）および暗号化されたブロックデータ（ＲＢＣＳ）を保持する第１１レジスター（９３）と、
共通鍵（ＫＥＹ）および単数もしくは複数の乱数（ＣＤｎ）の各種データを暗号化動作および復号化動作に応じてそれぞれ別々に保持する暗号化用／復号化用の複数の対レジスター（９４ａ／９４ｂ〜９８ａ／９８ｂ）と、
前記ブロックデータ（ＢＳ）を任意のブロック単位でカウントする第１１カウンター（９９ａ）および暗号化されたブロックデータ（ＲＢＣＳ）を任意のブロック単位でカウントする第１２カウンター（９９ｂ）と、
暗号化動作および復号化動作に応じて前記各対レジスター（９４ａ／９４ｂ〜９８ａ／９８ｂ）へのデータ書き込みと前記第１１、第１２カウンター（９９ａ、９９ｂ）のカウント動作を制御するデコーダー（９２）と、
前記複数の対レジスター（９４ａ／９４ｂ〜９８ａ／９８ｂ）と前記第１、第２カウンター（９９ａ、９９ｂ）に保持された各種データを暗号化動作、或いは復号化動作に応じて選択して、前記暗号／復号器（９１）に出力する複数のセレクター（１１１〜１１６）を備え、
且つ、暗号化動作時には、復号化の条件設定を可能とし、また、復号化動作時には、暗号化の条件設定を可能として、ブロックデータ（ＢＳ）の暗号化と暗号化されたブロックデータ（ＲＢＣＳ）の復号化、および暗号化と復号化の時分割処理を行う暗号化／復号化装置。
【請求項３１】
暗号化動作時に、前記第１１レジスター（９３）にブロックデータ（ＢＳ）が保持されると共に、前記各レジスター（９４ａ〜９８ａ）と前記第１１カウンター（９９ａ）への復号化の条件設定が成され、復号化動作時に、前記第１１レジスター（９３）に暗号化されたブロックデータ（ＢＣＳ）が保持されると共に、前記各レジスター（９４ｂ〜９８ｂ）と前記第１２カウンター（９９ｂ）への復号化の条件設定が成される請求項３０に記載の暗号化／復号化装置。
【請求項３２】
前記第１１、第１２カウンター（９９ａ、９９ｂ）は、任意の時間に、且つ任意の値に初期設定可能とする請求項３０または請求項３１の何れかに記載の暗号化／復号化装置。
【請求項３３】
暗号化動作時には、受信したブロックデータ（ＢＳ）とこのブロックデータ（ＢＳ）の暗号化データ（ＢＣＳ）をさらに暗号／復号器（９１）で復号化した復号化データ（ＲＢＳ）とを比較して暗号化、復号化の検証を行うと共に、復号化動作時には、受信した暗号化データ（ＲＢＣＳ）とこの暗号化データ（ＲＢＣＳ）の復号化データ（ＲＢＳ）をさらに暗号／復号器（９１）で暗号化した暗号化データ（ＢＣＳ）とを比較し、暗号化、復号化の検証を行う第２比較器（１０６）を備える請求項３０から請求項３２までの何れかに記載の暗号化／復号化装置。
【請求項３４】
さらに、乱数発生器（１０４）と、
当該乱数発生器（１０４）からの乱数（ＲＯＤ）、または、受信したブロックデータ（ＢＳ）および暗号化されたブロックデータ（ＲＢＣＳ）の何れかを選択し、暗号化・復号化データとして前記第１１レジスター（９３）に出力する第１１セレクター（１０７）と、
前記乱数（ＲＯＤ）、または、前記暗号／復号器（９１）からの暗号化データ（ＢＣＳ）或いは復号化データ（ＲＢＳ）、または外部データ（ＤＡ＿ＢＵＳ）の何れかを選択し、条件設定データとして前記複数の対レジスター（９４ａ／９４ｂ〜９８ａ／９８ｂ）と第１１、第１２カウンター（９９ａ、９９ｂ）に出力する第１２セレクター（１０８）を備える請求項３０から請求項３３までの何れかに記載の暗号化／復号化装置。
【請求項３５】
さらに、前記暗号／復号器（９１）からの暗号化データ（ＢＣＳ）或いは復号化データ（ＲＢＳ）の同期化を行い、暗号化、または復号化出力データ（ＢＳＤ）として送出する第２２レジスター（１００）を備える請求項３０から請求項３４までの何れかに記載の暗号化／復号化装置。
【請求項３６】
暗号化時にクリアーされる第２３レジスター（１０１）を備え、
暗号化動作時には、前記暗号／復号器（９１）からの暗号化データ（ＢＣＳ）と前記第２３レジスター（１０１）の出力（ＸＢＳＤ＿０）の排他的論理和を暗号化毎に当該第２３レジスター（１０１）に逐次積算し、暗号化終了時の積算データを通信エラーの検証用に暗号化出力データ（ＢＳＤ）の最後尾に添付すると共に、
復号化時にクリアーされる第２４レジスター（１０２）と第１比較器（１０５）を備え、
復号動作時には、受信データと前記第２４レジスター（１０２）の出力（ＸＲＳＤ）の排他的論理和を復号化毎に当該第２４レジスター（１０２）に復号化終了まで逐次積算し、この積算データと受信データの最後尾の検証用データを前記第１比較器（１０５）で比較して通信エラーの検証を行う請求項３０から請求項３５までの何れかに記載の暗号化／復号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、販売・サービス、ネットワークセキュリティ、電子決済、金融取引、電子商取引・金融ビジネス等、幅広い情報通信技術の分野に応用して好適な暗号化および復号化技術に関し、特に安全性（セキュリティー）の向上と処理（暗号化／復号化処理）の高速化を図った暗号／復号器に関するものである。
【０００２】
【従来の技術】
近年のデジタル通信技術の発達により情報通信ネットワークの拡大化が進み、誰でも気軽に参加できるインターネットの利用が急増してきている。
最近ではインターネットに企業等のネットワークを接続して行う、ショッピング、電子決裁、秘密投票、秘密入札、署名、証明書の発行等の様々な電子サービスが提供されており、その便利性は飛躍的に向上したが、反面、重要な企業情報等がインターネットを経由して盗聴等の外部攻撃を受けや易い状態となってきている。
【０００３】
特に、電子マネーや電子商取引のように、ネットワーク上で多額の金銭を電子的に扱うサービス等にあっては、従来にも増してネットワークのセキュリティ（盗聴行為などからのプライバシーの保護、正当性の保証）対策が要求されるようになった。この様な状況から、秘密通信、認証を実現するための欠くことのできないキー・テクノロジーとして暗号化技術が注目され、現在では様々な暗号方式を用いたシステム（暗号プロトコル）が提案されている。
そして、上記暗号方式の代表的なものとして、共通鍵暗号を用いたＤＥＳや公開鍵暗号を用いたＲＳＡ等が知られており、特に、共通鍵暗号は処理速度が公開鍵暗号に比べて２桁以上速いという特徴を持つことから、通信データの暗号化に広く採用されている。
【０００４】
現在公開されている暗号化アルゴリズムの多くは、上記したＤＥＳの暗号化処理と似た構造を有しており、入力データ（平文）にビット単位の並び替えを施した後、データ列の右半分と左半分の入れ替えとデータを攪拌するＦ関数による変換（データのスクランブル）を繰り返すというものが一般的である。繰り返しで使う鍵データは入力した鍵データから生成するもので、例えば、ＤＥＳの場合では、鍵データの長さ（鍵長）は５６ビットとされている。例えば、上記したようなデータ変換のためのビットシフト技術や鍵データとの融合技術等は特許文献１〜３に開示されている。
【０００５】
【特許文献１】
特開２００１−４２７６６号公報
【特許文献２】
特開平１１−１０９８５３号公報
【特許文献３】
特開平１１−０５２８５０号公報
【０００６】
【発明が解決しようとする課題】
ところで、暗号方式の評価基準は、その解読法に対する安全性（解読の困難さ）と暗号化の処理速度にあると言われており、一般的に安全性を高めようとする程、処理速度は遅くなる傾向にある。
【０００７】
例えば、上記したＤＥＳの場合では、公知の線形解読法や差分解読法等の特別な解読法を用いずに鍵の候補を総当たりで調べる（ＤＥＳの場合、鍵の候補は全部で２５６となる。）ことで解読でき、安全性は暗号解読に必要な情報量と計算量のかね合いとなる。しかも、近年のコンピュータ技術の発達で処理能力は著しく向上し、これにより複雑な鍵を用いても比較的短い時間で解読可能となった。
【０００８】
安全性向上のために鍵のビット構成を長くすると暗号化に要する時間（処理時間）は長くなり、暗号処理時間が長ければその分通信回線の占有時間が増大する。従来では、暗号化のための演算速度を速くするため、専用の高速ＬＳＩを使用したり汎用高速プロセッサを用いたりしていたが、専用の高速ＬＳＩや高速プロセッサは高価であり経済的でない。しかも、データの攪拌操作にプロセッサを介在させると、同じものの繰り返しの無いランダムな鍵データを生成することはなかなか容易なことではない。
【０００９】
本発明は、このような暗号化の問題に鑑みて成されたもので、安全性の向上と処理の高速化を図った暗号／復号器およびこれを用いた暗号化／復号化装置を提供することを目的としている。
【００１０】
【課題を解決するための手段】
すなわち、請求項１に記載の本発明は、共通鍵（ＫＥＹ）とブロックデータのカウントデータ（ＣＮＴ）と単数もしくは複数の乱数（ＣＤｎ）を用いて暗号用乱数（ＲＮＤ）を生成する暗号用乱数生成部（１）と、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いてブロックデータ（ＢＳ）を暗号化し、暗号化ブロックデータ（ＢＣＳ）を生成すると共に、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いて暗号化されたブロックデータ（ＲＢＣＳ）を復号化し、復号化ブロックデータ（ＲＢＳ）を生成する暗号化／復号化処理部（３）と、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記乱数（ＣＤｎ）を用いて前記暗号用乱数生成部（１）および前記暗号化／復号化処理部（３）で使用する各種制御データを生成する制御データ生成部（２）とで構成される暗号／復号器であって、前記制御データ生成部（２）は、補助制御データに基づいてデータの攪拌を行う複数のスクランブル手段（２６〜３１）を有し、前記乱数（ＣＤｎ）の任意の２組の排他的論理和でデータ（ＸＣｎ）を生成し、当該データ（ＸＣｎ）の内の幾つかと前記カウントデータ（ＣＮＴ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りのデータ（ＸＣｎ）と前記共通鍵（ＫＥＹ）の論理和でデータ（ＸＫＣｎ）を生成し、これらデータ（ＸＴＣｎ）とデータ（ＸＫｎ）の全ての排他的論理和で複数の前記補助制御データを生成し、前記カウントデータ（ＣＮＴ）および前記共通鍵（ＫＥＹ）および前記データ（ＸＴＣｎ）および前記データ（ＸＫＣｎ）の各々データを、これら補助制御データ基づき、前記スクランブル手段で攪拌して各々データ（ＳＴｃ）およびデータ（ＳＫｃ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を生成し、これらデータ（ＳＴｃ）およびデータ（ＳＫｃ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を用いて前記各種制御データ（ＭＣｎ、ＭＫ０、ＭＳｎ）を生成する。
ここで、上記各データ名に付した符号ｎは複数を意味し、例えば、ｎ＝０、１、２、３・・・である。以下の記載についても同様とする。
【００１１】
また、請求項２に記載の本発明は、請求項１に記載の暗号／復号器において、前記乱数（ＣＤｎ）の任意の２組の排他的論理和でデータ（ＸＣｎ）を生成するにあたり、前記各乱数（ＣＤｎ）にオフセット値を付加（乱数を任意ビット数シフト）する。
【００１２】
また、請求項３に記載の本発明は、請求項１または請求項２の何れかに記載の暗号／復号器において、前記データ（ＸＣｎ）の内の幾つかと前記カウントデータ（ＣＮＴ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りのデータ（ＸＣｎ）と前記共通鍵（ＫＥＹ）の排他的論理和でデータ（ＸＫＣｎ）を生成するにあたり、前記カウントデータ（ＣＮＴ）および／または前記共通鍵（ＫＥＹ）にオフセット値を付加する。
【００１３】
また、請求項４に記載の本発明は、請求項１から請求項３までの何れかに記載の暗号／復号器において、さらに前記制御データ生成部（２）は、前記補助制御データに基づいてデータの攪拌を行う複数のスクランブル手段（３２〜３５）を有し、前記データ（ＳＸＫＣｎ）と前記データ（ＳＴｃ）の全ての排他的論理和でデータ（ＸＳＸＫＣ２３３０Ｔ）を生成すると共に、前記データ（ＳＸＴＣｎ）と前記データ（ＳＫｃ）の全ての排他的論理和でデータ（ＸＳＸＴＣ０１１２Ｋ）を生成し、前記データ（ＸＳＸＫＣ２３３０Ｔ）および前記データ（ＸＳＸＴＣ０１１２Ｋ）を各々前記複数のスクランブル手段で攪拌して各々データ（ＳＳＸＳＸＫＣ２３３０Ｔ）およびデータ（ＳＳＸＳＸＴＣ０１１２Ｋ）を生成し、これらデータ（ＳＳＸＳＸＫＣ２３３０Ｔ）およびデータ（ＳＳＸＳＸＴＣ０１１２Ｋ）より前記各種制御データ（ＭＣｎ、ＭＫ０、ＭＳｎ）を生成する。
【００１４】
また、請求項５に記載の本発明は、請求項１から請求項３までの何れかに記載の暗号／復号器において、さらに、前記制御データ生成部（２）は、前記補助制御データに基づいてデータの攪拌を行う複数のスクランブル手段（３３〜３５）およびデータの非線形変換を行う非線形変換手段（１２３）を有し、前記データ（ＳＸＫＣｎ）と前記データ（ＳＴｃ）の全ての排他的論理和でデータ（ＸＳＸＫＣ２３３０Ｔ）を生成すると共に、前記データ（ＳＸＴＣｎ）と前記データ（ＳＫｃ）の全ての排他的論理和でデータ（ＸＳＸＴＣ０１１２Ｋ）を生成し、前記データ（ＸＳＸＫＣ２３３０Ｔ）を前記非線形変換手段（１２３）にて非線形変換してデータ（ＮＸＳＸＫＣ２３３０Ｔ）を生成すると共に、このデータ（ＮＸＳＸＫＣ２３３０Ｔ）を前記スクランブル手段で攪拌してデータ（ＳＮＸＳＸＫＣ２３３０Ｔ）を生成し、前記データ（ＸＳＸＴＣ０１１２Ｋ）と前記データ（ＮＸＳＸＫＣ２３３０Ｔ）の排他的論理和でデータ（ＸＸＳＸＴＣ０１１２ＫＮＴ）を生成すると共に、このデータ（ＸＸＳＸＴＣ０１１２ＫＮＴ）を前記複数のスクランブル手段で攪拌してデータ（ＳＳＸＸＳＸＴＣ０１１２ＫＮＴ）を生成し、これらのデータ（ＳＮＸＳＸＫＣ２３３０Ｔ）およびデータ（ＳＳＸＸＳＸＴＣ０１１２ＫＮＴ）より前記各種制御データ（ＭＣｎ、ＭＫ０、ＭＳｎ、ＣＴＬ）を生成する。
【００１５】
また、請求項６に記載の本発明は、請求項１から請求項５までの何れかに記載の暗号／復号器において、前記複数のスクランブル手段（２６〜３５）が、データの置換、或いはデータの反転、或いはデータの鏡像置換であり、これらを単独、或いは混合して用いる。
【００１６】
また、請求項７に記載の本発明は、共通鍵（ＫＥＹ）とブロックデータのカウントデータ（ＣＮＴ）と単数もしくは複数の乱数（ＣＤｎ）を用いて暗号用乱数（ＲＮＤ）を生成する暗号用乱数生成部（１）と、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いてブロックデータ（ＢＳ）を暗号化し、暗号化ブロックデータ（ＢＣＳ）を生成すると共に、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いて暗号化されたブロックデータ（ＲＢＣＳ）を復号化し、復号化ブロックデータ（ＲＢＳ）を生成する暗号化／復号化処理部（３）と、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記乱数（ＣＤｎ）を用いて前記暗号用乱数生成部（１）および前記暗号化／復号化処理部（３）で使用する各種制御データを生成する制御データ生成部（２）とで構成される暗号／復号器であって、前記乱数生成部（１）は、制御データに基づいてデータの攪拌を行う複数のスクランブル手段（１７〜２２）を有し、前記乱数（ＣＤｎ）の内の幾つかと前記カウントデータ（ＣＮＴ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りの乱数（ＣＤｎ）と前記共通鍵（ＫＥＹ）の論理和でデータ（ＸＫＣｎ）を生成し、前記カウントデータ（ＣＮＴ）および前記共有鍵（ＫＥＹ）および前記データ（ＸＴＣｎ）および前記データ（ＸＫＣｎ）の各データを前記スクランブル手段で攪拌して各々データ（ＳＴ）およびデータ（ＳＫ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を生成し、これらデータ（ＳＴ）およびデータ（ＳＫ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を用いて前記暗号用乱数（ＲＮＤ）を生成する。
【００１７】
また、請求項８に記載の本発明は、請求項７に記載の暗号／復号器において、前記乱数（ＣＤｎ）の内の幾つかと前記カウントデータ（ＣＮＴ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に残りの乱数（ＣＤｎ）と前記共通鍵（ＫＥＹ）の論理和でデータ（ＸＫＣｎ）を生成するにあたり、前記カウントデータ（ＣＮＴ）および／または前記共通鍵（ＫＥＹ）にオフセット値を付加する。
【００１８】
また、請求項９に記載の本発明は、請求項７または請求項８の何れかに記載の暗号／復号器において、さらに、前記制御データに基づいてデータの攪拌を行うスクランブル手段（２３、２４）を有し、前記データ（ＳＸＴＣｎ）と前記データ（ＳＫ）の全ての排他的論理和でデータ（ＸＸＳＸＴＣ０１Ｋ）を生成すると共に、前記データ（ＳＸＫＣｎ）と前記データ（ＳＴ）の全ての排他的論理和でデータ（ＸＸＳＸＫＣ２３Ｔ）を生成し、前記データ（ＸＸＳＸＴＣ０１Ｋ）および前記データ（ＸＸＳＸＫＣ２３Ｔ）を各々前記スクランブル手段で攪拌して各々データ（ＳＸＸＳＸＴＣ０１Ｋ）およびデータ（ＳＸＸＳＸＫＣ２３Ｔ）を生成し、これらのデータ（ＳＸＸＳＸＴＣ０１Ｋ）およびデータ（ＳＸＸＳＸＫＣ２３Ｔ）を用いて前記暗号用乱数（ＲＮＤ）を生成する。
【００１９】
また、請求項１０に記載の本発明は、請求項７から請求項９までの何れかに記載の暗号／復号器において、さらに、前記制御データに基づいてデータの攪拌を行うスクランブル手段（２５）を有し、前記データ（ＳＸＸＳＸＴＣ０１Ｋ）と前記データ（ＳＸＸＳＸＫＣ２３Ｔ）の排他的論理和でデータ（ＸＳＸＸＳＸＴＫＣ０１２３ＫＴ）を生成し、このデータ（ＸＳＸＸＳＸＴＫＣ０１２３ＫＴ）を前記スクランブル手段（２５）で攪拌して前記暗号用乱数（ＲＮＤ）を生成する。
【００２０】
また、請求項１１に記載の本発明は、共通鍵（ＫＥＹ）と単数もしくは複数の乱数（ＣＤｎ）を用いて暗号用乱数（ＲＮＤ）を生成する暗号用乱数生成部（１）と、前記共通鍵（ＫＥＹ）とブロックデータのカウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いてブロックデータ（ＢＳ）を暗号化し、暗号化ブロックデータ（ＢＣＳ）を生成すると共に、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いて暗号化されたブロックデータ（ＲＢＣＳ）を復号化し、復号化ブロックデータ（ＲＢＳ）を生成する暗号化／復号化処理部（３）と、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記乱数（ＣＤｎ）を用いて前記暗号用乱数生成部（１）および前記暗号化／復号化処理部（３）で使用する各種制御データを生成する制御データ生成部（２）とで構成される暗号／復号器であって、前記乱数生成部（１）は、制御データに基づいてデータの攪拌を行う複数のスクランブル手段（１７〜２２）を有し、前記乱数（ＣＤｎ）の内の幾つかと前記制御データ（ＣＴＬ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りの乱数（ＣＤｎ）と前記共通鍵（ＫＥＹ）の論理和でデータ（ＸＫＣｎ）を生成し、前記制御データ（ＣＴＬ）および前記共有鍵（ＫＥＹ）および前記データ（ＸＴＣｎ）および前記データ（ＸＫＣｎ）の各データを前記スクランブル手段で攪拌して各々データ（ＳＴ）およびデータ（ＳＫ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を生成し、これらデータ（ＳＴ）およびデータ（ＳＫ）およびデータ（ＳＸＴＣｎ）およびデータ（ＳＸＫＣｎ）を用いて前記暗号用乱数（ＲＮＤ）を生成する。
【００２１】
また、請求項１２に記載の本発明は、請求項１１に記載の暗号／復号器において、前記乱数（ＣＤｎ）の内の幾つかと前記制御データ（ＣＴＬ）の排他的論理和でデータ（ＸＴＣｎ）を生成すると共に、残りの乱数（ＣＤｎ）と前記共通鍵（ＫＥＹ）の論理和でデータ（ＸＫＣｎ）を生成するにあたり、前記制御データ（ＣＴＬ）および／または前記共通鍵（ＫＥＹ）にオフセット値を付加した。
【００２２】
また、請求項１３に記載の本発明は、請求項１１または請求項１２の何れかに記載の暗号／復号器において、さらに、前記制御データに基づいてデータの攪拌を行うスクランブル手段（２３）およびデータの非線形変換を行う非線形変換手段（１２２）を有し、前記データ（ＳＸＴＣｎ）と前記データ（ＳＫ）の全ての排他的論理和でデータ（ＸＸＳＸＴＣ０１Ｋ）を生成すると共に、このデータ（ＸＸＳＸＴＣ０１Ｋ）を前記スクランブル手段で攪拌してデータ（ＳＸＸＳＸＴＣ０１Ｋ）を生成し、前記データ（ＳＸＫＣｎ）と前記データ（ＳＴ）の全ての排他的論理和でデータ（ＸＸＳＸＫＣ２３Ｔ）を生成すると共に、このデータ（ＸＸＳＸＫＣ２３Ｔ）を前記非線形変換手段（１２２）にて非線形変換してデータ（ＮＸＸＳＸＫＣ２３Ｔ）を生成し、これらのデータ（ＳＸＸＳＸＴＣ０１Ｋ）およびデータ（ＮＸＸＳＸＫＣ２３Ｔ）を用いて前記暗号用乱数（ＲＮＤ）を生成する。
【００２３】
また、請求項１４に記載の本発明は、請求項１１から請求項１３までの何れかに記載の暗号／復号器において、さらに、前記制御データに基づいてデータの攪拌を行うスクランブル手段（２５）を有し、前記データ（ＳＸＸＳＸＴＣ０１Ｋ）と前記データ（ＮＸＸＳＸＫＣ２３Ｔ）の排他的論理和でデータ（ＸＮＸＸＳＸＴＫＣ０１２３ＫＴ）を生成し、このデータ（ＸＮＸＸＳＸＴＫＣ０１２３ＫＴ）を前記スクランブル手段（２５）で攪拌して前記暗号用乱数（ＲＮＤ）を生成する。
【００２４】
また、請求項１５に記載の本発明は、請求項１７から請求項１４までの何れかに記載の暗号／復号器において、前記複数のスクランブル手段（１７〜２５）が、データの置換、或いはデータの反転、或いはデータの鏡像置換であり、これらを単独、或いは混合して用いる。
【００２５】
また、請求項１６に記載の本発明は、請求項７から請求項１５までの何れかに記載の暗号／復号器において、請求項１から請求項６までの何れかに記載の制御データ生成部（２）を備える。
【００２６】
また、請求項１７に記載の本発明は、共通鍵（ＫＥＹ）とブロックデータのカウントデータ（ＣＮＴ）と単数もしくは複数の乱数（ＣＤｎ）を用いて暗号用乱数（ＲＮＤ）を生成する暗号用乱数生成部（１）と、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いてブロックデータ（ＢＳ）を暗号化し、暗号化ブロックデータ（ＢＣＳ）を生成すると共に、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記暗号用乱数（ＲＮＤ）を用いて暗号化されたブロックデータ（ＲＢＣＳ）を復号化し、復号化ブロックデータ（ＲＢＳ）を生成する暗号化／復号化処理部（３）と、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）と前記乱数（ＣＤｎ）を用いて前記暗号用乱数生成部（１）および前記暗号化／復号化処理部（３）で使用する各種制御データを生成する制御データ生成部（２）とで構成される暗号／復号器であって、前記暗号化／復号化処理部（３）は、制御データに基づいてデータの攪拌を行うスクランブル手段（１１）を有し、前記共通鍵（ＫＥＹ）と前記カウントデータ（ＣＮＴ）の排他的論理和でデータ（ＸＣＫ）を生成し、当該データ（ＸＣＫ）を前記スクランブル手段（１１）で攪拌してデータ（ＳＣＫ）生成し、当該データ（ＳＣＫ）を用いて前記暗号化ブロックデータ（ＢＣＳ）および前記復号化ブロックデータ（ＲＢＳ）を生成する。
【００２７】
また、請求項１８に記載の本発明は、請求項１７に記載の暗号／復号器において、さらに、前記暗号化／復号化処理部（３）は、前記制御データに基づいてデータの攪拌を行うスクランブル手段（１２）と前記制御データに基づいて前記スクランブル手段（１２）と全く逆のデータの攪拌を行う逆スクランブル手段（４２）を有し、前記ブロックデータ（ＢＳ）を前記スクランブル（１２）で攪拌して暗号用のデータ（ＳＢＳ）を生成すると共に、復号用のデータ（ＳＢＳ）を前記逆スクランブル手段（４２）で逆攪拌して復号化ブロックデータ（ＲＢＳ）を生成する。
【００２８】
また、請求項１９に記載の本発明は、請求項１７または請求項１８の何れかに記載の暗号／復号器において、さらに、前記暗号化／復号化処理部（３）は、前記制御データに基づいてデータの攪拌を行うスクランブル手段（１３）と前記制御データに基づいて前記スクランブル手段（１３）と全く逆のデータの攪拌を行う逆スクランブル手段（４３）を有し、前記データ（ＳＣＫ）と前記暗号用のデータ（ＳＢＳ）の排他的論理和でデータ（ＸＳＢＣＫ）を生成し、当該データ（ＸＳＢＣＫ）を前記スクランブル手段（１３）で攪拌して暗号用のデータ（ＳＸＳＢＣＫ）を生成すると共に、復号用のデータ（ＳＸＳＢＣＫ）を逆スクランブル（４３）で逆攪拌してデータ（ＸＳＢＣＫ）を生成し、このデータ（ＸＳＢＣＫ）と前記データ（ＳＣＫ）の排他的論理和で前記復号用のデータ（ＳＢＳ）を生成する。
【００２９】
また、請求項２０に記載の本発明は、請求項１７から請求項１９までの何れかに記載の暗号／復号器において、さらに、前記暗号化／復号化処理部（３）は、前記制御データに基づいてデータの攪拌を行う単数もしくは複数のスクランブル手段（１４〜１６）と前記制御データに基づいて前記スクランブル手段（１４〜１６）に対応して全く逆のデータの攪拌を行う単数もしくは複数の逆スクランブル手段（４４〜４６）を有し、前記暗号用のデータ（ＳＸＳＢＣＫ）と前記暗号用乱数（ＲＮＤ）の排他的論理和でデータ（ＸＳＸＳＢＣＫＲ）を生成し、このデータ（ＸＳＸＳＢＣＫＲ）を前記単数もしくは複数のスクランブル手段（１４〜１６）で攪拌して前記暗号化ブロックデータ（ＢＣＳ）を生成すると共に、暗号化されたブロックデータ（ＲＢＣＳ）を前記単数もしくは複数の逆スクランブル手段（４６〜４４）で逆攪拌してデータ（ＸＳＸＳＢＣＫＲ）を生成し、このデータ（ＸＳＸＳＢＣＫＲ）と前記暗号用乱数（ＲＮＤ）の排他的論理和で前記復号用のデータ（ＳＸＳＢＣＫ）を生成する。
【００３０】
また、請求項２１に記載の本発明は、請求項１７または請求項１８の何れかに記載の暗号／復号器において、さらに、前記暗号化／復号化処理部（３）は、前記制御データに基づいてデータの攪拌を行うスクランブル手段（１３）と前記制御データに基づいて前記スクランブル手段（１３）と全く逆のデータの攪拌を行う逆スクランブル手段（４３）とデータの非線形変換を行う非線形変換手段（１２０）とこの非線形変換手段（１２０）と全く逆のデータの非線形変換を行う逆非線形変換手段（１３０）を有し、前記暗号用のデータ（ＳＢＳ）を前記非線形変換手段（１２０）にて非線形変換してデータ（ＮＳＢＳ）を生成し、このデータ（ＮＳＢＳ）と前記データ（ＳＣＫ）の排他的論理和でデータ（ＸＮＳＢＣＫ）を生成し、このデータ（ＸＮＳＢＣＫ）を前記スクランブル手段（１３）で攪拌して暗号用のデータ（ＳＸＮＳＢＣＫ）を生成すると共に、復号用のデータ（ＳＸＮＳＢＣＫ）を逆スクランブル（４３）で逆攪拌してデータ（ＸＮＳＢＣＫ）を生成し、このデータ（ＸＮＳＢＣＫ）と前記データ（ＳＣＫ）の排他的論理和でデータ（ＮＳＢＳ）を生成し、このデータ（ＮＳＢＳ）を前記逆非線形変換手段（１３０）で非線形変換して前記復号用のデータ（ＳＢＳ）を生成する。
【００３１】
また、請求項２２に記載の本発明は、請求項１７または請求項１８または請求項２１の何れかに記載の暗号／復号器において、さらに、前記暗号化／復号化処理部（３）は、前記制御データに基づいてデータの攪拌を行う単数もしくは複数のスクランブル手段（１４〜１６）と前記制御データに基づいて前記スクランブル手段（１４〜１６）に対応して全く逆のデータの攪拌を行う単数もしくは複数の逆スクランブル手段（４４〜４６）とデータの非線形変換を行う非線形変換手段（１２１）とこの非線形変換手段（１２１）と全く逆のデータの非線形変換を行う逆非線形変換手段（１３１）を有し、前記暗号用のデータ（ＳＸＮＳＢＣＫ）と前記制御データ（ＣＴＬ）の排他的論理和でデータ（ＸＳＸＮＳＢＣＫＮＴＫ）を生成し、このデータ（ＸＳＸＮＳＢＣＫＮＴＫ）を前記非線形変換手段（１２１）にて非線形変換してデータ（ＮＸＳＸＮＳＢＣＫＮＴＫ）を生成し、このデータ（ＮＸＳＸＮＳＢＣＫＮＴＫ）と前記暗号用乱数（ＲＮＤ）の排他的論理和でデータ（ＸＮＸＳＸＮＳＢＣＫＮＴＫＲ）を生成し、このデータ（ＸＮＸＳＸＮＳＢＣＫＮＴＫＲ）を前記単数もしくは複数のスクランブル手段（１４〜１６）で攪拌して前記暗号化ブロックデータ（ＢＣＳ）を生成すると共に、暗号化されたブロックデータ（ＲＢＣＳ）を前記単数もしくは複数の逆スクランブル手段（４６〜４４）で逆攪拌してデータ（ＸＮＸＳＸＮＳＢＣＫＮＴＫＲ）を生成し、このデータ（ＸＮＸＳＸＮＳＢＣＫＮＴＫＲ）と前記暗号用乱数（ＲＮＤ）の排他的論理和で得たデータ（ＮＸＳＸＮＳＢＣＫＮＴＫ）を前記逆非線形変換手段（１３１）にて逆非線形変換してデータ（ＸＳＸＮＳＢＣＫＮＴＫ）を生成し、このデータ（ＸＳＸＮＳＢＣＫＮＴＫ）と前記制御データ（ＣＴＬ）の排他的論理和で前記復号用のデータ（ＳＸＮＳＢＣＫ）を生成する。
【００３２】
また、請求項２３に記載の本発明は、請求項１７から請求項２２までの何れかに記載の暗号／復号器において、前記スクランブル手段（１１〜１６）が、データの置換、或いはデータの反転、或いはデータの鏡像置換であり、且つ、前記逆スクランブル手段（４２〜４６）が、前記スクランブル手段（１２〜１６）に対応したデータの逆置換、或いはデータの逆反転、或いはデータの逆鏡像置換であり、これらを単独、或いは混合して用いる。
【００３３】
また、請求項２４に記載の本発明は、請求項１７から請求項２３までの何れかに記載の暗号／復号器において、請求項１から請求項６までの何れかに記載の制御データ生成部（２）および／または請求項７から請求項１６までの何れかに記載の暗号用乱数生成部（１）を備える。
【００３４】
また、請求項２５に記載の本発明は、請求項１から請求項２４までの何れかに記載の暗号／復号器において、前記乱数（ＣＤｎ）として自然乱数を用いる。
【００３５】
また、請求項２６に記載の暗号化／復号化装置は、請求項１から請求項２５までの何れかに記載の暗号／複号器（８１）と、入力データバス（ＤＢ＿ＩＮ）より、ブロックデータ（ＢＳ）および暗号化されたブロックデータ（ＲＢＣＳ）および共通鍵（ＫＥＹ）および単数もしくは複数の乱数（ＣＤｎ）の各種データを保持し、前記暗号／復号器（８１）に出力する複数のレジスター（８８）と、前記各レジスター（８８）へのデータ書き込みを制御するデコーダー（８２）を備え、ブロックデータ（ＢＳ）の暗号化と暗号化されたブロックデータ（ＲＢＣＳ）の復号化を行う。
【００３６】
また、請求項２７に記載の本発明は、請求項２６に記載の暗号化／復号化装置において、さらに、書込信号（ＷＲ）で前記暗号／復号器（８１）の暗号化出力（ＢＣＳ）を保持するレジスター（８５）と復号化出力（ＲＢＳ）を保持するレジスター（８４）と、これらの保持データの何れかを選択して出力データバス（ＤＢ＿ＯＵＴ）に出力するセレクター（８６）を備える。
【００３７】
また、請求項２８に記載の本発明は、請求項２６または請求項２７の何れかに記載の暗号化／復号化装置において、さらに、前記ブロックデータ（ＢＳ）もしくは暗号化されたブロックデータ（ＲＢＣＳ）を任意のブロック単位でカウントして前記暗号／復号器（８１）に出力するカウンター（８７）を備える。
【００３８】
また、請求項２９に記載の本発明は、請求項２８に記載の暗号化／復号化装置において、前記カウンター（８７）は、任意の時間に、且つ任意の値に初期設定可能とする。
【００３９】
また、請求項３０に記載の発明は、請求項１から請求項２５の何れかに記載の暗号／複号器（９１）と、ブロックデータ（ＢＳ）および暗号化されたブロックデータ（ＲＢＣＳ）を保持する第１１レジスター（９３）と、共通鍵（ＫＥＹ）および単数もしくは複数の乱数（ＣＤｎ）の各種データを暗号化動作および復号化動作に応じてそれぞれ別々に保持する暗号化用／復号化用の複数の対レジスター（９４ａ／９４ｂ〜９８ａ／９８ｂ）と、前記ブロックデータ（ＢＳ）を任意のブロック単位でカウントする第１１カウンター（９９ａ）および暗号化されたブロックデータ（ＲＢＣＳ）を任意のブロック単位でカウントする第１２カウンター（９９ｂ）と、暗号化動作および復号化動作に応じて前記各対レジスター（９４ａ／９４ｂ〜９８ａ／９８ｂ）へのデータ書き込みと前記第１１、第１２カウンター（９９ａ、９９ｂ）のカウント動作を制御するデコーダー（９２）と、前記複数の対レジスター（９４ａ／９４ｂ〜９８ａ／９８ｂ）と前記第１、第２カウンター（９９ａ、９９ｂ）に保持された各種データを暗号化動作、或いは復号化動作に応じて選択して、前記暗号／復号器（９１）に出力する複数のセレクター（１１１〜１１６）を備え、且つ、暗号化動作時には、復号化の条件設定を可能とし、また、復号化動作時には、暗号化の条件設定を可能として、ブロックデータ（ＢＳ）の暗号化と暗号化されたブロックデータ（ＲＢＣＳ）の復号化、および暗号化と復号化の時分割処理を行う。
【００４０】
また、請求項３１に記載の発明は、請求項３０に記載の暗号化／復号化装置において、暗号化動作時に、前記第１１レジスター（９３）にブロックデータ（ＢＳ）が保持されると共に、前記各レジスター（９４ａ〜９８ａ）と前記第１１カウンター（９９ａ）への復号化の条件設定が成され、復号化動作時に、前記第１１レジスター（９３）に暗号化されたブロックデータ（ＢＣＳ）が保持されると共に、前記各レジスター（９４ｂ〜９８ｂ）と前記第１２カウンター（９９ｂ）への復号化の条件設定が成されるよう構成される。
【００４１】
また、請求項３２に記載の発明は、請求項３０または請求項３１の何れかに記載の暗号化／復号化装置において、前記第１１、第１２カウンター（９９ａ、９９ｂ）は、任意の時間に、且つ任意の値に初期設定可能とする。
【００４２】
また、請求項３３に記載の発明は、請求項３０から請求項３２までの何れかに記載の暗号化／復号化装置において、暗号化動作時には、受信したブロックデータ（ＢＳ）とこのブロックデータ（ＢＳ）の暗号化データ（ＢＣＳ）をさらに暗号／復号器（９１）で復号化した復号化データ（ＲＢＳ）とを比較して暗号化、復号化の検証を行うと共に、復号化動作時には、受信した暗号化データ（ＲＢＣＳ）とこの暗号化データ（ＲＢＣＳ）の復号化データ（ＲＢＳ）をさらに暗号／復号器（９１）で暗号化した暗号化データ（ＢＣＳ）とを比較し、暗号化、復号化の検証を行う第２比較器（１０６）を備える。
【００４３】
また、請求項３４に記載の発明は、請求項３０から請求項３３までの何れかに記載の暗号化／復号化装置において、さらに、乱数発生器（１０４）と、当該乱数発生器（１０４）からの乱数（ＲＯＤ）、または、受信したブロックデータ（ＢＳ）および暗号化されたブロックデータ（ＲＢＣＳ）の何れかを選択し、暗号化・復号化データとして前記第１１レジスター（９３）に出力する第１１セレクター（１０７）と、前記乱数（ＲＯＤ）、または、前記暗号／復号器（９１）からの暗号化データ（ＢＣＳ）或いは復号化データ（ＲＢＳ）、または外部データ（ＤＡ＿ＢＵＳ）の何れかを選択し、条件設定データとして前記複数の対レジスター（９４ａ／９４ｂ〜９８ａ／９８ｂ）と第１１、第１２カウンター（９９ａ、９９ｂ）に出力する第１２セレクター（１０８）を備える。
【００４４】
また、請求項３５に記載の発明は、請求項３０から請求項３４までの何れかに記載の暗号化／復号化装置において、さらに、前記暗号／復号器（９１）からの暗号化データ（ＢＣＳ）或いは復号化データ（ＲＢＳ）の同期化を行い、暗号化、または復号化出力データ（ＢＳＤ）として送出する第２２レジスター（１００）を備える。
【００４５】
また、請求項３６に記載の発明は、請求項３０から請求項３５までの何れかに記載の暗号化／復号化装置において、暗号化時にクリアーされる第２３レジスター（１０１）を備え、暗号化動作時には、前記暗号／復号器（９１）からの暗号化データ（ＢＣＳ）と前記第２３レジスター（１０１）の出力（ＸＢＳＤ＿０）の排他的論理和を暗号化毎に当該第２３レジスター（１０１）に逐次積算し、暗号化終了時の積算データを通信エラーの検証用に暗号化出力データ（ＢＳＤ）の最後尾に添付すると共に、復号化時にクリアーされる第２４レジスター（１０２）と第１比較器（１０５）を備え、復号動作時には、受信データと前記第２４レジスター（１０２）の出力（ＸＲＳＤ）の排他的論理和を復号化毎に当該第２４レジスター（１０２）に復号化終了まで逐次積算し、この積算データと受信データの最後尾の検証用データを前記第１比較器（１０５）で比較して通信エラーの検証を行う。
【００４６】
【発明の実施の形態】
以下、図面に基づいて本発明の実施形態を説明する。
【００４７】
図１は本実施形態による暗号／復号器の基本構成を示している。
図１に示すように、本実施形態の暗号／復号器は、共通鍵を用いて受信したブロックデータ（源ブロックデータ）を暗号化し、暗号化されたブロックデータを受信して復号化する装置である。
【００４８】
そして、この暗号／復号器は、固定または必要に応じて変更可能な複数ビット（本実施形態では６４ビット構成）の乱数ＣＤ０〜ＣＤ３と所定ビットで構成される共通鍵ＫＥＹと上記ブロックデータＢＳ或いは前記暗号化ブロックデータＲＢＣＳのカウントデータＣＮＴ（受信ブロック数）に基づいて予測および計算不可能な暗号用乱数ＲＮＤを生成する暗号用乱数生成部１と、この暗号用乱数ＲＮＤと共通鍵ＫＥＹとカウントデータＣＮＴに基づいて源ブロックデータＢＳを暗号化し、予測および計算不可能な暗号化ブロックデータＢＣＳを生成すると共に、暗号用乱数ＲＮＤと共通鍵ＫＥＹとカウントデータＣＮＴに基づいて暗号化されたブロックデータＲＢＣＳを復号化し、ブロックデータＲＢＳを生成する暗号化／復号化処理部３（ここでは、暗号／復号器で生成された暗号化ブロックデータをＢＣＳとし、通信系を介して暗号／復号器で受信した暗号化データをＲＢＣＳとしている）と、乱数ＣＤ０〜ＣＤ３と共通鍵ＫＥＹとカウントデータＣＮＴに基づいて暗号用乱数生成部１と暗号化／復号化処理部３で使用する各種制御データを生成する制御データ生成部２とで概略構成されている。
また、後述するが、暗号用乱数生成部１では前記カウントデータＣＮＴを用いない場合もある。また、暗号化／復号化処理３において、復号化処理は暗号化処理と全く反対の処理が行われる。
【００４９】
ここで、前記乱数データとして、ダイオード等のホワイトノイズ、放射線等、自然現象によるランダムパルスを利用して生成した自然乱数（真性乱数）を用いることができる。自然乱数を用いることにより、乱数出現の規則性、前後の相関性、周期性等を有しない意外性のある暗号用乱数を得ることができ、暗号化・復号化の安全性は飛躍的に向上する。
【００５０】
以下、図２〜図１６に基づいて、上記した暗号／復号器の各部の詳細を説明する。
【００５１】
先ず、図２に基づき、暗号化／復号化処理部３の実施形態を説明する。
図２に示すように、本実施形態の暗号化／復号化処理部３は、複数のスクランブル１１〜１６を備えた暗号化処理部３ａと、複数の逆スクランブル４２〜４６を備えた復号化処理部３ｂとを備え、外部データとして暗号処理部３ａにカウントデータＣＮＴ、共通鍵ＫＥＹ、ブロックデータＢＳが入力され、復号処理部３ｂに暗号化されたブロックデータＲＢＣＳが入力されている。また、内部データとして、後述する制御データ生成部２からの各種制御データＭＫ０、ＭＳ１〜ＭＳ４と暗号用乱数生成部１からの暗号用乱数ＲＮＤが入力されている。
【００５２】
ここで、スクランブルとは、データライン上の任意のデータを前記制御データに基づいてビット単位の置換（図１１）、反転（図１３）、鏡像置換（図１５）を行って原データと異なるデータに変換する処理を言い、また、逆スクランブルとは、前記スクランブルと全く逆の置換（図１２）、逆反転（図１４）、逆鏡像置換（図１６）を行ない、原データを再生するデータ処理のことを言い、これらを単独、或いは混合して用いることができる。
尚、本実施形態では、前記スクランブル１１〜１４をデータの置換とし、前記スクランブル１５をデータの反転とし、前記スクランブル１６をデータの鏡像置換とした。また前記逆スクランブル４２〜４６は、前記スクランブル１２〜１６に対応したそれぞれデータの逆置換、データの逆反転、データの逆鏡像置換とした。
【００５３】
上記構成の内、暗号化処理部３ａでは、共通鍵ＫＥＹとカウントデータＣＮＴの排他的論理和（ＸＯＲ）によりデータＸＣＫを生成する。尚、このデータＸＣＫはブロックデータを受信する毎に変化するから、生成する暗号化データＢＣＳの安全性向上に大いに貢献できる。データＸＣＫは制御データＭＫ０に基づきスクランブル１１で攪拌（スクランブル）してデータＳＣＫを生成する。
また、ブロックデータＢＳを制御データＭＳ０に基づきスクランブル１２でスクランブルしてデータＳＢＳを生成し、このデータＳＢＳと前記データＳＣＫの排他的論理和でデータＸＳＢＣＫを生成し、このデータＸＳＢＣＫを制御データＭＳ１に基づきスクランブル１３でスクランブルしてデータＳＸＳＢＣＫを生成する。
このデータＳＸＳＢＣＫと暗号用乱数ＲＮＤの排他的論理和でデータＸＳＸＳＢＣＫＲを生成し、以降、スクランブル１４と制御データＭＳ２でデータＳＸＳＸＳＢＣＫＲを、またスクランブル１５と制御データＭＳ３でデータＳＳＸＳＸＳＢＣＫＲを、またスクランブル１６と制御データＭＳ４でデータＳＳＳＸＳＸＳＢＣＫＲを生成するといった一連のスクランブル処理を逐次行って、最終的に得られたこのデータＳＳＳＸＳＸＳＢＣＫＲを暗号化されたブロックデータＢＣＳとして出力する。
【００５４】
一方、復号化処理部３ｂでは、暗号化されたブロックデータＲＢＣＳ（前記データＳＳＳＸＳＸＳＢＣＫＲに相当する）を制御データＭＳ４に基づき逆スクランブル４６で逆攪拌（逆スクランブル）してデータＳＳＸＳＸＳＢＣＫＲを生成し、同様に、逆スクランブル４５と制御データＭＳ３でデータＳＸＳＸＳＢＣＫＲを、逆スクランブル４４と制御データＭＳ２でデータＸＳＸＳＢＣＫＲを生成する。
このデータＸＳＸＳＢＣＫＲと暗号用乱数ＲＮＤの排他的論理和でデータＳＸＳＢＣＫを生成し、更にデータＳＸＳＢＣＫを制御データＭＳ１に基づき逆スクランブル４３で逆スクランブルしてＸＳＢＣＫを生成し、データＸＳＢＣＫと前記データＳＣＫの排他的論理和でデータＳＢＳを生成し、データＳＢＳを制御データＭＳ０に基づき逆スクランブル４２で逆スクランブルしてデータＢＳを生成しこのデータＢＳを復号化されたデータＲＢＳとして出力する。
【００５５】
本構成では、入力となる共通鍵ＫＥＹ、カウントデータＣＮＴ、暗号用乱数ＲＮＤ、各種制御データＭＫ０、ＭＳ１〜ＭＳ４等の意外性（予測、計算不可）により暗号化、復号化に係わる安全性は十分確保されるものである。
【００５６】
次に、図３、図４に基づいて暗号化／復号化処理部３の別の実施形態を説明する。
図３に示す暗号化／復号化処理部３は、スクランブル１１〜１６と非線形変換１２０、１２１、１２４を備えた暗号化処理部３ａと、逆スクランブル４２〜４６と逆非線形変換１３０、１３１を備えた復号化処理部３ｂとを備え、外部データとして暗号処理部３ａにカウントデータＣＮＴ、共通鍵ＫＥＹ、ブロックデータＢＳが入力され、復号処理部３ｂに暗号化されたブロックデータＲＢＣＳが入力されている。また、内部データとして、後述する制御データ生成部２からの各種制御データＭＫ０、ＭＳ１〜ＭＳ４、ＣＴＬと暗号用乱数生成部１からの暗号用乱数ＲＮＤが入力されている。
【００５７】
尚、本実施形態では、前記スクランブル１１〜１４をデータの置換とし、前記スクランブル１５をデータの反転とし、前記スクランブル１６をデータの鏡像置換とした。また前記逆スクランブル４２〜４６は、前記スクランブル１２〜１６に対応したそれぞれデータの逆置換、データの逆反転、データの逆鏡像置換とした。
【００５８】
上記構成の内、暗号化処理部３ａでは、共通鍵ＫＥＹとカウントデータＣＮＴの排他的論理和によりデータＸＣＫを生成し、このデータＸＣＫを制御データＭＫ０に基づきスクランブル１１でスクランブルしてデータＳＣＫを生成する。
また、ブロックデータＢＳを制御データＭＳ０に基づきスクランブル１２でスクランブルしてデータＳＢＳを生成し、このデータＳＢＳを非線形変換１２０で非線形変換してデータＮＳＢＳを生成し、このデータＮＳＢＳと前記データＳＣＫの排他的論理和でデータＸＮＳＢＣＫを生成し、このデータＸＮＳＢＣＫを制御データＭＳ１に基づきスクランブル１３でスクランブルしてデータＳＸＮＳＢＣＫを生成する。
また、前記データＳＣＫと制御データＣＴＬの排他的論理和でデータＸＴＫを生成し、このデータＸＴＫを非線形変換１２４で非線形変換してデータＮＴＫを生成し、このデータＮＴＫと前記データＳＸＮＳＢＣＫの排他的論理和でデータＸＳＸＮＳＢＣＫＮＴＫを生成し、データＸＳＸＮＳＢＣＫＮＴＫを非線形変換１２１で非線形変換してデータＮＸＳＸＮＳＢＣＫＮＴＫを生成する。
このデータＮＸＳＸＮＳＢＣＫＮＴＫと暗号用乱数ＲＮＤの排他的論理和でデータＸＮＸＳＸＮＳＢＣＫＮＴＫＲを生成し、以降、スクランブル１４と制御データＭＳ２でデータＳＸＮＸＳＸＮＳＢＣＫＮＴＫＲを、またスクランブル１５と制御データＭＳ３でデータＳＳＸＮＸＳＸＮＳＢＣＫＮＴＫＲを、またスクランブル１６と制御データＭＳ４でデータＳＳＳＸＮＸＳＸＮＳＢＣＫＮＴＫＲを生成するといった一連のスクランブル処理を逐次行って、最終的に得られたこのデータＳＳＳＸＮＸＳＸＮＳＢＣＫＮＴＫＲを暗号化されたブロックデータＢＣＳとして出力する。
【００５９】
一方、復号化処理部３ｂでは、暗号化されたブロックデータＲＢＣＳ（前記データＳＳＳＸＮＸＳＸＮＳＢＣＫＮＴＫＲに相当する）を制御データＭＳ４に基づき逆スクランブル４６で逆スクランブルしてＳＳＸＮＸＳＸＮＳＢＣＫＮＴＫＲを生成し、同様に、逆スクランブル４５と制御データＭＳ３でデータＳＸＮＸＳＸＮＳＢＣＫＮＴＫＲを、逆スクランブル４４と制御データＭＳ２でデータＸＮＸＳＸＮＳＢＣＫＮＴＫＲを生成する。
このデータＸＮＸＳＸＮＳＢＣＫＮＴＫＲと暗号用乱数ＲＮＤの排他的論理和でデータＮＸＳＸＮＳＢＣＫＮＴＫを生成し、データＮＸＳＸＮＳＢＣＫＮＴＫを逆非線形変換１３１で非線形変換してデータＸＳＸＮＳＢＣＫＮＴＫを生成し、データＸＳＸＮＳＢＣＫＮＴＫと前記データＮＴＫの排他的論理和でデータＳＸＮＳＢＣＫを生成し、更にデータＳＸＮＳＢＣＫを制御データＭＳ１に基づき逆スクランブル４３で逆スクランブルしてＸＮＳＢＣＫを生成し、データＸＮＳＢＣＫと前記データＳＣＫの排他的論理和でデータＮＳＢＳを生成し、データＮＳＢＳを逆非線形変換１３０で逆非線形変換してデータＳＢＳを生成し、データＳＢＳを制御データＭＳ０に基づき逆スクランブル４２で逆スクランブルしてデータＢＳを生成しこのデータＢＳを復号化されたデータＲＢＳとして出力する。
【００６０】
ここで、非線形変換とは、例えば、表１に示す８ビットの非線形変換テーブルを用いたデータ列の変換手段であり、入力データｘｙ（ｘ、ｙは４ビットの１６進表示（ｈ）とする）について、この表１に基づいて８ビット毎の非線形変換を行い、結果として８ビットを出力する。本実施形態では、表１に示した非線形変換テーブル、或いはこれと同様の構成を有し、異なった変換を行う非線形変換テーブルを８個用いて６４ビットのデータを非線形変換する。
また、逆非線形変換とは、表２に示す逆非線形変換テーブルを用い、上記非線形変換と全く逆の非線形変換を行う非線形変換手段である。この場合も、表２に示した逆非線形変換テーブル、或いはこれと同様の構成を有し、非線形変換テーブルと逆変換の関係にある別の逆非線形変換テーブルを８個用いて６４ビットのデータを逆非線形変換する。
例えば、入力データをｘ＝０、ｙ＝７（１６進表示で０７ｈ）とすると、非線形変換出力は表１より５Ｄｈとなり、このデータ５Ｄｈを逆変換すると、表２においてｘ＝５、ｙ＝Ｄとなり、逆非線形変換出力として０７ｈが得られる。同様に、入力データ８Ｃｈを非線形変換すると表１より９Ｃｈとなり、これを逆非線形変換すると表２より８Ｃｈが得られる。
尚、非線形変換用の変換テーブル（表１）は何等規則性を持たない全くランダムなデータの羅列で編成されており、これに基づいて表２が作成される。
【００６１】
このような非線形変換を行うことで、暗号化関数を非線形なものとし、従来公知の攻撃方法である差分解読法に対する強度（安全性）を高め、暗号文および平文からの鍵データの予測を困難なものとすることができる。
【００６２】
また、図４は図３の暗号化／復号化処理部３において、データＮＴＫの生成処理、即ち、制御信号ＣＴＬ以下の排他的論理和と非線形変換１２４を削除し、回路規模を縮小した実施形態である。このように、回路規模を極力縮小することにより、暗号／復号器を構成するゲート数（ＡＮＤ、ＯＲ等の基本ロジック数）を減らし、チップ面積が制限されるモジュールへの組み込み（チップ化）を容易にしている。但し、制御信号ＣＴＬ自体が後述する制御データ生成部２において非線形変換を用いて生成されたものであるから、暗号の安全性は維持されている。
【００６３】
【表１】
2004117429.tif 000003
【００６４】
【表２】
2004117429.tif 000004
【００６５】
次に、図５に基づき、暗号用乱数生成部１の実施形態を説明する。
【００６６】
図５に示すように、本実施形態の暗号用乱数生成部１は、複数のスクランブル１７〜２５を備え、外部データとしてカウントデータＣＮＴおよび乱数ＣＤ０〜ＣＤ３が入力されていると共に、内部データとして前記スクランブル１７〜２５のスクランブル動作を制御する制御データＭＣ０〜ＭＣ８が入力されている。
ここで、前記スクランブル１７〜２５としては、前記同様にビット単位の置換、反転、鏡像置換を含み、本実施形態では、前記スクランブル１７〜２２をデータの置換とし、前記スクランブル２３、２４をデータの反転とし、前記スクランブル２５をデータの鏡像置換とした。
【００６７】
上記構成では、カウントデータＣＮＴを制御データＭＣ０に基づきスクランブル１７でスクランブルしてデータＳＴを生成し、共通鍵ＫＥＹを制御データＭＣ１に基づきスクランブル１８でスクランブルしてデータＳＫを生成する。
また、カウントデータＣＮＴと乱数ＣＤ０の排他的論理和でデータＸＴＣ０を生成し、カウントデータＣＮＴと乱数ＣＤ１の排他的論理和でデータＸＴＣ１を生成し（本実施形態では、この時、６４ビット構成のカウントデータＣＮＴに３２ビットのオフセットを持たせ、３２〜６３、００〜３１のビット構成とした）、共通鍵ＫＥＹと乱数ＣＤ２の排他的論理和でデータＸＴＣ２を生成し、共通鍵ＫＥＹと乱数ＣＤ３の排他的論理和でデータＸＴＣ３を生成し（本実施形態では、この時、６４ビット構成の共通鍵ＫＥＹに３２ビットのオフセットを持たせ、３２〜６３、００〜３１のビット構成とした）する。
次に、前記データＸＴＣ０、データＸＴＣ１、データＸＫＣ２、データＸＫＣ３を各々スクランブル１９と制御データＭＣ２で、スクランブル２０と制御データＭＣ３で、スクランブル２１と制御データＭＣ４で、スクランブル２２と制御データＭＣ５でスクランブルし、データＳＸＴＣ０、データＳＸＴＣ１、データＳＸＫＣ２、データＳＸＫＣ３を生成すると共に、データＳＸＴＣ０とデータＳＸＴＣ１の排他的論理和でデータＸＳＸＴＣ０１を生成し、データＳＸＫＣ２とデータＳＸＫＣ３の排他的論理和でデータＸＳＸＫＣ２３を生成する。
次に、データＳＫとデータＸＳＸＴＣ０１の排他的論理和でデータＸＸＳＸＴＣ０１Ｋを生成し、このデータＸＸＳＸＴＣ０１Ｋを制御データＭＣ６に基づいてスクランブル２３でスクランブルしてデータＳＸＸＳＸＴＣ０１Ｋを生成すると共に、データＳＴとデータＸＳＸＫＣ２３の排他的論理和でデータＸＸＳＸＫＣ２３Ｔを生成し、このデータＸＸＳＸＫＣ２３Ｔを制御データＭＣ７に基づいてスクランブル２４でスクランブルしてデータＳＸＸＳＸＫＣ２３Ｔを生成し、これらデータＳＸＸＳＸＴＣ０１ＫとＳＸＸＳＸＫＣ２３Ｔの排他的論理和でデータＸＳＸＸＳＸＴＫＣ０１２３ＫＴを生成し、このデータＸＳＸＸＳＸＴＫＣ０１２３ＫＴを制御データＭＣ８に基づきスクランブル２５でスクランブルしてデータＳＸＳＸＸＳＸＴＫＣ０１２３ＫＴを生成し、暗号用乱数ＲＮＤとする。
【００６８】
本構成では、乱数ＣＤ０〜ＣＤ３が予測および計算不可能なデータ列であるから、これを基に得られる暗号用乱数も十分な意外性（予測、計算不可）を有することは勿論である。
【００６９】
次に、図６、図７に基づき上記した暗号用乱数生成部１の別の実施形態を説明する。
図６に示す暗号用乱数生成部１は、カウントデータＣＮＴに換えて制御データＣＴＬを用いた点、および、スクランブル２４に換えて非線形変換１２２を用いた点以外は図５と同様の構成である。本実施形態では、データＸＸＳＸＫＣ２３Ｔを非線形変換１２２で非線形変換してデータＮＸＸＳＸＫＣ２３Ｔを生成し、これとデータＳＸＸＳＸＴＣ０１Ｋの排他的論理和出力データＸＮＸＸＳＸＴＫＣ０１２３ＫＴをスクランブル２５でスクランブルして得た最終的なデータＳＸＮＸＸＳＸＴＫＣ０１２３ＫＴを暗号用乱数ＲＮＤとしたものである。
【００７０】
本構成は、各種スクランブルと排他的論理和の組み合わせて構成した図５の暗号用乱数生成部１で生成される暗号用乱数ＲＮＤのデータ偏りの可能性を更に無くすように改善したものである。非線形変換を用いることにより暗号用乱数ＲＮＤに偏りが無くなり、データを統計的に予測することが極めて困難になるため、暗号の安全性が更に高められることになる。
【００７１】
図７は図６におけるスクランブル２５を削除して回路規模を縮小した実施形態である。本構成の場合も勿論、暗号の安全性は維持されている。
【００７２】
次に、図８に基づき、制御データ生成部２の実施形態を説明する。
【００７３】
図８に示すように、本実施形態の制御データ生成部２は、各種の補助データに基づいてスクランブル動作が制御される複数のスクランブル２６〜３５を備え、外部データとしてカウントデータＣＮＴ、共通鍵ＫＹＥ、乱数ＣＤ０〜ＣＤ３が入力されている。
ここで、前記スクランブル２６〜３５として、前記同様にビット単位の置換、反転、鏡像置換を含み、本実施形態では、前記スクランブル２６〜３１をデータの置換とし、前記スクランブル３２、３４をデータの反転とし、前記スクランブル３３、３５をデータの鏡像置換とした。
【００７４】
上記構成では、乱数ＣＤ０と乱数ＣＤ１の排他的論理和でデータＸＣ０１を生成し（本実施形態では、この時、６４ビット構成の乱数ＣＤ１に１３ビットのオフセットを持たせ、１３〜６３、００〜１２のビット構成とした）、乱数ＣＤ１と乱数ＣＤ２の排他的論理和でデータＸＣ１２を生成し（本実施形態では、この時、６４ビット構成のＣＤ２に２６ビットのオフセットを持たせ、２６〜６３、００〜２５のビット構成とした）、乱数ＣＤ２と乱数ＣＤ３の排他的論理和でデータＸＣ２３を生成し（本実施形態では、この時、６４ビット構成のＣＤ３に３９ビットのオフセットを持たせ、３９〜６３、００〜３８のビット構成とした）、乱数ＣＤ３と乱数ＣＤ０の排他的論理和でデータＸＣ３０を生成した（本実施形態では、この時、６４ビット構成のＣＤ１に５２ビットのオフセットを持たせ、５２〜６３、００〜５１のビット構成とした）。
次に、カウントデータＣＮＴとデータＸＣ０１の排他的論理和でデータＸＴＣ０１を生成し、カウントデータＣＮＴとデータＸＣ１２の排他的論理和でデータＸＴＣ１２を生成し（本実施形態では、この時、６４ビット構成のカウントデータＣＮＴに３２ビットのオフセットを持たせ、３２〜６３、００〜３１のビット構成とした）、共通鍵ＫＥＹとデータＸＣ２３の排他的論理和でデータＸＫＣ２３を生成し、共通鍵ＫＥＹとデータＸＣ３０の排他的論理和でデータＸＫＣ３０を生成（本実施形態では、この時、６４ビット構成の共通鍵ＫＥＹに３２ビットのオフセットを持たせ、３２〜６３、００〜３１のビット構成とした）し、これらデータＸＴＣ０１、ＸＴＣ１２、ＸＫＣ２３、ＸＫＣ３０の全ての排他的論理和でデータＸＴＫＣ０１２３ＴＫＣ１２３０を生成し、この６４ビット構成のデータＸＴＫＣ０１２３ＴＫＣ１２３０を各々所定のビット数に分割して各種の補助制御データＭＡ０〜ＭＡ７を生成する。
また、カウントデータＣＮＴを補助制御データＭＡ０に基づきスクランブル２６でスクランブルしてデータＳＴｃを生成し、共通鍵ＫＥＹを補助制御データＭＡ１に基づきスクランブル２７でスクランブルしてデータＳＫｃを生成し、データＸＴＣ０１を補助制御データＭＡ２に基づきスクランブル２８でスクランブルしてデータＳＸＴＣ０１を生成し、データＸＴＣ１２を補助制御データＭＡ３に基づきスクランブル２９でスクランブルしてデータＳＸＴＣ１２を生成し、データＸＫＣ２３を補助制御データＭＡ４に基づきスクランブル３０でスクランブルしてデータＳＸＫＣ２３を生成し、データＸＫＣ３０を補助制御データＭＡ５に基づきスクランブル３１でスクランブルしてデータＳＸＫＣ３０を生成する。
次に、データＳＸＴＣ０１とデータＳＸＴＣ１２の排他的論理和でデータＸＳＸＴＣ０１１２を生成し、このデータＸＳＸＴＣ０１１２とデータＳＫｃの排他的論理和でデータＸＳＸＴＣ０１１２Ｋを生成すると共に、データＳＸＫＣ２３とデータＳＸＫＣ３０の排他的論理和でデータＸＳＸＫＣ２３３０を生成し、このデータＸＳＸＫＣ２３３０とデータＳＴｃの排他的論理和でデータＸＳＸＫＣ２３３０Ｔを生成する。このデータＸＳＸＫＣ２３３０Ｔを補助制御データＭＡ６、ＭＡ７に基づきスクランブル３２とスクランブル３３で順次スクランブルしてデータＳＳＸＳＸＫＣ２３３０Ｔを生成し、制御データに使用すると共に、６４ビット構成のこのデータＳＳＸＳＸＫＣ２３３０Ｔの任意の数ビットを利用して補助データＭＢ０、ＭＢ１を生成する。
また、前記データＸＳＸＴＣ０１１２Ｋを上記した補助制御データＭＢ０、ＭＢ１に基づきスクランブル３４とスクランブル３５で順次スクランブルてデータＳＳＸＳＸＴＣ０１１２Ｋを生成し、このデータＳＳＸＳＸＴＣ０１１２Ｋと前記データＳＳＸＳＸＫＣ２３３０Ｔを用いて、既述した暗号化／復号化処理部３および暗号用乱数生成部１で使用する各々所定ビット構成の各種制御データＭＣ０〜ＭＣ８、ＭＫ０、ＭＳ０〜ＭＳ４を生成する。
【００７５】
本構成もまた、入力となる共通鍵ＫＹＥ、カウントデータＣＮＴ、乱数ＣＤ０〜ＣＤ３等の意外性（予測、計算不可）を有するデータ列であるから、これらを基に得られる各種制御データも十分な意外性（予測、計算不可）を有するものである。尚、オフセット値は上記値に限定されず、任意に設定可能である。
【００７６】
次に、図９、図１０に基づき上記した制御データ生成部２の別の実施形態を説明する。
図９に示す制御データ生成部２は、スクランブル３２の前段に非線形処理１２３を設けた点、およびスクランブル３３を削除した点以外は図８と同様の構成を有する。従って、データＸＳＸＴＣ０１１２Ｋ、およびデータＸＳＸＫＣ２３３０Ｔの生成過程は図８と同様であるため説明を省略し、以下、それ以降の動作のみを説明する。
即ち、データＸＳＸＫＣ２３３０Ｔを非線形変換１２３で非線形変換してデータＮＸＳＸＫＣ２３３０Ｔを生成し、このデータＮＸＳＸＫＣ２３３０Ｔを補助制御データＭＡ６に基づきスクランブル３２でスクランブルしてデータＳＮＸＳＸＫＣ２３３０Ｔを生成し、制御データに使用すると共に、その内の任意の数ビットを利用して補助データＭＢ０、ＭＢ１を生成する。
また、前記データＸＳＸＴＣ０１１２Ｋと前記データＮＸＳＸＫＣ２３３０Ｔの排他的論理和でデータＸＸＳＸＴＣ０１１２ＫＮＴを生成し、このデータＸＸＳＸＴＣ０１１２ＫＮＴを上記した補助制御データＭＢ０、ＭＢ１に基づきスクランブル３４とスクランブル３５で順次スクランブルてデータＳＳＸＸＳＸＴＣ０１１２ＫＮＴを生成し、このデータＳＳＸＸＳＸＴＣ０１１２ＫＮＴと前記データＳＮＸＳＸＫＣ２３３０Ｔを用いて、既述した暗号化／復号化処理部３および暗号用乱数生成部１で使用する各々所定ビット構成の各種制御データＭＣ０〜ＭＣ８、ＭＫ０、ＭＳ０〜ＭＳ４、ＣＴＬを生成する。
【００７７】
本構成では、各種スクランブルと排他的論理和の組み合わせて構成した図８の制御データ生成部２で生成される各種制御データＭＣ０〜ＭＣ８、ＭＫ０、ＭＳ０〜ＭＳ４、ＣＴＬのデータ偏りの可能性を更に無くすように改善したものである。非線形変換を用いることにより、上記制御データに偏りが無くなり、データを統計的に予測することが極めて困難になるため、暗号の安全性が更に高められることになる。
【００７８】
図１０は図９におけるスクランブル３５を削除し、回路規模を縮小した実施形態である。本構成の場合も勿論、暗号の安全性は維持されている。
【００７９】
次に、図１１〜図１６に基づき、暗号用乱数生成部１および制御データ生成部２および暗号化／復号化処理部３で用いたスクランブル手段、或いは逆スクランブル手段としてのデータの置換と逆置換、データの反転と逆反転、データの鏡像置換と逆鏡像置換の実施形態を説明する。
【００８０】
図１１、図１２は、データの置換操作によるスクランブルを示し、既述したように本実施形態では、図１１はスクランブル１１〜１４、１７〜２２、２６〜３１に適用され、図１２は逆スクランブル４２〜４４に適用されている。
【００８１】
先ず、図１１に示すスクランブルは、入力データＤＥｍの置換を行う複数の置換テーブル６１ａ１〜６１ａｍとインバータをはさんで各々に対応して設けた複数の非置換テーブル６１ｂ１〜６１ｂｍで構成される置換器６１を有する。制御データＳＥ０（ＳＥ０＿１〜ＳＥ０＿ｍ）の極性（”０”／”１”）により指定された置換テーブルとこれに対応する非置換テーブルのどちらか一方が有効となる。置換するビット単位は、例えば、１ビット毎、２ビット毎、４ビット毎、８ビット毎、１６ビット毎、３２ビット毎・・・といったように構成することができ、前記制御データＳＥ０＿１〜ＳＥ０＿ｍにより復号化（暗号化）のビット数に応じて任意のデータ置換テーブルが選択され、これに基づいて置換されたスクランブルデータＤＥ０を生成する。
【００８２】
例えば、上記構成で、制御データＳＥ０＿１がアクティブ（”１”）になると置換テーブル６１ａ１により、入力データＤＥｍは１ビット毎に置換される。
即ち、データＤＥｍのビット列００、０１、０２、０３、０４、０５、０６、０７、０８、０９、１０、１１・・・がビット列０１、００、０３、０２、０５、０４、０７・・・に変換される。
【００８３】
また、制御データＳＥ０＿２がアクティブの場合は、置換テーブル６１ａ２により、入力データＤＥｍは２ビット毎に置換され、ビット列０２、０３、００、０１、０６、０７、０４、０５・・・に変換される。
【００８４】
また、制御データＳＥ０＿１とＳＥ０＿２がアクティブの場合は、置換テーブル６１ａ２により、入力データＤＥｍは２ビット毎の置換の後、置換テーブル６１ａ１により１ビット毎の置換が成され、ビット列０３、０２、０１、００、０７、０６、０５、０４、１１、１０、０９・・・に変換される。
【００８５】
このようにして、入力データＤＥｍが６４ビット構成のデータの場合では、ｍ＝６で６４通りの組合せでデータ変換ができる。
【００８６】
次に、図１２に示すスクランブルは、入力データＤＲ０の置換を行う複数の置換テーブル６２ａ１〜６２ａｍとインバータをはさんで各々に対応して設けた複数の非置換テーブル６２ｂ１〜６２ｂｍで構成される置換器６２を有する。制御データＳＲ０（ＳＲ０＿１〜ＳＲ０＿ｍ）の極性により、置換テーブルとこれに対応する非置換テーブルのどちらかが指定される。置換するビット単位は、例えば、１ビット毎、２ビット毎、４ビット毎、８ビット毎、３２ビット毎・・・といったように構成することができ、前記制御データＳＲ０＿１〜ＳＲ０＿ｍにより復号化（暗号化）のビット数に応じて任意のデータテーブルが選択され、これに基づいて置換されたスクランブルデータＤＲｍを生成する。
【００８７】
構成は、前記置換器６１と同じであるが、既述したように、本実施例を逆スクランブル４２〜４４として位置づけるために、各々置換テーブルおよび非置換テーブルの並びを前記置換器６１と全く逆にしてある。但し、置換テーブル６１と置換テーブル６２では、同じビット毎のデータ置換が成されるように各制御データＳＥ０とＳＲ０が設定される必要がある。
【００８８】
図１３および図１４は、データの反転操作によるスクランブルを示し、既述したように本実施形態では、図１３はスクランブル１５、２３、２４、３２、３４に適用され、図１４は逆スクランブル４５に適用されている。
【００８９】
図１３に示すスクランブルは、複数のＸＯＲゲート（排他的論理和ゲート）により構成される複数の反転回路ブロック７１＿１〜７１＿ｍを構えた反転器７１を有する。
各々反転回路ブロックの各ＸＯＲゲート入力の一方に制御データＳＩ０（ＳＩ０ａ＿１、ＳＩ０ｂ＿１〜ＳＩ０ａ＿ｍ、ＳＩ０ｂ＿ｍ）を入力し、各制御データの極性（”０”／”１”）により、入力データＤＩｍの反転、非反転を制御する。反転するビット単位が、例えば、１ビット毎、２ビット毎、４ビット毎、８ビット毎、３２ビット毎・・・となるように各反転回路ブロックが構成されており、前記制御データＳＩ０ａ＿１、ＳＩ０ｂ＿１〜ＳＩ０ａ＿ｍ、ＳＩ０ｂ＿ｍにより暗号化（復号化）のビット数に応じて任意の反転回路ブロックが選択され、これに基づいて反転されたスクランブルデータＤＩ０を生成する。
【００９０】
例えば、上記構成で、制御データＳＩ０ａ＿１もしくはＳＩ０ｂ＿１がアクティブ（”１”）になると、反転回路ブロック７１＿１により、入力データＤＩｍは１ビット毎に置換される。
即ち、データＤＩｍのビット列００、０１、０２、０３、０４、０５、０６、０７、０８、０９、１０、１１、・・・がビット列００、０１、０２、０３、０４、０５、・・・（データｎｎはデータｎｎの反転を示す）に変換される。
また、制御データＳＩ０ｂ＿１がアクティブの場合は、ビット列００、０１、０２、０３、０４、０５、・・・に変換される。
また、制御データＳＩ０ａ＿１とＳＩ０ｂ＿１がアクティブの場合は、ビット列００、０１、０２、０３、０４、０５、・・・のように、全てのデータが反転される。
また、制御データＳＩ０ａ＿２もしくはＳＩ０ｂ＿２がアクティブになると、反転回路ブロック７１＿２により、入力データＤＩｍは２ビット毎に置換される。
例えば、制御データＳＩ０ａ＿２がアクティブの場合は、ビット列００、０１、０２、０３、０４、０５、０６、０７、・・・に変換される。
【００９１】
このようにして、入力データＤＩｍが６４ビット構成のデータの場合では、ｍ＝６で２５６通りの組合せでデータ変換ができる。
【００９２】
次に、図１４に示すスクランブルは、複数のＸＯＲゲートにより構成される複数の反転回路ブロック７２＿１〜７２＿ｍを備えた反転器７２を有する。
各々反転回路ブロックの各ゲート入力の一方に制御データＳＢ０（ＳＢ０ａ＿１、ＳＢ０ｂ＿１〜ＳＢ０ａ＿ｍ、ＳＢ０ｂ＿ｍ）を入力し、その極性（”０”／”１”）により、入力データＤＢ０の反転、非反転を制御する。反転するビット単位は、例えば、１ビット毎、２ビット毎、４ビット毎、８ビット毎、３２ビット毎・・・といったように各反転回路ブロックが構成されており、前記制御データＳＢ０ａ＿１、ＳＢ０ｂ＿１〜ＳＢ０ａ＿ｍ、ＳＢ０ａ＿ｍにより復号化（暗号化）のビット数に応じて任意の反転回路ブロックが選択され、これに基づいて反転されたスクランブルデータＤＢｍを生成する。
【００９３】
構成は、前記反転器７１と同じであるが、既述したように、本実施例を逆スクランブル４５として位置づけるために、各々反転回路ブロックの並びを反転器７１と全く逆にしてある。但し、反転器７１と反転器７２では同じビット毎のデータ反転が成されるように各制御データＳＩ０とＳＢ０が設定される必要がある。
【００９４】
図１５および図１６はデータの鏡像置換操作によるスクランブルを示し、既述したように本実施形態では、図１５はスクランブル１６、３３、３５に適用され、図１６は逆スクランブル４６に適用されている。
【００９５】
先ず、図１５に示すスクランブルは、入力データＤＦｍの鏡像置換を行う複数の鏡像置換テーブル５１ａ１〜５１ａｍとインバータをはさんで各々に対応して設けた複数の非鏡像置換テーブル５１ｂ１〜５１ｂｍで構成される鏡像置換器５１を有する。制御データＳＦ０（ＳＦ０＿１〜ＳＦ０＿ｍ）の極性（”０”／”１”）により指定された鏡像置換テーブルとこれに対応する非鏡像置換テーブルのどちらか一方が有効となる。鏡像置換するビット単位は、例えば、１ビット毎、２ビット毎、４ビット毎、８ビット毎、１６ビット毎、３２ビット毎・・・といったように構成することができ、前記制御データＳＦ０＿１〜ＳＦ０＿ｍにより復号化（暗号化）のビット数に応じて任意のデータ鏡像置換テーブルが選択され、これに基づいて鏡像置換されたスクランブルデータＤＦ０を生成する。
【００９６】
例えば、上記構成で、制御データＳＦ０＿１がアクティブ（”１”）になると鏡像置換テーブル５１ａ１により、入力データＤＦｍは１ビット毎に鏡像置換される。
即ち、データＤＦｍのビット列００、０１、０２、０３、０４、０５、０６、０７、０８、０９、１０、１１・・・がビット列０１、００、０３、０２、０５、０４、０７、０６・・・に変換される。
また、制御データＳＦ０＿２がアクティブの場合は、鏡像置換テーブル５１ａ２により、入力データＤＦｍは２ビット毎に鏡像置換され、ビット列０３、０２、０１、００、０７、０６、０５、０４、１１、１０、・・・に変換される。
また、制御データＳＦ０＿１とＳＦ０＿２がアクティブの場合は、鏡像置換テーブル５１ａ２により入力データＤＥｍが２ビット毎に鏡像置換された後、鏡像置換テーブル５１ａ１により１ビット毎の鏡像置換が成され、ビット列０２、０３、００、０１、０６、０７、０４、０５、１０、１１、０８、０９、１４、１５、・・・に変換される。
【００９７】
このようにして、入力データＤＦｍが６４ビット構成のデータの場合では、ｍ＝６で６４通りの組合せでデータ変換ができる。
【００９８】
次に、図１６に示すスクランブルは、入力データＤＴ０の鏡像置換を行う複数の鏡像置換テーブル５２ａ１〜５２ａｍとインバータをはさんで各々に対応して設けた複数の非鏡像置換テーブル５２ｂ１〜５２ｂｍで構成される鏡像置換器５２を有する。制御データＳＴ０（ＳＴ０＿１〜ＳＴ０＿ｍ）の極性により、鏡像置換テーブルとこれに対応する非鏡像置換テーブルのどちらかが指定される。鏡像置換するビット単位は、例えば、１ビット毎、２ビット毎、４ビット毎、８ビット毎、３２ビット毎・・・といったように構成することができ、前記制御データＳＴ０＿１〜ＳＴ０＿ｍにより復号化（暗号化）のビット数に応じて任意のデータテーブルが選択され、これに基づいて置換されたスクランブルデータＤＴｍを生成する。
【００９９】
構成は、前記鏡像置換器５１と同じであるが、既述したように、本実施例を逆スクランブル４６として位置づけるために、各々鏡像置換テーブルおよび非鏡像置換テーブルの並びを前記鏡像置換器５１と全く逆にしてある。但し、鏡像置換テーブル５１と鏡像置換テーブル５２では、同じビット毎のデータ鏡像置換が成されるように各制御データＳＦ０とＳＦ０が設定される必要がある。
【０１００】
次に図１７に基づいて暗号化／復号化装置の実施形態を説明する。
この暗号化／復号化装置８０は、以上説明してきた暗号／復号器８１を有し、その周辺回路として、入力データバスＤＢ＿ＩＮより、ブロックデータＢＳおよび暗号化されたブロックデータＲＢＣＳおよび共通鍵ＫＥＹおよび乱数ＣＤｎ（共通サブ鍵）の各データを保持する第１〜第７レジスター８８＿１〜８８＿７とこれら第１〜第７レジスター８８＿１〜８８＿７へのデータ書き込みを制御するデコーダー８２と、入力データのブロック数をカウントするカウンター８７と、暗号／復号器８１の暗号化データＢＣＳを保持する第８レジスター８５と復号化データＲＢＳを保持する第９レジスター８４と、これらの保持データの何れかを選択するセレクター８６等を備える。
【０１０１】
上記構成では、入力データバスＤＢ＿ＩＮを介して送信側（例えば、パソコン等）より送信されるブロックデータＢＳ、暗号化ブロックデータＲＢＣＳ、共通鍵ＫＥＹ、乱数ＣＤｎ等の一連のデータは、デコーダー８２でデコードした書き込み選択信号ＷＡに基づいて書き込み信号ＷＲのタイミングにて第１〜第７レジスター８８＿１〜８８＿７の内の所定のレジスターに保持する。
即ち、第１レジスター８８＿１にブロックデータＢＳを第２レジスター＿２に暗号化ブロックデータＲＢＣＳを、第３レジスター８８＿３に共通鍵ＫＥＹを、第４〜第７レジスター８８＿４〜８８＿７にそれぞれ乱数ＣＤ０〜ＣＤ３をセットする。
【０１０２】
同時に、入力された各データの内、ブロックデータＢＳと暗号化ブロックデータＲＢＣＳを、カウンター８７によりブロック単位でカウントする。このカウンター８７はキャリーイン（Ｃ＿ＩＮ）端子を有し、外部制御信号Ｃ＿ＩＮの”１”／”０”により、カウント動作の開始および停止を任意に制御して所望のブロック単位にてカウントできるようになっており、加えて、付設のロード端子（ＬＯＡＤ）、或いはクリアー端子（ＣＬＲ）を利用してカウンター８７の初期状態をデコーダー８２の出力に基づいて任意のタイミングで任意の値にセットすることもできるようになっている。
【０１０３】
これらレジスター群の出力をそれぞれ暗号／復号器８１に付設の所定の入力部ＢＳ、ＲＢＣＳ、ＫＥＹ、ＣＤ０〜ＣＤ３、ＣＯＵＮＴに入力し、既述のように、これら各データに基づいてブロックデータの暗号化、或いは暗号化ブロックデータの復号化を行う。
【０１０４】
また、暗号／復号器８１からの暗号化ブロックデータＢＣＳ、或いは復号化ブロックデータＲＢＳを一旦各々対応する第８レジスター８５、或いは第９レジスター８４にセットし、出力選択信号ＲＡに基づいてセレクター８６により暗号化、或いは復号化の何れかのデータを選択して、出力データバスＤＢ＿ＯＵＴに出力し、図示しない送信側（例えば、パソコン）に送信する。
【０１０５】
次に、図１８に基づいて、図１７とは別の暗号化／復号化装置の実施形態を説明する。
この暗号化／復号化装置９０は、図１７と同様の暗号／復号器９１を有し、その入力側に、ブロックデータＢＳや暗号化されたブロックデータＲＢＣＳを保持する第１１レジスター９３、共通鍵ＫＥＹや乱数ＣＤ０〜ＣＤ３（共通サブ鍵）を保持する複数組みの対レジスター９４ａ／９４ｂ〜９８ａ／９８ｂ、ブロックデータＢＳをブロック単位でカウントする第１１カウンター９９ａ、暗号化されたブロックデータＲＢＣＳをブロック単位でカウントする第１２カウンター９９ｂ等を有する。
【０１０６】
前記乱数ＣＤ０〜ＣＤ３は内蔵の乱数発生器１０４から得られ、またブロックデータＢＳや暗号化されたブロックデータＲＢＣＳ、共通鍵ＫＥＹ、或いは第１１、第１２カウンター９９ａ、９９ｂへのカウンター初期設定データ等はデータバスＤＡ＿ＢＵＳにより一連のデータ流れの中で外部機器より入力される。
デコーダー９２は、このデータバスＤＡ＿ＢＵＳの各種データを暗号化動作／復号化動作を示す選択信号ＳＥＬＥＣＴとレジスター、カウンターの選択信号ＡＤ０〜ＡＤ３に基づいてそれぞれ対応する第１２〜第２１レジスター９４ａ／９４ｂ〜９８ａ／９８ｂへ割り振り・セットすると共に、第１１カウンター９９ａと第１２カウンター９９ｂのカウント動作を制御する。
尚、この第１１、第１２カウンター９９ａ、９９ｂはそれぞれキャリーイン（Ｃ＿ＩＮ）端子を有し、外部制御信号Ｃ＿ＩＮの”１”／”０”により、カウント動作の開始或いは停止を任意に制御して所望のブロック単位にてカウントできるようになっており、加えて、付設のロード端子、或いはクリアー端子を利用して各カウンターの初期状態を前記デコーダー９２の出力に基づいて任意のタイミングで任意の値にセットすることもできるようになっている。
【０１０７】
図１９に示すように、暗号化動作時には、第１２レジスター９４ａに暗号化動作用の共通鍵ＫＥＹ（ＫＥＹ＿０）をセットし、第１４レジスター９５ａ、第１６レジスター９６ａ、第１８レジスター９７ａ、第２０レジスター９８ａに暗号化動作用の乱数ＣＤ０〜ＣＤ３（ＣＤ０＿０〜ＣＤ３＿０）をセットし、第１１カウンター９９ａをクリアー（または、暗号化動作用の初期設定データがセット）する。一方、この状態で、他方の第１３レジスター９４ｂ、第１５レジスター９５ｂ、第１７レジスター９６ｂ、第１９レジスター９７ｂ、第２１レジスター９８ｂ、第１２カウンター９９ｂには、復号化動作用の各種条件設定データ（共通鍵、乱数、カウンターの初期設定データ）をセットする。
また、復号化動作時には、第１３レジスター９４ｂに復号化動作用の共通鍵ＫＥＹ（ＫＥＹ＿１）をセットし、第１５レジスター９５ｂ、第１７レジスター９６ｂ、第１９レジスター９７ｂ、第２１レジスター９８ｂに復号化動作用の乱数ＣＤ０〜ＣＤ３（ＣＤ０＿１〜ＣＤ３＿１）をセットし、第１２カウンター９９ｂをクリアー（または、復号化動作の初期設定データがセット）する。一方、この状態で、他方の第１２レジスター９４ａ、第１４レジスター９５ａ、第１６レジスター９６ａ、第１８レジスター９７ａ、第２０レジスター９８ａ、第１１カウンター９９ａには、暗号化動作用の各種条件設定データをセットする。
【０１０８】
そして、複数の対レジスター９４ａ／９４ｂ〜９８ａ／９８ｂや第１、第２カウンター９９ａ、９９ｂにセットした各種データは、暗号化／復号化の選択信号ＳＥＬＥＣＴをセレクト入力とする第１５〜第２０セレクター１１１〜１１６により暗号化動作、或いは復号化動作に応じてａ（暗号化）またはｂ（復号化）の何れかを選択して、暗号／復号器９１に付設の各入力端子ＲＢＣＳ、ＢＳ、ＫＥＹ、ＣＤ０〜ＣＤ３、ＣＮＴに出力する。
【０１０９】
このように、本実施形態では、一連の暗号化動作の中で次の復号化動作の条件設定が成され、また、一連の復号化動作の中で次の暗号化動作の条件設定が成されるように構成されているので、暗号化と復号化において効率的な時分割処理が可能となる。
【０１１０】
また、本実施形態では、入力選択信号ＳＥ０、ＳＥ１をセレクト入力とする第１１セレクター１０７、および第１２セレクター１０８を有している。
第１１セレクター１０７では、データバスＤＡ＿ＢＵＳ上のデータ（外部データ）、または乱数発生器１０４の乱数ＲＯＤの何れかを入力選択信号ＳＥ１で選択して暗号化、或いは復号化のデータとして前記第１１レジスター９３に出力する。
また、第１２セレクター１０８においては、データバスＤＡ＿ＢＵＳ上のデータ、または乱数発生器１０４の乱数ＲＯＤ、または選択信号ＳＥＬＥＣＴをセレクト入力とする第２１セレクター１１７で選択した暗号／復号器９１の暗号化データＢＣＳ或いは復号化データＲＢＳの何れかを入力選択信号ＳＥ０、ＳＥ１で選択して各種条件設定データとして第１２〜第２１レジスター９４ａ／９４ｂ〜９８ａ／９８ｂと第１１、第１２カウンター９９ａ、９９ｂに出力する。
【０１１１】
前記第２１セレクター１１７の選択出力（暗号化データＢＣＳ或いは復号化データＲＢＳ）を、一旦、第２２レジスター１００に所定のタイミングでセットし、同期化された暗号化／復号化データＢＳＤを得る。
【０１１２】
さらに、本実施形態では、選択信号ＳＥＬＥＣＴをセレクト入力とする第１３セレクター１０９、第１４セレクター１１０、第２２セレクター１１８、第２比較器１０６を有し、暗号化／復号化の検証を行うように構成されている。
即ち、暗号化動作時は、第１３セレクター１０９は第１１レジスター９３からの入力データ（ブロックデータＢＳ）を選択し、第１４セレクター１１０は暗号／復号器９１からの暗号化データＢＣＳを選択し、第２２セレクター１１８は暗号化データＢＣＳをさらに暗号／復号器９１で復号化した復号化データＲＢＳを選択し、第２比較器１０６は第２２セレクター１１８で選択した復号化データＲＢＳと前記入力データ（ブロックデータＢＳ）を比較する。両者が一致しない場合は、エラー信号ＣＨＥＣＫ＿１を送出する。
一方、復号化動作時は、第１４セレクター１１０は第１１レジスター９３からの入力データ（暗号化データＲＢＣＳ）を選択し、第１３セレクター１０９は暗号／復号器９１からの復号化データＲＢＳを選択し、第２２セレクター１１８は復号化データＲＢＳをさらに暗号／復号器９１で暗号化した暗号化データＢＣＳを選択し、第２比較器１０６はこの暗号化データＢＣＳと前記入力データ（暗号化データＲＢＣＳ）を比較する。両者が一致しない場合は、エラー信号ＣＨＥＣＫ＿１を送出する。このようにして、暗号化、復号化の検証を行う。
【０１１３】
さらに、本実施形態では、第２３レジスター１０１、第２４レジスター１０２、第２５レジスター１０３、第１比較器１０５を有し、通信エラーの検証を行うように構成されている。
即ち、図１９に示すように、暗号化動作時は、先ず、第２３レジスター１０１を初期化しておき、暗号化毎に暗号／復号器９１からの暗号化データＢＣＳとこの第２３レジスター１０１の出力ＸＢＳＤ＿０を逐次排他的論理和演算して第２３レジスター１０１に積算し、この積算データＸＢＳＤ＿０を第２５レジスター１０３で１クロック（即ち１ブロック）遅延して出力データＸＢＳＤ＿１を得、暗号化出力データ列ＢＳＤ（０）〜ＢＳＤ（ｎ−１）のフレームの最後尾に検証用データとして添付する。従って、転送フレームの総ブロック数は（ｎ＋１）となる。
一方、復号化動作時は、先ず、第２４レジスター１０２を初期化しておき、復号化毎に第１１レジスター９３からの受信データと第２４レジスター１０２の出力データＸＲＳＤを逐次排他的論理和演算して復号化終了（受信ブロック数ｎ）まで第２４レジスター１０２に積算し、この積算データＸＲＳＤと前記暗号化されたデータ列のフレームの最後尾に添付された検証用データ（ＸＢＳＤ＿１）を第１比較器１０５で比較し、両者が一致しない場合は転送エラー信号ＣＨＥＣＫ＿０を送出する。このようにして、送受信における通信エラーの検証を行う。
【０１１４】
【発明の効果】
以上説明したように、本発明によれば、共通鍵と乱数により生成したデータスクランブル用の制御データに基づいて共通鍵と乱数から予測および計算不可能な新たな暗号用乱数を生成し、この乱数を用いてブロックデータ（平文の）暗号化および暗号化ブロックデータの復号化を行ったので、優れた安全性を有する暗号化および復号化が実現できる。
また、データ変換手段として各種スクランブルと排他的論理和の組み合わせに加え、非線形変換手段を用いたので、生成するデータにデータの偏りを無くし、データ出現の統計的な予測を極めて困難なものとすることができ、暗号化、復号化に更なる安全性を与えることができる。
【０１１５】
加えて、前記乱数として、自然現象によるランダムパルスを利用して生成した自然乱数（真性乱数）を用いたので、乱数出現の規則性、前後の相関性、周期性等を有しない意外性のある暗号用乱数を得ることができ、よって、安全性はより一層向上する。
【０１１６】
また、暗号化および復号化を行うためのデータのスクランブル動作を全てゲート回路によるビット操作で実現したので、高価な専用ＬＳＩや高速プロセッサを用いることなく処理速度の高速化が図れるようになる。
【図面の簡単な説明】
【図１】本発明の暗号／復号器の基本構成を示すブロック図。
【図２】暗号化／復号化処理の構成を示すブロック図。
【図３】暗号化／復号化処理の図２とは別の構成を示すブロック図。
【図４】暗号化／復号化処理の図３とは別の構成を示すブロック図。
【図５】暗号用乱数生成部の構成を示すブロック図。
【図６】暗号用乱数生成部の図５とは別の構成を示すブロック図。
【図７】暗号用乱数生成部の図６とは別の構成を示すブロック図。
【図８】制御データ生成部の構成を示すブロック図。
【図９】制御データ生成部の図８とは別の構成を示すブロック図。
【図１０】制御データ生成部の図９とは別の構成を示すブロック図。
【図１１】データの置換を示すブロック図。
【図１２】データの逆置換を示すブロック図。
【図１３】データの反転を示す回路図。
【図１４】データの逆反転を示す回路図。
【図１５】データの鏡像置換を示すブロック図。
【図１６】データの逆鏡像置換を示すブロック図。
【図１７】本発明の暗号化／復号化装置の基本構成を示す図。
【図１８】本発明の図１７とは別の暗号化／復号化装置の基本構成を示すブロック図。
【図１９】暗号化動作および復号化動作を示すフローチャート。
【符号の説明】
１　暗号用乱数生成部
２　制御データ生成部
３　暗号化／復号化処理
１１〜３３　スクランブル手段
４２〜４６　逆スクランブル手段
５１　鏡像置換器
５２　逆鏡像置換器
６１　置換器
６２　逆置換器
７１　反転器
７２　逆反転器
８０、９０　暗号化／復号化装置
８１、９１　暗号／復号器
８２　デコーダー
８３　遅延器
８４　第９レジスター
８５　第８レジスター
８６　セレクター
８７　カウンター
９３　第１１レジスター
９４ａ　第１２レジスター
９４ｂ　第１３レジスター
９５ａ　第１４レジスター
９５ｂ　第１５レジスター
９６ａ　第１６レジスター
９６ｂ　第１７レジスター
９７ａ　第１８レジスター
９７ｂ　第１９レジスター
９８ａ　第２０レジスター
９８ｂ　第２１レジスター
９９ａ　第１１カウンター
９９ｂ　第１２カウンター
１００　第２２レジスター
１０１　第２３レジスター
１０２　第２４レジスター
１０３　第２５レジスター
１０４　乱数発生器
１０５　第１比較器
１０６　第２比較器
１０７　第１１セレクター
１０８　第１２セレクター
１０９　第１３セレクター
１１０　第１４セレクター
１１１　第１５セレクター
１１２　第１６セレクター
１１３　第１７セレクター
１１４　第１８セレクター
１１５　第１９セレクター
１１６　第２０セレクター
１１７　第２１セレクター
１１８　第２２セレクター
１２０〜１２４　非線形変換手段
１３０、１３１　逆非線形手段
【図１】
2004117429.tif 000005
【図２】
2004117429.tif 000006
【図３】
2004117429.tif 000007
【図４】
2004117429.tif 000008
【図５】
2004117429.tif 000009
【図６】
2004117429.tif 000010
【図７】
2004117429.tif 000011
【図８】
2004117429.tif 000012
【図９】
2004117429.tif 000013
【図１０】
2004117429.tif 000014
【図１１】
2004117429.tif 000015
【図１２】
2004117429.tif 000016
【図１３】
2004117429.tif 000017
【図１４】
2004117429.tif 000018
【図１５】
2004117429.tif 000019
【図１６】
2004117429.tif 000020
【図１７】
2004117429.tif 000021
【図１８】
2004117429.tif 000022
【図１９】
2004117429.tif 000023