# Encryption method, encryption device, decryption method and decryption device

FIELD: cryptography.

SUBSTANCE: block for generation of sub-keys data uses two different processes for open generation of sub-keys. During encoding of T*n block of open text, where T - length of predetermined cycle, n - positive integer, sixteen sets of sub-key data is generated. In al other cases two sets of sub-key data are generated. Encryption block encrypts open text, using formed sixteen or two sets of sub-keys data.

EFFECT: higher efficiency.

6 cl, 15 dwg

This application is based on application No. 11-245277 patent Japan, the contents of which are incorporated here by reference.

BACKGROUND of the INVENTION

The technical field

The present invention relates to encryption technology that encrypts the source (open, unencrypted) text to obtain the ciphertext and the decryption of the ciphertext to obtain the original plaintext.

Prior art

In recent years more and more widely used encryption important information before passing it on to protect its content from third parties. Therefore strive to create a more secure form of encryption.

Published application No. H11-7239 at the Japan patent describes a device for encryption of data, providing a more efficient encryption.

This device for data encryption provides for the separation of the plain text received from the outside, many blocks of the plaintext and the encryption of each block of plaintext using the encryption key information to generate encrypted blocks of text. When encrypting the first block of plain text is a device for data encryption uses key data received externally of the device encryption. For the second and subsequent blocks of open t the ksta device for encryption of data, corrects the data key, using a block of encrypted text obtained by encrypting the previous block of plaintext and encrypts the current block of plaintext using these adjusted data key.

Device for data encryption encrypts each block of plaintext as follows. Device for encrypting data includes generating block subclause and encryption blocks from the first to the eighth. The block generation subclause uses the data key to generate the first to the eighth subclause. Each of these eight subclause different. The first block encryption forms the first intermediate block of the plain text block using the first subcloud. The second block encryption forms the second intermediate block of the first intermediate block using the second subcloud. From the third to the seventh encryption blocks similarly forms the third to seventh intermediate blocks of the intermediate blocks from the second to the sixth, using subclause from the third to the seventh. The eighth block encryption generates a ciphertext block of seventh intermediate block using the eighth subcloud.

Each block of plaintext is encrypted using the key data, which differ for each block of plain text. This impedes the accumulation of pairs of open texts that were sifrovany using the same key, and the resulting encrypted texts. The result is improved reliability encryption with respect to the known methods of cryptanalysis, such as differential cryptanalysis and linear cryptanalysis.

However, the block generation subclause in this device, data encryption must generate many different subclause each time you encrypt a block of plaintext. The disadvantage of this is to reduce the speed cryptographic processing.

The INVENTION

The present invention is directed to solving the above problems, and aims at the creation of device encryption, which performs the cryptographic processing at a higher speed and provides a high degree of protection against known methods of cryptanalysis. The invention is also directed to a method of encryption, device encryption, the method of decoding and recording media for storing the encryption software and/or software decoding.

This result is achieved by using an encryption method for use by the device encryption, which encrypts data plaintext consisting of many blocks, and the encryption method includes the following steps: receiving at the same time one data block of the plaintext in order by external device relative to the and encryption; selecting the first mode or the second mode for the current block obtained at the stage of receiving unit, in accordance with how many blocks have been received; the key generation to generate a first group consisting of a predetermined number n of different sbloca when selecting the first mode and the second group consisting of less than n different subclause selecting the second mode; and encryption for the encryption of the current block by transforming the current block using n conversion processes in order, whereby in the first mode, each of the n transformation processes associated with different subclock in the first group and is performed using related subclause, and in the second mode n conversion processes associated with subclone in the second group, and each of them is performed using the associated subclause.

In the proposed method in the second mode generates less subclause than in the first mode. This reduces the decrease in processing speed due to the generation of subclause when encrypting blocks.

In the selection step can be selected the first mode for a block, when the number of received blocks is equal to a multiple of a predetermined magnitude, and a second mode for all other cases.

In the proposed method, the first mode is selected only for certain blocks in the data clear text. The second mode is selected for all other blocks. This means that the second mode is selected more often than the first mode, and that the reduction of speed cryptographic processing for full data plaintext consisting of blocks may be reduced.

The encryption appliance may include means for storing the initial value, at the stage of encryption may be the encryption of the current block to generate a ciphertext block having a predetermined length, and at the stage of generation of the key can be generated in the first group using the initial value in the first mode and the second group using the initial value and the ciphertext block is formed on the last stage of the encryption in the second mode.

In the proposed method, each block of plaintext is encrypted using a different key data. This makes it difficult for third parties accumulation pairs of plaintext that is encrypted using the same key, and the resulting encrypted texts. This increases the security against known methods of cryptanalysis plain text, such as differential cryptanalysis and linear cryptanalysis.

This result is also achieved in a method of interpretation for use by the decoding device, which deshifriral the data encrypted text block of ciphertext, moreover, the method of decoding comprises the following steps: receiving at the same time one data block of the ciphertext in order the external path relative to the decoding device; selecting a first mode or a second mode for use with the current ciphertext block is obtained by the phase obtaining unit, in accordance with the number of blocks encrypted text was received; the key generation to generate a first group consisting of a predetermined number n of different sbloca when selecting the first mode and the second group consisting of less than n different subclause selecting the second mode, and the step of decoding for decoding a current block of encrypted data by transformation of the current block of encrypted data using n conversion processes in order, in the first mode, each of the n transformation processes associated with different subclock in the first group and is performed using the associated subclause, and in the second mode n conversion processes associated with subclone in the second group, and each of them is performed using the associated subclause.

In the proposed method in the second mode generates less subclause than in the first mode. This reduces the decrease in processing speed due to the generation of ublica when decoding blocks.

This result can be achieved in the way of interpretation for use by the decoding device, which deshifriral data encrypted text block of ciphertext, the method of decoding comprises the following steps: receiving at the same time one data block of the ciphertext in order the external path relative to the decoding device; selecting a first mode or a second mode for use with the current ciphertext block is obtained by the phase obtaining unit, in accordance with the number of blocks encrypted text was received; the key generation to generate a first group consisting of a predetermined number n of different sbloca when selecting the first mode and the second group consisting of less than n different subclause selecting the second mode; and decoding for decoding a current block of encrypted data by converting the current block of encrypted data using n conversion processes in order, whereby in the first mode, each of the n transformation processes associated with different subclock in the first group and is performed using the associated subclause, and in the second mode n conversion processes associated with subclone in the second group, and each of them is using the associated subclause.

In the proposed method, the first mode is selected only for certain blocks of data in clear text. The second mode is selected for all other blocks. This means that the second mode is selected more often than the first mode, and that reduction of the processing speed when the full interpretation of the data encrypted text composed of blocks of the ciphertext can be reduced.

The decoding device may include means for storing the initial value, and at the stage of generation of the key is generated by the first group using the initial value in the first mode, and generates the second group using the initial value and the ciphertext block is created directly before the current ciphertext block is in the second mode.

In the proposed method, each ciphertext block is detectable using different key data. This makes it difficult for third parties accumulation pairs of plaintext is encrypted using the same key, and the resulting encrypted texts. This increases the security against known methods of cryptanalysis plain text, such as differential cryptanalysis and linear cryptanalysis.

As described above, the present invention provides a protection level similar to the level zasedenost is described conventional technology, at the same time increasing the speed cryptographic processing. The invention can be used, for example, in the secret transfer of images and other information in real-time. In the modern needs improvements multimedia technologies this makes the effect of this invention is particularly significant.

BRIEF DESCRIPTION of DRAWINGS

The objectives, advantages and features of the invention are explained in the following description of particular embodiments illustrated by the drawings, which shows the following:

Figure 1 - block diagram of a system 5 encrypted communication corresponding to a preferred variant implementation of the present invention;

Figure 2 - block diagram block 10 encryption of data in the transmitting device 1;

Figure 3 - block diagram block 100 encryption and block 101 generation data subclause;

4 is a block diagram of the block 301 randomization data;

Figa and FIGU is a block diagram showing which of the many datasets subclause formed by block 101 generation data subclause, is each of the blocks of encryption 1-nd to 6-nd block 100 encryption, and figa matches the type And generation of data subclock and FIGU - type In generation of data subclock;

6 is a table of matching the value of the reference input data key and data generation of subclause;

Phi is .7 - block diagram block 20 interpretation of the data in the receiving device 2;

Fig is a block diagram illustrating the operation of the transmitting device 1;

Fig.9 is a block diagram illustrating the operation of the unit 10 encryption of the data transmission device 1;

Figure 10 is a block diagram illustrating operation unit 105 of the counter block 10 data encryption;

11 is a block diagram illustrating operation of block 104 register block 10 data encryption;

Fig is a block diagram illustrating the first part of the sequence of operation unit 101 of the data generation of subclause block 10 data encryption;

Fig is a block diagram illustrating the second part of the sequence of operation unit 101 of the data generation of subclause block 10 data encryption, and

