JP2004302378A - Enciphering scheme, deciphering scheme, enciphering system, and deciphering system - Google Patents

Enciphering scheme, deciphering scheme, enciphering system, and deciphering system Download PDF

Info

Publication number
JP2004302378A
JP2004302378A JP2003098243A JP2003098243A JP2004302378A JP 2004302378 A JP2004302378 A JP 2004302378A JP 2003098243 A JP2003098243 A JP 2003098243A JP 2003098243 A JP2003098243 A JP 2003098243A JP 2004302378 A JP2004302378 A JP 2004302378A
Authority
JP
Japan
Prior art keywords
block
plaintext
random number
data
key
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
JP2003098243A
Other languages
Japanese (ja)
Inventor
Shoichi Kiyomoto
尚一 清本
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.)
IO NETWORK KK
Original Assignee
IO NETWORK KK
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 IO NETWORK KK filed Critical IO NETWORK KK
Priority to JP2003098243A priority Critical patent/JP2004302378A/en
Publication of JP2004302378A publication Critical patent/JP2004302378A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an enciphering scheme in which the risk of an enciphered message being decoded by a third party can almost be precluded, the data amount between a plain text and its enciphered text does not change at all, and whose processing speed is high. <P>SOLUTION: In the enciphering scheme, the plain text to be enciphered is divided for every arbitrary number of bits, a plurality of blocks are successively selected according to the value of a register for determining the processing order of the objects, a random number is generated by a key scheduler from key block data obtained by dividing given key data for the same number of bits as the number of division bits of the plain text and position information focused on by the selected plain text block, and the plain text block is exchanged with the destination block using the value of the random number as the destination block number. Further, for this enciphering scheme, the following functions or the like can be used: the function of using the calculation result of the random number for next calculation; the function of selecting an exchange destination block number considering the value itself of the block focused on by the plain text block; the function of carrying out enciphering processing by setting the result obtained by carrying out an exclusive OR operation on the generated random number and a data block to the data block at the same position of the enciphered text. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明が属する技術分野】
この発明は、例えば暗号通信を行うシステムに用いられるデータの暗号化・復号化する共通鍵方式に関するものである。
【0002】
【従来の技術】
高度情報化社会と呼ばれる現代社会では、コンピュータネットワークを基盤として、重要な文書・画像情報が電子的な情報と言う形で伝送通信されて処理されているが、このような伝送通信においては伝送文の秘密保持の面から暗号化が極めて重要な意味を有する。
【0003】
暗号化方式は、大別すると共通鍵暗号系(対称鍵暗号系)と公開鍵暗号系(非対称鍵暗号系)との二つに分類でき、この中共通鍵暗号系では、暗号化鍵と復号鍵とが等しく、送信者と受信者とが共通鍵を持つことによって暗号通信を行う。即ち、送信者が平文を秘密の共通鍵に基づいて暗号化して受信者に送り、受信者はこの共通鍵を用いて暗号文を平文に復号化するものであり、現在最も広く利用されている共通鍵暗号系としてDES(Data Encryption Standard)と呼ばれる方式がある。
【0004】
これに対して公開鍵暗号系では、暗号化鍵と復号鍵とが異なっており、公開されている受信者の公開鍵で送信者が平文を暗号化し、受信者が自身の秘密鍵でその暗号文を復号することによって暗号通信を行うが、この場合公開鍵は暗号化のための鍵、秘密鍵は公開鍵によって変換された暗号文を復号するための鍵であり、公開鍵によって変換された暗号文は秘密鍵でのみ復号することができる等の利点があり、これに属するものとしてRSA(Rirest−Shamir−Adleman)と称される方式が各方面で利用されている。
【0005】
【発明が解決しようとする課題】
前述したDES暗号系は、既に第三者により不当解読されると言う事態が発生しており、このため現在では、同様の暗号方式を3段階重複するトリプルDES暗号系が採用され始めているが、これは平文を複数のブロックに区切りそれに対して転置と組み合わせを繰り返す変換を基本にする方式であるため、反復計算攻撃により何れは解読されると言うリスクを抱えており、また通信転送路上でのノイズ等の影響によるデータの僅かな「化け」により、復号が不可能になると言った問題点も抱えている。
【0006】
一方、RSA法の信頼性は、暗号鍵としてのデータのビット長が十分である場合には、かなり高いものとなることが保証されているが、この信頼性を確保するために、現在では256ビット長の暗号鍵データを使うのが主流となっているが、ときとして、これでは短すぎ、最近では更に512ビットや1024ビットのデータ長の暗号鍵が必要とされている。
【0007】
しかしながら、やたらにビット長を長くすることは、実用上演算時間が長くなり、必ずしも実用的とは言えないし、逆にビット長を短くした場合には、信頼性がかなり低下する。
【0008】
この発明は上記のような従来の暗号方式に比べて、第三者に解読されるおそれが殆どなく、また平文と暗号文の間でデータ量が全く変化せず、暗号化及び復号化の処理速度は従来のどの方式よりも速く、しかも暗号文の転送中にデータの「化け」が発生したとしても、その影響が復号化した結果に伝播し難い暗号化方式を提供することを目的とする。
【0009】
【課題を解決するための手段】
この発明は、上記実情に鑑み、
平文からなる暗号文を得る暗号化方法において、暗号化すべき平文を任意のビット数ごとに分割してなる複数のブロックを、処理対象ブロックの処理順番を決めるレジスターの値に従い順次選定し、一方与えられた鍵データを上記平文の分割ビット数と同じビット数ごとに分割した一つの鍵ブロック・データと上記選定された平文ブロックの着目した平文ブロックの位置情報とから乱数を生成し、その値を行き先ブロック番号と選定して、上記平文ブロックと行き先ブロックを交換する暗号化方式を提案するものである。
【0010】
なお、この発明においては、平文中の着目した平文ブロックの値そのものも、前記交換先ブロック番号選定に加味してもよく、また平文中の着目した平文ブロックと、上記鍵データのブロック情報から算出される乱数の算出結果とを排他的論理和処理して得られた結果を暗号文の同じ位置のデータ・ブロックとすることもできる。
【0011】
また、この発明において鍵データのブロックを要求する際、先頭から順次鍵データの1ブロックを渡し、該鍵データの終端に至った場合、もう一度先頭に戻って、鍵ブロック・データを用意する鍵スケジュラーを使用することができ、乱数を生成する際に、前回の乱数の算定結果を次回の乱数計算にフィードフォワードする乱数生成器を使用することができる。
【0012】
更に、この発明においてはブロックの処理順番を決めるレジスターに正にセットすると、平文を上り方向に順に1ブロックづつ暗号処理し、ブロックの処理順番を決めるレジスターを負に切替えることにより、平文を下り方向に1ブロック単位で順次暗号化するレジスター機能を具備し、平文を上り方向と下り方向との往復処理することにより暗号化するができる。
【0013】
なお、この発明に係る暗号化方式において、着目したブロックの次のブロックとその交換先を、上記ブロックの処理順番を決めるレジスターの値に応じて、正であれば上り方向に、負であれば下り方向に限定して処理してもよい。
【0014】
この処理は、ブロック単位での処理の進む方向のブロックと交換するものであり、以下「前方処理」と記す(図3、図4参照)。
【0015】
また、この発明に係る暗号化方式において、着目したブロックの次のブロックとその交換先を、上記ブロックの処理順番を決めるレジスターの値に応じて、正であれば下り方向に、負であれば上り方向に限定して処理してもよい。
【0016】
この処理は、ブロック単位での処理の進む方向とは反対の方向のブロックと交換するものであり、以下「後方処理」と記す(図3、図4参照)、この発明においては「前方処理」と「後方処理」の両方を行ってもよい。
【0017】
なお、「前方処理」で暗号化された文は「後方処理」で復号化し、逆に「後方処理」で暗号化された文は「前方処理」で復号化される。
【0018】
更に、この発明においては暗号化すべき平文を任意のビット数ごとに分割して、処理対象ブロックの処理順番を決めるレジスターを設け、そこに書かれた値に従い順次平文ブロックを暗号化処理する手段と、
与えられた鍵データを上記の平文ブロックと同じ長さのビット数ごとに分割し、その鍵ブロックデータを順に上記暗号処理に供給する鍵スケジュラー手段と、
上記平文ブロックの着目されたデータ・ブロックの位置情報と、鍵スケジュラーから適宜渡される鍵ブロック・データから乱数を生成すると共に、乱数の算定結果を次回の乱数計算にフィードフォワードする機能を具備した乱数生成手段と、
上記平文ブロックの着目したデータ・ブロックの値そのものも算定に加味して交換先ブロック番号を選定し、着目ブロックと交換先ブロックの交換を指示する交換先指示手段と、
上記平文ブロックの着目したデータ・ブロックと、鍵スケジューラーから適宜渡された鍵ブロック・データから算出される上記乱数生成器の結果とを排他的論理和演算処理して得られた結果を暗号文の同じ位置のデータ・ブロックにセットする手段とを備えた暗号化システムを提案するものである。
【0019】
なお、この発明においては平文ブロックの処理順番を決めるレジスターに+1をセットし、上り方向の順に1ブロックづつ排他的論理和演算処理し、また平文の着目したブロックの手前のブロックと、下り方向に限定して乱数計算により算定して得られた交換先を、交換し上り方向の暗号化を実施し、更に平文ブロックの処理順番を決めるレジスターを−1に切替え、暗号化処理の先頭ポインターを出来上がった上りの暗号結果のデータ終端のブロックに置き、下り方向に1ブロック単位で順次上記排他的論理和演算処理し、また平文の着目したブロックの上り側の次のブロックと、上り方向に限定して乱数計算により算定して得られた交換先を、交換して暗号化する「前方処理」による暗号化手段を備えてもよい。
【0020】
また、平文ブロックの処理順番を決めるレジスターに+1をセットし、上り方向の順に1ブロックづつ排他的論理和演算処理し、また平文の着目したブロックの手前のブロックと、下り方向に限定して乱数計算により算定して得られた交換先を、交換し上り方向の暗号化を実施し、更に平文ブロックの処理順番を決めるレジスターを−1に切替え、暗号化処理の先頭ポインターを出来上がった上りの暗号結果のデータ終端のブロックに置き、下り方向に1ブロック単位で順次上記排他的論理和演算処理し、また平文の着目したブロックの上り側の次のブロックと、上り方向に限定して乱数計算により算定して得られた交換先を、交換して暗号化する「後方処理」による暗号化手段を備えてもよい。
【0021】
なお、「前方処理」による暗号化手段を備えた暗号化システムにより生成した暗号文に対しては、「後方処理」による復号化手段を備えた復号化システムにより復号化され、逆に「後方処理」による暗号化手段を備えた暗号化システムにより生成した暗号文に対しては、「前方処理」による復号化手段を備えた復号化システムにより復号化される。
【0022】
【実施例】
以下、この発明を図示の実施例に基づいて詳細に説明すると、暗号化しようとする平文(P)を図1に示す。図中、数字の0番からN番までのがブロック番号を表す。
【0023】
この実施例ではブロック番号を順に右から暗号化処理するのを「上り方向」として、「上り2」の符号を付し、逆に終端N番から左に0番迄を暗号化処理するのを「下り方向」として、「下り3」の符号を付している。
【0024】
また図3、図4は「前方処理」、「後方処理」の一例を図示したものであり、「前方処理」では、今i番目のブロックを暗号化しようとする場合、「前方処理」上り暗号化(往路)(図3)では、i+1番目のブロックと更に右のデータ・ブロックとを交換し、「前方処理」下り暗号化(復路)(図4)では、i−1番目のブロックと更に左のデータ・ブロックとを交換する。
【0025】
一方、「後方処理」では、「後方処理」上り暗号化(往路)(図4)では、i−1番目のブロックと更に左のデータ・ブロックとを交換し、「後方処理」下り暗号化(復路)(図3)では、i+1番目のブロックと更に右のデータ・ブロックとを交換する。
【0026】
また図2において、暗号化に際して任意に与えられる「鍵」データ(長さK+1ブロック)の例を図示するものであり、この「鍵」データは平文データと同一のビット長さで、先頭の0番から最終のK番までのブロックに区切られるが、この実施例では簡単のために、鍵データのブロックは小さい番号から順に大きい番号のブロックへと暗号処理に渡されるものとする。
【0027】
なお、この発明で使用される鍵スケジュラーは、例えば平文データより短い場合、終端のK番目のブロックの次は、先頭の0番に戻るものとして周期的に出力するものとする。
【0028】
以上のことを踏まえて暗号処理のシステムの構成例を図5に基づいて説明すると、10は鍵データK、11は鍵データK10のブロックを要求される際、先頭から順次鍵データの1ブロックを渡し、鍵データK10の終端に至った場合、もう一度先頭に戻って、鍵ブロック・データを用意する鍵スケジュラー、15は交換先指示器、17は乱数発生器、18は排他的論理和演算(XOR)器、26はレジスター、27はブロックの処理順番を決めるレジスターの加算・減算器である。
【0029】
暗号化すべき平文24と鍵データK10は同じビット長さに分割してあり、14は平文24を分割した複数のブロックのうち着目したブロックPであり、この実施例では1ブロックの長さを8ビット(1バイト)とした場合を説明する。
【0030】
まず、与えられた鍵データK10は鍵スケジュラー11を経由して1ブロックK12が乱数生成器13に渡される。
【0031】
この図の実施例では、平文データのブロックの長さも8ビット長なので、排他的論理和演算(XOR)器18で乱数発生器の出力13と着目ブロックPとの演算が実施され、その出力が暗号処理後のC19に送られる。
【0032】
次に、鍵スケジュラー11から次の1ブロック分の鍵データK16を取り出し、乱数発生器17に送る。
【0033】
乱数発生器17には、今処理している平文データ・ブロックP14の情報も、次のデータ・ブロックPi+120の交換先の範囲として計算に加味するために渡される。なお、図の例では、N−i+1が交換先の範囲を示す。
【0034】
乱数発生器17から出力rを算出し、それを交換先指示器15に送り、次式によりi’を求める。
【0035】
【数1】

