JPH10301489A - データ変換装置 - Google Patents

データ変換装置

Info

Publication number
JPH10301489A
JPH10301489A JP9104634A JP10463497A JPH10301489A JP H10301489 A JPH10301489 A JP H10301489A JP 9104634 A JP9104634 A JP 9104634A JP 10463497 A JP10463497 A JP 10463497A JP H10301489 A JPH10301489 A JP H10301489A
Authority
JP
Japan
Prior art keywords
data
area
areas
stored
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9104634A
Other languages
English (en)
Inventor
Kiyousuke Nomura
享右 野村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taisei Corp
Original Assignee
Taisei Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taisei Corp filed Critical Taisei Corp
Priority to JP9104634A priority Critical patent/JPH10301489A/ja
Publication of JPH10301489A publication Critical patent/JPH10301489A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 暗号化/復号化ソフトを開発するために要す
る費用や時間、または手間などを大幅に削減するととも
に、コンパクトなサイズの暗号化/復号化ソフトを開発
することができるデータ変換装置を提供する。 【解決手段】 コンピュータの記憶手段に格納されてい
るデータを、暗号化および復号化するデータ変換装置に
おいて、データの所定領域を所定長のエリアが複数個構
成されるように分割するデータ分割手段と、特定の組み
合わせで対にしたエリア同士を交換するエリア交換手段
と、を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術の分野】本発明は、データを暗号化
および復号化するデータ変換装置に係り、特に、暗号化
データを生成するときと同一の処理で、その暗号化デー
タを復号化することのできるデータ変換装置に関する。
【0002】
【従来の技術】従来のデータ変換装置としては、通信デ
ータの盗聴、改ざんなどの不正アクセスから通信データ
を保護するために用いられる暗号化技術がある。これに
は、例えば、ソフトウェアを利用してデータを暗号化お
よび復号化するものがあり、次のようにしてデータの送
受信を行う。
【0003】送信元コンピュータでは、データを送信し
ようとする送信者が暗号化ソフトを利用し、送信対象と
なる平文データを、送信者によって指定された所定の暗
号キーに基づいて暗号化し、その暗号化データを送信す
る。
【0004】このとき、例えば、DES(Data Encrypti
on Standard)方式によってデータを暗号化する暗号化ソ
フトは、図8(a)に示すように、平文データを暗号化
するデータ処理部と、指定された暗号キーから暗号化す
るために必要なキー情報系列を生成するキースケジュー
ラ部とで構成されている。データ処理部では、64ビッ
トごとに平文データを分割し、分割したデータ列をキー
スケジューラ部で生成されたキー情報系列を用い、同一
の変換を16段繰り返して64ビットの暗号化データを
生成する。一方、キースケジューラ部では、64ビット
で構成される暗号キーを用いて16段のキー情報系列K
1 、K2 、…、K16を生成する。なお、図中、fは、図
8(b)に示すように、非線形変換であって、6ビット
入力4ビット出力のテーブルで与えられる8個のSボッ
クスからなっている。
【0005】一方、送信先コンピュータでは、データを
受信した受信者が復号化ソフトを利用し、受信した暗号
化データを、受信者によって指定された所定の復号キー
に基づいて復号化する。
【0006】このとき、例えば、DES方式によってデ
ータを復号化する復号化ソフトは、図8(a)におい
て、キースケジューラ部で生成するキー情報系列を暗号
化したときとは逆に、K16、K15、…、K1 とすれば、
元の平文データが得られる。ただし、受信者が指定した
復号キーと送信者が指定した暗号キーとが一致しなけれ
ば、元の平文データを得ることができない。
【0007】
【発明が解決しようとする課題】しかしながら、従来の
データ変換装置は、暗号化するときのキー情報系列に対
して、復号化するときのキー情報系列を逆の順序で生成
する必要があるため、暗号化するためのデータ処理部と
復号化するためのデータ処理部とを個別に設計しなけれ
ばならなかった。
【0008】このため、従来、暗号化/復号化ソフトを
開発する際には、暗号化または復号化するためのデータ
処理部をそれぞれ個別に設計する必要があること、ま
た、暗号化データ処理部で生成された暗号化データを、
復号化データ処理部で確実に復号化することができるか
否かを厳密にテストする必要があることなどから、費用
や時間や手間などがかかるとともに、完成するソフトの
データ容量も大きなものになってしまう。
【0009】そこで、本発明は、このような従来の問題
を解決することを課題としており、暗号化データを生成
するときと同一の処理で、その暗号化データを復号化す
ることによって、暗号化/復号化ソフトを開発するため
に要する費用や時間、または手間などを大幅に削減する
とともに、コンパクトなサイズの暗号化/復号化ソフト
を開発することのできるデータ変換装置を提供すること
を目的としている。
【0010】
【課題を解決するための手段】上記目的を達成するため
に、本発明に係る請求項1記載のデータ変換装置は、コ
ンピュータの記憶手段に格納されているデータを、暗号
化および復号化するデータ変換装置において、データの
所定領域を所定長のエリアが複数個構成されるように分
割するデータ分割手段と、特定の組み合わせで対にした
前記エリア同士を交換するエリア交換手段と、を備える
ことを特徴としている。
【0011】このような構成であれば、平文データを暗
号化するときには、暗号化しようとする平文データは、
データ分割手段で、所定長のエリアに分割される。そう
して、分割された各エリアは、エリア交換手段で、特定
の組み合わせで他のエリアと対にされ、それらエリア同
士が交換される。したがって、平文データは、分割した
エリアの配置が拡散されるので、解読困難な暗号化デー
タに暗号化される。
【0012】なお、このとき、エリアの長さは、エリア
が複数個構成されるように、平文データの長さに応じて
決定してもよいし、また逆に、エリアの長さをあらかじ
め決定しておき、平文データにダミーデータを付加する
ことによって、エリアが複数個構成されるように調整し
てもよい。
【0013】一方、暗号化データを復号化するときに
は、暗号化データは、データ分割手段で、前記所定長の
エリアに分割される。そうして、各エリアは、エリア交
換手段で、暗号化したときと同一の組み合わせで他のエ
リアと対にされ、それらエリア同士が交換される。した
がって、暗号化データは、エリアの配置が初期の状態に
戻されるため、解読可能な元の平文データに復号化され
る。
【0014】なお、ここで、平文データまたは暗号化デ
ータは、部分的に暗号化または復号化してもよく、その
ような場合には、平文データのうち暗号化しようとする
領域を、前記所定長のエリアが複数個構成されるように
分割する。ただし、暗号化したときの暗号化領域と、復
号化するときの復号化領域とを一致させなければならな
い。
【0015】端的にいえば、暗号化データを生成すると
きと同一の処理で、その暗号化データを復号化するに
は、平文データを暗号化データに変換する写像関数と、
暗号化データを平文データに変換する写像関数とが逆関
数の関係にある必要がある。したがって、一のエリアを
任意の位置に移動させた場合には、移動先にある他のエ
リアを、その一のエリアが配置されていた位置に移動す
ることが条件となる。この条件を満たすには、各エリア
を対にして交換すればよい。
【0016】これには、例えば、先頭と末尾とから計数
して同一番目に属するエリアを対にし、それらエリア同
士を交換するような場合が挙げられる。そうすると、先
頭にあるエリアほど末尾に移動させられるので、結果と
して、変換されたエリアの配置は、元のエリアの配置と
逆順となる。
【0017】また、本発明に係る請求項2記載のデータ
変換装置は、請求項1記載のデータ変換装置において、
前記データ分割手段は、前記所定領域を前記エリアが偶
数個構成されるように分割することを特徴としている。
【0018】このような構成であれば、平文データまた
は暗号化データは、データ分割手段で、エリアが偶数個
構成されるように分割される。したがって、分割された
各エリアは、必ず他のエリアと対にされて交換される。
【0019】さらに、本発明に係る請求項3記載のデー
タ変換装置は、請求項2記載のデータ変換装置におい
て、前記エリア交換手段は、前記すべてのエリアを必ず
一度だけ交換する単位交換処理を、少なくとも1回実行
することを特徴としている。
【0020】このような構成であれば、各エリアは、1
回の単位交換処理において、対となる他のエリアと必ず
1度だけ交換される。そうして、この単位交換処理が1
または複数回実行される。
【0021】ここで、単位交換処理を複数回実行すると
きには、各単位交換処理ごとに対にするエリアの組み合
わせを異ならせることが望ましい。この場合において、
組み合わせを異ならせたとしても、単位交換処理でエリ
アを交換するようにすれば、最初のエリアの配置から複
数回の単位交換処理を経て得られたエリアの配置への変
換が上記逆関数の関係を満たしているので、例えば、平
文データを、異なる複数の単位交換処理A、B、Cの順
序で暗号化したときであっても、その暗号化データは、
単位交換処理A、B、Cの順序で元の平文データに復号
化することができる。
【0022】また、単位交換処理を含む上記処理を応用
した暗号化/復号化ソフトを開発する際には、エリアの
分割個数を大きく設定すればするほど、処理パターンを
幅広く選択することができる。このため、これらの処理
パターンを適宜に組み合わせ、例えば、データの複数の
領域について異なる処理パターンで暗号化するなどすれ
ば、バリエーションに富んだソフトを開発することがで
きる。また逆に、このように多数の処理パターンが存在
することに着目して、あらかじめいくつかの処理パター
ンを登録しておき、それら処理パターンのいずれかを指
定するようなものを暗号キー/復号キーとして用いるこ
とも考えられる。
【0023】さらに、本発明に係る請求項4記載のデー
タ変換装置は、請求項1、2または3記載のデータ変換
装置において、前記データ分割手段は、さらに前記エリ
アを所定長のブロックが複数個構成されるように分割す
るブロック分割処理を、前記すべてのエリアについて等
しく実行し、前記エリア交換手段は、同一エリア内で特
定の組み合わせで対にした前記ブロック同士を交換する
ブロック交換処理を、前記すべてのエリアについて等し
く実行することを特徴としている。
【0024】このような構成であれば、各エリアは、さ
らに複数のブロックに分割されるが、すべてのエリアに
おいて、各エリアごとに構成されるブロックの個数が同
数となるように分割される。そうして、エリア内の各ブ
ロックは、特定の組み合わせで他のブロックと対にされ
て交換されるが、すべてのエリアにおいて、各ブロック
が同一の組み合わせで対にされて交換される。
【0025】この請求項4記載の発明において、特定の
組み合わせとは、請求項1記載の発明における特定の組
み合わせと同一の組み合わせであってもよいし、異なる
組み合わせであってもよい。
【0026】さらに、本発明に係る請求項5記載のデー
タ変換装置は、請求項4記載のデータ変換装置におい
て、前記データ分割手段は、前記エリアを前記ブロック
が偶数個構成されるように分割することを特徴としてい
る。
【0027】このような構成であれば、各エリアは、デ
ータ分割手段で、ブロックが偶数個構成されるように分
割される。したがって、分割された各ブロックは、必ず
他のブロックと対にされて交換される。
【0028】さらに、本発明に係る請求項6記載のデー
タ変換装置は、請求項1、2、3、4または5記載のデ
ータ変換装置において、データの前記所定領域を構成す
るビットを反転するビット反転手段を備えることを特徴
としている。
【0029】このような構成であれば、平文データを暗
号化するときには、その平文データは、ビット反転手段
で、構成するビットが反転されて解読困難な暗号化デー
タに暗号化されるが、暗号化データを復号化するときに
は、その暗号化データは、反転されたビットがさらに反
転されて元の平文データに復号化される。このとき、構
成するすべてのビットを反転する必要はなく、特定のビ
ットのみを反転するようにしてもよい。
【0030】さらに、本発明に係る請求項7記載のデー
タ変換装置は、請求項1、2または6記載のデータ変換
装置において、前記エリアを対にする組み合わせを特定
するための特定キーを入力する特定キー入力手段を備
え、前記エリア交換手段は、特定キー入力手段から入力
された特定キーに基づいて前記各エリアを対にすること
を特徴としている。
【0031】このような構成であれば、分割された各エ
リアは、エリア交換手段で、特定キー入力手段から入力
された特定キーによって特定される組み合わせに基づい
て、他のエリアと対にされ、それらエリア同士が交換さ
れる。
【0032】したがって、暗号化データを生成するとき
に入力した特定キーと、その暗号化データを復号化しよ
うとするときに入力する特定キーとが一致しなければ、
その暗号化データは、元の平文データに復号化されな
い。
【0033】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照しながら説明する。図1は、本発明に係るデータ
変換装置の第1の実施の形態を示す概略構成図である。
図2は、図1におけるコンピュータの構成を示すブロッ
ク図である。
【0034】この第1の実施の形態は、本発明に係るデ
ータ変換装置を、図1に示すように、2台のコンピュー
タ間で、平文データを暗号化して送受信する場合につい
て適用したものである。
【0035】このデータ変換装置は、平文データを暗号
化して送信するコンピュータ1aと、受信した暗号化デ
ータを復号化するコンピュータ1bとで構成されてお
り、コンピュータ1aとコンピュータ1bとは、暗号化
データを伝送するためのデータ伝送路2で接続されてい
る。
【0036】同一機能を有する各コンピュータ1a,1
bは、図2に示すように、演算およびシステム全体を制
御する演算処理部3と、データの読み出しおよび書き込
みが可能な主記憶部4および補助記憶部5と、外部から
データ入力が可能なヒューマンインターフェースとして
のキーボード6と、キーボード6からデータを入力し、
かつ、データ伝送路2を介して他方のコンピュータと暗
号化データの入出力を行うインターフェース部7とで構
成されており、演算処理部3、主記憶部4、補助記憶部
5およびインターフェース部7は、データを伝送するた
めのバスで相互に接続されている。
【0037】主記憶部4は、ROMおよびRAM等の記
憶素子からなり、あらかじめ演算処理部3の制御プログ
ラム等が格納されており、補助記憶部4から読み込んだ
データおよび演算処理部3の演算過程で必要な演算結果
を格納するように構成されている。
【0038】補助記憶部5は、ハードディスク等からな
り、暗号化しようとする平文データ、または、復号化し
ようとする暗号化データを格納するように構成されてい
る。演算処理部3は、マイクロプロセスユニットMPU
等からなり、補助記憶部5に格納されている平文データ
を暗号化し、または、暗号化データを復号化しようとす
るときには、主記憶部4に格納されている所定のプログ
ラムを起動させ、図3のフローチャートに示す処理を実
行するように構成されている。ここで、図3は、平文デ
ータを暗号化し、または、暗号化データを復号化するた
めの処理を示すフローチャートである。
【0039】つまり、平文データを暗号化し、または、
暗号化データを復号化しようとするときに、演算処理部
3では、次のようにして処理を実行する。まず始めに、
図3に示すように、ステップS1に移行して、データを
格納するためのバッファBに補助記憶部5から処理対象
となる対象データを読み込み、ステップS2に移行し
て、変数nに偶数の値をとるエリア数を、変数mに偶数
の値をとるブロック数を設定し、ステップS3に移行し
て、バッファBを変数nが示す個数のエリアに分割し、
さらに、各エリアを変数mが示す個数のブロックに分割
する。ここで、変数nに設定するエリア数および変数m
に設定するブロック数は、あらかじめ設定した固定の値
を用いるものとする。
【0040】すなわち、バッファBに読み込んだ対象デ
ータは、エリアが変数nが示す個数だけ構成されるよう
に分割され、さらに、各エリアは、ブロックが変数mが
示す個数だけ構成されるように分割される。このとき、
エリアの長さは、対象データの長さを変数nが示す値で
除した値で決定され、ブロックの長さは、同様に、エリ
アの長さを変数mが示す値で除した値で決定される。
【0041】なお、以降、対象データの先頭からj(1
≦j≦n)番目のエリアにおいて、そのエリアの先頭か
らk(1≦k≦m)番目のブロックに格納されているデ
ータを示す場合には、B(j,k)と、j番目のエリア
において、すべてのブロックに格納されているデータを
示す場合には、B(j,*)と表記する。
【0042】次いで、ステップS4に移行して、処理回
数を計数するための変数jに“1”を設定し、ステップ
S5に移行して、処理回数を計数するための変数kに
“1”を設定し、ステップS6に移行して、バッファB
(j,k)とバッファB(j,m−k+1)とに格納さ
れているデータを構成するすべてのビットを反転し、ス
テップS7に移行して、バッファB(j,k)に格納さ
れているデータとバッファB(j,m−k+1)に格納
されているデータとを交換する。そうすると、バッファ
B(j,k)には、バッファB(j,m−k+1)に格
納されていたデータを構成するすべてのビットが反転さ
れたものが格納され、バッファB(j,m−k+1)に
は、バッファB(j,k)に格納されていたデータを構
成するすべてのビットが反転されたものが格納される。
【0043】次いで、ステップS8に移行して、変数k
の値に“1”を加算し、ステップS9に移行して、変数
kの値が変数mの半値より大きいか否かを判定し、大き
いと判定されたときには、ステップS10に移行する
が、大きくないと判定されたときには、ステップS6に
移行する。
【0044】すなわち、ステップS5からステップS9
までは、変数kの値が“1”ずつ増加していくので、j
番目のエリアにおいて、そのエリアの半分の位置を対称
にして各ブロックが先頭から順次交換されることにな
る。
【0045】ステップS10では、変数jの値に“1”
を加算し、ステップS11に移行して、変数jの値が変
数nの半値より大きいか否かを判定し、大きいと判定さ
れたときには、ステップS12に移行するが、大きくな
いと判定されたときには、ステップS5に移行する。
【0046】すなわち、ステップS4からステップS1
1までは、変数jの値が“1”ずつ増加していくので、
すべてのエリアについて、ステップS5からステップS
9までの処理が実行されることになる。
【0047】ステップS12では、変数jに“1”を設
定し、ステップS13に移行して、バッファB(j,
*)に格納されているデータとB(n−j+1,*)に
格納されているデータとを交換し、ステップS14に移
行して、変数jの値に“1”を加算し、ステップS15
に移行して、変数jの値が変数nの半値より大きいか否
かを判定し、大きいと判定されたときには、ステップS
16に移行するが、大きくないと判定されたときには、
ステップS13に移行する。
【0048】すなわち、ステップS12からステップS
15までは、変数jの値が“1”ずつ増加していくの
で、対象データの半分の位置を対称にして各エリアが先
頭から順次交換されることになる。
【0049】そうして、ステップS16では、このよう
に対象データのエリアの配置を拡散したものを、補助記
憶部5の所定領域に格納して、一連の処理を終了する。
次に、上記第1の実施の形態の動作を図面を参照しなが
ら説明する。図4は、平文データを暗号化する場合を説
明するブロック図である。図5は、暗号化データを復号
化する場合を説明するブロック図である。
【0050】始めに、コンピュータ1aの補助記憶部5
に格納されている平文データを暗号化して、その暗号化
データをコンピュータ2bに送信する場合について説明
する。
【0051】まず、データを送信しようとする送信者
は、ステップS1において、送信対象となる平文データ
をバッファBに読み込む。そうすると、ステップS2か
らS3までを経て、バッファBに格納された平文データ
は、図4(a)に示すように、エリアが変数nが示す個
数(例えば、N個)構成されるように分割され、さら
に、各エリアは、ブロックが変数mが示す個数(例え
ば、M個)構成されるように分割される。このとき、B
(1,*)には、データD1 が格納されており、B
(j,1〜M)には、データd1 〜dM が格納され、B
(N−j+1,*)には、データDN-j+1 が格納され、
B(N,*)には、データDN が格納されているものと
する。
【0052】次いで、ステップS4からS11までを経
て、各エリア内において、その各ブロックに格納されて
いるデータは、構成するすべてのビットが反転されると
ともに、そのエリアの半分の位置M/2を対称にして交
換される。例えば、図4(b)に示すように、j番目の
エリアであるB(j,*)では、まず、そのエリアの先
頭にあるデータd1 と末尾にあるデータdM とが交換さ
れ、次に、先頭から2番目にあるデータd2 と末尾から
2番目にあるデータdM-1 とが交換され、次に、データ
3 とデータdM-2 とが、データd4 とデータdM-3
が交換されていく。
【0053】したがって、B(1,*)には、データD
1 内のブロックが交換されたデータ/D1 が格納され、
B(j,1〜M)には、データdM 〜d1 が格納され、
B(N−j+1,*)には、データDN-j+1 内のブロッ
クが交換されたデータ/DN- j+1 が格納され、B(N,
*)には、データDN 内のブロックが交換されたデータ
/DN が格納される。なお、ここで、“/”は、エリア
内のブロックが交換された状態のデータを示すための表
記である。
【0054】次いで、ステップS12からS15までを
経て、各エリアに格納されているデータは、平文データ
の半分の位置N/2を対称にして交換される。例えば、
図4(c)に示すように、まず、平文データの先頭にあ
るデータ/D1 と末尾にあるデータ/DN とが交換さ
れ、先頭からj番目にあるデータdM 〜d1 と末尾から
j番目にあるデータ/DN-j+1 とが交換されていく。
【0055】したがって、B(1,*)には、データ/
N が格納され、B(j,*)には、データ/DN-j+1
が格納され、B(N−j+1,1〜M)には、データd
M 〜d1 が格納され、B(N,*)には、データ/D1
が格納される。
【0056】すなわち、この平文データは、エリアの配
置が拡散されるので、解読困難な暗号化データとなり、
ステップS16において、補助記憶部5の所定領域に格
納される。そうして、送信者は、この暗号化データをデ
ータ伝送路2を介して、コンピュータ1bに送信する。
【0057】次に、コンピュータ1bにおいて、コンピ
ュータ1aから送信された暗号化データを復号化する場
合について説明する。まず、データ伝送路2を介して送
信された暗号化データは、インターフェース部7で受信
され、補助記憶部5の所定領域に格納される。
【0058】次いで、この暗号化データを受信した受信
者は、ステップS1において、復号化しようとするその
暗号化データをバッファBに読み込む。そうすると、ス
テップS2からS3までを経て、バッファBに格納され
た暗号化データは、図5(a)に示すように、平文デー
タを暗号化したときと同様に、エリアがN個構成される
ように分割され、さらに、各エリアは、ブロックがM個
構成されるように分割される。このとき、平文データを
分割したときと同一のエリア長およびブロック長で暗号
化データを分割するので、B(1,*)には、データ/
N が格納され、B(j,*)には、データ/DN-j+1
が格納され、B(N−j+1,1〜M)には、データd
M 〜d1 が格納され、B(N,*)には、データ/D1
が格納されていることになる。
【0059】次いで、ステップS4からS11までを経
て、各エリア内において、その各ブロックに格納されて
いるデータは、構成するすべてのビットが反転されると
ともに、そのエリアの半分の位置M/2を対称にして交
換される。
【0060】したがって、図5(b)に示すように、B
(1,*)には、データ/DN 内のブロックが交換され
たデータDN が格納され、B(j,*)には、データ/
N- j+1 内のブロックが交換されたデータDN-j+1 が格
納され、B(N−j+1,1〜M)には、データd1
M が格納され、B(N,*)には、データ/D1 内の
ブロックが交換されたデータD1 が格納される。
【0061】次いで、ステップS12からS15までを
経て、各エリアに格納されているデータは、暗号化デー
タの半分の位置N/2を対称にして交換される。したが
って、図5(c)に示すように、B(1,*)には、デ
ータD1 が格納され、B(j,1〜M)には、データd
1 〜dM が格納され、B(N−j+1,*)には、デー
タDN-j+1 が格納され、B(N,*)には、データDN
が格納される。
【0062】すなわち、この暗号化データは、拡散され
たエリアの配置が初期の状態に戻されるので、解読可能
な元の平文データとなり、ステップS16において、補
助記憶部5の所定領域に格納される。
【0063】このようにして、各エリアを対にして交換
すれば、平文データを暗号化するときと同一の処理で、
暗号化データを元の平文データに復号化することができ
る。このため、暗号化または復号化するためのデータ処
理部とをそれぞれ個別に設計する必要がなく、暗号化/
復号化ソフトを開発するために要する時間や費用、また
は手間などを大幅に削減することができる。
【0064】特に、各エリアをさらに複数のブロックに
分割すれば、より解読困難な暗号化データを生成するこ
とができるだけでなく、各ブロックを対にする組み合わ
せが増大するから、それらの組み合わせを適宜に選択し
てバリエーションに富んだ暗号化/復号化ソフトを開発
することができる。
【0065】さらに、対象データを各エリアが偶数個構
成されるように分割すれば、各エリアは、必ず他のエリ
アと対にされて交換されるから、すべてのエリアの配置
をもれなく拡散することができる。なお、エリアをブロ
ックに分割する場合についても同様のことがいえる。
【0066】さらに、各エリア同士を交換する際に、そ
のエリアに格納されているデータを構成するビットを反
転させれば、より解読困難な暗号化データを生成するこ
とができる。特に、上記処理は、分割したエリアの配置
を拡散することを特徴としているため、平文データが文
書データである場合に、分割するエリアの長さを大きく
設定してしまうと、第三者がその生成された暗号化デー
タを一瞥することによって、暗号化データの拡散規則が
解読される可能性があるが、このように、構成するすべ
てのビットを反転しておけば、その拡散規則を解読する
ことが極めて困難となる。
【0067】次に、第2の実施の形態を説明する。この
第2の実施の形態は、本発明に係るデータ変換装置を、
分割した各エリアを対にする組み合わせに関する情報を
暗号キーおよび復号キーとして用いて、平文データを暗
号化し、または、暗号化データを復号化する場合につい
て適用したものである。
【0068】このデータ変換装置は、上記第1の実施の
形態における演算処理部3の構成を変更したものであっ
て、演算処理部3は、補助記憶部5に格納されている平
文データを暗号化し、または、暗号化データを復号化し
ようとするときには、図6のフローチャートに示す処理
を実行するように構成されている。ここで、図6は、暗
号キーによって平文データを暗号化し、または、復号キ
ーによって暗号化データを復号化するための処理を示す
フローチャートである。
【0069】つまり、平文データを暗号化し、または、
暗号化データを復号化しようとするときに、演算処理部
3では、次のようにして処理を実行する。まず始めに、
図6に示すように、ステップS21からS23までを経
て、バッファBに補助記憶部5から対象データを読み込
み、変数nに偶数の値をとるエリア数を設定し、バッフ
ァBを変数nが示す個数のエリアに分割する。ここで、
変数nに設定するエリア数は、あらかじめ設定した固定
の値を用いるものとする。なお、以降、対象データの先
頭からj(1≦j≦n)番目のエリアに格納されている
データを示す場合には、B(j)と表記する。
【0070】次いで、ステップS24に移行して、変数
xにエリアの配置を拡散するための暗号キーまたは復号
キーとなるものをキーボード6から入力する。つまり、
対象データをエリアが2N個構成されるように分割した
場合、各エリアを対にする組み合わせの総数は、下式1
の右辺に示すだけ存在することから、変数xには、これ
ら組み合わせの一を特定する値を設定するようにする。
すなわち、変数xには、下式1の条件を満たすような自
然数を設定する。
【0071】 次いで、ステップS25に移行して、処理回数を計数す
るための変数iに“1”を、対にするエリアの一方の位
置を特定するための変数Aに“1”を、フラグデータを
格納するための変数C(1〜n)に“0”を設定し、ス
テップS26に移行して、処理回数を計数するための変
数jおよびkに“0”を設定し、ステップS27に移行
して、変数C(A+j+k)の値が“0”であるか否か
を判定し、“0”であると判定されたときには、ステッ
プS28に移行する。
【0072】ステップS28では、変数kの値が“0”
であるか否かを判定し、“0”であると判定されたとき
には、ステップS29に移行して、変数Aの値に変数j
の値を加算し、変数jの値に“0”を設定し、ステップ
S30に移行して、変数kの値に“1”を加算し、ステ
ップS31に移行して、変数kの値が、変数xを(n−
i)で除して得た余りに“1”を加算した値よりも大き
いか否かを判定し、大きいと判定されたときには、ステ
ップS32に移行する。
【0073】ステップS32では、バッファB(A)に
格納されているデータとバッファB(A+j+k−1)
に格納されているデータとを交換し、ステップS33に
移行して、変数C(A)とC(A+j+k−1)とにそ
れぞれ“1”を設定する。
【0074】次いで、ステップS34に移行して、変数
xに、変数xの値を(n−i)で除してその値を整数化
したものを設定し、ステップS35に移行して、変数i
の値が変数nの値よりも小さいか否かを判定し、小さく
ないと判定されたときには、ステップS36に移行し、
このように対象データのエリアの配置を拡散したもの
を、補助記憶部5の所定領域に格納して、一連の処理を
終了する。
【0075】一方、ステップS27で、変数C(A+j
+k)の値が“0”でないと判定されたときには、ステ
ップS37に移行して、変数jの値に“1”を加算し、
ステップS31に移行する。
【0076】また一方、ステップS28で、変数kの値
が“0”でないと判定されたときには、ステップS30
に移行する。また一方、ステップS31で、変数kの値
が、変数xを(n−i)で除して得た余りに“1”を加
算した値よりも大きくないと判定されたときには、ステ
ップS27に移行する。
【0077】また一方、ステップS35で、変数iの値
が変数nの値よりも小さいと判定されたときには、ステ
ップS26に移行する。次に、上記第2の実施の形態の
動作を図面を参照しながら説明する。図7は、暗号キー
の値に応じて平文データを暗号化する場合を説明するブ
ロック図である。
【0078】ここでは、平文データを4つのエリアに分
割したときに、入力する暗号キーの値に応じて、それら
エリアを対にする組み合わせを決定する場合について説
明する。なお、ステップS21からS23までを経て、
平文データを4つのエリアに分割したときに、B(1〜
4)には、それぞれデータd1 〜d4 が格納されている
ものとする。
【0079】まず、分割するエリア数は4つであるの
で、上式1の右辺により、各エリアを対にする組み合わ
せの総数は、“3”と算出される。このとき、暗号キー
としての変数xに設定し得る値の範囲は、上式1より
“0”〜“2”である。
【0080】そこで、送信者は、暗号キーとしての変数
xに“0”を入力するものとすると、ステップS25か
らS29までを経て、変数Aには、変数Aの値“1“と
変数jの値“0”とを加算した値“1”が設定され、ス
テップS30からS31までを経て、変数kの値“1”
が“1”(変数xの値“0”を“3”で除して得た余り
“0”に“1”を加算した値)よりも大きくないので、
ステップS27からS28まで、ステップS30からS
31までを経て、変数kの値“2”が“1”よりも大き
くなったときに、ステップS32に処理が移行される。
【0081】このとき、変数j、k、Aの値は、それぞ
れ“0”、“2”、“1”であるので、ステップS32
からS34までを経て、B(1)に格納されているデー
タd 1 とB(2)に格納されているデータd2 とが交換
され、変数C(1)とC(2)とに“1”が、変数xに
“0”が設定される。
【0082】次いで、ステップS26に処理が戻され、
変数C(1)およびC(2)の値が“1”であるので、
変数jの値が“2”となるが、ステップS29におい
て、変数Aの値“1”に変数jの値が“2”が加算され
たときに、変数jには、“0”が設定され、ステップS
32に処理が移行される。
【0083】このとき、変数j、k、Aの値は、それぞ
れ“0”、“2”、“3”であるので、ステップS32
からS36までを経て、B(3)に格納されているデー
タd 3 とB(4)に格納されているデータd4 とが交換
される。
【0084】すなわち、図7の上段に示すように、
1 、d2 、d3 、d4 の順序で構成されていた平文デ
ータは、d2 、d1 、d4 、d3 の順序で並び換えられ
た暗号化データとなる。
【0085】次に、送信者は、暗号キーとしての変数x
に“1”を入力するものとすると、ステップS27から
S31までを3回繰り返したのちに、ステップS32に
処理が移行される。このとき、変数j、k、Aの値は、
それぞれ“0”、“3”、“1”であるので、ステップ
S32からS34までを経て、B(1)に格納されてい
るデータd1 とB(3)に格納されているデータd3
が交換され、変数C(1)とC(3)とに“1”が、変
数xに“0”が設定される。
【0086】次いで、ステップS27からS31までを
2回繰り返したのちに、ステップS32に処理が移行さ
れる。このとき、変数j、k、Aの値は、それぞれ
“1”、“2”、“2”であるので、ステップS32か
らS36までを経て、B(2)に格納されているデータ
2 とB(4)に格納されているデータd4 とが交換さ
れる。すなわち、図7の中段に示すように、d1
2 、d3 、d4 の順序で構成されていた平文データ
は、d3 、d4 、d1 、d2 の順序で並び換えられた暗
号化データとなる。
【0087】次に、送信者は、暗号キーとしての変数x
に“2”を入力するものとすると、ステップS27から
S31までを4回繰り返したのちに、ステップS32に
処理が移行される。このとき、変数j、k、Aの値は、
それぞれ“0”、“4”、“1”であるので、ステップ
S32からS34までを経て、B(1)に格納されてい
るデータd1 とB(4)に格納されているデータd4
が交換され、変数C(1)とC(4)とに“1”が、変
数xに“0”が設定される。
【0088】次いで、ステップS27からS31までを
2回繰り返したのちに、ステップS32に処理が移行さ
れる。このとき、変数j、k、Aの値は、それぞれ
“0”、“2”、“2”であるので、ステップS32か
らS36までを経て、B(2)に格納されているデータ
2 とB(3)に格納されているデータd3 とが交換さ
れる。
【0089】すなわち、図7の下段に示すように、
1 、d2 、d3 、d4 の順序で構成されていた平文デ
ータは、d4 、d3 、d2 、d1 の順序で並び換えられ
た暗号化データとなる。
【0090】なお、これらの暗号化データは、暗号化し
たときに変数xに入力した値と同一の値を入力すれば、
解読可能な元の平文データに復号化される。このように
して、分割した各エリアを対にする組み合わせに関する
情報を定量的にすれば、通常の暗号化技術のように暗号
キー/復号キーを用いるようにした場合であっても、平
文データを暗号化するときと同一の処理で、暗号化デー
タを元の平文データに復号化することができる。
【0091】なお、上記第1の実施の形態においては、
各エリアをさらに複数のブロックに分割するように構成
した場合について説明したが、これに限らず、各エリア
を複数のブロックに分割しないように構成してもよい。
【0092】また、上記第1の実施の形態においては、
エリアを交換する際に、そのエリアに格納されているデ
ータを構成するビットを反転させるように構成した場合
について説明したが、これに限らず、ビットを反転させ
ないように構成してもよい。
【0093】さらに、上記第1の実施の形態において
は、各エリアおよびブロックをそれぞれ一度だけ交換す
るように構成した場合について説明したが、これに限ら
ず、すべてのエリアおよびブロックを必ず1度だけ交換
するという処理を単位交換処理とし、各単位交換処理ご
とに、対にするエリアの組み合わせを異ならせて、これ
を複数回実行するように構成してもよい。
【0094】さらに、上記第1の実施の形態において
は、暗号キー/復号キーを用いないで構成した場合につ
いて説明したが、これに限らず、例えば、エリアの分割
個数Nまたはブロックの分割個数Mを暗号キーおよび復
号キーとして用いるように構成してもよい。
【0095】さらに、上記第1の実施の形態において
は、ブロック同士を交換してから、エリア同士を交換す
るように構成した場合について説明したが、これに限ら
ず、エリア同士を交換してから、ブロックを交換するよ
うに構成してもよい。
【0096】さらに、上記第1の実施の形態において
は、各エリアをさらに複数のブロックに分割した2段階
の構成について説明したが、これに限らず、ブロックを
さらに複数の微小なブロックに分割する3段階の構成に
したり、多段階の構成にしたりするのであってもよい。
【0097】さらに、上記第2の実施の形態において
は、各エリアをさらに複数のブロックに分割しないよう
に構成した場合について説明したが、これに限らず、各
エリアを複数のブロックに分割するように構成してもよ
い。
【0098】さらに、上記第2の実施の形態において
は、エリアを交換する際に、そのエリアに格納されてい
るデータを構成するビットを反転させないように構成し
た場合について説明したが、これに限らず、ビットを反
転させるように構成してもよい。
【0099】さらに、上記実施の形態においては、各エ
リアまたは各ブロックが偶数個構成されるように分割し
た場合について説明したが、これに限らず、それらが奇
数個構成されるように分割してもよい。そうすると、す
べてのエリアまたはブロックのうち、一つだけ交換され
ないエリアまたはブロックが存在してしまうが、対象デ
ータを膨大な数のエリアが構成されるように分割し、さ
らに、そのエリアも膨大な数のブロックが構成されるよ
うに分割すれば、一つだけ交換されていないエリアまた
はブロックを発見することが極めて困難となるので、特
に問題は生じない。
【0100】さらに、上記実施の形態においては、エリ
アに格納されているデータを構成するすべてのビットを
反転させるように構成した場合について説明したが、こ
れに限らず、あらかじめ設定した特定のビットのみを反
転させるように構成してもよい。このようにすれば、例
えば、ビットを反転させる位置を特定する情報を暗号キ
ー/復号キーとして用いることもできる。
【0101】さらに、上記実施の形態において、演算処
理部3で、図3および図6のフローチャートに示す処理
を実行するにあたっては、主記憶部4にあらかじめ格納
されているプログラムを実行する場合について説明した
が、これに限らず、これらの手順を示したプログラムが
記録された記録媒体から、そのプログラムを主記憶部4
に読み込んで実行するようにしてもよい。ここで、記録
媒体とは、RAM、ROM、FD、コンパクトディス
ク、ハードディスクまたは光磁気ディスク等の記録媒体
であって、電子的、磁気的、光学的等の記録方法のいか
んを問わず、コンピュータで読み取り可能な記録媒体で
あれば、あらゆる記録媒体を指していうものである。
【0102】さらに、上記実施の形態において、図3お
よび図6のフローチャートに示す処理は、ソフトウェア
で構成した場合について説明したが、これに代えて、比
較回路、演算回路、論理回路等の電子回路を組み合わせ
るように構成してもよい。
【0103】上記実施の形態において、ステップS2お
よびS3、または、ステップS22およびS23は、請
求項1、2、4または5記載のデータ分割手段に対応
し、ステップS13、または、ステップS32は、請求
項1または3記載のエリア交換手段に対応し、ステップ
S4、S7、S10およびS11は、請求項3または4
記載のエリア交換手段に対応し、上記単位交換処理を複
数回実行する処理は、請求項3記載のエリア交換手段に
対応している。
【0104】また、上記実施の形態において、ステップ
S6は、請求項6記載のビット反転手段に対応し、キー
ボード6およびステップS24は、請求項7記載の特定
キー入力手段に対応し、ステップS25からS35まで
は、請求項7記載のエリア交換手段に対応している。
【0105】
【発明の効果】以上説明したように、本発明に係るデー
タ変換装置によれば、暗号化データを生成するときと同
一の処理で、その暗号化データを復号化することができ
るから、暗号化/復号化ソフトを開発するために要する
時間や費用、または手間などを大幅に削減することがで
きるとともに、コンパクトなサイズの暗号化/復号化ソ
フトを開発することができるという効果が得られる。
【0106】さらに、本発明に係る請求項4記載のデー
タ変換装置によれば、エリアをさらに細分化することに
よって、各ブロックを対にする組み合わせが増大するか
ら、それらの組み合わせを適宜に選択してバリエーショ
ンに富んだ暗号化/復号化ソフトを開発することができ
るという効果も得られる。
【0107】さらに、本発明に係る請求項2、4、5ま
たは6記載のデータ変換装置によれば、より解読困難な
暗号化データを生成することができるという効果も得ら
れる。
【0108】さらに、本発明に係る請求項2または5記
載のデータ変換装置によれば、すべてのエリアまたはブ
ロックの配置をもれなく拡散することができるという効
果も得られる。
【0109】さらに、本発明に係る請求項7記載のデー
タ変換装置によれば、通常の暗号化技術のように暗号キ
ー/復号キーを用いるようにした場合であっても、暗号
化データを生成するときと同一の処理で、その暗号化デ
ータを復号化することができるという効果も得られる。
【図面の簡単な説明】
【図1】第1の実施の形態の構成を示すブロック図であ
る。
【図2】第1の実施の形態におけるコンピュータ1a,
1bの構成を示すブロック図である。
【図3】データを暗号化または復号化するための処理を
示すフローチャートである。
【図4】平文データを暗号化する場合を説明するための
ブロック図である。
【図5】暗号化データを復号化する場合を説明するため
のブロック図である。
【図6】暗号キー/復号キーを用いてデータを暗号化ま
たは復号化するための処理を示すフローチャートであ
る。
【図7】暗号キーの値に応じて平文データを暗号化する
場合を説明するためのブロック図である。
【図8】従来のデータ変換装置におけるデータの処理過
程を示すブロック図である。
【符号の説明】
1a,1b コンピュータ 2 データ伝送路 3 演算処理部 4 主記憶部 5 補助記憶部 6 インターフェース部 7 キーボード

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータの記憶手段に格納されてい
    るデータを、暗号化及び復号化するデータ変換装置にお
    いて、 データの所定領域を所定長のエリアが複数個構成される
    ように分割するデータ分割手段と、特定の組み合わせで
    対にした前記エリア同士を交換するエリア交換手段と、
    を備えることを特徴とするデータ変換装置。
  2. 【請求項2】 前記データ分割手段は、前記所定領域を
    前記エリアが偶数個構成されるように分割することを特
    徴とする請求項1記載のデータ変換装置。
  3. 【請求項3】 前記エリア交換手段は、前記すべてのエ
    リアを必ず一度だけ交換する単位交換処理を、少なくと
    も1回実行することを特徴とする請求項2記載のデータ
    変換装置。
  4. 【請求項4】 前記データ分割手段は、さらに前記エリ
    アを所定長のブロックが複数個構成されるように分割す
    るブロック分割処理を、前記すべてのエリアについて等
    しく実行し、前記エリア交換手段は、同一エリア内で特
    定の組み合わせで対にした前記ブロック同士を交換する
    ブロック交換処理を、前記すべてのエリアについて等し
    く実行することを特徴とする請求項1、2又は3記載の
    データ変換装置。
  5. 【請求項5】 前記データ分割手段は、前記エリアを前
    記ブロックが偶数個構成されるように分割することを特
    徴とする請求項4記載のデータ変換装置。
  6. 【請求項6】 データの前記所定領域を構成するビット
    を反転するビット反転手段を備えることを特徴とする請
    求項1、2、3、4又は5記載のデータ変換装置。
  7. 【請求項7】 前記エリアを対にする組み合わせを特定
    するための特定キーを入力する特定キー入力手段を備
    え、 前記エリア交換手段は、特定キー入力手段から入力され
    た特定キーに基づいて前記各エリアを対にすることを特
    徴とする請求項1、2又は6記載のデータ変換装置。