Fig is a block diagram illustrating operation of block 301 randomization data block 101 generation data subclause.

DESCRIPTION of the PREFERRED OPTION IMPLEMENTATION

The following steps are encrypted communication system 5 according to the preferred implementation of the present invention.

1. Performing encrypted communication system 5

As shown in figure 1, the system 5 contains encrypted communication transmitting device 1, the receiving device 2 and tract 3 assists. Tract 3 transmission connects the transmitting device 1 and the receiving device 2.

The transmitting device 1 and the receiving device 2 in advance provided with one and the same data encryption key. The transmitting device 1 encrypts the data open (not encrypted) text, using the data encryption key to generate the data of the ciphertext, and then transmits the generated encrypted text in the receiving device 2 through the path 3 assists. The receiving device 2 receives the data encrypted text, deshifriral data encrypted text using the data encryption key, and thus generates the data to be decrypted text. Here the interpretation is performed by the receiving device 2, an operation which is inverse to the encryption operation performed by the transmitting device 1, so that the data to be decrypted text, formed as a result of interpretation are the same as those of plain text.

1.1 Performing the transmitting device 1 and the receiver 2

(1) the Transmitting device 1

As shown in figure 1, the transmitting device 1 includes a block 12 data storage plaintext block 13 storage of encryption keys, block 10 data encryption and the transmitting unit 11.

In block 12 of the data storage plaintext pre-recorded data in clear text. These data plaintext are digital data, which include at least 64 bits and can represent, for example, encoded in digital is the new form of audio information or image information.

In block 13 data storage encryption key recorded in advance 64-bit data encryption key. The data encryption key is selected in advance for the transmitting device 1 and the receiving device 2.

Block 10 data encryption reads plain text from the block 12 storage of plain text and data encryption key from the block 13 storage of encryption keys. Then the block 10 data encryption encrypts data plaintext using the encryption key information to generate the data encrypted text. Block 10 data encryption generates received data encrypted text in the transmitting unit 11. Block 10 data encryption are described in more detail below.

The transmitting unit 11 receives the data encrypted text, performs parallel-serial conversion of data encrypted text and then modulates and amplifies the converted data to generate transmitted signals. The transmitting unit 11 transmits these signals via path 3 transmission to the receiving device 2.

(2) the Receiving device 2

As shown in figure 1, the receiving device 2 includes a block 22 storing data to be decrypted text, block 23 storage of encryption keys, block 20 interpretation of data, and the receiving unit 21.

The receiving unit 21 receives signals transferred from the e by the transmitting unit 11 of the transmitting device 1 through the path 3 assists, demodulates the signals and performs serial-to-parallel conversion to obtain data encrypted text.

The receiving unit 21 produces an output ciphertext block 20 interpretation of the data.

In block 23 storage of encryption keys pre-written 64-bit data encryption key. The data encryption key is the same as recorded in the block 12 store data encryption keys of the transmitting device 1.

Block 20 interpretation of the data receives the data encrypted text and reads out the encryption key from the block 23 storage of encryption keys. Block 20 interpretation of data deshifriral data encrypted text using the data encryption key to obtain the data to be decrypted text. Block 20 interpretation of the data writes the data to be decrypted text in the block 22 storing data to be decrypted text. The decoding performed by the block 20 interpretation of data is an operation which is inverse to the encryption operation performed by the block 10 data encryption. This means that the data to be decrypted text is the same as the original data unencrypted clear text. Block 20 interpretation of data are described in detail below.

Unit 22 storing data to be decrypted text stores the data to be decrypted by those who a hundred.

1.2 Block 10 data encryption

As shown in figure 2, the block 10 contains data encryption unit 100 encryption unit 101 generation data sbloca, logical block 102 "exclusive OR", block 103, the data conversion unit 104 register, the block counter 105, block 106, the control data generation of subclause, block 107 control register block 108 division into blocks, block 109 Association of blocks, a block 110 receiving the key and the block 111 of the storage key.

(1) Block 108 division into blocks

Unit 108 reads the data blocks of the plaintext P from the block 12 storage of plain text and divides the data plaintext P into separate blocks, measured from the beginning of the data plaintext P to create multiple blocks of plaintext P_{t}where t=0, 1, 2... . Each block of P_{t}open text has a length of 64 bits. Block 108 division into blocks gives these blocks P_{t}open text sequentially in block 100 encryption. After issuing all the units of P_{t}plaintext block 108 division into blocks throws in block 109 combining blocks of the information showing that the issuance is completed.

(2) Unit 110 receiving the key

The receiving unit 110 of the key reads out the encryption key from the unit 13 to store data encryption keys and writes the read data key encryption unit 111 of the storage key.

(3) Block 111 storage key

The block 111, the storage is of key saves the data encryption key.

(4) Block 100 encryption

As shown in figure 3, the block 100 contains the first encryption unit 100A encryption, the second block 100b encryption... , fifteenth unit 100C encryption and sixteenth unit 100d encryption.

The first block 100A encryption unit receives R_{t}clear text from block 108 division into blocks and data S_{o}first subclock from block 101 generation data sbloca. Data SK_{o}first subclock have a length of 32 bits. The first block 100A encryption encrypts the received block R_{t}open text using data S_{o}first subclock to create a first intermediate block. The first block 100A encryption outputs the first intermediate block to the second block 100b encryption.

The encryption performed by the first block encryption is part of the encryption process, the data encryption method FEAL (Fast data Encryption, ALBS), which is a well-known method of block encryption.

The encryption blocks from the second to the fifteenth respectively receive the intermediate unit from the previous block encryption in the encryption blocks from the first to the fourteenth and from the second through the fifteenth data SK_{1}÷_{}SK_{14}subclause from block 101 generation data sbloca. Each of the data sets SK_{1}÷_{}SK_{14}with the second p is tatsty of subclause has a length of 32 bits.
The encryption blocks from the second to the fifteenth respectively carry out the encryption of the received intermediate block using the second through the fifteenth data SK_{1}÷_{}SK_{15}subclause to create intermediate blocks from the second to the fifteenth, which respectively are given in the encryption blocks from the third to the sixteenth.

Sixteenth unit 100d encryption gets fifteenth intermediate block from the fifteenth block 100C encryption and receives the sixteenth data SK_{15}subclause from block 101 generation data sbloca. Sixteenth data S_{15}subclause also have a length of 32 bits. Sixteenth unit 100d encryption encrypts the received intermediate block using the sixteenth data SK_{15}subclause to create a block With_{t}encrypted text.

The expression below

indicates that the block of P_{t}plaintext is encrypted using the group S_{t}(from SK_{0}to SK_{15}data sbloca that were generated as part of the t-th encryption process.

Sixteenth unit 100d encryption issues created block With_{t}encrypted text block 109 combining blocks.

After you create the block With_{t}the ciphertext is issued in block 109 combining blocks, block 100 encryption in the network in block counter 105 information
showing that the encryption of one block of plain text is completed.

(5) Block register 104

Block 104 register includes a field for storing a 64-bit initial value IV and 64-bit stored data RO_{t}. The value of the stored data RO_{t}in advance is set in the initial value IV.

Block 104 register takes a block With_{t}the encrypted text from the sixteenth unit 100d encryption.

Block register 104 receives the control signal from block 107 control register. If the received control signal is equal to "0" and the block C_{t}encrypted text is taken from the sixteenth unit 100d encryption block 104 register writes the block With_{t}encrypted text as stored data RO_{t}. If the received control signal is "1", block 104 register reads the initial value IV and writes the initial value IV as stored data RO_{t}.

Putting it another way, suppose that T is a predefined cycle and n is 0, 1,... . When encryption (T* n)-th plain text block (t=T* n), the block 104 register resets the stored value of RO_{t}using the initial value IV, which is set in advance. The value "T" is set in advance and are described below. When is the encryption of the plain text block that is not T*
n)-th plain text block (i.e. a block of P_{t}open text, where t≠ T* n), the received block With_{t}the encrypted text is written as a stored data RO_{t}.

(6) Unit 103 data transformation

Unit 103 reads data conversion 64-bit stored data RO_{t}from block 104 register. When the unit 100 encryption encrypts the t-th block of P_{t}plaintext block 103 data transformation reads a 64-bit data RO_{t}as shown below.

If

RO_{t}=C_{t-1}

If

RO_{t}=IV

Block 103 data transformation converts the read data stored RO_{t}predefined manner, as indicated below by the function f, to create a SO_{t}:

Here the expression f(X) represents the result of processing the input data X using a predefined data transformation according to the function f, which is the 13-bit circular shift towards older bits of the 64-bit data.

After this unit 103 data transformation generates 64-bit data SO_{t}resulting from conversion, logical block 102 "exclusive OR".

(7) Logical block 102 "XOR"

Logical block 102 "exclude the her OR receives 64-bit data SO_{
t}from block 103 data conversion and reads the data encryption key EK of the block 111 of the storage key.