Figure 2004302378
【0036】
ここで、modは剰余算を表す。
このi’の値に従い、Pi+120とPi’21とを交換し、暗号結果Ci+122とCi’23にセットする。
【0037】
次に処理するデータ・ブロックがi+1(上り)か又はi−1(下り)かは、レジスター26の値に従って、加算(+1)・減算(−1)器27が決定する。
【0038】
次に、図6に従って乱数rの生成器R(K、W)の処理の詳細を説明する。なお、図中記号Lは、この実施例の暗号化システムを塔載する計算機の能力で扱い得る最大の値を意味する。例えばメモリー容量の都合で処理し得る値から決まるが、一方で処理し得る最大の平文データ長と定義してもよい。
【0039】
次に、記号Wは乱数計算の結果得られる値の範囲の上限値を与える。即ち、
【0040】
【数2】
Figure 2004302378
を表す。
【0041】
次に記号Sは乱数の核(種)を表し、記号SLはその核の上限値を表す。
【0042】
図中のステップ33からも明らかなように、SとSLの値は乱数生成器Rを呼ぶたびに、次の呼ばれる際の値が演繹的に定まる。
【0043】
これを図6のフローチャートに沿って説明すると、前回の乱数生成器によって定められた値SLは、ステップ31により最大値Lを超えない値一杯まで拡大されて、それと同時に乱数の種Sは、鍵のブロック・データを鍵スケジュラー11から受け取り下位ビットに加える形で拡大される(ステップ32)。
【0044】
次に、ステップ33に従い、SLを与えられた乱数計算の範囲Wに合わせて、ステップ34により目的のrを求め、更に前回の乱数計算結果SLを次回の乱数計算にフィードフォワードして核Sをセットし直す(ステップ35)。
【0045】
【発明の効果】
この発明により、従来の共通鍵方式に比べて、鍵の長さに依存することなく、平文と暗号文の間でデータ量が全く変化しないこととプログラム・サイズが小さくて済むことから、電子回路上への搭載に適していて、高速での暗号化及び復号化の処理を実現できる。
【0046】
しかも、暗号文の転送中にデータの「化け」が発生したとしても、復号側で「後方処理」を採用する場合、処理の後方にしか復号結果が出現しないため、その影響が伝播し難い暗号化方式を実現することができる。
【図面の簡単な説明】
【図1】N+1バイト長さの平文(P)のディジタル・データ例
【図2】K+1バイト長さの鍵(K)のディジタル・データ例
【図3】平文ブロックの「上りの前方処理」又は「下りの後方処理」例を示す図
【図4】平文ブロックの「上りの後方処理」又は「下りの前方処理」例を示す図
【図5】平文ブロックの「上りの前方処理」又は「下りの後方処理」による暗号化システム構成図
【図6】乱数生成器R(K、W)→tの処理を示すフローチャート[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a common key system for encrypting and decrypting data used in a system for performing encrypted communication, for example.
[0002]
[Prior art]
In a modern society called an advanced information society, important document and image information are transmitted and processed in the form of electronic information on the basis of computer networks. Encryption is extremely important in terms of security.
[0003]
Encryption methods can be broadly classified into two types, a common key encryption system (symmetric key encryption system) and a public key encryption system (asymmetric key encryption system). Among these, in the common key encryption system, an encryption key and a decryption key are used. The cryptographic communication is performed when the key is equal and the sender and the receiver have a common key. That is, the sender encrypts the plaintext based on the secret common key and sends it to the receiver, and the receiver decrypts the ciphertext into the plaintext using the common key, and is currently most widely used. As a common key cryptosystem, there is a method called DES (Data Encryption Standard).
[0004]
On the other hand, in the public key cryptosystem, the encryption key and the decryption key are different. The sender encrypts the plaintext with the public key of the public receiver, and the receiver encrypts the plaintext with his / her own private key. The cipher communication is performed by decrypting the sentence. In this case, the public key is a key for encryption, and the private key is a key for decrypting the cipher text converted by the public key. The ciphertext has an advantage that it can be decrypted only with a secret key, and a method called RSA (Rest-Shamir-Adleman) is used in various fields as a belonging to this.
[0005]
[Problems to be solved by the invention]
In the DES encryption system described above, a situation has occurred in which a third party has already illegally decrypted the data. Therefore, at this time, a triple DES encryption system in which the same encryption method is duplicated in three stages has begun to be adopted. Since this is a method based on a transformation in which a plaintext is divided into a plurality of blocks and repeated transposition and combination are performed on the basis, there is a risk that it will be decrypted by an iterative calculation attack, and there is a risk that it will be decoded on the communication transfer path There is also a problem that decoding becomes impossible due to slight "garbled" of data due to the influence of noise or the like.
[0006]
On the other hand, the reliability of the RSA method is guaranteed to be considerably high when the bit length of the data as the encryption key is sufficient. However, in order to secure this reliability, 256 bits are currently used. The use of bit-length cryptographic key data is the mainstream, but this is sometimes too short, and recently a cryptographic key with a data length of further 512 bits or 1024 bits is required.
[0007]
However, if the bit length is lengthened excessively, the calculation time becomes long in practice, and it is not always practical. If the bit length is shortened, the reliability is considerably reduced.
[0008]
Compared with the conventional encryption method as described above, the present invention has almost no risk of being decrypted by a third party, does not change the data amount between plaintext and ciphertext at all, and performs encryption and decryption processing. The purpose is to provide an encryption method that is faster than any conventional method, and that even if data "garbled" occurs during the transfer of ciphertext, the effect is difficult to propagate to the decrypted result. .
[0009]
[Means for Solving the Problems]
The present invention has been made in view of the above circumstances,
In an encryption method for obtaining a plaintext ciphertext, a plurality of blocks obtained by dividing a plaintext to be encrypted into arbitrary bits are sequentially selected in accordance with a value of a register that determines a processing order of a processing target block. A random number is generated from one key block data obtained by dividing the obtained key data by the same number of bits as that of the plaintext and the position information of the plaintext block of interest of the selected plaintext block. The present invention proposes an encryption method for exchanging the plaintext block and the destination block by selecting the destination block number.
[0010]
In the present invention, the value of the plaintext block of interest in the plaintext itself may be added to the replacement block number selection, and the value is calculated from the plaintext block of interest in the plaintext and the block information of the key data. The result obtained by performing an exclusive OR operation on the calculated result of the random number and the result can be used as a data block at the same position in the ciphertext.
[0011]
In the present invention, when a block of key data is requested, one block of key data is sequentially passed from the beginning, and when the end of the key data is reached, the key scheduler returns to the beginning again and prepares the key block data. When a random number is generated, a random number generator that feeds forward the calculation result of the previous random number to the next random number calculation can be used.
[0012]
Further, in the present invention, if the register for determining the processing order of the blocks is set to positive, the plaintext is encrypted one block at a time in the upward direction, and the register for determining the processing order of the blocks is switched to the negative, so that the plaintext is transmitted in the downward direction. Has a register function of sequentially encrypting one block at a time, so that plaintext can be encrypted by reciprocating up and down directions.
[0013]
In the encryption system according to the present invention, the block following the block of interest and its replacement destination are determined in accordance with the value of a register that determines the processing order of the block, in the upward direction when positive, and in the negative direction when negative. The processing may be limited to the down direction.
[0014]
This processing is to replace the block in the direction in which the processing proceeds in block units, and is hereinafter referred to as “forward processing” (see FIGS. 3 and 4).
[0015]
Further, in the encryption method according to the present invention, the block following the block of interest and its replacement destination are determined according to the value of a register that determines the processing order of the block, if positive, in the downward direction, if negative, The processing may be limited to the upward direction.
[0016]
This process is to replace a block in the direction opposite to the direction in which the process proceeds in block units, and is hereinafter referred to as “backward process” (see FIGS. 3 and 4), and in the present invention, “forward process”. And "backward processing".
[0017]
Note that a sentence encrypted by “forward processing” is decrypted by “backward processing”, and a sentence encrypted by “backward processing” is decrypted by “forward processing”.
[0018]
Further, in the present invention, means for dividing a plaintext to be encrypted into arbitrary bits and providing a register for determining the processing order of the block to be processed, and sequentially encrypting the plaintext block in accordance with the value written therein, ,
Key scheduler means for dividing the given key data by the number of bits having the same length as the plaintext block and sequentially supplying the key block data to the encryption processing;
A random number having a function of generating a random number from the position information of the focused data block of the plaintext block and the key block data appropriately passed from the key scheduler, and feeding the random number calculation result to the next random number calculation. Generating means;
Replacement destination instructing means for selecting the replacement destination block number in consideration of the value itself of the focused data block of the plaintext block in the calculation, and instructing replacement of the focused block and the replacement destination block,
The result obtained by performing an exclusive OR operation on the data block of interest of the plaintext block and the result of the random number generator calculated from the key block data appropriately passed from the key scheduler is used to calculate the result of the ciphertext. Means for setting data blocks at the same position.
[0019]
In the present invention, +1 is set in a register that determines the processing order of the plaintext block, exclusive OR operation is performed for each block in the ascending direction, and the block before the block of interest in the plaintext and the Exchanges the exchange destinations calculated by random number calculation in a limited manner, performs upstream encryption, switches the register that determines the processing order of plaintext blocks to -1, and completes the top pointer of encryption processing In the block at the data end of the upstream encryption result, the exclusive-OR operation is sequentially performed in the downstream direction on a block-by-block basis, and the next block on the upstream side of the block of interest in the plaintext is limited to the upstream direction. Encryption means by "forward processing" for exchanging and encrypting the exchange destination obtained by calculation through random number calculation.
[0020]
In addition, +1 is set to a register that determines the processing order of the plaintext block, exclusive OR operation is performed for each block in the ascending order, and a random number is limited to the block before the block of interest in the plaintext and in the descending direction. The exchange destination obtained by the calculation is exchanged, the upstream encryption is performed, the register for determining the processing order of the plaintext block is switched to −1, and the leading pointer of the encryption process is set to the upstream encryption. The result is placed at the end block of the data, and the above-mentioned exclusive OR operation is performed sequentially in block units in the downstream direction, and the next block on the upstream side of the block of interest in the plaintext and the random number calculation limited to the upstream direction An encryption means by "reverse processing" for exchanging and encrypting the exchange destination obtained by calculation may be provided.
[0021]
Note that a ciphertext generated by an encryption system having an encryption unit by “forward processing” is decrypted by a decryption system having a decryption unit by “backward processing”, and conversely, The cipher text generated by the encryption system provided with the encryption means by "" is decrypted by the decryption system provided with the decryption means by "forward processing".
[0022]
【Example】
Hereinafter, the present invention will be described in detail with reference to the illustrated embodiment. FIG. 1 shows a plaintext (P) to be encrypted. In the figure, numbers 0 to N represent block numbers.
[0023]
In this embodiment, it is assumed that the encryption process is performed from the right in the order of block numbers in the “upward direction”, and the code of “upstream 2” is attached. The sign of “Downward 3” is given as “Downward direction”.
[0024]
FIGS. 3 and 4 show an example of “forward processing” and “backward processing”. In the “forward processing”, when the i-th block is to be encrypted, the “forward processing” In the encryption (outgoing path) (FIG. 3), the (i + 1) th block is exchanged with the data block on the further right, and in the "forward processing" downlink encryption (inbound path) (FIG. 4), the (i-1) th block is further replaced with the (i-1) th block. Swap with left data block.
[0025]
On the other hand, in the "backward processing", in the "backward processing" uplink encryption (outbound path) (FIG. 4), the (i-1) -th block is exchanged with the data block on the left, and the "backward processing" downstream encryption ( In the return path (FIG. 3), the (i + 1) th block and the data block on the right are exchanged.
[0026]
FIG. 2 shows an example of "key" data (length K + 1 block) arbitrarily given at the time of encryption. This "key" data has the same bit length as plain text data, and has a leading zero. The key data is divided into blocks from the number K to the last K. For simplicity, in this embodiment, it is assumed that the blocks of key data are passed to the encryption processing in ascending order of the number.
[0027]
If the key scheduler used in the present invention is shorter than, for example, plaintext data, it is assumed that, after the K-th block at the end, the key scheduler returns to the leading zero and is periodically output.
[0028]
Based on the above, an example of the configuration of the cryptographic processing system will be described with reference to FIG. 5. When a block of key data K is requested at 10, a block of key data is sequentially transmitted from the top when a block of key data K10 is requested. When the key data K10 reaches the end, the key scheduler for returning to the head again to prepare the key block data, 15 is an exchange destination indicator, 17 is a random number generator, and 18 is an exclusive OR (XOR) ) Unit, 26 is a register, and 27 is a register adder / subtracter for determining the processing order of the block.
[0029]
Plaintext 24 and the key data K10 to be encrypted Yes divided into the same bit length, 14 is the block P i that focuses among the plurality of blocks obtained by dividing the plaintext 24, a length of one block in this embodiment The case of 8 bits (1 byte) will be described.
[0030]
First, given the key data K10 is one block K j 12 via the key scheduler 11 is passed to the random number generator 13.
[0031]
In the embodiment of this figure, since the length of the block of the plaintext data is also 8 bits, the exclusive-OR (XOR) unit 18 calculates the output 13 of the random number generator and the block of interest P i, and outputs the result. Is sent to C i 19 after the encryption processing.
[0032]
Next, the next one block of key data K j 16 is extracted from the key scheduler 11 and sent to the random number generator 17.
[0033]
The information of the plaintext data block P i 14 currently being processed is also passed to the random number generator 17 as a range to which the next data block P i + 1 20 is to be replaced. In the example of the figure, N-i + 1 indicates the range of the replacement destination.
[0034]
The output r is calculated from the random number generator 17 and sent to the replacement destination indicator 15 to obtain i ′ by the following equation.
[0035]
(Equation 1)
Figure 2004302378
[0036]
Here, mod represents remainder calculation.
According to the value of i ′, P i + 1 20 and P i ′ 21 are exchanged, and the result is set in the encryption result C i + 1 22 and C i ′ 23.
[0037]
Whether the data block to be processed next is i + 1 (up) or i-1 (down) is determined by the addition (+1) / subtraction (-1) unit 27 according to the value of the register 26.
[0038]
Next, the processing of the generator R (K j , W) of the random number r will be described in detail with reference to FIG. Note that the symbol L in the figure means the maximum value that can be handled by the capacity of the computer on which the encryption system of this embodiment is mounted. For example, it is determined from a value that can be processed due to the memory capacity, but may be defined as the maximum plaintext data length that can be processed.
[0039]
Next, the symbol W gives the upper limit of the range of values obtained as a result of the random number calculation. That is,
[0040]
(Equation 2)
Figure 2004302378
Represents
[0041]
Next, the symbol S represents the kernel (seed) of the random number, and the symbol SL represents the upper limit of the kernel.
[0042]
As is clear from step 33 in the figure, the values of S and SL are determined a priori every time the random number generator R is called.
[0043]
This will be described with reference to the flowchart of FIG. 6. The value SL determined by the previous random number generator is expanded to a value that does not exceed the maximum value L in step 31, and at the same time, the seed S of the random number is Is expanded from the key scheduler 11 by adding it to the lower bits (step 32).
[0044]
Next, according to step 33, the SL is adjusted to the given random number calculation range W, the target r is obtained in step 34, and the previous random number calculation result SL is fed forward to the next random number calculation to obtain the kernel S. Reset (step 35).
[0045]
【The invention's effect】
According to the present invention, compared with the conventional common key method, the electronic circuit is not dependent on the length of the key, and the amount of data does not change between plaintext and ciphertext at all and the program size can be reduced. It is suitable for mounting on the top and can realize high-speed encryption and decryption processing.
[0046]
Moreover, even if the data becomes garbled during the transfer of the ciphertext, if the decryption side adopts "backward processing", the decryption result will appear only after the processing, so the effect is difficult to propagate. Can be realized.
[Brief description of the drawings]
FIG. 1 shows an example of digital data of a plaintext (P) having a length of N + 1 bytes. FIG. 2 shows an example of digital data of a key (K) having a length of K + 1 bytes. Diagram showing an example of “downward backward processing”. FIG. 4 shows an example of “upstream backward process” or “downward forward process” of a plaintext block. FIG. 5 “upstream forward process” or “downstream” of plaintext block. FIG. 6 is a flowchart showing processing of a random number generator R (K j , W) → t

Claims (15)

平文からなる暗号文を得る暗号化方法において、暗号化すべき平文を任意のビット数ごとに分割してなる複数のブロックを、処理対象ブロックの処理順番を決めるレジスターの値に従い順次選定し、一方与えられた鍵データを上記平文の分割ビット数と同じビット数ごとに分割した一つの鍵ブロック・データと上記選定された平文ブロックの着目した平文ブロックの位置情報とから乱数を生成し、その値を行き先ブロック番号と選定して、上記平文ブロックと行き先ブロックを交換することを特徴とする暗号化方式。In an encryption method for obtaining a plaintext ciphertext, a plurality of blocks obtained by dividing a plaintext to be encrypted into arbitrary bits are sequentially selected in accordance with a value of a register that determines a processing order of a processing target block. A random number is generated from one key block data obtained by dividing the obtained key data by the same number of bits as that of the plaintext and the position information of the plaintext block of interest of the selected plaintext block. An encryption method wherein the plaintext block and the destination block are exchanged by selecting the destination block number. 平文中の着目した平文ブロックの値そのものも、前記交換先ブロック番号選定に加味することを特徴とする請求項1記載の暗号化方式。2. The encryption method according to claim 1, wherein the value of the focused plaintext block itself in the plaintext is also taken into consideration in the selection of the replacement block number. ブロックの処理順番を決めるレジスターに正にセットすると、平文を上り方向に順に1ブロックづつ暗号処理し、ブロックの処理順番を決めるレジスターを負に切替えることにより、平文を下り方向に1ブロック単位で順次暗号化するレジスター機能を具備し、平文を上り方向と下り方向との往復処理することにより暗号化することを特徴とする請求項1記載の暗号化方式。When the register that determines the processing order of the blocks is set to positive, the plaintext is encrypted one block at a time in the upward direction, and the register that determines the processing order of the blocks is switched to negative, so that the plaintext is sequentially processed one block at a time in the downward direction. 2. The encryption method according to claim 1, further comprising a register function for encrypting, and encrypting the plaintext by performing a reciprocating process between an upward direction and a downward direction. 平文中の着目した平文ブロックと、上記鍵データのブロック情報から算出される乱数の算出結果とを排他的論理和処理して得られた結果を暗号文の同じ位置のデータ・ブロックとする請求項1記載の暗号化方式。A result obtained by performing an exclusive OR operation on a focused plaintext block in the plaintext and a calculation result of a random number calculated from the block information of the key data is a data block at the same position in the ciphertext. 1. The encryption method according to 1. 請求項1又は請求項4において、鍵データのブロックを要求する際、先頭から順次鍵データの1ブロックを渡し、該鍵データの終端に至った場合、もう一度先頭に戻って、鍵ブロック・データを用意する鍵スケジュラーを使用する暗号化方式。In claim 1 or claim 4, when requesting a block of key data, one block of key data is sequentially passed from the beginning, and when the end of the key data is reached, the process returns to the beginning again and the key block data is transferred. An encryption method that uses a prepared key scheduler. 請求項1において、乱数を生成する際に、前回の乱数の算定結果を次回の乱数計算にフィードフォワードする乱数生成器を使用する暗号化方式。2. The encryption method according to claim 1, wherein when generating the random number, a random number generator that feeds forward the calculation result of the previous random number to the next random number calculation is used. 請求項1の暗号化方式において、着目したブロックの次のブロックとその交換先を、上記ブロックの処理順番を決めるレジスターの値に応じて、正であれば上り方向に、負であれば下り方向に限定することを特徴とする暗号化方式。2. The encryption method according to claim 1, wherein the block following the block of interest and its replacement destination are determined in accordance with the value of a register that determines the processing order of the block, if the block is positive, in the upward direction, and if negative, in the downward direction. An encryption method characterized by being limited to: 請求項1の暗号化方式において、着目したブロックの次のブロックとその交換先を、上記ブロックの処理順番を決めるレジスターの値に応じて、正であれば下り方向に、負であれば上り方向に限定して処理することを特徴とする暗号化方式。2. The encryption method according to claim 1, wherein the block following the block of interest and its replacement destination are determined in accordance with the value of a register that determines the processing order of the block, if positive, in the downward direction, and if negative, in the upward direction. An encryption method characterized by processing limited to. 請求項7の暗号化方式により生成された暗号文に対して、着目したブロックの次のブロックとその交換先を、ブロックの処理順番を決めるレジスターの値に応じて正であれば下り方向に、負であれば上り方向に限定して処理することにより復号化することを特徴とする復号化方式。In the ciphertext generated by the encryption method according to claim 7, if the block following the block of interest and its replacement destination are positive in accordance with the value of the register that determines the processing order of the block, the block goes in the downward direction, If it is negative, the decoding method is characterized in that decoding is performed by processing only in the upward direction. 請求項8の暗号化方式により生成された暗号文に対して、着目したブロックの次のブロックとその交換先を、上記ブロックの処理順番を決めるレジスターの値に応じて、正であれば上り方向に、負であれば下り方向に限定することを特徴とする復号化方式。9. For the ciphertext generated by the encryption method according to claim 8, the block following the block of interest and its replacement destination are determined in accordance with the value of a register that determines the processing order of the block, and if positive, the upstream direction is used. A decoding method characterized in that if it is negative, it is limited to the downlink direction. 暗号化すべき平文を任意のビット数ごとに分割して、処理対象ブロックの処理順番を決めるレジスターを設け、そこに書かれた値に従い順次平文ブロックを暗号化処理する手段と、
与えられた鍵データを上記の平文ブロックと同じ長さのビット数ごとに分割し、その鍵ブロックデータを順に上記暗号処理に供給する鍵スケジュラー手段と、上記平文ブロックの着目されたデータ・ブロックの位置情報と、鍵スケジュラーから適宜渡される鍵ブロック・データから乱数を生成すると共に、乱数の算定結果を次回の乱数計算にフィードフォワードする機能を具備した乱数生成手段と、
上記平文ブロックの着目したデータ・ブロックの値そのものも算定に加味して交換先ブロック番号を選定し、着目ブロックと交換先ブロックの交換を指示する交換先指示手段と、
上記平文ブロックの着目したデータ・ブロックと、鍵スケジューラーから適宜渡された鍵ブロック・データから算出される上記乱数生成器の結果とを排他的論理和演算処理して得られた結果を暗号文の同じ位置のデータ・ブロックにセットする手段とを備えた暗号化システム。
Means for dividing a plaintext to be encrypted for each arbitrary number of bits, providing a register for determining the processing order of the block to be processed, and sequentially encrypting the plaintext block according to the value written therein;
The given key data is divided by the number of bits having the same length as that of the plaintext block, and key scheduler means for sequentially supplying the key block data to the encryption processing, and a key block of the data block of interest of the plaintext block. Random number generation means having a function of generating a random number from the position information and key block data appropriately passed from the key scheduler, and feed-forwarding the calculation result of the random number to the next random number calculation;
Replacement destination instructing means for selecting the replacement destination block number in consideration of the value itself of the focused data block of the plaintext block in the calculation, and instructing replacement of the focused block and the replacement destination block,
The result obtained by performing an exclusive OR operation on the data block of interest of the plaintext block and the result of the random number generator calculated from the key block data appropriately passed from the key scheduler is used to calculate the result of the ciphertext. Means for setting data blocks at the same position.
平文ブロックの処理順番を決めるレジスターに+1をセットし、上り方向に1ブロックづつ上記排他的論理和演算処理し、また平文の着目したブロックの次のブロックと、上り方向に限定して乱数計算により算定して得られた交換先を、交換し上り方向の暗号化を実施し、更に平文ブロックの処理順番を決めるレジスターを−1に切替え、暗号化処理の先頭ポインターを出来上がった上りの暗号処理結果のデータ終端ブロックに置き、下り方向に1ブロック単位で順次上記排他的論理和演算処理し、また平文の着目したブロックの次の下りのブロックと、下り方向に限定して乱数計算により算定して得られた交換先を、交換して暗号化する手段を備えた請求項11記載の暗号化システム。The register which determines the processing order of the plaintext block is set to +1. The exclusive OR operation is performed one block at a time in the upward direction, and the next block of the block of interest in the plaintext and the random number calculation limited to the upward direction. The exchange destination obtained by the calculation is exchanged, encryption in the upward direction is performed, the register for determining the processing order of the plaintext block is switched to −1, and the leading pointer of the encryption processing is set to the upstream encryption processing result. , And the above exclusive OR operation is sequentially performed in the downstream direction in units of one block, and is calculated by random number calculation only for the downstream block next to the block of interest in the plaintext and in the downstream direction. The encryption system according to claim 11, further comprising means for exchanging the obtained exchange destination and encrypting the exchange destination. 平文ブロックの処理順番を決めるレジスターに+1をセットし、上り方向の順に1ブロックづつ排他的論理和演算処理し、また平文の着目したブロックの手前のブロックと、下り方向に限定して乱数計算により算定して得られた交換先を、交換し上り方向の暗号化を実施し、更に平文ブロックの処理順番を決めるレジスターを−1に切替え、暗号化処理の先頭ポインターを出来上がった上りの暗号結果のデータ終端のブロックに置き、下り方向に1ブロック単位で順次上記排他的論理和演算処理し、また平文の着目したブロックの上り側の次のブロックと、上り方向に限定して乱数計算により算定して得られた交換先を、交換して暗号化する手段を備えた請求項11記載の暗号化システム。+1 is set in a register that determines the processing order of the plaintext block, exclusive OR operation is performed for each block in the ascending order, and a block before the block of interest in the plaintext and a random number calculation limited to the descending direction are calculated. The exchanged destination obtained by the calculation is exchanged, the encryption in the upward direction is performed, the register for determining the processing order of the plaintext block is switched to −1, and the leading pointer of the encryption processing is set to the completed upstream encryption result. It is placed in the block at the end of the data, and the above-mentioned exclusive OR operation is sequentially performed in units of one block in the downstream direction. 12. The encryption system according to claim 11, further comprising means for exchanging the obtained exchange destination for encryption. 請求項12の暗号化システムにより生成された暗号文に対して、暗号文ブロックの処理順番を決めるレジスターに+1をセットし、上り方向の順に1ブロックづつ排他的論理和演算処理し、また暗号文の着目したブロックの手前のブロックと、下り方向に限定して乱数計算により算定して得られた交換先を、交換し上り方向の復号化を実施し、更に暗号文ブロックの処理順番を決めるレジスターを−1に切替え、復号化処理の先頭ポインターを出来上がった上りの復号結果のデータ終端のブロックに置き、下り方向に1ブロック単位で順次上記排他的論理和演算処理し、また復号化文の着目したブロックの上り側の次のブロックと、上り方向に限定して乱数計算により算定して得られた交換先を、交換して復号化する手段を備えたことを特徴とする復号化システム。13. The ciphertext generated by the encryption system according to claim 12 is set to +1 in a register for determining the processing order of ciphertext blocks, and exclusive OR operation is performed for each block in the upward direction. A register that determines the processing order of the ciphertext block by exchanging the block before the block of interest and the exchange destination obtained by random number calculation only in the downstream direction and performing decryption in the upward direction. To -1, the leading pointer of the decoding process is placed in the block at the end of the data of the completed uplink decoding result, and the above-mentioned exclusive OR operation is sequentially performed in units of one block in the downlink direction. Means for exchanging and decoding the next block on the up side of the block and the exchange destination obtained by random number calculation only in the up direction. Decoding systems. 請求項13の暗号化システムにより生成された暗号文に対して、暗号文ブロックの処理順番を決めるレジスターに+1をセットし、上り方向に1ブロックづつ上記排他的論理和演算処理し、また暗号文の着目したブロックの次のブロックと、上り方向に限定して乱数計算により算定して得られた交換先を、交換し上り方向の復号化を実施し、更に暗号文ブロックの処理順番を決めるレジスターを−1に切替え、復号化処理の先頭ポインターを出来上がった上りの復号処理結果のデータ終端ブロックに置き、下り方向に1ブロック単位で順次上記排他的論理和演算処理し、また復号化文の着目したブロックの次の下りのブロックと、下り方向に限定して乱数計算により算定して得られた交換先を、交換して復号化する手段を備えたことを特徴とする復号化システム。14. A ciphertext generated by the encryption system according to claim 13, wherein +1 is set to a register for determining a processing order of ciphertext blocks, and the exclusive OR operation is performed block by block in the upward direction. A register that determines the processing order of the ciphertext block by exchanging the block following the block of interest and the exchange destination obtained by calculating the random number only in the upstream direction and performing decryption in the upstream direction. Is switched to −1, the leading pointer of the decoding process is placed in the data end block of the completed uplink decoding result, and the exclusive OR operation is sequentially performed in the downward direction on a block-by-block basis. And a means for exchanging and decoding a downstream block next to the block that has been obtained, and an exchange destination obtained by performing random number calculation only in the downstream direction. Decoding system that.
JP2003098243A 2003-04-01 2003-04-01 Enciphering scheme, deciphering scheme, enciphering system, and deciphering system Pending JP2004302378A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003098243A JP2004302378A (en) 2003-04-01 2003-04-01 Enciphering scheme, deciphering scheme, enciphering system, and deciphering system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003098243A JP2004302378A (en) 2003-04-01 2003-04-01 Enciphering scheme, deciphering scheme, enciphering system, and deciphering system

Publications (1)

Publication Number Publication Date
JP2004302378A true JP2004302378A (en) 2004-10-28

Family

ID=33409823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003098243A Pending JP2004302378A (en) 2003-04-01 2003-04-01 Enciphering scheme, deciphering scheme, enciphering system, and deciphering system

Country Status (1)

Country Link
JP (1) JP2004302378A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187173A (en) * 2008-02-05 2009-08-20 Mitsubishi Electric Corp Image recording apparatus
JP2013011702A (en) * 2011-06-28 2013-01-17 Dainippon Printing Co Ltd Encryption method, encryption program, encryption device, decryption method, decryption program, and decryption device
JP2015072379A (en) * 2013-10-03 2015-04-16 株式会社デンソーウェーブ Terminal device
CN114978496A (en) * 2022-05-16 2022-08-30 青岛大学 Security data deduplication method based on lightweight encryption

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187173A (en) * 2008-02-05 2009-08-20 Mitsubishi Electric Corp Image recording apparatus
JP2013011702A (en) * 2011-06-28 2013-01-17 Dainippon Printing Co Ltd Encryption method, encryption program, encryption device, decryption method, decryption program, and decryption device
JP2015072379A (en) * 2013-10-03 2015-04-16 株式会社デンソーウェーブ Terminal device
CN114978496A (en) * 2022-05-16 2022-08-30 青岛大学 Security data deduplication method based on lightweight encryption

Similar Documents

Publication Publication Date Title
EP3563512B1 (en) Equivocation augmentation dynamic secrecy system
US7860241B2 (en) Simple universal hash for plaintext aware encryption
JP4369618B2 (en) Cryptographic system and method with fast decryption
Iyer et al. A novel idea on multimedia encryption using hybrid crypto approach
JP2013047822A (en) Encryption method for message authentication
GB2551865A (en) Improved stream cipher system
JP2012151805A (en) Data encryption device and memory card having the device
WO2013156758A1 (en) Method of encrypting data
CN1759562A (en) Device, method, and program for encryption and decryption and recording medium
Suguna et al. A study on symmetric and asymmetric key encryption algorithms
JP2004302378A (en) Enciphering scheme, deciphering scheme, enciphering system, and deciphering system
US20130058483A1 (en) Public key cryptosystem and technique
US20230216659A1 (en) Method for processing encrypted data
Walia Cryptography Algorithms: A Review
CN108768923A (en) A kind of real-time encrypted method of chat of the Encryption Algorithm based on Quantum Reversible Logic circuit
KR100388059B1 (en) Data encryption system and its method using asymmetric key encryption algorithm
CN109274856B (en) Asymmetrical image encryption method based on ECC and chaos
CN107483387A (en) A kind of method of controlling security and device
JP2004246350A (en) Enciphering device, deciphering device, enciphering system equipped with the same, enciphering method, and deciphering method
Luu et al. VARIANT OF OTP CIPHER WITH SYMMETRIC KEY SOLUTION
JP2004347885A (en) Encryption device processing method, decryption device processing method, device and program for same
Katti et al. Two level encryption based on One Time Pad and koblitz method of encoding
Abbood et al. Proposal of New Block Cipher Algorithm Depend on Public Key Algorithms
CN114143022A (en) Data encryption method, data transmission method, data decryption method and related devices
CN117318986A (en) Data transmission method and system based on multiple encryption