JP9104634A 1997-04-22 1997-04-22 データ変換装置 Pending JPH10301489A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9104634A JPH10301489A (ja) 1997-04-22 1997-04-22 データ変換装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9104634A JPH10301489A (ja) 1997-04-22 1997-04-22 データ変換装置

Publications (1)

Publication Number Publication Date
JPH10301489A true JPH10301489A (ja) 1998-11-13

Family

ID=14385886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9104634A Pending JPH10301489A (ja) 1997-04-22 1997-04-22 データ変換装置

Country Status (1)

Country Link
JP (1) JPH10301489A (ja)

Similar Documents

Publication Publication Date Title
KR100806468B1 (ko) 데이터 변환 장치, 데이터 변환 방법 및 데이터 변환 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
JP2862030B2 (ja) 暗号化方式
JP2000162965A (ja) 暗復号装置及び記憶媒体
JP3180836B2 (ja) 暗号通信装置
US6819764B1 (en) Data processor, communication system and recording medium
JPH01261689A (ja) データ秘匿方式
JP2014197913A (ja) 暗号化装置、暗号化方法及びプログラム
WO2012141189A1 (ja) 暗号化方法、暗号化装置および暗号化プログラム
Blaze et al. The MacGuffin block cipher algorithm
US20030174835A1 (en) Data encryption device, data decryption device, and data encryption/decryption device
JPH10301489A (ja) データ変換装置
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
KR100200531B1 (ko) 암호화 방법 및 시스템
JPH10153954A (ja) 暗号装置
JPH10333566A (ja) データ変換装置
JP2001175167A (ja) 暗号化方法、復号化方法及び装置
Usman et al. A data specific comparative study for choosing best cryptographic technique
JP2000089666A (ja) 暗号化/復号化装置
JP2005045699A (ja) ディジタル情報伝送システム及びディジタル情報伝送方法
JPH0418734B2 (ja)
JPH10153955A (ja) 暗号装置
JPH07177139A (ja) データ撹乱回路
JPH06138820A (ja) 暗号化装置及び暗号復号装置