Logical block 102 exclusive OR performs an exclusive OR operation for each bit in the 64-bit data SO_{t}and the corresponding bit in the data encryption key EK and thus creates a 64-bit data input key CO_{t}:

In the above equality symbol "(+)" denotes the exclusive OR operation.

Logical block 102 exclusive-OR outputs the input key CO_{t}, which he formed in block 101 generation data subclause.

(8) Unit 101 generation data subclause

Block 101 generation data subclause accepts a control signal from block 106, the control data generation of subclause and input keys CO_{t}from a logical block 102 "exclusive OR". This control signal indicates whether encryption (T* n)-th plain text block (where n=0,1,... ) or not. This encryption occurs once in each predefined cycle T. In this example, the predetermined cycle T is set to 2^{10}cryptographic operations.

Block 101 generation data subclause able to perform two processes (type a and type b) generating subclause. The generation process of subclause t the PA And has a large processing load,
and type In a small load processing. In accordance with the received control signal unit 101 generation data subclause selects one of two types of processes generating subclause, and performs the process using the input key IKO_{t}to generate sixteen sets of 32-bit data subclause (i.e. from the first to sixteenth data SK_{0}÷_{}SK_{15}subclause).

If t≠ T* k (k=0,1,... )

Here the expression KGB(X) refers to the sixteen data sets of subclause generated from the input key CO_{t}using the data generation process of subclause type Century. These sixteen datasets subclause composed of two types of data subclause.

If t=T* k (k=0,1,... )

The expression KGA(X) is sixteen datasets subclause, which are generated using the data generation process of subclause type A. Each of these sixteen datasets subclause different from the others.

Block 101 generation data subclause gives sixteen data sets SK_{0}÷_{}SK_{15}subclause, which he formed, to the encryption blocks from the first to the sixteenth block 100 encryption.

Fig.6 shows the relationship between the value of the count unit 105 of the counter, the input data is mi key
the accepted unit 101 generation data sbloca, and type (a or b) generation subclause used by the block 101 generation data sbloca. If the reading is "0", the input key is generated using the data encryption key EK and the initial value IV and used in the generation process of subclause type A. on the Contrary, if the count value is equal to from 1 to 2^{10}-1", the input key is generated using the data encryption key and the cipher text block created by the previous encryption process and used in the generation process of subclause type Century.

As shown in figure 3, the block data generation of subclause 101 contains the block 301 randomization data block 302 storing the randomized data and the block 303 control the number of stages.

(a) Unit 301 randomization data

Block randomization data 301 receives 64-bit data from block 303 to control the number of stages, performs a predetermined process of randomization data for these data and thus generates a 32-bit data SK subclause and 64-bit randomized data. Block 301 randomization data outputs 32-bit data SK subclause in block 302 storing the randomized data and created a 64-bit randomized data in block 303 control the number of stages.

As shown in figure 4, BL is to 301 randomization data contains the block 301a division, logical block 301b "exclusive OR", block s mixing data and block 301d Association.

Unit 301a separation

Unit 301a division receives 64-bit data from block 303 to control the number of stages and share these data for the upper 32 bits (hereinafter referred to as "data A1") and the lower 32 bits (hereinafter referred to as "data " A0"). Unit 301a separation generates data A1 in the logical unit 301b "exclusive OR" and block s mixing data, and the data A0 to block 301d of the Association and the unit s mixing data.

Block s mixing data

Block s mixing data receives the data A0 and data A1 from the block 301a division, performs an exclusive OR operation for each bit in the data A0 and data A1 and thus receives 32-bit data. Block s mixing data divides the data into four sets of 8-bit data, performs a predefined substitution for each set of eight-bit data and thus generates four sets of 8-bit data. Predefined substitution, mentioned here, is performed using a table that stores 256 8-bit values, which are assigned a value of the address from "0" to "255".

After this block is mixing data generates a 32-bit data by combining the created four sets of 8-bit data. Block s peremeci the project data permutes specific bits in the 32-bit value to create a new 32-bit data C1, which he gives to the logical block 301b "exclusive OR".

Logical block 301b "XOR"

Logical block 301b exclusive OR receives data from A1 block 301a separation and 32-bit data C1 from the block s mixing data. Logical block 301b exclusive OR performs an exclusive OR operation for each bit in the data A1 and the data S1 to create a 32-bit data subclock B0. Logical block 301b "XOR" then outputs these data subclock B0 in block 302 storing the randomized data and the block 301d Association.

Block 301d Association

Block 301d Association receives data from A0 unit 301a separation and data subclock B0 from logical block 301b "exclusive OR". Block 301d join combines data A0 and data subclock B0 to create a 64-bit randomized data that contain data A0 as the high-order 32 bits and the data of subclause B0 as low-order bits. Block 301d of a concatenation of these 64-bit randomized data in block 303 control the number of stages.

(b) Unit 303 controls the number of steps

Unit 303 controls the number of stages of works as described below, providing the ability to block 301 randomization data to repeat the process of randomization of the data.

Unit 303 controls the number of stages has an area the La store the number of iterations of the processing, showing the total number of completed unit 301 of the data randomization randomization procedures, and the maximum number of iterations.

Unit 303 controls the number of stages receives the input data sbloca from logical block 102 "exclusive OR" or 64-bit randomized data from block 301 randomization data. Unit 303 controls the number of stages also accepts a control signal from block 106, the control data generation of sbloca. If the received control signal is "1", then the maximum number of iterations is set to "16". If the received control signal is equal to "0", the maximum number of iterations is set to "2". Upon receipt of the control signal unit 303 controls the number of stages resets the number of iterations of processing to "0".

Unit 303 controls the number of stages receives the input data subclause or randomized key data, adds one to the number of iterations of processing and compares the number of iterations of the processing with the maximum number of iterations. If the number of processing iterations equal to the maximum number of iterations, block 303 control the number of stages generates key input data or randomized key data, which he took, in the unit of randomization data to complete the processing is repeated periodically. what if the number of iterations of processing is smaller than the maximum number of iterations, unit 303 controls the number of steps generates key input data, the randomized key data, which he took, in the unit of randomization data, and repeats the processing performed.

It should be borne in mind that during the first iteration of the repetitive processing unit 303 controls the number of steps gives the input keys, which he took, in block 301 randomization data. In the second and subsequent iterations of block 303 control the number of stages outputs the randomized data, which he took, in block 301 randomization data.

As described above, the unit 303 controls the number of stages controls the block 301 randomization data, ensuring the fulfilment of the process of randomization, double -, or sixteen times. When encryption (T* n)-th (where n=0, 1,... ) block of plaintext, the processing unit 301 randomization data gives sixteen datasets subclause in block 302 storing the randomized data. In all other cases, the block 301 randomization data produces two sets of data sbloca in block 302 storing the randomized data.

(C) Block 302 storing the randomized data

Block 302 storing the randomized data receives the control signal from block 106, the control data generation of sbloca. Block 302 storing the randomized data also pic is edutella takes sixteen datasets subclause or two dataset subclause from block 301 randomization data.
Sixteen datasets subclause respectively numbered from SK_{0}to S_{15}, while two sets of data subclause respectively numbered SK_{0}and SK_{1}. After receiving such data block 302 storing the randomized data records or sixteen data sets SK_{0}÷_{}SK_{15}subclause or two data sets SK_{0}and SK_{1}subclause.

As shown in figa, if the received control signal is "1", block 302 storing the randomized data reads the recorded data sets SK_{0}÷_{}S_{15}subclause and outputs these data sets SK_{0}÷_{}SK_{15}in the encryption blocks from the first to the sixteenth.

As shown in figv, if the received control signal is equal to "0", block 302 storing the randomized data reads the recorded data sets K_{0}and K_{1}subclause, and then sets SK_{14}=SK_{12}=SK_{10}=SK_{8}=SK_{6}=SK_{4}=SK_{2}=SK_{0}and SK_{15}=SK_{13}=SK_{11}=SK_{9}=SK_{7}=SK_{5}=SK_{3}=SK_{1}. After this block 302 storing the randomized data issues data sets subclause from SK_{0}to SK_{15}in the cryptography block from the first to the sixteenth.

The datasets subclause from SK_{0}to SK_{15}respectively are used as data sets subclause first, hestnadzatj.

(9) Unit 105 counter

The block counter 105 has an internal storage area values of reference. This value of count is initialized using the initial value "0".

The block counter 105 receives information about the completion of block 100 encryption. This information shows that the encryption of one block of plain text is completed. Upon receipt of information regarding the completion of the block counter 105 adds "1" to the value of reference. Adding "1" to the value of count is equal to "2^{10}-1", unit 105 resets the counter value count at "0".

(10) Unit 106 controls the generation of data subclause

Unit 106 controls the generation of data subclause reads the reference value of the block counter 105. If the reading is "0", block 106, the control data generation of subclause issues a control signal "1" in block 101 generation data sbloca. If the reading is not equal to "0", block 106, the control data generation of subclause generates the control signal is "0".

(11) Unit 107 control register

Block 107 control register also reads the value of the count from the block counter 105. If the reading is "0", block 107 control register generates the control signal is "1" in block 104 of the register. If the reading is not equal to "0", block 107 control register generates the control signal is "0" in block 104 of the register.

(12) Unit 109 United the I blocks

Block 109 combining blocks sequentially receives the blocks With_{t}encrypted text from block 100 encryption and receives the information showing the completion of the issuance, from block 108 dividing into blocks.

Upon receipt of information indicating the completion of the issuing unit 109 combining blocks combines all the received blocks With_{t}ciphertext (t=0, 1, 2,... ) in the order of their reception, to create the encrypted text. Block 109 block combination gives these data With the encrypted text in the transmitting unit 11.

1.3 Unit 20 interpretation of data

As shown in figure 1, block 20, the data decoding includes decoding unit 200, in block 201 data generation of subclause, logical block 202 "exclusive OR", block 203, the data conversion unit 204 register unit 205 of the counter unit 206 controls the generation of data sbloca, block 207 control register block 208 dividing into blocks, block 209 associations blocks, block 210 receiving the key, block 211 storage key.

Block 201 data generation of subclause, logical block 202 "exclusive OR", block 203, the data conversion unit 204 register unit 205 of the counter unit 206 controls the generation of data sbloca, unit 207 of the control register unit 210 receiving the key and the block 211 storage key decryption block 20 respectively have the same constructions as block 101 generation Yes is different subclause, logical block 102 "exclusive OR", block 103, the data conversion unit 104 register, the block counter 105, block 106, the control data generation of subclause, block 107, the control register unit 110 receiving the key and the block 111 storage key block 10 data encryption. Accordingly, further explanation will focus only on the differences between the block 20 and decrypt data block 10 data encryption.

(1) Block 208 division into blocks

Block 208 division into blocks receives data encrypted text from the receiving unit 21 and divides the received data encrypted text into multiple blocks With_{t}encrypted text (where t=0, 1, 2,... ). Each block With_{t}encrypted text has a length of 64 bits. Block 208 division into blocks outputs each generated ciphertext block in the decoding unit 200 in order.

Block 208 division into blocks sequentially outputs the preceding block C_{t-1}encrypted text block 204 register. When issuing the first block of C_{0}encrypted text in block 200, the decoding unit 208 division into blocks do not show any data in block 204 register.

Upon completion of the output blocks of the ciphertext block 208 division into blocks outputs information showing the completion of the issuance, in block 209 associations blocks.

(2) the decoding Unit 200

Block 200 deshifririvanie which uses part of the process of interpretation of the data encryption method ALBS (FEAL).

The decoding unit 200 includes from the first to the sixteenth blocks transcription (not shown).

The first block decoding takes a block With_{t}encrypted text from block 208 division into blocks and data S_{0}first subclock from block 201 data generation of sbloca. Data SK_{0}first subclock have a length of 32 bits. The first block decoding deshifriral adopted the block With_{t}encrypted text, using data SK_{0}first subclock, and thus generates a first intermediate block. The first block decoding outputs the first intermediate block to the second block decoding.

Blocks interpretation from the second to the fifteenth respectively receive the intermediate blocks from the first to the fourteenth from the previous block decoding of the blocks of the decoding from the first to the fourteenth in addition to relevant data sbloca from the second to the fifteenth S_{1}÷_{}SK_{14}from block 201 data generation of sbloca. Each of the data SK_{1}÷_{}S_{14}subclause from the second to the fifteenth have a length of 32 bits. Blocks interpretation from the second to the fifteenth respectively designerour intermediate blocks from the first to the fourteenth, using data SK_{1}÷_{}SK_{14}subclause from the second to the fifteenth, to create the th intermediate blocks from the second to the fifteenth,
which are issued in blocks of interpretation from the third to the sixteenth.

Sixteenth block decoding takes fifteenth intermediate block from the fifteenth block decoding and data SK_{15}sixteenth subclause from block 201 data generation of sbloca. These data S_{15}sixteenth subclock have a length of 32 bits. Sixteenth block decoding deshifriral fifteenth intermediate block using the data SK_{15}sixteenth subclause to create a block of plain text D_{t}.

where D_{ec}(C_{t}, SK1_{t}describes the procedure of interpretation

encrypted text_{t}using the set of SK1_{t}(from SK_{0}to SK_{15}data subclause, which are generated during t-th interpretation process.

Sixteenth block decoding outputs the generated block of plaintext D_{t}in block 209 associations blocks.

After issuing the created block of plaintext D_{t}in block 209 combining blocks block 200 interpretation issues in block 205 counter information is complete, which shows that the interpretation of the cipher text block is complete.

(3) Unit 205 counter

The block counter 205 receives information complete, showing that the decoding of one block of encrypted text is completed by a block 20 of interpretation. Upon receipt of this information block 205 counter adds "1" to the value of the reference.

(4) Block register 204

Block 204 register has a field for storing a 64-bit initial value IV 64-bit stored data. In the initial state 64-bit stored data set to the initial value IV.

Block 204 register accepts the preceding block C_{t-1}encrypted text from block 208 dividing into blocks.

Block register 204 receives the control signal from block 207 of the control register. If the received control signal is equal to "0" and the block 204 of the register took the block C_{t-1}encrypted text from block 208 dividing into blocks, the block 204 register writes the received block With_{t-1}encrypted text as stored data after the decoding unit 200 generates a block of D_{t-1}open text at the end of the interpretation process data for the current block of encrypted data. If the control signal is "1", block 204 register reads the initial value IV and writes it as stored data.

In other words, for interpretation (T* n)-th block of ciphertext (where n=0, 1, 2,... ) block 204 register initializes the stored data using the initial value IV, which is set in advance. In all other cases, the block 204 register writes the previous block C_{t-1}zashifrovano the text.
As mentioned earlier, the value of "T" is a value showing a predefined cycle.

(5) Unit 209 combining blocks

Block 209 combining blocks sequentially receives the blocks of D_{t}clear text from the decoding unit 200 and receives the information showing the completion of the issuance, from block 208 dividing into blocks.

Upon receipt of information indicating the completion of issue, unit 209 block combination combines the received blocks of D_{t}open text (t=0, 1, 2,... ) in the order of their reception, to create data unencrypted plaintext D. Block 209 block combination gives these data in clear text in the block 22 store the decrypted data.

(6) Unit 203 data transformation

Unit 203 reads data conversion 64-bit stored data from block 204 register. After decoding of the t-th block of D_{t}ciphertext block 200 interpretation reads the 64-bit stored data R1_{t}as shown below.

If t≠ T* k (k=0,1,... )

If t=T* k (k=0,1,... )

Block 203 data transformation converts the read stored data R1_{t}pre-defined image, respectively, of the function f to generate S1_{t}.

Here f(X) PR is dstanley a value formed by the conversion of input data X unit 203 data conversion in accordance with the function f.

(7) Logical block 202 "XOR"

Logical block 202 "exclusive OR" takes 64-bit data S1_{t}from block 203 to convert the data and creates the input key K_{t}:

(8) Unit 201 data generation of subclause

Block 201 data generation of subclause generates sixteen sets of 32-bit data subclause (data S_{0}÷S_{15}from the first to the sixteenth subclause).

If t≠ T* k (k=0,1,... )

Here KGB(X) is sixteen datasets subclause, which are generated during the generation of subclause type In, using the input data X key. These sixteen datasets subclause consist of two types of data subclause.

If t=T* k (k=0,1,... )

Here KGA(X) is sixteen datasets subclause, which are generated during the generation of subclause type And using input data X key. These sixteen datasets subclause differ from each other.

2. The system 5 encrypted communication

2.1 the Work of the transmitting device 1

(1) operating the transmitting device 1 as a whole

Below described is the operation of the transmitting device 1 as a whole with reference to the block diagram, shown in Fig.

Unit 105 sets the value of the counter count to 0, the block 104 register sets the data stored in the initial value and the block 108 division into blocks reads plain text from the block 12 storage of plain text (step S101). The receiving unit 110 of the key reads out the encryption key from the unit 13 to store data encryption keys and writes the read data encryption key in the storage unit key (step S102). Block 108 division into blocks divides the read data clear text into multiple blocks of plaintext (step S103).

Block 108 division into blocks gives each block of plaintext into a block of 100 encryption. Block 100 encryption takes the plain text block from block 108 division into blocks, encrypts a block of plaintext to create ciphertext block, and outputs the generated ciphertext block in the block 109 Association blocks (step S104). If not all encrypted blocks of plain text (step S105: No), the processing returns to step S104.

Upon completion of issuance of all blocks of plain text (S105: Yes), the block 108 division into blocks outputs information showing the completion of the issuance, in block 109 combining blocks. Block 109 block combination brings together all the blocks of the ciphertext in the order of their reception, to create data encrypted text, which he throws in transmitting the unit 11 (step S106).

The transmitting unit 11 receives the data encrypted text and puts the received data encrypted text parallel-serial conversion, modulation and amplification for the formation of the transmitted signals. The transmitting unit 11 transmits these signals to the receiving device 2 through the path 3 transmission (step S107).

(2) block 10 data encryption

The block 10 data encryption is described below with reference to the block diagram in Fig.9.

Block 103 data conversion first reads a 64-bit stored data from block 104 register (step S121), subjecting these data to a predefined data conversion and outputs the received 64-bit data in the logical block 102 "exclusive OR" (step S122).

Logical block 102 exclusive OR receives 64-bit data from block 103 data conversion, reads the encryption key from the block 111 of the storage key, executes the exclusive OR operation for corresponding bits in the received 64-bit data and read data encryption key to form a 64-bit input key. Logical block 102 exclusive-OR outputs generated input key unit 101 generation data subclause (step S123).

Block 101 generation data subclause generates multiple datasets sbloca using the input key, and you shall AET each generated dataset subclause in different blocks of the encryption in the encryption blocks from the first to the sixteenth in block 100, the encryption (step S124).

Block 100 encryption takes a block of plaintext from block 108 division into blocks (step S125), encrypts the plain text block, using a variety of datasets subclause, and thus creates a ciphertext block (step S126). The block counter 105 adds "1" to the reference value (step S127). Block 100 encryption generates a ciphertext block in the block 109 Association blocks (step S128).

Unit 106 controls the generation of data subclause reads the reference value of the block counter 105. If the reading is "0" (step S141: Yes), in block 106, the control data generation of subclause issues a control signal with a value of "1" in block 101 generation data subclause (step S143). On the contrary, when the value of count is not equal to "0" (step S141: No), in block 106, the control data generation of subclause issues a control signal with a value of "0" in block 101 generation data subclause (step S142).

Block 107 control register also reads the value of the count unit 105 of the counter. If the reading is "0" (step S151: Yes), the block 107 control register generates the control signal with the value "1" in block 104 register (step S153). On the contrary, if the value of count is not equal to "0" (step S151: No), the block 107 control register generates the control signal with the value "0" in block 104 register (step S152).

Block 104 register writes the value to correspond with the AI with the control signal, received from block 107 control register (step S161).

(3) the Work unit 105 counter

The block counter 105 is described below with reference to the block diagram shown in figure 10.

Upon receipt of the completion signal from block 100 encryption, indicating that the encryption of one block of plain text is completed, the block counter 105 adds "1" to the reference value (step S181). If the value of the countdown reaches 2^{10}(step S182: Yes), the unit 105 resets the counter value count at "0" (step S183).

(4) Operation unit 104 register

Work unit 104 register is described below with reference to the block diagram of figure 11.

Block register 104 receives the control signal from unit 107 unit control register. If the received control signal is equal to "0" (step S201: "=0") and the ciphertext block is taken from the sixteenth unit 100d encryption block 104 register writes the ciphertext block as stored data (step S202). If the received control signal is "1" (step S201: "=1"), the block 104 register reads the initial value and writes it to the initial value as the stored data (step S203).

(5) Operation unit 101 of the data generation of subclause

Work unit 101 generation data subclause described below with reference to the block diagram on Fig and 13.

Unit 303 controls the number of stages of unit 101 generation data subclause principle is the magnetic control signal from block 106, the control data generation of sbloca. If the received control signal is "1" (step S221: "=1"), unit 303 controls the number of steps sets the maximum number of 16 (step S223), while if the received control signal is equal to "0" (step S221: "=0"), unit 303 controls the number of steps sets the maximum number of 2 (step S222). Upon receipt of the control signal unit 303 controls the number of stages also sets the number of iterations "1" to "0" (step S224).

Unit 303 controls the number of stages takes either the input key or the randomized data. In the first iteration (step S225: Yes), the unit 303 controls the number of steps gives the input key data to the block 301 randomization data (step S227). In the second and subsequent iterations (step S225: No) unit 303 controls the number of steps gives the randomized data block 301 randomization data (step S226).

Block 301 randomization data performs a process of randomization of the data and thus generates data sbloca and randomized data (step S228). Block 302 storing the randomized data writes data subclause (step S229). Next, block 303 control the number of stages adds "1" to the value of the number of iterations i (step S230), and compare the number of iterations with the maximum number. If the number of iterations is less than the maximum number (S231: Yes), processing returns to step S225, and the above procedure repeated.

If the number of iterations is at least equal to the maximum number (step S231: Yes), the repetitive processing is terminated. Block 302 storing the randomized data and then receives the control signal from block 106, the control data generation of sbloca. If the received control signal is "1" (step S232), the block 302 storing the randomized data reads the recorded data sets SK_{0}÷_{}S_{15}subclause and outputs read data sets subclause in the encryption blocks from the first to the sixteenth (step S235).

If the received control signal is equal to "0" (step S232), the block 302 storing the randomized data reads recorded data sets subclause SK_{0}and SK_{1}sets SK_{14}=SK_{12}=SK_{10}=SK_{8}=SK_{6}=SK_{4}=SK_{2}=SK_{0}and SK_{15}=SK_{13}=SK_{11}=SK_{9}=SK_{7}=SK_{5}=SK_{3}=SK_{1}and outputs read data sets from SK_{0}to SK_{15}in the encryption blocks from the first to the sixteenth (steps S233 and S234).

(6) Operation unit 301 randomization data

Work unit 301 randomization data are described below with reference to the block diagram on Fig.

Unit 301a division receives 64-bit data from block 303 to control the number of stages and divides the received 64-bit the data on older 32-bit data A1 and the lower 32-bit data A0. Unit 301a separation generates data A1 in the logical unit 301b "exclusive OR" and block s mixing data and outputs data A0 in block 301d of the Association and the unit s mixing data (step S251).

Block s mixing data receives the data A0 and data A1 from the block 301a division, performs an exclusive OR operation for each bit in the data A0 and data A1 to generate a 32-bit data and divides the 32-bit data into four sets of 8-bit data. Block s mixing data and then performs a predefined substitution in each set 8-bit data, and combines the received sets of the modified 8-bit data to create a new set of 32-bit data. Block s mixing data also replaces the predefined bits in the 32-bit data other bits to generate a 32-bit data C1, which he gives to the logical block 301b "exclusive OR" (step S252).

Logical block 301b exclusive OR receives data from A0 unit 301a separation and 32-bit data C1 from the block s mixing data and performs an exclusive OR operation for each bit in the data A0 and data S1 to generate data subclock B0. Logical block 301b "exclusive OR" gives these data subclock B0 in block 302 storing the randomized data and the block 301d Association (step S253).

Block 301d together the Oia receives data from A0 unit 301a separation and data subclock B0 from logical block 301b "exclusive OR". Block 301d join combines data A0 and data subclock B0 data A0 as bits and data subclock B0 as low-order bits to create a 64-bit randomized data block 301d of a concatenation of these 64-bit randomized data in block 303 control the number of steps (step S254).

2.2 Operation of the receiving device 2

(1) Operation of the receiving device 2 as a whole

The operation of the receiving device 2 is generally similar to the operation of the transmitting device and therefore is explained with reference to the flowchart shown in Fig.

The receiving unit 21 of the receiving device 2 receives signals from the transmitting unit 11 of the transmitting apparatus 1 through the path 3 assists. In the receiving unit 21 received signals are subjected to demodulation and serial-to-parallel conversion, to create the encrypted text. Block 205 counter sets the count to "0"and the block 204 register sets the data stored in the initial value. Block 208 division into blocks receives the data encrypted text from the receiving unit 21 (which corresponds to step S101), and block 210 receiving the keys reads out the encryption key from the block 23 storage data encryption key and writes them to the block 211 storage keys (corresponding to step S102). Block 208 division into blocks divides the data encrypted text into multiple blocks such rovannogo text (corresponds to step S103).

Block 208 division into blocks gives each ciphertext block in the decoding unit 200. The decoding unit 200 receives the ciphertext block from block 208 dividing into blocks, deshifriral the received ciphertext block to create a block of plain text, and outputs the received block of plaintext into a block 209 Association blocks (corresponding to step S104). If the decoding unit 200 has not completed decoding all blocks of the ciphertext (which corresponds to step S105: No), the interpretation process is repeated.

If issuance of all blocks of the ciphertext completed (corresponding to step S105: Yes), the block dividing into blocks outputs information showing the completion of the issuance, in block 209 combining blocks. Block 209 block combination brings together all the blocks of plain text in order to create data unencrypted text (corresponding to step S106), and stores the generated data in clear text in the block 22 storing decrypted data (corresponds to step S107).

(2) Operation unit 20 of the data decoding

The operation unit 20 of the interpretation of the data is similar to the block 10 data encryption and therefore explained with reference to the block diagram in figure 9.

Unit 203 reads data conversion 64-bit stored data from block 204 register (corresponding to step S121), bypasteurella specific conversion of the stored data and outputs the converted 64-bit data in the logical block 202 "exclusive OR" (corresponding to step S122).

Logical block 202 "exclusive OR" takes 64-bit data from block 203, data conversion, reads the encryption key from block 211 for storing the keys and performs an exclusive OR operation for corresponding bits in the 64-bit data and the encryption key information to generate a 64-bit input key. Logical block 202 "exclusive OR" issues these input key data in block 201 data generation of subclause (corresponds to step S123).

Block 201 data generation of subclause generates multiple datasets subclause input keys and outputs each generated dataset subclause in different blocks of the decoding units decoding from the first to the sixteenth decoding unit 200 (corresponds to step S124).

The decoding unit 200 receives the block of cipher text from block 208 division into blocks (corresponding to step S125), deshifriral block of cipher text, using a variety of datasets subclause, and thus creates a block of plaintext (which corresponds to step S126). Block 205 counter increases the number of counts per unit (corresponding to step S127). The decoding unit 200 outputs the received block of plaintext into a block 209 Association blocks (corresponding to step S128).

Work unit 206 controls the generation of data subclause corresponds to the unit 10 controls the generation of data sbloca, illustrated by steps S141 to S143, the block diagram of figure 9, and therefore is not described in detail.

Work unit 207 control register corresponds to the operation unit 107, the control register, which is described with reference to the steps S151 to S153 block diagram in Fig.9, and therefore not further explained.

Block 204 register stores the value in accordance with a control value that it receives from block 207 control register (corresponding to step S161 in the block diagram presented on Fig.9).

(3) the Work unit 205 counter

The operation unit 205 of the counter is similar to the operation unit 105 of the counter and explained with reference to the block diagram in figure 10.

Upon receipt of the information about the completion of block 200 interpretation, showing that he has completed the decoding of one block of encrypted text block 205 counter adds one to the value of reference (corresponding to step S181). When this addition results in reference 2^{10}(corresponds to the step S181: Yes), in block 205 of the counter sets the count to zero (corresponding to step S183).

(4) Operation unit 204 register

The operation unit 204 of the register is similar to the operation unit 104 register and therefore explained with reference to the block diagram by 11.

Block register 204 receives the control signal from block 207 of the control register. If the received control signal is equal to "0" (this is S201: Yes) and the previous ciphertext block is passed from block 208 dividing into blocks, block 204 register stores the ciphertext block as stored data (corresponding to step S202). If the received control signal is "1" (corresponding to step S201: No), in block 204 register reads the initial value of NC and writes this initial value of NC as stored data (corresponding to step S203).

(5) Operation unit 201 data generation of subclause

Work unit 201 data generation of subclause this work unit 101 generation data sbloca, so that in the subsequent description will be marked differences in relation to the procedure corresponding to the block diagrams shown in Fig and 13.

At step S235 block 302 storing the randomized data reads recorded data SK_{0}÷_{}SK_{15}subclause and issues relevant data sets subclause in the corresponding blocks of the decoding from the first to the sixteenth in block 200 interpretation.

On the steps S233 and S234 block 302 storing the randomized data reads recorded data S_{0}and SK_{1}sets SK_{14}=SK_{12}=SK_{10}=SK_{8}=SK_{6}=SK_{4}=SK_{2}=SK_{0}and SK_{15}=SK_{13}=SK_{11}=SK_{9}=SK_{7}=SK_{5}=S_{3}=S_{1}and issues relevant datasets S_{0}÷SK_{15}subclause in the corresponding blocks of the decoding from the first to the sixteenth in block 00 interpretation.

(6) Operation unit 301 randomization data

Work unit 301 randomization data in block 201 data generation of subclause corresponds to the operation unit 301 randomization data block 101 generation data subclause, which was described with reference to Fig, therefore further explanation is not required.

3. The correspondence between plaintext and decrypted text

Blocks C_{0}With_{1},... encrypted text obtained by encrypting the sequence of blocks of P_{0}P_{1}, ... plaintext block 10 data encryption using 64-bit data encryption keys. These blocks of ciphertext are interpreted by the block 20 interpretation of data using the same 64-bit data encryption keys to create a sequence of blocks of D_{0}D_{1},... open (unencrypted) text, which are the same as the sequence of blocks of P_{0}, R_{1},... plain text. This is shown in more detail below.

From equalities (1) and (2) and equations (8) and (9) follows:

From the equality (15) and equations (3) and (10) follows:

From the equality (16) and equations (4) and (11) follows:

Therefore, from equations (17) and (5) and equations (12) and (13) can be obtained:

and from equalities (7) and (14) follows:

The following relationship (equation (20)) recorded for any 64-bit data α , β the functions of the ENP (encryption) and Dec (interpretation):

Therefore, from equations (19), (20) and (18) received:

D_{t}=P_{t}

4. Security evaluation and processing speed encryption

(1) Protection

In the present embodiment, the encryption t-th

(where t≠ 2^{10}*^{}k (k=0, 1,... )) block of plain text is performed using sixteen sets of 32-bit data SK_{0},... ,SK_{15}subclause, which is entered in block 100 encryption.

As described previously, these datasets subclause formed so that S_{0}=S_{2}=S_{4}=... =S_{14}and S_{1}=S_{3}=S_{5}=... =SK_{15}so that the security against known methods of cryptanalysis plaintext is not as high as in the conventional method, where each dataset subclause different.

However, the input keys C_{t}used to encrypt these blocks of plain text, set so that

IK0_{t}=EC(+)C_{t-1}

Since there are 2^{64}potential values of C_{t-1}'s almost impossible to get a large number of blocks of plain text, which would be encrypted is using the same IK0_{
t}. It makes this way protected against known methods of cryptanalysis plain text.

Encryption t-th (where t=2^{10}*^{}k (k=0, 1,... )) block of plain text is also performed using sixteen sets of 32-bit data subclause S_{0},... ,SK_{15}that entered in block 100 encryption. As described previously, each of these datasets subclause different, so that the security against known methods of cryptanalysis plaintext is the same as described for the conventional method.

(2) processing Speed encryption

The following describes the processing speed of the encryption block 10 data encryption.

When encrypting the t-th (where t≠ 2^{10}*^{}k (k=0, 1,... )) block of plaintext P_{t}block 101 generation data subclause performs a simple procedure that generates sixteen sets of 32-bit data sbloca by efficient generation of only two 32-bit datasets subclause. This means that the generation of these subclause for each block has a smaller impact on the processing speed of encryption than is described in the usual way.

5. Other modifications

Although the present invention has been explained with the above embodiments, it is obvious that the invention is not limited to these details. The possible difference is major modification, for example, as shown below.

(1) In the above embodiment, the logic block 102 (202) "exclusive OR" is described as a means of data fusion, which performs an exclusive OR operation for each bit in the 64-bit data generated by block 103(203) data transformation, and data encryption. However, the same effect can be achieved even if the exclusive OR operation will not be performed for each bit.

(2) In the above embodiment, the block 103 (203) data conversion is described as forming a 64-bit converted data, although such data do not necessarily have to have a length of 64 bits. For example, if the data encryption key length of 56 bits, there can be used a data conversion unit that generates a 56-bit data.

(3) In the above embodiment, block 104 (204) register receives input data ciphertext created directly in the procedure of encryption, although it may be used a 64-bit value received prior to the encryption process. For example, there may be used the first or second intermediate block generated in the encryption process. The data used do not necessarily have to have a length of 64 bits, can be used over short data, such as 40-bit value.

Below describes the possible configuration with 40-bit data. Block 103 (203) data conversion takes 40-bit data and converts this data to create new 40-bit data. Block 111 key store records 40-bit data encryption key. Logical block 102 exclusive OR performs a logical OR of corresponding bits in the new 40-bit data and 40-bit data encryption key to generate a 40-bit input key data. Block 101 generation data subclause generates sixteen sets of 20-bit data sbloca that used when encrypting the encryption blocks from the first to the sixteenth block 100 encryption.

(4) In the above embodiment, the unit 100 encryption method uses AVS (FL), although it may be used with any method of encryption block. For example, there may be used the Data Encryption Standard (DES).

Block 101 generation data sbloca not limited to the above-described execution. For example, the block 101 generation data sbloca can generate sixteen sets of 32-bit data subclause of the 64-bit input key data.

(5) the Present invention is not limited to the embodiment where the block 101 generation data subclause uses two types of encryption processing, where random numbers are generated using different processing loads. Can be used any which I configuration, for example, to process the encryption used when the input control signal "1", had a more intense use than the processing of encryption used when the input control signal "0".

For example, instead of generating two sets of data subclause block data generation of subclause can generate different data for the first 16 bits of each of the sixteen data sets of subclause, and then generate the last 16 bits of each dataset subclause based on the respective first 16 bits. This treatment will reduce the load of processing key generation in the same way as described above.

Instead of generating two sets of data subclause block data generation of subclause can generate three, four, five or any other number up to fifteen datasets subclause, and each block encryption, from the first to the sixteenth, uses one of the generated datasets subclause.

(6) Unit 105 (205) counter sets the count to "0"when it reaches "2^{10}- 1, although the invention is not limited to using the value of 2^{10}- 1" as the upper limit for the value of reference. Can be used any positive integer. The reading also does not need to be reset to "0".

In the above embodiments implement the mouth of the STS is described as storing a 64-bit data encryption keys. However, devices instead can only store 64-bit data encryption key used when performing encryption for the first time, and input keys used for encrypting each of the other blocks of plaintext is encrypted with blocks of plain text. When adjusting the input keys can be used for encryption public key, such as the method Diffie-Hellman exchange to distribute the input data of the keys to the devices performing the connection.

(7) the Present invention is also applicable to the method used by the devices described above. This method can be implemented by computer programs that are executed by computers. Such computer programs can be distributed as a digital signal.

The present invention can be implemented in a machine-readable medium such as a flexible disk, hard disk, CD-ROM (permanent memory (ROM) on CD-ROM), magneto-optical disk, digital video disc (CVP), a ROM on CVP, RAM CVP, or a semiconductor memory in which is recorded a computer program and/or digital signals mentioned above. The present invention can also be implemented by a computer program and/or digital signal that is recorded on the media.

The computer is haunted programs or digital signals, which implement the present invention can also be sent through the network, such as the electronic communications network, the network is wired or wireless or Internet.

The present invention can also be implemented by a computer system that includes a microprocessor and memory. In this case, the computer program may be recorded in memory, and the microprocessor operates in accordance with this computer program.

Computer programs and/or digital signals may be provided to an independent computer system by distributing media data that have been recorded with these computer programs and/or digital signals, or by transmission of software and/or digital signals via the network. Independent computer may then execute the computer program using the digital signals to implement the present invention.

(8) the Characteristics that define a variant implementation and its modifications may be freely combined.

Although the present invention has been described based on examples with reference to the drawings, it should be noted that various changes and modifications obvious to a person skilled in the art. Therefore, unless such changes and modifications are within the scope of the present invention, they should what s to be interpreted as included in its scope.

1. The encryption method for use by the device encryption, which encrypts data in clear text, consisting of a set of blocks, comprising the steps: receiving block for receiving one of the blocks outwardly relative to the device encryption, each block is a block of plain text having a predetermined length, choice, where upon receipt of the block increases by one the value of the counter showing the total amount received at the stage of receiving blocks, and on this count select which of the first or second generation subclause should be performed for the block key generation to generate a first group consisting of a predefined the number n of different subclause, when selecting the first generation of subclause, and the second group consisting of less than n different subclause, if you choose the second generation of subclause, and encryption to encrypt a block by block processing using n conversion processes in order, but when selected the first generation of subclause, each of the n transformation processes associated with another subclock in the first group ratio of one to one, and is performed using the associated subclause, and when the selected second generation process subclause, each of the n process is the transformation associated with any subclock in the second group, each subcloud associated with one or more conversion processes, and is performed using the associated subclause.

2. The encryption method according to claim 1, wherein in the selection step selects the first generation of subclause each time the counter value is equal to times from a predetermined value, and the second generation process subclause, each time the counter value is not equal to a multiple of from a pre-defined value.

3. The encryption method according to claim 1, characterized in that at the stage of encryption encrypts the block to obtain a block of encrypted text with a predefined length, and key generation generate the first group by applying a data transformation to the initial value stored in the device encryption, when the selected first generation subclause, the second group by applying a data transformation to the initial value and the ciphertext block, which is the last generated during encryption, when the selected second generation process subclause.

4. Device encryption to encrypt plaintext consisting of a set of blocks containing means for receiving block for receiving one of the units from the outside, and each data block is open to those who a hundred, having a predefined length, the tool of choice to increase the per unit value of the counter showing the total number of blocks received by the tool receiving unit, upon receipt of the unit, and selection on this counter, which of the first or second generation subclause should be performed for the block, means for generating a key for generating a first group consisting of a predetermined number n of different subclause, when selecting the first generation of subclause, and the second group consisting of less than n different subclause, if you choose the second generation of subclause, and encryption tool to encrypt a block by block processing with by using n conversion processes in order, but when selected the first generation of subclause, each of the n transformation processes associated with another subclock in the first group ratio of one to one, and is performed using the associated subclock when the selected second generation process subclause, each of the n transformation processes associated with any subclock in the second group so that each subcloud associated with one or more conversion processes, and is performed using the associated subclause.

5. Machine-readable storage medium storing an encryption program used for the I computer which encrypts data in clear text, consisting of many blocks, and the encryption program includes the steps of receiving block for receiving one of the blocks, externally relative to the computer, select in which upon receipt of the block increases by one the value of the counter showing the total amount received at the stage of receiving blocks, and on this count select which of the first or second generation subclause should be performed for the block key generation to generate a first group consisting of a predetermined number n of different subclause, when selecting the first generation of subclause, and the second group consisting of less than n different subclause, if you choose the second generation of subclause, and encryption to encrypt a block by block processing using n conversion processes in order, but when selected the first generation of subclause, each of the n transformation processes associated with another subclock in the first group ratio of one to one, and is performed using the associated subclause, and when the selected second generation process subclause, each of the n transformation processes associated with any subclock in the second group so that each subcloud associated with one or more conversion processes, and the imp is applied using the associated subclause.

6. The method of interpretation for use by the decoding device, which deshifriral data composed of many blocks of the ciphertext, comprising the steps: receiving block for receiving one of the blocks of the ciphertext, externally of the device interpretation, choice, where upon receipt of the ciphertext block increases by one the value of the counter showing the total amount received at the stage of receiving blocks of the ciphertext, and this count value is chosen, which of the first or second generation subclause should be performed for the block of the ciphertext, the key generation to generate a first group consisting of a predetermined number n of different subclause when selecting the first generation subclause, and the second group consisting of less than n different subclause, if you choose the second generation of subclause, and decoding for the decoding of the ciphertext block by processing a block of encrypted text using p conversion processes in order, but when selected the first generation of subclause, each of the n transformation processes associated with another subclock in the first group ratio of one to one, and is performed using associated with ublica, and when you choose the second generation of subclause, each of the n transformation processes associated with any subclock in the second group so that each subcloud associated with one or more conversion processes, and is performed using the associated subclause.

7. The method of decoding according to claim 6, characterized in that the selection step selects the first generation of subclause, each time when the counter value is equal to times from a predetermined value, the second generation of subclause, each time the counter value is not equal to a multiple of from a pre-defined value.

8. The method of decoding according to claim 7, characterized in that the step of generating key generating first group by applying a data transformation to the initial value stored in the decoding device, when the first generation of subclause, the second group by applying a data transformation to the initial value and the ciphertext block, which is last received from the acquisition phase, when the selected second generation process subclause.

9. The decoding device, which deshifriral data encrypted text, consisting of a set of blocks of ciphertext containing means for receiving block for receiving one of the blocks such rovannogo text from the outside, the tool of choice to increase the per unit value of the counter showing the total number of blocks received encrypted text on the stage receiving unit, upon receipt of the ciphertext block, and selection on this counter, which of the first or second generation subclause must be performed for a block of encrypted text, the medium key generation to generate a first group consisting of a predetermined number n of different subclause, when selecting the first generation of subclause, and the second group consisting of less than n different subclause, if you choose the second generation of subclause, and means for decoding for decoding a block of encrypted text by processing a block of encrypted text using n conversion processes in order, but when selected the first generation of subclause, each of the n transformation processes associated with another subclock in the first group ratio of one to one, and is performed using the associated subclause, and when the selected second generation process subclause, each of the n transformation processes associated with any subclock in the second group so that each subcloud associated with one or more conversion processes, and is performed using the associated subclause.

10. M is Shino-readable data carrier, storing the program for interpretation for use by the computer, which deshifriral data encrypted text, consisting of many blocks of the ciphertext, and the program of decoding includes the steps of receiving block for receiving one of the blocks of the ciphertext, externally relative to the computer, select in which upon receipt of the ciphertext block increases by one the value of the counter showing the total amount received at the stage of receiving blocks of the ciphertext, and this count value is chosen, which of the first or second generation subclause should be performed for the block of the ciphertext, the key generation to generate a first group consisting of a predetermined number n different subclause, when selecting the first generation of subclause, and the second group consisting of less than n different subclause, if you choose the second generation of subclause, and decoding for the decoding of the ciphertext block by block processing using n conversion processes in order, but when selected the first generation of subclause, each of the n transformation processes associated with another subclock in the first group ratio of one to one, and is performed using svjazanno them subclause, and when you choose the second generation of subclause, each of the n transformation processes associated with any subclock in the second group so that each subcloud associated with one or more conversion processes, and is performed using associated with them subcloud.

**Same patents:**

FIELD: cryptography.

SUBSTANCE: block for generation of sub-keys data uses two different processes for open generation of sub-keys. During encoding of T*n block of open text, where T - length of predetermined cycle, n - positive integer, sixteen sets of sub-key data is generated. In al other cases two sets of sub-key data are generated. Encryption block encrypts open text, using formed sixteen or two sets of sub-keys data.

EFFECT: higher efficiency.

6 cl, 15 dwg

FIELD: cryptography and data protection technologies.

SUBSTANCE: method for encryption and decryption of information includes use of block mutually reversible unambiguous two-parameter encrypting and decrypting transformations on basis of tables with random filling having size of N rows each with participation of series of gamma from data-independent random numbers generator, while for encryption block α bytes long additional gamma series α bytes long is produced, alternating for each block, while each byte is transformed using two-parameter bytes transformation v_{i}=F(u_{i},ξ_{i}) with participation of pseudo-random values to gamma series ξ_{i} 1 byte long, then in two steps operation for forming an encryption block is performed by bytes concatenation, while encrypting transformation of concatenation of first step bytes with numbers input, having values from 1 to α, is performed by summing certain source u_{i} and transformed values v_{i} bytes: a_{i}=v_{i}+v_{i+1}+u_{i} for i=1,...,(α-1), a_{α}=v_{α}+u_{1}+u_{2}+...+u_{α}, encrypting transformation of concatenation of bytes of second step a_{i} with numbers i having values from 1 to α, is performed in form of recurrent operations F as follows: χ_{i}=F(a_{i}, a_{i+1}) for input=1,...,(α-1), χ_{α}=a_{α}, decrypting transformations of bytes are performed in reversed order, firstly, second step decrypting transformation is performed for values of each received byte χ'_{i} with number i, having values from 1 to α, in form of recurrent operations F^{-1} in following way: a'_{α}=χ'_{α}; a'_{i}=F^{-1}(χ'_{i},a'_{i+1}) for i=α-1, α-2,..., 1 then first step decrypting transformation is performed for values of each byte a_{i} with number i, having values from 1 to α in form of recurrent operations F^{-1} as follows: , for i=1,...,α.

EFFECT: high data processing speed and a pseudo-random series of signals provided after encryption independently from statistics of separate letters in source text.

4 cl

FIELD: radio communications engineering, namely, method and device for encrypting signals intended for transmission.

SUBSTANCE: during encryption, five encryption rounds are passed in accordance to block encryption code of alternating length with use of first and second encryption tables and encryption key, first encryption round is performed for one of set of messaging signals in accordance with first encryption key-based transformation, second encryption round of one of messaging signals set is performed in accordance with at least one additional transformation based on encryption key, third encryption round of one of messaging signals set is performed in accordance with self-inverting transformation, during which at least one message from signals set is altered, fourth encryption round of one of set messaging signals is performed in accordance with at least one additional inversed transformation based on encryption key, which is inversion of one additional transformation based on encryption key, fifth encryption round is performed for one of set messaging signals in accordance to first inversed transformation based on encryption key, which is inversion of first encryption key-based transformation.

EFFECT: prevented interception and unauthorized implementation of encrypted information.

8 cl, 6 dwg

FIELD: information technology.

SUBSTANCE: present invention relates to cryptography. The essence of the invention lies in the fact that cryptographic computation is carried out in an electronic component according to a particular cryptographic algorithm, which includes at least one specific nonlinear operation on k-bit data blocks, where k is an integer greater than 2. Several masked intermediate data blocks from j bits (b⊕m, c⊕m2, Δ⊕n) based on the initial data block (a) from k bits are generated, where j is an integer less than k. Then a nonlinear operation S is carried out on at least one j-bit masked intermediate data block (Δ⊕n) with the help of a substitution table (106) with 2^{j} two inputs, to obtain a j-bit changed data block (S(Δ)⊕n). The changed j-bit data block is joined with at least several of the indicated j-bit masked intermediate data blocks into one final k-bit block (a'), corresponding to the initial k-bit data block, through transformation, which includes the indicated specific nonlinear operation.

EFFECT: reduction in the memory required for encryption.

19 cl, 2 dwg

FIELD: information technologies.

SUBSTANCE: invention is related to the field of coding in data transfer networks. Substance of invention consists in the fact that in system (600) server (610) provides function f of digital signals processing into actuating device (620) in deliberately confused form. Function f includes cascade of functions from functions f_{i} of signals processing, 1≤i≤N, according to formula (I). Server comprises processor (612) to select set of 2N reversible conversions p_{i}, 1≤i≤2N; calculation of set from N functions g, where g is functional equivalent for formula (II) for 1≤i≤N; and calculation of set from N-1 functions h, where h is functional equivalent for formula (III) for 2≤i≤N. Server comprises facility (614) for giving of executive device functions cascade to actuating device, which includes formula (IV), where y_{1},…,y_{N} represent functional parameters for formula (V), and facility (616) for presentation of functions g_{i},…,g_{N} into actuating device. Actuating device includes facility (626) for production of functions g_{i},…,g_{N} and processor (622) for downloading of executive device functions cascade and application of downloaded cascade of executive device functions to functions g_{i},…,g_{N} (for instance, ED,(g_{i},…,g_{N})).

EFFECT: higher extent of protection of cascade signal processing functions.

23 cl, 9 dwg

FIELD: information technology.

SUBSTANCE: cryptographic processing apparatus and method employ an extended Feistel structure having a number of data lines d which is set to an integer satisfying the condition d≥3. In the said Feistel structure, a several different matrices are selectively applied to linear transformation processes performed in F-function sections. A condition is satisfied, where the minimum number of branches for all data lines corresponding to linear transformation matrices is equal to or greater than a predetermined value. The minimum number of branches for all data lines is selected from among minimum numbers of branches corresponding to the data lines.

EFFECT: high resistance to differential and linear cryptoanalysis.

24 cl, 20 dwg

FIELD: information technologies.

SUBSTANCE: in register forming read-protected zone, a coding key (K) is produced with the help of combination of at least two key parts (KM, M) with application of switching operator, then in memory device serially combination is carried out between the first part of key, verification coding key (Kv) and the second part of key to produce the last combination (Mv), in register combination is provided between K and Mv to produce final verification key (Kf), coding of verification data is carried out (Dv) with the help of symmetrical algorithm of coding (DES), using Kf, and produced result is compared to verification coding (Cv), produced by means of direct coding Dv with the help of Kv.

EFFECT: improved protection of key against unauthorised use in process of transfer from memorising device into register.

2 cl, 1 dwg

FIELD: information technologies.

SUBSTANCE: method contains stages, at which a sequence of the first rows (29, 30) in data units (P_{j}) is received from a flow, an order of the units (P_{i}) is reversed in each of the first rows (29, 30) of the units, in order to generate the appropriate second rows (31, 37) of the data units, and units are coded on each second row (31, 37) of the units with the help of a code (E_{c}) in the mode of units coupling, initiated with the help of an appropriate vector of initiation (IV_{3}, IV_{N}) for every second row (31, 37) of the units. For the sequence of the first rows (29, 30) of the units included into a single data unit (26) within the flow, at least one initiation vector (IV_{N}) is generated to code the second row (37) of units generated from the first row (30) of the units in the data unit, depending on at least one unit in the preceding first row (29) of the data unit blocks.

EFFECT: reduced required short-term memory at the sender's side.

24 cl, 7 dwg

FIELD: radio engineering, communication.

SUBSTANCE: system of communication to exchange data via a communication network, which is at least partially public for open use, between the first data processing system and the second data processing system, containing the first data processing system made as capable of data exchange according to the communication protocol, besides, the first data processing system is connected via the first connection with the communication network, which is at least partially public for open use, and the second data processing system containing at least one data processing system made as capable of data exchange according to the communication protocol, at the same time the second data processing system is connected via the second connection with the communication network, which is at least partially public for open use, differing by the fact that at least one of connections contains a connection for data transfer, which is not accessible for data traffic according to the communication protocol.

EFFECT: alarm signal verification provision.

9 cl, 5 dwg

FIELD: information technology.

SUBSTANCE: device for encrypting data includes a GOST 28147-89 conversion circuit, an AES conversion circuit, an AES key conversion unit, a first multiplexer, a second multiplexer, a data storage and a key storage; the output of the data storage is connected to the first input of the GOST 28147-89 conversion circuit and to the first input of the AES conversion circuit; the output of the key storage is connected to the second input of the GOST 28147-89 conversion circuit, the second input of the AES conversion circuit, the input of the AES key conversion unit and the second input of the second multiplexer; outputs of the GOST 28147-89 conversion circuit and the AES conversion circuit are connected to the first and second inputs of the first multiplexer, respectively; the output of the first multiplexer is connected to the input of the data storage; the output of the AES key conversion unit is connected to the first input of the second multiplexer; the output of the second multiplexer is connected to the input of the key storage; encryption algorithm selection signals are transmitted to the control inputs of the first and second multiplexers.

EFFECT: reducing the amount of memory required to encrypt data.

3 dwg