EP0012974A1 - Method for enciphering data blocks of a given length - Google Patents

Method for enciphering data blocks of a given length Download PDF

Info

Publication number
EP0012974A1
EP0012974A1 EP79105225A EP79105225A EP0012974A1 EP 0012974 A1 EP0012974 A1 EP 0012974A1 EP 79105225 A EP79105225 A EP 79105225A EP 79105225 A EP79105225 A EP 79105225A EP 0012974 A1 EP0012974 A1 EP 0012974A1
Authority
EP
European Patent Office
Prior art keywords
block
word
concatenation
length
chaining
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.)
Granted
Application number
EP79105225A
Other languages
German (de)
French (fr)
Other versions
EP0012974B1 (en
Inventor
Stephen Michael Matyas
Carl Heinz Wilhelm Meyer
Louis Bryant Tuckerman Iii
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of EP0012974A1 publication Critical patent/EP0012974A1/en
Application granted granted Critical
Publication of EP0012974B1 publication Critical patent/EP0012974B1/en
Expired legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Definitions

  • the present invention belongs in the field of cryptography and especially in the field of key-controlled block encryption methods. Such procedures are usually judged to be very safe. If the key is only known to the sender and the authorized recipient of the message, then using known technology it is not actually possible for an opponent to break through such demanding procedures, i.e. the encryption key cannot be determined and therefore the message cannot be decrypted.
  • a problem with block encryption methods is that any given data block X is converted into a block Y for output. This happens so that the same X blocks appear in the output as the same Y blocks if the same key has been used. Opinions as to whether this is a weakness of the cryptographic algorithm are unknown. each other. However, it appears desirable to avoid such weaknesses by using different chaining techniques. One of them has the consequence that a previous plain text or cipher text is entered with the new data to be ciphered in order to change the product of the ciphering process. Such a process is described in US Pat. 4,078,152, which will be discussed later.
  • the ciphertext blocks are absolutely dependent on the preceding text, sometimes on a lot of text, with regard to security. Indeed. however, the dependency on cipher text is low, so as not to make deciphering more difficult and to limit the spread of errors.
  • the result is anything but ideal in the case of a data block that follows one or more short, strung blocks in a message to be encrypted.
  • the present invention is therefore intended to provide a significantly improved method over that of U.S. Patent No. 4.087.152 for processing short data blocks, whereby security and error correction in this case can be achieved similarly to that of successive full data blocks.
  • plain text blocks of a defined length L (f) for example 8 bytes called full blocks
  • L (s) ⁇ L (f) a defined length
  • ciphertext blocks of the same length are formed.
  • L (s) ⁇ L (f) short blocks of different lengths L (s) ⁇ L (f)
  • a different ciphering procedure is necessary, especially if the ciphertext is to be as long as the plaintext, ie if the short blocks are not too full Size to be inflated.
  • the security of the process and the possibility of error correction should be the same as that of the original process.
  • This output block W can either be the full ciphertext block just preceding, or the ciphertext product of the just preceding output block which was used to encrypt a preceding short block. Its deciphering would then result in the associated inversion.
  • This method has the advantage that the resulting ciphertext block usually implicitly depends on some or a lot of previous text, the amount of which is determined by the last new beginning of the chaining process, as well as the key, which gives the method security. Above all, the dependence on the key and on a small ciphertext set, namely on the next previous full ciphertext block, if available, or on an initial concatenation word is clearly recognizable. These clear dependencies enable an authorized recipient who knows the key to easily decipher. The requirement for permanently available storage space is low and in most cases the ciphertext can be easily corrected or the spread of errors is limited. A single error when encrypting or transmitting the ciphertext usually only continues over a fixed distance, which corresponds approximately to the length of two-full blocks L (f) .
  • the present invention is intended over the cited U.S. Patent No. 4.078.152 show a better method for encrypting / decrypting data blocks that follow short blocks.
  • the new concatenation word which occurs after the occurrence of a short block in the context of the Cipher algorithm used to encrypt the subsequent block is derived in a new way.
  • the present process is carried out like that in the cited patent. From the description that follows, it can be seen that the device presented here is in fact against a part of the device described in US Pat. 4.078.152 described device can be replaced.
  • the present invention therefore relates to a method for encrypting data blocks X of a predetermined length L as a function of an encryption key, in order to form encrypted blocks Y with the same length L (f) for output, combined with concatenation during the encryption of input data blocks of length L (s ) , which is shorter than L (f) , in order to form short encrypted blocks Y (s) for - the output with the same length L (s) .
  • Linking word V i of the current encryption step uses the last available product V i-1 of the encryption process in full block length L ( f ) without taking into account the length of the last output encrypted block Y i-1 , that said chaining word V i is encrypted, further that a part L (s) of the entire encrypted concatenation word W i is combined by a mathematically reversible function with the short data block X.
  • the inventive method can also be characterized in that the encrypted chaining word W i and the short data block X i entered are supplied with an EXCLUSIVE-OR operation to form the combination mentioned.
  • the method is also characterized in that the cipher block Y i currently appearing in the output and having a length of n bytes has the cipher text Y i-1 that appeared previously in order to form a new concatenation word is connected, the latter being required for the next cipher, and that the named connection is effected by eradicating the n oldest bvtes in the chaining word V i last used when inserting the cipher block Y i .
  • This last execution is also at the beginning of the encryption operations characterized that a predefined first chaining word (ICV) is used.
  • the present method can be viewed as an amendment to the key-controlled block encryption method described in U.S. Patent No. 4,078,152.
  • the change affects the C hiffr ist or decryption of a short data block X i and defines a new and substantially different type a new chaining word form, which is then used as a "running" concatenation word V i + 1 when encrypting the next full or short data block X i + 1 .
  • the new concatenation word which was formed as a result of the encryption of the short plain text block X. of length L i (s) , as the last full block W i of the block encryption method that is output. Its initial part of the length L i (s) was combined with the block X i by a reversible operation (for example via an EXCLUSIVE OR) to form the cipher block Y.
  • the new chaining word is used under otherwise identical circumstances defined as the last full block length of the concatenation V i // Y i of the old concatenation word V i with the new cipher block Y i , the latter being explained in detail in the cited patent.
  • the method described here uses the full data block length, which before entering a block cipher device e.g. To be combined via an EXCLUSIVE-OR link with a full block of plain text, the previous ciphertext in full block length. This also applies in the cited US patent if the immediately preceding block of plain text is a full block, but not if the previous block of plain text is a short block.
  • the short and long data block concatenation method uses a running concatenation word that is always defined as the immediately preceding full-block length ciphertext L ( f ).
  • This method requires that the first text in full block length is preceded by a first concatenation word Kl, which, as already mentioned, must be a data block on which the users of the method have previously agreed.
  • Kl a data block on which the users of the method have previously agreed.
  • the provision of a first concatenation word seems self-evident, but it is explained in detail in US Pat. No. 4,078,152. If the current plaintext block is a full block, it is combined with the current concatenation word by means of a reversible function, such as an EXCLUSIVE-OR.
  • the result Tat is then encrypted according to blocks using a block cipher device that is included in the system and controlled by a key.
  • the result of the whole process is the creation of a full block of new ciphertext.
  • the current plaintext block is short, ie L ( s ) ⁇ L (f)
  • the current chaining word is block-encrypted in the device.
  • the result of this ciphering is combined with the plaintext via an EXCLUSIVE-OR link as far as necessary (L (s) ) in order to obtain an equally long (L (s) new ciphertext.
  • the result obtained is entered again after the first pass until n passes have been carried out.
  • the current concatenation word consists of the last full block length of ciphertext, whereby one has to imagine that the first concatenation is still in front of it word stands. It does not matter whether the ciphertext resulted from a ciphering process with a full or a short block. If there were never more than a short block at the end of a sentence and there was no sentence chaining, then the stream of ciphertext would be generated according to the present method and that according to the aforementioned U.S. patent. However, if there are two or more short, consecutive blocks with sentence chaining, or if there is a short block in the middle of an entire sentence, then the ciphertext generated by both methods differs markedly from one another.
  • FIGS. 1A to 1D are functional blocks of a higher level and data flow diagrams which explain the basic sequence of the inventive method.
  • the character ⁇ ⁇ 1 means a key-controlled block encryption method, such as, for example, the aforementioned FIPS standard method for data encryption by the American Standards Office (NBS).
  • NSS American Standards Office
  • the upper index +1 means encryption, -1 decryption.
  • FIGS. 1A and 1B are flowcharts showing the encryption and decryption of a full data block, as was already the case in US Pat. 4,078,152.
  • a full block X plaintext to be encrypted passes through the EXCLUSIVE-OR (EX-O) together with the current concatenation word V.
  • the output signals-of the EX-O are fed to a ⁇ +1 box and this results in the cipher block Y , which also represents the new chaining word V 'of this process. The latter will to the current chaining word V for the next data block.
  • FIG. 1C shows the concatenation of a short block for the purposes of encryption, and the process for the purpose of deciphering in FIG. 1D.
  • deciphering is the mathematical inversion of ciphering.
  • the length of each block X is equal to the length of the corresponding Y and that this is always shorter than a full block of 8 bytes. To avoid confusion, the upper index (s) will no longer be used in this description.
  • the current chaining word V is first fed to the ⁇ +1 box for encryption and simultaneously entered into a chaining register.
  • the plain text block X is linked via EX-O to the output W of the ⁇ box to form the cipher block Y.
  • the short block of encrypted data Y is also shifted into the chaining register and this register becomes the rightmost one Bytes taken from a full block length and made the new concatenation word V '.
  • the chaining register can only hold just as many bytes corresponding to a full block length. If the new cipher block Y is inserted, an equal number of the leftmost, ie oldest, bytes are shifted out and are lost. The remaining content of the chaining register will thus be the new chaining word V '.
  • the new concatenation word V 'always includes all bytes of the generated block Y and as many of the rightmost bytes of the current concatenation word V as it takes to fill a full block length.
  • FIG. 1E The decryption process of FIG. 1D is the mathematical inversion of the encryption in FIG. 1C, with the ⁇ box operating in the encryption mode in both cases.
  • FIGS. 1C and 1D The main difference in FIGS. 1C and 1D is the swapping of the role of the short block X with that of the corresponding short block Y in terms of input and output, since the effect of an EXCLUSIVE OR represents its own inversion (antivalence).
  • the latter is the inverse 1C and generates the short, decrypted block X.
  • FIG. 1E now shows an example for the encryption of three short blocks X 1 , X 2 and X3 which follow one another from a data flow.
  • a current chaining word V 1 is suitably stored in the chaining register.
  • the latter can also be an initial chaining word (ICV) if these short blocks are the first data of a new transmission, a file, or a data record are without sentence chaining, which must be encrypted by the facility.
  • the three processes are separated by two vertical, dashed lines, and each part comprises the same logic circuit blocks of the diagram of Fig. 1C.
  • the three short blocks X 1 , X 2 and X 3 are assumed to be 3, 4 and 3 bytes in length.
  • the corresponding current chaining word V 1 , V 2 or V 3 is fed to the ⁇ box.
  • the outputs W 1 , W 2 and W 3 of the relevant ⁇ box are linked in an EX-O with the associated plain text block X 1 , X 2 and X 3 , respectively, and the three cipher blocks Y 1 , Y 2 and Y 3 are generated in this way . It is easy to determine that only as many bytes of the output of the ⁇ box in question are used as are necessary to generate a ciphertext of the same length as the input text.
  • Y 1 has a length of 3 bytes.
  • stage 1 Y 1 is concatenated with the current concatenation word V 1 , as can be seen from the enlarged representation of the concatenation register and its content at the bottom of the figure.
  • Vi now becomes the current concatenation word V 2 for the second stage.
  • the concatenation register need only be the length of a full block. The parts of the content shown that are not in the new concatenation word are included can be pushed out and dropped if the ciphertext Y 1 is pushed in.
  • the current concatenation word V 2 arrives in the n-box and also in the concatenation register. The latter then receives the new short cipher block Y 2 , which comprises 4 bytes. This is shown at the bottom of the second stage.
  • the new concatenation word consists of 4 bytes of Y 2 and the 4 rightmost bytes of V 2 . The latter comprise 3 bytes of Y 1 and one byte of the concatenation word V 1 .
  • the current chaining word V 3 arrives in the n-box and in the chaining register. In the latter, it is combined with the short cipher block Y 3 .
  • the new concatenation word consists of the 3 bytes of Y 3 and the 5 rightmost bytes of V 3 .
  • the new chaining word now includes , which becomes the current chaining word V 4 for the next operation, only ciphertext. These are the 3 bytes of Y 3 , the 4 bytes of Y 2 and the last byte to the right of Y 1 . It is obvious that the concatenation word changes constantly, regardless of how many short blocks in a row follow one another. If a fourth data block had the full length of 8 bytes, V 4 would be used as the current chaining word of an encryption process for full blocks, as corresponds to FIG. 1A.
  • FIGS. 3A-3C show a flow diagram of the operations required in the circuitry of FIGS. 3A-3C.
  • the invention now to be discussed, namely an encryption and concatenation method for short data blocks, is a supplementary improvement of the method in the patent mentioned. As a result, the whole process operates as described in this patent until a short block of data occurs. In this point, the current, modified circuit arrangement controls the processes in the system.
  • FIG. 1D of the named patent can be exactly replaced by FIGS. 2A and 2B of the present description of the invention.
  • FIGS. 3A, 3B and 3C Three registers, among others, of the function blocks can be found both in the mentioned patent and in the present circuit arrangement: the input register 10 (IN REG.) For input data, the old register 12 (OLD REG.) For the chaining word and the output register 14 (OUT REG .) for output data.
  • the device works in exactly the same way up to and with box 35 of the flow chart, except that box 34 has been omitted. Boxes 100-108 replace the former box 36 and after leaving box 108 according to the present arrangement is reconnected to box 37, the operations being the same as before. Additional circuit elements in FIGS. 3A, 3B and 3C with respect to the corresponding figures in said US Pat. Are the EXCLUSIVE-OR-link EX-03 (Fig.
  • One data input of the EX-03 comes from the input register and the other from the r-block I / O register 50.
  • the output of the EX-03 is fed to the MPX2 on the one hand and forms the new input no. 4, on the other hand the MPX3 as new input No. 2.
  • An additional control line must therefore be supplied for each MPX2 and MPX3.
  • the EX-O function of the short blocks X and Y with the block cipher product W of the current concatenation word V is exercised in the switching block EX-03 rather than in EX-02 according to US Pat. No. . 4,078,152.
  • the purpose of the encryption is to direct the output of EX-03, which represents the short cipher block Y, via MPX2 to the old register 12, in order to take the place there in the new concatenation word V '.
  • the old register 12 serves both as the chaining register described earlier and as a memory for the corresponding new chaining word, which is then made the current chaining word. Since only the last full block length of the concatenation result is stored as V ', it is sufficient if the old register has a full block length and the redundant oldest bytes are dropped.
  • FIGS. 3A-3C of the present invention As those of the ge called patent, which should not be described again.
  • the new sequences of microprograms would also be stored in the residual value memory 24 (ROM) in order to control the necessary shifting, switching, testing, branching, etc. functions, as is done in the patent mentioned. Therefore, the output decoder 40, the control switches 42, the input multiplexer 32 and the read-only memory 24 (ROM) and the associated memory address registers 26 (MAR) operate in the same way as before.
  • the process continues with the decision in box 100, which is the first to replace the previous box 36.
  • the operating control line 7 is queried whether chaining is required. If, as is assumed, chaining is answered in the affirmative, then it proceeds to box 101, where the decision is made as to whether the method operates in the encryption mode or in the decryption mode.
  • box 106 it is checked again and a decision is made as to whether concatenation has been requested. Since this must be affirmed in the present circumstances, the method goes one step further to box 108, the content of the output register 14 being shifted a total of (8-n) times in order to right-justify the short block Y therein. Then it goes to box 37 and the n bytes of Y are output, so that from here on the control according to the repeatedly cited US patent is resumed.
  • step 104 the concatenation according to the cited US patent and the present invention can be avoided.
  • step 104 the step outlined in box 104.
  • the data path is determined again.
  • box 105 n shift operations are carried out, as a result of which the plain text block X or the cipher block Y, which are stored in the input register, are linked with the beginning part of the content in the old register in an EX-0.
  • the old register contains the block cipher printout of a size K2, this printout being supplied during steps 5, 7, 8 and 9 according to FIG. 1A of the cited patent.
  • step (103) If branching to step (103) had taken place after step (101), an operation similar to step (102) would have taken place, with the control switch 42 connecting the cable No. 2 from MPX3 and cable No. 0 controlled by MPX2.
  • the SR mask cable now outputs the same signal set-up as in step (102), namely 001111. Therefore, the same registers also receive shift control pulses for carrying out the operations of the flow chart recorded in boxes 102 and 103. In both cases the output register receives the output values of the EX-O function for the content of the input register and the ⁇ -block I / O register. But according to box 102, the old register receives the same input signals as the off gear register.
  • step (104) follows.
  • the first command in this step causes the control switch 42 to output cable no. l from MPX4, cable no. 2 from MPX3 and cable No. 1 can be controlled by MPX2. 'This selection determines the data path, the content of the input register and that of the old register being fed to the EX-O function.
  • the old register according to U.S. Patent No. 4,078,152 the cipher print of a size that was stored in the K2 register.
  • the result of the EX-O function is returned to the old register, and the selection of MPX2 means that the previous content of the old register is also saved again in this.
  • the step (104) determines that the cable SR mask also outputs a signal list 001110, which makes the old registers, input registers and output registers receivers of SR clock pulses during step (105).
  • the step (105A) is carried out in two parts, the part step (105A) providing the control line for execution and the part step (105B) as a control loop enables the successive shifting of the bytes in the respective register.
  • the status of the counter 46 is checked at the same time to determine whether the required number of shifts has already taken place.
  • the counter 46 is loaded with the number n, which had previously been entered in the copy register 48.
  • the U / D control line is set to "0", which leads to a reduction in the counter reading for each incoming pulse CP1.
  • line no. 11 of the input multiplexer controlled, whereby a sequence of steps present in the read-only memory (ROM) 24.
  • Step (106) queries line 7 of input multiplexer 32 as to whether an operation "without chaining" is in progress. If the line 7 carries a zero, which means chaining, then it proceeds to step (108A). Otherwise, line 7 carries a logic "1" that says “without chaining” and proceeds to step (107A).
  • the control switches 42 are caused to step the cable No. in step (107A). 1 controlled by the MPX2.
  • the SR mask is set to 001000.
  • the C sliding line is acted upon and shifting impulses are directed to the old register.
  • line 9 to input multiplexer 32 is also controlled, and finally the number n is also set in counter 46 and the U / D line is assigned a "1", so that the counter reading increases by each incoming pulse CP1 becomes.
  • the old register with its control circuits is able to shift its content by 8 bytes within the register and to completely re-enter the previous memory content, as has already been done according to box 104 of the flowchart.
  • the constant stored in the old register has been completely pushed back into its own place in this operating mode.
  • With the counter set to the number n the level of which increases in each case, a transfer is generated when the value 8 is reached, as explained in the cited patent.
  • the U / D line is set to logic "1" so that the counter reading can be increased.
  • sub-step (108B) represents a loop for shifting operations such as steps (107B), (105B), etc.
  • An SR clock pulse is now output by the output decoder 40, which is sent to the AND gate A-0 arrives and triggers a 1-byte shift operation in the output register.
  • the level in counter 46 is increased and the status of line 9 to input multiplexer 32 is queried. If the latter is "0", which means that there have not yet been enough shift operations to generate a transfer, the process sequence begins again at step (108B).
  • step (37A) the n bytes of the short block provided by the method being output from the output register.
  • the special operations in box 37 are the same as in box 108, except that after entering number n in counter 46, line 11 is queried instead of line 9 and the U / D line is set to "0", which is why the counter reading is reduced in each case.
  • US Pat. 4,078,152 whose procedure is now fully taken over by the further control.
  • the old register 12 contains a new "running" concatenation word that can be used in the further process, regardless of whether a "block end", a short block or a full block is next in the data stream Block occurs.
  • This concatenation word located in the old register thus represents the last 8 bytes of an encrypted text Y, which the device has produced when at least 8 bytes have been processed. Otherwise, it is less than 8 bytes of processed cipher text, preceded by enough last bytes of the first concatenation word to reach the total of 8 bytes.
  • the inventive method for encryption and chaining of data, or their decryption, explained here when shorter blocks than usual occur can be used in any block cipher system, and especially where high data security is required. This applies to data transfer, which can be tapped easily, or to large files, for which unauthorized access is not easily prevented. Data security problems also arise in the application of the ever increasing number of credit cards in the sale of goods and at banks, for which the present invention represents a possible solution.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)

Abstract

Das Verfahren arbeitet gesteuert durch einen Schlüssel und mit Verkettung. Es berücksichtigt zudem die Möglichkeit des Auftretens kürzerer Blöcke, welche bisher die Datensicherheit gefährden konnten. Bei Beginn des Chiffriervorganges wird ein vorhergegangenes Verkettungswort V vorausgestetzt und bestimmt, ob ein neuer Datenblock X kürzer ist. Hat er volle Länge, dann werden V und X in einer umkehrbaren EXKLUSIV-ODER-Funktion verknüpft, das Produkt chiffriert, der Chiffretext Y gleichzeitig als neues Verkettungswort V' für den nächsten Vorgang gespeichert. Ist der Datenblock X kürzer, dann wird das Verkettungswort V zuerst chiffriert, das Chiffreresultat W in einer umkehrbaren EXKLUSIV-ODER-Funktion mit X verknüpft und ein kurzer Chiffreblock Y ausgegeben. Neues Verkettungswort V' wird in einem Register ein Ausdruck, der rechts das volle Chiffrat Y und links bis zur vorgegebenen Länge die weitestrechts stehenden Teile des vorhergegangenen Verkettungswortes V umfasst.The process works controlled by a key and with concatenation. It also takes into account the possibility of the appearance of shorter blocks, which previously could endanger data security. At the beginning of the encryption process, a previous chaining word V is presupposed and it is determined whether a new data block X is shorter. If it is full length, then V and X are linked in a reversible EXCLUSIVE-OR function, the product is encrypted, the ciphertext Y is simultaneously saved as a new concatenation word V 'for the next process. If the data block X is shorter, the chaining word V is first encrypted, the cipher result W is linked with X in a reversible EXCLUSIVE-OR function and a short cipher block Y is output. The new concatenation word V 'becomes an expression in a register which comprises the full ciphertext Y on the right and the leftmost parts of the preceding concatenation word V up to the predetermined length.

Description

Die vorliegende Erfindung gehört in das Gebiet der Kryptographie und vor allem in den Bereich der durch Schlüssel gesteuerten Blockchiffrierverfahren. Solche Verfahren werden in der Regel als sehr sicher beurteilt. Ist der Schlüssel nur dem Absender sowie dem Berechtigten Empfänger der Nachricht bekannt, dann ist es mit Einsatz bekannter Technik für einen Gegenspieler eigentlich nicht möglich, solche anspruchsvolle Verfahren zu durchbrechen, d.h. der Chiffrierschlüssel kann nicht eruiert und daher die Nachricht nicht dechiffriert werden.The present invention belongs in the field of cryptography and especially in the field of key-controlled block encryption methods. Such procedures are usually judged to be very safe. If the key is only known to the sender and the authorized recipient of the message, then using known technology it is not actually possible for an opponent to break through such demanding procedures, i.e. the encryption key cannot be determined and therefore the message cannot be decrypted.

Im Hinblick auf den Erlass neuer Datenschutzgesetze hat das amerikanische.Nermenbüro (NBS) eine Norm für den Schutz der EDV angenommen, deren technische Beschreibung im Januar 1977 unter dem Titel "Data Encryption Standard", FIPS No. 46 des NBS, U.S. Department of Commerce, veröffentlicht worden ist. In der amerikanischen Patentschrift No. 3.958.081 ist eine Einrichtung beschrieben, welche dieser Norm entspricht.With a view to the enactment of new data protection laws, the American office (NBS) has adopted a standard for the protection of the EDP, whose technical description in January 1977 under the title "Data Encryption Standard", FIPS No. 46 of the NBS, U.S. Department of Commerce. In American Patent No. 3,958,081 a device is described which corresponds to this standard.

Ein Problem bei Blockchiffrierverfahren ist darin zu sehen, dass irgend ein vorgegebener Datenblock X in einen Block Y für die Ausgabe verwandelt wird. Dies geschieht so, dass gleiche X-Blöcke im Ausgang als gleiche Y-Blöcke erscheinen, wenn der gleiche Schlüssel benutzt worden ist.Die Meinungen,ob dies eine Schwäche des kryptographischen Algorithmus darstellt, gehen aus-. einander. Es erscheint jedoch wünschenswert, solche Schwächen zu vermeiden, indem verschiedene Verkettungsverfahren eingesetzt werden. Eines davon hat zur Folge,- dass ein vorausgegangener Klar- oder Chiffretext mit den neuen, zu chiffrierenden Daten eingegeben wird, um eine Aenderung des Produktes des Chiffriervorganges zu erzielen. Ein solches Verfahren ist in der US-Patentschrift No. 4.078.152 beschrieben, auf die später noch eingegangen wird.A problem with block encryption methods is that any given data block X is converted into a block Y for output. This happens so that the same X blocks appear in the output as the same Y blocks if the same key has been used. Opinions as to whether this is a weakness of the cryptographic algorithm are unknown. each other. However, it appears desirable to avoid such weaknesses by using different chaining techniques. One of them has the consequence that a previous plain text or cipher text is entered with the new data to be ciphered in order to change the product of the ciphering process. Such a process is described in US Pat. 4,078,152, which will be discussed later.

Im Verfahren des letztgenannten Patentes sind die Chiffretext-Blöcke bezüglich Sicherheit unbedingt vom vorausgegangenen Text abhängig, zuweilen von viel Text. Tatsächlich. ist aber die Abhängigkeit von Chiffretext gering, um die Dechiffrierung nicht zu erschweren und die Fehlerausbreitung zu begrenzen. Das Resultat ist alles andere als ideal im Fall eines Datenblockes, der einem oder mehreren kurzen, aneinandergereihten Blöcken in einer zu chiffrierenden Nachricht folgt. Mit der vorliegenden Erfindung ist daher beabsichtigt, ein deutlich verbessertes Verfahren gegenüber jenem von US.-Patent No. 4.087.152 zur Verarbeitung kurzer Datenblöcke aufzuzeigen, wobei Sicherheit und Fehlerkorrektur für diesen Fall ähnlich der bei einanderfolgenden vollen Datenblöcken erzielbar ist.In the process of the latter patent, the ciphertext blocks are absolutely dependent on the preceding text, sometimes on a lot of text, with regard to security. Indeed. however, the dependency on cipher text is low, so as not to make deciphering more difficult and to limit the spread of errors. The result is anything but ideal in the case of a data block that follows one or more short, strung blocks in a message to be encrypted. The present invention is therefore intended to provide a significantly improved method over that of U.S. Patent No. 4.087.152 for processing short data blocks, whereby security and error correction in this case can be achieved similarly to that of successive full data blocks.

Beim Einsatz eines Blockchiffrierverfahrens werden in der Regel Klartextblöcke einer festgelegten Länge L(f), von z.B. 8 Bytes als volle Blöcke bezeichnet, angenommen und entsprechende Chiffretextblöcke derselben Länge gebildet. Treten im Klartext kurze Blöcke verschiedener Längen L(s) < L(f) auf, dann ist ein geändertes Chiffrierverfahren nötig, besonders wenn der Chiffretext gleich lang sein soll wie der Klartext, d.h. wenn die kurzen Blöcke nicht zu voller Grösse aufgebläht werden sollen. Offensichtlich soll die Sicherheit des Verfahrens und die Möglichkeit zur Fehlerkorrektur gleich jener des ursprünglichen Verfahrens sein. Bei der Verkettung nach dem US.-Patent No. 4.078.152 wird jener Block mit Hilfe des zuletzt vorausgegangenen Ausgangsblockes W der Chiffriereinrichtung chiffriert, wobei es darauf ankommt, ob der derzeitig zu verarbeitende Block volle Länge hat oder kürzer ist. Dieser Ausgangsblock W kann entweder der gerade vorausgegangene volle Chiffretextblock sein, oder das Chiffrierprodukt-des gerade vorausgegangenen Ausgabeblockes, der zur Chiffrierung eines vorauslaufenden kurzen Blockes gedient hat. Seine Dechiffrierung ergäbe dann die zugehörige Invertierung.When using a block encryption method, plain text blocks of a defined length L (f) , for example 8 bytes called full blocks, are generally accepted and corresponding ciphertext blocks of the same length are formed. If short blocks of different lengths L (s) <L (f) occur in plain text, a different ciphering procedure is necessary, especially if the ciphertext is to be as long as the plaintext, ie if the short blocks are not too full Size to be inflated. Obviously, the security of the process and the possibility of error correction should be the same as that of the original process. When concatenated according to U.S. Patent No. 4,078,152, that block is encrypted with the aid of the last preceding output block W of the encryption device, depending on whether the block currently to be processed is full length or shorter. This output block W can either be the full ciphertext block just preceding, or the ciphertext product of the just preceding output block which was used to encrypt a preceding short block. Its deciphering would then result in the associated inversion.

Dieses Verfahren hat den Vorteil, dass der resultierende Chiffretextblock üblicherweise implizit von einigem oder viel vorausgegangenem Text abhängt, dessen Menge vom letzten Neubeginn des Verkettungsprozesses bstimmt ist, wie auch vom Schlüssel, was dem Verfahren Sicherheit gibt. Klar erkennbar ist vor allem die Abhängigkeit vom Schlüssel und von einer kleinen Chiffretextmenge, nämlich vom nächsten vorausgegangenen vollen Chiffretextblock, soweit vorhanden, oder von einem Erstverkettungswort. Diese klaren Abhängigkeiten ermöglichen einem berechtigten Empfänger, der den Schlüssel kennt, leichtes Dechiffrieren. Die Forderung nach fest verfügbarem Speicherraum ist gering und meistens ist der Chiffretext leicht korrigierbar oder die Fehlerausbreitung begrenzt. Ein einzelner Fehler beim Chiffrieren oder Uebermitteln des Chiffretextes setzt sich meistens nur über eine feste Distanz fort, die etwa der Länge von zwe-i vollen Blöcken L(f) entspricht.This method has the advantage that the resulting ciphertext block usually implicitly depends on some or a lot of previous text, the amount of which is determined by the last new beginning of the chaining process, as well as the key, which gives the method security. Above all, the dependence on the key and on a small ciphertext set, namely on the next previous full ciphertext block, if available, or on an initial concatenation word is clearly recognizable. These clear dependencies enable an authorized recipient who knows the key to easily decipher. The requirement for permanently available storage space is low and in most cases the ciphertext can be easily corrected or the spread of errors is limited. A single error when encrypting or transmitting the ciphertext usually only continues over a fixed distance, which corresponds approximately to the length of two-full blocks L (f) .

Dieses Verfahren hat jedoch folgenden Nachteil. Wenn zu Beginn eine Reihe kurzer Blöcke vorhanden ist, z.B. eine Reihe kurzer Aufzeichnungen ohne jeden vollen Block, was nicht üblich aber möglich ist, dann ist das Material, das zusammen mit dem Klartext zur Chiffrierung benutzt wird, nur vom Chiffrierschlüssel und vom benutzten Algorithmus abhängig. Es ist unabhängig von einem vorausgegangenen Text und zwei oder mehrere solcher Chiffretextfolgen, die mit demselben Schlüssel produziert worden sind, könnten mittels bekannter Methoden analysiert und entziffert werden. Im allgemeinen ist ein ähnliches Eindringen im unwahrscheinlichen Fall möglich, wenn derselbe Schlüssel zur Chiffrierung von zwei oder mehr Klartexten benutzt wird, die miteinander in der Folge und Länge ihrer Blöcke identisch sind und deren Texte in den vollen Blöcken übereinstimmen, auch wenn dies für die Texte der kurzen Blöcke nicht unbedingt zutrifft. Wenn immer eine Folge kurzer Blöcke vorkommt, mit oder ohne vorausgegangenen vollen Blöcken dann ist die Dechiffrierung des nachfolgenden vollen oder kurzen Blockes eindeutig teilweise vom letzten vollen Block Chiffretext abhängig, der beliebig weit zurückliegen mag, so dass Fehler sich unbegrenzt verbreiten können.However, this method has the following disadvantage. If there is a series of short blocks at the beginning, e.g. a series of short records without each full block, which is not common but possible, then the material that is used together with the plain text for encryption depends only on the encryption key and the algorithm used. It is independent of a previous text and two or more such ciphertext strings produced with the same key could be analyzed and deciphered using known methods. In general, a similar intrusion is possible in the unlikely event that the same key is used to encrypt two or more plain texts that are identical in the sequence and length of their blocks and whose texts match in the full blocks, even if this applies to the texts of the short blocks is not necessarily true. If there is always a sequence of short blocks, with or without previous full blocks, then the deciphering of the following full or short block is clearly partially dependent on the last full block of ciphertext, which may be as far back as possible, so that errors can spread indefinitely.

Die vorliegende Erfindung soll gegenüber dem zitierten US.-Patent No. 4.078.152 ein besseres Verfahren für Chiffrierung/Dechiffrierung von Datenblöcken aufzeigen, die auf kurze Blöcke folgen. In diesen Verfahren von der Art der durch Schlüssel gesteuerten Block-Chiffriermethoden wird das neue Verkettungswort, das nach Auftreten eines kurzen Blocks im Rahmen des Chiffrealgorithmus zum Chiffrieren des nachfolgenden Blockes verwendet wird, in neuartiger Weise abgeleitet. In den übrigen Belangen wickelt sich das vorliegende Verfahren ab wie jenes im zitierten Patent. Anhand der später folgenden Beschreibung wird ersichtlich, dass die hier dargelegte Einrichtung tatsächlich gegen einen Teil der im US.-Patent No. 4.078.152 beschriebenen Einrichtung ausgetauscht werden kann.The present invention is intended over the cited U.S. Patent No. 4.078.152 show a better method for encrypting / decrypting data blocks that follow short blocks. In these methods of the type of key-controlled block encryption methods, the new concatenation word, which occurs after the occurrence of a short block in the context of the Cipher algorithm used to encrypt the subsequent block is derived in a new way. In all other respects, the present process is carried out like that in the cited patent. From the description that follows, it can be seen that the device presented here is in fact against a part of the device described in US Pat. 4.078.152 described device can be replaced.

Weitere Blockchiffrierverfahren sind auch noch in den US.-Patenten 3.798.359, 3.796.830 und 3.958.081 beschrieben, die sich auch mit der Datensicherheit auseinandersetzen und,hochentwickelte Einrichtungen aufzeigen. Das letzte Patent ist bereits im Zusammenhang mit den Normen für Datenschutz erwähnt worden. Die Erfüllung dieser Normen wird auch im vorliegenden Fall vorausgesetzt. So beträgt die Länge jedes Textblockes, der verarbeitet wird, 64 Bits, z.B. 8 Bytes zu je 8 Bits. Das Verfahren ist jedoch auch anwendbar, wenn andere Datenblocklängen festgelegt würden.Further block encryption methods are also described in US Patents 3,798,359, 3,796,830 and 3,958,081, which also deal with data security and show sophisticated facilities. The last patent has already been mentioned in connection with data protection standards. Compliance with these standards is also assumed in the present case. So the length of each block of text that is processed is 64 bits, e.g. 8 bytes of 8 bits each. However, the method can also be used if other data block lengths were specified.

Die vorliegende Erfindung betrifft daher ein Verfahren zur Chiffrierung von Datenblöcken X einer vorgegebenen Länge L in Funktion eines Chiffrierschlüssels, zwecks Bildung chiffrierter Blöcke Y mit derselben Länge L(f) für die Ausgabe, verbunden mit Verkettung bei der Chiffrierung eingegebener Datenblöcke der Länge L(s), die kürzer ist als L(f), zwecks Bildung kurzer chiffrierter Blöcke Y(s) für - die Ausgabe mit derselben Länge L(s). Es ist dadurch gekennzeichnet, dass die Eingabe eines kurzen Datenblockes Xi der Länge L(s) festgestellt wird, dass als Verkettungswort Vi des laufenden Chiffrierschrittes das zuletzt vorhandene Produkt Vi-1 des Chiffriervorganges in voller Blocklänge L(f) ohne Berücksichtigung der Länge des zuletzt ausgegebenen chiffrierten Blockes Yi-1 verwendet wird, dass das genannte Verkettungswort Vi chiffriert wird, ferner dass ein Teil L(s) des ganzen chiffrierten Verkettungswortes Wi durch eine mathematisch umkehrbare Funktion mit dem genannten kurzen Datenblock X. kombiniert und die Kombination als chiffrierte Ausgabe Yi des kurzen Datenblocks verwendet wird unddass schliesslich die genannte Kombination der Länge L(s) als neuester Bestandteil des beim nächsten Chiffriervorgang zu verwendenden Verkettungswortes

Figure imgb0001
eingesetzt wird, unabhängig davon wie lange (L(f) oder L(s)) der nächste zu chiffrierende Datenblock X i+1 ist.The present invention therefore relates to a method for encrypting data blocks X of a predetermined length L as a function of an encryption key, in order to form encrypted blocks Y with the same length L (f) for output, combined with concatenation during the encryption of input data blocks of length L (s ) , which is shorter than L (f) , in order to form short encrypted blocks Y (s) for - the output with the same length L (s) . It is characterized in that the entry of a short data block X i of length L (s) is determined as Linking word V i of the current encryption step uses the last available product V i-1 of the encryption process in full block length L ( f ) without taking into account the length of the last output encrypted block Y i-1 , that said chaining word V i is encrypted, further that a part L (s) of the entire encrypted concatenation word W i is combined by a mathematically reversible function with the short data block X. and the combination is used as the encrypted output Y i of the short data block and finally the combination of the length L (s) as Latest component of the concatenation word to be used in the next encryption process
Figure imgb0001
is used, regardless of how long (L (f) or L (s) ) the next data block X i + 1 to be encrypted is.

Das erfinderische Verfahren kann aber zusätzlich auch dadurch gekennzeichnet sein, dass zur Bildung der genannten Kombination das chiffrierte Verkettungswort Wi und der eingegebene kurze Datenblock Xi einer EXKLUSIV-ODER-Verknüpfung zugeführt werden. Nach einer weiteren Ausführung ist das Verfahren zudem dadurch gekennzeichnet, dass der gerade in der Ausgabe erscheinende Chiffreblock Yi von n Bytes Länge mit dem vorgängig erschienenen Chiffretext Yi-1 zwecks Bildunq eines neuen Verkettungswortes

Figure imgb0002
verbunden wird, welch letzteres beim nächsten Chiffriervorqanq benötiqt wird, und dass die qenannte Verbindunq durch Ausmerzen der n ältesten Bvtes im zuletzt benutzten Verkettungswort Vi beim Einschieben des Chiffreblocks Yi bewirkt wird. Diese letzte Ausführunq ist beim Beqinn der Chiffrieroperationen ausserdem dadurch gekennzeichnet, dass ein vorgegebenes Erstverkettungswort (ICV) benutzt wird.However, the inventive method can also be characterized in that the encrypted chaining word W i and the short data block X i entered are supplied with an EXCLUSIVE-OR operation to form the combination mentioned. According to a further embodiment, the method is also characterized in that the cipher block Y i currently appearing in the output and having a length of n bytes has the cipher text Y i-1 that appeared previously in order to form a new concatenation word
Figure imgb0002
is connected, the latter being required for the next cipher, and that the named connection is effected by eradicating the n oldest bvtes in the chaining word V i last used when inserting the cipher block Y i . This last execution is also at the beginning of the encryption operations characterized that a predefined first chaining word (ICV) is used.

Das erfinderische Verfahren ergibt beim Auftreten kürzerer Datenblöcke dank der neuartigen Verkettung höhere Datensicherheit, die jener bei der Verarbeitung der Blöcke mit voller Länge gleichkommt. Gleichzeitig wird aber auch die Fehlerausbreitung begrenzt, wobei ein auftretender Fehler nach einer Datenlänge von zwei vollen Blöcken seinen Einfluss verliert. Die Erfindung wird nun anschliessend anhand der zugehörigen Zeichnungen genau beschrieben. Es zeigen:

  • Fign. lA - lE Blockdiagramme in vereinfachter Form zur Erläuterung des erfinderischen Verfahrens,
  • Fig. 2 die Anordnung der Fign. 2A und 2B,
  • Fign. 2A + 2B ein Flussdiagramm, das den Ablauf des erfinderischen Verfahrens darstellt,
  • Fig. 3 die Zusammensetzung der Fign. 3A,B,C und
  • Fign. 3A,B u.C eine Logikschaltung, dargestellt in Funktionsblöcken einer bevorzugten Ausführung zur Anwendung des erfinderischen Verfahrens.
When shorter data blocks occur, the inventive method results in higher data security thanks to the novel chaining, which is equivalent to that when processing the blocks with full length. At the same time, however, the spread of errors is also limited, with an error that loses its influence after a data length of two full blocks. The invention will now be described in detail with reference to the accompanying drawings. Show it:
  • Fig. 1A - 1E block diagrams in simplified form to explain the inventive method,
  • Fig. 2 shows the arrangement of Figs. 2A and 2B,
  • Fig. 2A + 2B is a flowchart illustrating the sequence of the inventive method,
  • 3 shows the composition of FIGS. 3A, B, C and
  • Fig. 3A, B uC a logic circuit, represented in functional blocks of a preferred embodiment for applying the inventive method.

Das-vorliegende Verfahren kann als eine Aenderung des durch Schlüssel gesteuerten Blockchiffrierverfahrens betrachtet werden, das im US.-Patent No. 4.078.152 beschrieben ist. Die Aenderung betrifft die Chiffrierung oder Dechiffrierung eines kurzen Datenblockes Xi und definiert eine neue, wesentlich abweichende Art ein neues Verkettungswort

Figure imgb0003
zu bilden, das anschliessend als "laufendes" Verkettungswort Vi+1 beim Chiffrieren des nächstfolgenden vollen oder kurzen Datenblocks Xi+1 benutzt wird.The present method can be viewed as an amendment to the key-controlled block encryption method described in U.S. Patent No. 4,078,152. The change affects the C hiffrierung or decryption of a short data block X i and defines a new and substantially different type a new chaining word
Figure imgb0003
form, which is then used as a "running" concatenation word V i + 1 when encrypting the next full or short data block X i + 1 .

Im vorgenannten Patent war das neue Verkettungswort

Figure imgb0004
, das als Folge der Chiffrierung des kurzen Klartextblockes X. der Länge Li (s) gebildet wurde, als der letzte ausgegebene volle Block Wi des Blockchiffrierverfahrens definiert. Sein Anfangsteil der Länge Li (s) wurde durch eine umkehrbare Operation (z.B. über ein EXKLUSIV-ODER) mit dem Block Xi zur Bildung des Chiffreblocks Y. kombiniert. Im vorliegenden Verfahren wird jedoch unter sonst gleichen Umständen das neue Verkettungswort
Figure imgb0005
als die letzte volle Blocklänge der Verkettung Vi//Yi des alten Verkettungswortes Vi mit dem neuen Chiffreblock Yi definiert, wobei letzterer im genannten Patent genau erläutert ist.In the aforementioned patent was the new concatenation word
Figure imgb0004
, which was formed as a result of the encryption of the short plain text block X. of length L i (s) , as the last full block W i of the block encryption method that is output. Its initial part of the length L i (s) was combined with the block X i by a reversible operation (for example via an EXCLUSIVE OR) to form the cipher block Y. In the present procedure, however, the new chaining word is used under otherwise identical circumstances
Figure imgb0005
defined as the last full block length of the concatenation V i // Y i of the old concatenation word V i with the new cipher block Y i , the latter being explained in detail in the cited patent.

Steht im Klartext ein voller Block X. zur Verfügung, dann war gemäss dem zitierten Patent das neue Verkettungswort

Figure imgb0006
gleich dem vollen Block Yi des neuen Chiffretext. Diese Definition des Ausdrucks
Figure imgb0007
beim Auftreten eines vollen Datenblocks X. wird für das vorliegende Verfahren nicht geändert. Aber sie kann jener Definition von
Figure imgb0008
als aequivalent betrachtet werden, die besagt:
Figure imgb0009
ist gleich der letzten vollen Blocklänge der Verkettung Vi//Yi.Im besagten Patent, ergänzt durch die vorliegende Erfindung, ist also das während der Chiffrierung des Blockes Xi(voll oder kurz)erzeugte neue Verkettungswort
Figure imgb0010
jederzeit gleich der letzten vollen Blocklänge der Verkettung Vi//Yi (des alten Verkettungswortes mit dem soeben erzeugten Chiffretext Y.). Dies gilt unabhängig davon, ob Xi und auch Yi ein voller oder ein kurzer Textblock ist.If a full block X. is available in plain text, then according to the cited patent was the new concatenation word
Figure imgb0006
equal to the full block Y i of the new ciphertext. This definition of the expression
Figure imgb0007
when a full data block X. occurs, no change is made for the present method. But it can meet that definition of
Figure imgb0008
be considered equivalent, which says:
Figure imgb0009
is equal to the last full block length of the concatenation V i // Y i . In the said patent, supplemented by the present invention, is therefore the new concatenation word generated (full or short) during the encryption of the block X i
Figure imgb0010
at any time equal to the last full block length of the concatenation V i // Y i (the old concatenation word with the cipher text Y. just created). This applies regardless of whether X i and Y i is a full or a short text block.

Aus der eben aufgezeigten Definition ist ersichtlich, dass Vi ebenso gut als die letzte volle Blocklänge der Verkettung V1//Y1//Y2//...//Yi-1// Yi = V1//Y(i) des Erstverkettungswortes V1 (beim Beginn der Verkettung) mit dem Chiffretext Y(i) = Yl// Y2//...//Yi-1//Yi, soweit er bisher erzeugt worden ist, definiert werden kann. Tatsächlich ist dies üblicherweise richtig ausser in den Fällen, in welchen die Länge L(i) von Y(i) kleiner ist als die Länge L(f) eines vollen Blocks. Dann ist

Figure imgb0011
gleich der Verkettung des letzten (L(f) - L(i)) - langen Teils von V1 mit Y(i). Die klar ersichtliche Folge davon ist: die Dechiffrierung eines vorliegenden Blocks Chiffretext ist zuerst gerade von diesen Block abhängig, dann von der unmittelbar vorausgegangenen vollen Blocklänge an Chiffretext und schliesslich vom Schlüssel. Der Einfluss eines Fehlers im Chiffretext erstreckt sich daher höchstens auf zwei volle Blocklängen dechiffrierten Klartext.From the definition just shown, it can be seen that V i is as good as the last full block length of the chain V 1 // Y 1 // Y 2 //...//Y i-1 // Y i = V 1 // Y (i) of the first concatenation word V 1 (at the beginning of the concatenation) with the ciphertext Y (i) = Y l // Y 2 //...//Y i-1 // Y i , insofar as it has been generated so far , can be defined. In fact, this is usually true except in cases where the length L (i) of Y (i) is less than the length L (f) of a full block. Then
Figure imgb0011
equal to the concatenation of the last (L (f) - L (i) ) - long part of V 1 with Y (i) . The obvious consequence of this is that the decryption of a block of ciphertext depends on this block, then on the immediately preceding full block length of ciphertext and finally on the key. The influence of an error in the ciphertext therefore extends to a maximum of two full block lengths of deciphered plaintext.

Um die eben erwähnte Verkettung auszuführen, wenn noch keine volle Blocklänge an Chiffretext erzeugt worden ist, wird im Verfahren stillschweigend angenommen, dass dem vorliegenden Chiffretext eine volle Blocklänge Daten V1 = Kl, die feststehen oder variabel sind, vorausgehen. Diese werden als Erstverkettungswort bezeichnet, das sowohl dem Chiffreur als auch dem legitimen Dechiffreur bekannt ist. Das Erstverkettungswort wird im vorliegenden Fall gleich wie im US.-Patent No. 4.078.152 benutzt.In order to carry out the concatenation just mentioned, if a full block length of cipher text has not yet been generated, the method tacitly assumes that the present cipher text is preceded by a full block length of data V 1 = Kl, which are fixed or variable. These are referred to as the first concatenation word, which both the cipher and is also known to the legitimate deciphering officer. The first concatenation word in the present case is the same as in US Pat. 4,078,152 used.

Um die Fehlerausbreitung bei der Chiffrierung eines vollen Blocks zu begrenzen und um gleichzeitig das Vorgehen für volle und kurze Datenblöcke zu vereinheitlichen, verwendet das hier beschriebene Verfahren als volle Datenblocklänge, die vor der Eingabe in ein Blockchiffriergerät z.B. über eine EXKLUSIV-ODER-Verknüpfung mit einem vollen Block Klartext zu kombinieren ist, den eben vorausgegangenen Chiffretext in voller Blocklänge. Dies gilt auch im zitierten US.-Patent, wenn der unmittelbar vorausgegangene Klartextblock ein voller Block ist, jedoch dann nicht, wenn der vorausgegangene Klartextblock ein kurzer Block ist.In order to limit the spread of errors when encrypting a full block and at the same time to standardize the procedure for full and short data blocks, the method described here uses the full data block length, which before entering a block cipher device e.g. To be combined via an EXCLUSIVE-OR link with a full block of plain text, the previous ciphertext in full block length. This also applies in the cited US patent if the immediately preceding block of plain text is a full block, but not if the previous block of plain text is a short block.

Die Verkettungsmethode für kurze und lange Datenblöcke gemäss der vorliegenden Erfindung verwendet ein laufendes Verkettungswort, das stets als der unmittelbar vorausgegangene Chiffretext in voller - Blocklänge L(f) definiert ist. Diese Methode erfordert, dass dem ersten Text in voller Blocklänge ein Erstverkettungswort Kl vorausgeht, das wie schon erwähnt ein Datenblock sein muss, auf den sich die Benützer des Verfahrens vorher geeinigt haben. Die Bereitstellung eines Erstverkettungswortes erscheint selbstverständlich, sie ist aber im US.-Patent 4.078.152 im Detail erläutert. Ist der laufende Klartextblock ein voller Block, dann wird er mittels einer umkehrbaren Funktion, wie z.B. einem EXKLUSIV-ODER, mit dem laufenden Verkettungswort kombiniert. Das Resultat wird anschliessend durch ein Blockchiffriergerät, das in der Anlage enthalten ist und von einem Schlüssel gesteuert wird, nach Blöcken chiffriert. Das Ergebnis des ganzen Vorganges ist die Erzeugung eines vollen Blocks neuen Chiffretextes. Ist der laufende Block Klartext jedoch kurz, d.h. L (s) < L(f), dann wird das laufende Verkettungswort im Gerät blockchiffriert. Das Resultat dieser Chiffrierung wird über eine EXKLUSIV-ODER-Verknüpfung soweit als notwendig (L(s)) mit dem Klartext kombiniert, um einen gleich langen (L (s) neuen Chiffretext zu erlangen.The short and long data block concatenation method according to the present invention uses a running concatenation word that is always defined as the immediately preceding full-block length ciphertext L ( f ). This method requires that the first text in full block length is preceded by a first concatenation word Kl, which, as already mentioned, must be a data block on which the users of the method have previously agreed. The provision of a first concatenation word seems self-evident, but it is explained in detail in US Pat. No. 4,078,152. If the current plaintext block is a full block, it is combined with the current concatenation word by means of a reversible function, such as an EXCLUSIVE-OR. The result Tat is then encrypted according to blocks using a block cipher device that is included in the system and controlled by a key. The result of the whole process is the creation of a full block of new ciphertext. However, if the current plaintext block is short, ie L ( s ) <L (f) , the current chaining word is block-encrypted in the device. The result of this ciphering is combined with the plaintext via an EXCLUSIVE-OR link as far as necessary (L (s) ) in order to obtain an equally long (L (s) new ciphertext.

Die Bedeutung des Ausdruckes "Verkettungswort" ist im genannten US.-Patent No. 4.078.152 und im vorliegenden Verfahren gleich. Die Ableitung des Verkettungswortes ist jedoch in der vorliegenden Erfindung wesentlich geändert worden. Wenn im genannten Patent das Verkettungswort nicht erneuert worden ist und es sich daher um Satzverkettung handelt, dann ist das benutzte laufende Verkettungswort nach n kurzen Blöcken, unabhängig davon wieviele es in Reihe sind, stets das Resultat der n-fach ausgeführten Blockchiffrierung an dem letzten vorausgegangenen vollen Block Y Chiffretext seit dem letzten Neubeginn des Chiffriervorganges. Statt dessen kann es das Resultat der n-fachen Blockchiffrierung des Erstverkettungswortes K1 sein, wenn kein voller Block da ist. Bei dieser n-fachen Blockchiffrierung wird nach dem ersten Durchgang jeweils das erhaltene Resultat wieder eingegeben, bis n Durchgänge ausgeführt sind. Im vorliegenden Verfahren jedoch besteht das laufende Verkettungswort aus der letzten vollen Blockänge Chiffretext, wobei man sich vorzustellen hat, dass davor noch das Erstverkettungswort steht. Ob der Chiffretext aus einem Chiffriervorgang mit einem vollen oder einem kurzen Block hervorgegangen ist, spielt dabei keine Rolle. Wäre nie mehr als ein kurzer Block am Ende eines Satzes und gäbe es keine Satzverkettung, dann wäre der Strom von Chiffretext erzeugt nach dem vorliegenden Verfahren und jener nach dem erwähnten US.-Patent derselbe. Wenn es aber zwei oder mehr kurze, aufeinanderfolgende Blöcke mit Satzverkettung gibt, oder wenn ein kurzer Block in der Mitte eines ganzen Satzes vorkommt, dann weichen die.nach beiden Verfahren erzeugten Chiffretexte merklich voneinander ab.The meaning of the term "concatenation word" is mentioned in the aforementioned US Pat. 4,078,152 and the same in the present procedure. However, the derivation of the concatenation word has been changed significantly in the present invention. If, in the patent mentioned, the concatenation word has not been renewed and it is therefore a concatenation of sentences, the current concatenation word used after n short blocks, regardless of how many in series, is always the result of the n-fold block ciphering on the last preceding one full block Y ciphertext since the last new start of the encryption process. Instead, it can be the result of the n-fold block encryption of the first chaining word K1 if there is no full block. With this n-fold block cipher, the result obtained is entered again after the first pass until n passes have been carried out. In the present method, however, the current concatenation word consists of the last full block length of ciphertext, whereby one has to imagine that the first concatenation is still in front of it word stands. It does not matter whether the ciphertext resulted from a ciphering process with a full or a short block. If there were never more than a short block at the end of a sentence and there was no sentence chaining, then the stream of ciphertext would be generated according to the present method and that according to the aforementioned U.S. patent. However, if there are two or more short, consecutive blocks with sentence chaining, or if there is a short block in the middle of an entire sentence, then the ciphertext generated by both methods differs markedly from one another.

Wenn formell der Blockchiffriervorgang als f(K,..), also z.B. Ausgabe = f (K, Eingabe) dargestellt ist, wobei K den Schlüssel bedeutet, und wenn V das laufende Verkettungswort, X der laufende Klartextblock, Y der resultierende Chiffretexblock und V' das neue Verkettungswort ist, sowie V mit einem abgesprochenen Erstverkettungswort beginnt, dann lässt sich das neue Verfahren zur Definition von aufeinanderfolgenden Y und V' folgendermassen darstellen:

Figure imgb0012
Figure imgb0013
Darin bedeutet $ einen umkehrbaren Vorgang wie eine EXKLUSIV-ODER-Verknüpfung,LEFTLX (...) den äussersten linken Teil der Reine .... mit Länge X, V//Y die Verkettung der Reihen V mit Y und RIGHTFB (....) den am weitesten rechts liegenden Teil einer Reihe ... mit voller Blocklänge.If the block encryption process is formally represented as f (K, ..), e.g. output = f (K, input), where K is the key, and if V is the current concatenation word, X the current plaintext block, Y the resulting ciphertext block and V '' the new chaining word is as soon as V begins with an agreed first chaining word, the new procedure for defining successive Y and V 'can be represented as follows:
Figure imgb0012
Figure imgb0013
In this $ means a reversible process like an EXCLUSIVE-OR operation, LEFTLX (...) the extreme left part of the pure ... with length X, V // Y the concatenation of the rows V with Y and RIGHTFB (.. ..) the on rightmost part of a row ... with full block length.

Das so beschriebene Verkettungsverfahren wird durch die Darstellung der Fig. 1A bis 1D etwas deutlicher. Es handelt sich dabei um funktionelle Blöcke höherer Stufe und Datenflussdiagramme, welche den prinzipiellen Ablauf des erfinderischen Verfahrens erklären. Die Fig. 1A und 1B zeigen den Datenfluss im Normalfall mit einem vollen Datenblock, d.h. einem Block der Länqe L(f) = 8 Bytes. In allen Figuren bedeutet das Zeichen π±1 ein Schlüssel-gesteuertes Blockchiffriervqrfahren, wie beispielsweise jenes bereits erwähnte Normverfahren FIPS für Datenchiffrierung des amerikanischen Normenbüros (NBS). Der obere Index +1 bedeutet Chiffrierung, -1 Dechiffrierung. Diese Ausdrücke sind auch im besagten US.-Patent verwendet worden. Es genügt nach dem patentierten und nach dem vorliegenden Verfahren, wenn dem π-Block Eingabe/Ausgabe-Register 50 von Fiq. 3B ein Datenblock zum Chiffrieren oder Dechiffrieren, sowie ein besonderer Schlüssel und geeignete Steuersignale eingegeben werden. Das Ergebnis erscheint dann im selben Register 50. Die Fig. 1A und 1B sind Flussdiagramme, welche das Chiffrieren und Dechiffrieren eines vollen Datenblocks zeigen, gleich wie dies schon im US.-Patent No. 4.078.152 beschrieben ist. In Fig. 1A durchläuft ein zu chiffrierender voller Block X Klartext das EXKLUSIV-ODER (EX-O) zusammen mit dem laufenden Verkettungswort V. Die Ausgangssignale-des EX-O werden einem π+1-Kasten zugeführt und daraus ergibt sich der Chiffreblock Y, der gleichzeitig das neue Verkettungswort V' dieses Vorganges darstellt. Letzteres wird zum laufenden Verkettungswort V für den nächsten Datenblock.The chaining method described in this way becomes somewhat clearer through the representation of FIGS. 1A to 1D. These are functional blocks of a higher level and data flow diagrams which explain the basic sequence of the inventive method. 1A and 1B show the data flow in the normal case with a full data block, ie a block of length L (f) = 8 bytes. In all figures, the character π ± 1 means a key-controlled block encryption method, such as, for example, the aforementioned FIPS standard method for data encryption by the American Standards Office (NBS). The upper index +1 means encryption, -1 decryption. These terms have also been used in said U.S. patent. It is sufficient according to the patented and the present method if the π block input / output register 50 from Fiq. 3B, a data block for encryption or decryption, as well as a special key and suitable control signals are entered. The result then appears in the same register 50. FIGS. 1A and 1B are flowcharts showing the encryption and decryption of a full data block, as was already the case in US Pat. 4,078,152. In Fig. 1A, a full block X plaintext to be encrypted passes through the EXCLUSIVE-OR (EX-O) together with the current concatenation word V. The output signals-of the EX-O are fed to a π +1 box and this results in the cipher block Y , which also represents the new chaining word V 'of this process. The latter will to the current chaining word V for the next data block.

In Fig. 1B wird dieser Vorgang funktionell für die Dechiffrierung umgekehrt. Dabei durchläuft ein voller Block Y Chiffretext den π-1-Kasten zwecks Dechiffrierung und ist gleichzeitig neues Verkettungswort V für den nächstfolgenden zu dechiffrierenden Datenblock. Der Ausgang des π-1-Kastens wird zum einen Eingang der EX-O-Verknüpfung, deren anderer Eingang das laufende Verkettungswort entgegennimmt. Im Ausgang des EX-O-Kastens erscheint der volle dechiffrierte Klartextblock X.In Fig. 1B, this process is functionally reversed for decryption. A full block of Y cipher text passes through the π -1 box for decryption and is at the same time a new concatenation word V for the next data block to be decrypted. The output of the π -1 box becomes one input of the EX-O link, the other input of which accepts the current chaining word. The full, deciphered plain text block X appears at the exit of the EX-O box.

In Fig. 1C wird nach der vorliegenden Erfindung die Verkettung eines kurzen Blocks zwecks Chiffrierung und in Fig. 1D der Vorgang zwecks Dechiffrierung gezeigt. Offensichtlich ist das Dechiffrieren die mathematische Inversion des Chiffrierens. Es ist zu beachten, dass in allen Figuren lC, 1D und lE die Länge jedes Blockes X gleich der Länge des entsprechenden Y ist und dass dies immer kürzer als ein voller Block von 8 Bytes ist. Damit keine Unklarheiten entstehen, wird in dieser Beschreibung der obere Index (s) nicht mehr verwendet werden. Das laufende Verkettungswort V wird in Fig. 1C zuerst dem π+1-Kasten zur Chiffrierung zugeführt und gleichzeitig in ein Verkettungsregister eingegeben. Der Klartextblock X wird über EX-O mit der Ausgabe W des π-Kastens verknüpft, um den Chiffreblock Y zu bilden.1C shows the concatenation of a short block for the purposes of encryption, and the process for the purpose of deciphering in FIG. 1D. Obviously, deciphering is the mathematical inversion of ciphering. It should be noted that in all figures 1C, 1D and 1E the length of each block X is equal to the length of the corresponding Y and that this is always shorter than a full block of 8 bytes. To avoid confusion, the upper index (s) will no longer be used in this description. In Fig. 1C, the current chaining word V is first fed to the π +1 box for encryption and simultaneously entered into a chaining register. The plain text block X is linked via EX-O to the output W of the π box to form the cipher block Y.

Der kurze Block chiffrierter Daten Y wird aber auch in das Verkettungsregister geschoben und diesem Register werden die weitest-rechts stehenden Bytes einer vollen Blocklänge entnommen und zum neuen Verkettungswort V' gemacht. Für diesen Vorgang genügt es, wenn das Verkettungsregister nur gerade soviele Bytes entsprechend einer vollen Blocklänge aufnehmen kann. Wenn der neue Chiffreblock Y hineingeschoben wird, dann werden eine gleiche Zahl der aussen-links stehenden, d.h. ältesten Bytes hinausgeschoben und gehen verloren. Der verbleibende Inhalt des Verkettungsregisters wird somit das neue Verkettungswort V' sein. Es muss festgehalten werden, dass das neue Verkettungswort V' stets alle Bytes des erzeugten Blockes Y umfasst und soviele der am weitest-rechts stehenden Bytes des laufenden Verkettungswortes V, als es zum Auffüllen einer vollen Blocklänge braucht. Dieses neue Verkettungswort wird für die anschliessende Operation benötigt, unbekümmert darum, ob der nächste vorkommende Block ein voller oder wieder ein kurzer Block ist. Die Lage beim Auftreten einander folgender kurzer Blöcke ist in der Fig. 1E dargestellt und wird später erläutert. Der Dechiffriervorgang von Fig. 1D ist die mathematische Inversion der Chiffrierung in Fig. 1C, wobei in beiden Fällen der π-Kasten im Chiffriermodus arbeitet.The short block of encrypted data Y is also shifted into the chaining register and this register becomes the rightmost one Bytes taken from a full block length and made the new concatenation word V '. For this process it is sufficient if the chaining register can only hold just as many bytes corresponding to a full block length. If the new cipher block Y is inserted, an equal number of the leftmost, ie oldest, bytes are shifted out and are lost. The remaining content of the chaining register will thus be the new chaining word V '. It must be noted that the new concatenation word V 'always includes all bytes of the generated block Y and as many of the rightmost bytes of the current concatenation word V as it takes to fill a full block length. This new chaining word is required for the subsequent operation, regardless of whether the next block that occurs is a full block or a short block again. The position when successive short blocks occur is shown in FIG. 1E and will be explained later. The decryption process of FIG. 1D is the mathematical inversion of the encryption in FIG. 1C, with the π box operating in the encryption mode in both cases.

Der Hauptunterschied in den Fig. 1C und 1D ist die Vertauschung der Rolle des kurzen Blockes X mit der des entsprechenden kurzen Blockes Y bezüglich Eingabe und Ausgabe, da die Wirkung eines EXKLUSIV-ODERs ihre eigene Inversion (Antivalenz) darstellt. Die Wirkung der Verknüpfung in Fig. 1C ist Y = X (EX-O) W, wobei W der Ausgabe des π-Kastens, oder genauer, einem Anfangsteil gleicher Länge wie X entspricht. Die Wirkung der Verknüpfung in Fig. 1D ist X = Y (EX-O) W = Y (EX-O) 1W. Letzeres ist das Inverse von Fig. 1C und erzeugt den kurzen, dechiffrierten Block X. Wird statt EX-0 eine andere Funktion für die Chiffrierung eines kurzen Blockes X verwendet, beispielsweise Y = X

Figure imgb0014
W, wobei es eine Inversion logischen Verknüpfung
Figure imgb0015
nämlich
Figure imgb0016
gibt,
Figure imgb0017
der Vorgang X = Y
Figure imgb0018
W für die Dechiffrierungbenutzt werden. Es ist zu bemerken, dass
Figure imgb0019
rung und Dechiffrierung eines kurzen
Figure imgb0020
ein Chiffriervorgang im Blockchiffriergerät ausgeführt wird, wie dies auch im erwähnten US.-Patent geschieht. Dies ist notwendig, um sicherzustellen, dass sowohl für Chiffrierung als auch für Dechiffrierung dieselbe Grösse W zur Verfügung steht. Bei der Dechiffrierung erhält das Verkettungsregister das laufende Verkettungswort V und den derzeit vorliegenden Chiffreblock Y, die gemäss der Beschreibung von Fig. 1C verkettet werden und das neue Verkettungswort V' ergeben.The main difference in FIGS. 1C and 1D is the swapping of the role of the short block X with that of the corresponding short block Y in terms of input and output, since the effect of an EXCLUSIVE OR represents its own inversion (antivalence). The effect of the link in FIG. 1C is Y = X (EX-O) W, where W corresponds to the output of the π box, or more precisely, an initial part of the same length as X. The effect of the link in Fig. 1D is X = Y (EX-O) W = Y (EX-O) 1 W. The latter is the inverse 1C and generates the short, decrypted block X. If another function is used for the encryption of a short block X instead of EX-0, for example Y = X
Figure imgb0014
W, where there is an inversion logical link
Figure imgb0015
namely
Figure imgb0016
gives,
Figure imgb0017
the process X = Y
Figure imgb0018
W can be used for decryption. It should be noted that
Figure imgb0019
encoding and decoding a short
Figure imgb0020
an encryption process is carried out in the block cipher device, as is also done in the US patent mentioned. This is necessary to ensure that the same size W is available for both encryption and decryption. During the deciphering, the concatenation register receives the current concatenation word V and the currently available cipher block Y, which are concatenated as described in FIG. 1C and give the new concatenation word V '.

Sind X und Y die einander entsprechenden Klar- und Chiffretexte von kurzer Blocklänge, dann wird ausgehend von V beim Chiffrieren von X das.identische neue Verkettungswort V' gebildet. Dies ist für die erfolgreiche Dechiffrierung nachfolgender Blöcke notwendig.If X and Y are the corresponding clear and ciphertext of short block length, then the identical new chaining word V 'is formed from V when encrypting X. This is necessary for the successful decoding of subsequent blocks.

In der Fig. lE ist nun ein Beispiel zur Chiffrierung von drei sich folgenden kurzen Blöcken X1, X2 und X3 aus einem Datenfluss gezeigt. Es wird angenommen, dass im Verkettungsregister in passender -Weise ein laufendes Verkettungswort V1 gespeichert ist. Letzteres kann auch ein Erstverkettungswort (ICV) sein, falls diese kurzen Blöcke die ersten Daten einer neuen Uebermittlung, einer Datei, oder eines Datensatzes ohne Satzverkettung sind, die von der Einrichtung zu chiffrieren sind. Die drei Vorgänge werden durch zwei senkrechte, gestrichelte Linien getrennt, und jeder Teil umfasst dieselben logischen Schaltblöcke des Diagramms nach Fig. 1C. Die drei kurzen Blöcke X1, X2 und X3 sind mit einer Länge von 3, 4 und 3 Bytes angenommen.FIG. 1E now shows an example for the encryption of three short blocks X 1 , X 2 and X3 which follow one another from a data flow. It is assumed that a current chaining word V 1 is suitably stored in the chaining register. The latter can also be an initial chaining word (ICV) if these short blocks are the first data of a new transmission, a file, or a data record are without sentence chaining, which must be encrypted by the facility. The three processes are separated by two vertical, dashed lines, and each part comprises the same logic circuit blocks of the diagram of Fig. 1C. The three short blocks X 1 , X 2 and X 3 are assumed to be 3, 4 and 3 bytes in length.

In allen drei Stufen wird dem π-Kasten das entsprechende laufende Verkettungswort V1, V2 bzw. V 3 zugeführt. Die Ausgaben W1, W2 und W3 der betreffenden π-Kasten werden in einem EX-O mit dem zugehörigen Klartextblock X1, X2 bzw. X3 verknüpft und so die drei Chiffreblöcke Y1, Y2 bzw. Y3 erzeugt. Es ist leicht festzustellen, dass nur soviele Bytes der Ausgabe des betreffenden π-Kastens benutzt werden, als zur Erzeugung eines gleich langen Chiffretexts wie der Eingangstext notwendig sind. In der ersten Stufe hat Y1 eine Länge von 3 Bytes.In all three stages, the corresponding current chaining word V 1 , V 2 or V 3 is fed to the π box. The outputs W 1 , W 2 and W 3 of the relevant π box are linked in an EX-O with the associated plain text block X 1 , X 2 and X 3 , respectively, and the three cipher blocks Y 1 , Y 2 and Y 3 are generated in this way . It is easy to determine that only as many bytes of the output of the π box in question are used as are necessary to generate a ciphertext of the same length as the input text. In the first stage, Y 1 has a length of 3 bytes.

Es sei nun die Bildung der neuen Verkettungswörter in jeder Stufe beachtet. In Stufe 1 wird Y1 mit dem laufenden Verkettungswort V1 verkettet, wie aus der vergrösserten Darstellung des Verkettungsregisters samt Inhalt am unteren Rand der Abbildung hervorgeht. Dadurch wird ein neues Verkettungswort Vi mit 8 Bytes erzeugt, das rechts die 3 Bytes von Y1 umfasst und links davon 5 der in V1 am weitesten rechts stehenden Bytes. Gemäss der Darstellung wird Vi jetzt zum laufenden Verkettungswort V2 für die zweite Stufe. Wie früher schon bemerkt, braucht das Verkettungsregister nur der Länge eines vollen Blocks zu entsprechen. Die Teile des dargestellten Inhalts, die nicht in das neue Verkettungswort

Figure imgb0021
eingeschlossen sind, können hinausgeschoben und fallen gelassen werden, wenn der Chiffretext Y1 hineingeschoben wird.The formation of the new concatenation words in each stage should now be considered. In stage 1, Y 1 is concatenated with the current concatenation word V 1 , as can be seen from the enlarged representation of the concatenation register and its content at the bottom of the figure. This creates a new chaining word Vi with 8 bytes, which comprises the 3 bytes of Y 1 on the right and 5 of the bytes on the right in V 1 on the left. As shown, Vi now becomes the current concatenation word V 2 for the second stage. As noted earlier, the concatenation register need only be the length of a full block. The parts of the content shown that are not in the new concatenation word
Figure imgb0021
are included can be pushed out and dropped if the ciphertext Y 1 is pushed in.

Gleicherweise gelangt das laufende Verkettungswort V2 in den n-Kasten und zusätzlich in das Verkettungsregister. Letzteres empfängt anschliessend den neuen kurzen Chiffreblock Y2, der 4 Bytes umfasst. Dies ist am unteren Rand der zweiten Stufe gezeigt. Das neue Verkettungswort

Figure imgb0022
besteht also aus 4 Bytes von Y2 und den 4 am weitesten rechts stehenden Bytes von V2. Diese letzteren umfassen 3 Bytes von Y1 und ein Byte des Verkettungswortes V1.Likewise, the current concatenation word V 2 arrives in the n-box and also in the concatenation register. The latter then receives the new short cipher block Y 2 , which comprises 4 bytes. This is shown at the bottom of the second stage. The new concatenation word
Figure imgb0022
consists of 4 bytes of Y 2 and the 4 rightmost bytes of V 2 . The latter comprise 3 bytes of Y 1 and one byte of the concatenation word V 1 .

In der dritten Stufe gelangt das laufende Verkettungswort V3 in den n-Kasten und in das Verkettungsregister. Im letzteren wird es mit dem kurzen Chiffreblock Y3 kombiniert. Das neue Verkettungswort

Figure imgb0023
besteht aus den 3 Bytes von Y3 und den 5 am weitesten rechts stehenden Bytes von V3. In diesem Zeitpunkt umfasst nun das neue Verkettungswort
Figure imgb0024
, das zum laufenden Verkettungswort V4 für die nächste Operation wird, nur noch Chiffretext. Dies sind die 3 Bytes von Y3, die 4 Bytes von Y2 und das letzte Byte rechts von Y1. Es ist offensichtlich, das sich das Verkettungswort ständig ändert, unabhängig davon, wieviele kurze Blöcke in einer Reihe sich folgen. Hätte ein vierter Datenblock die volle Länge von 8 Bytes, dann würde V4 als laufendes Verkettungswort eines Chiffriervorganges für volle Blöcke eingesetzt, wie dies Fig. 1A entspricht.In the third stage, the current chaining word V 3 arrives in the n-box and in the chaining register. In the latter, it is combined with the short cipher block Y 3 . The new concatenation word
Figure imgb0023
consists of the 3 bytes of Y 3 and the 5 rightmost bytes of V 3 . At this point, the new chaining word now includes
Figure imgb0024
, which becomes the current chaining word V 4 for the next operation, only ciphertext. These are the 3 bytes of Y 3 , the 4 bytes of Y 2 and the last byte to the right of Y 1 . It is obvious that the concatenation word changes constantly, regardless of how many short blocks in a row follow one another. If a fourth data block had the full length of 8 bytes, V 4 would be used as the current chaining word of an encryption process for full blocks, as corresponds to FIG. 1A.

Nach dieser Beschreibung des Arbeitskonzepts des vorliegenden, verbesserten Verkettungsverfahrens für kurze Blöcke folgt nun die Beschreibung einer speziellen Schaltungsanordnung, welche der Ausübung des erfinderischen Verfahrens dient. Die Fign. 2A und 2B zeigen ein Flussdiagramm der erforderlichen Operationen in der Schaltungsanordnung der Fign. 3A-3C. Vor weiteren Erläuterungen soll jedoch der Zusammenhang der vorliegenden Erfindung mit jener, die im US.-Patent No. 4.078.152 beschrieben ist, nochmals klar festgelegt werden. Die jetzt zu besprechende Erfindung, nämlich ein Chiffrier- und Verkettungsverfahren für kurze Datenblöcke, bildet eine ergänzende Verbesserung des Verfahrens im genannten Patent. Als Folge davon arbeitet das ganze Verfahren wie in diesem Patent beschrieben bis ein kurzer Datenblock auftritt. In diesem Punkt übernimmt die vorliegende, geänderte Schaltungsanordnung die Steuerung der Vorgänge in der Anlage. Die Fig. 1D des genannten Patentes kann durch die Figuren 2A und 2B der vorliegenden Erfindungsbeschreibung genau ersetzt werden.After describing the working concept of the present improved short block concatenation method, the description now follows special circuit arrangement, which serves the practice of the inventive method. The figures 2A and 2B show a flow diagram of the operations required in the circuitry of FIGS. 3A-3C. Before further explanation, however, the connection of the present invention with that described in US Pat. 4.078.152 is to be clearly defined again. The invention now to be discussed, namely an encryption and concatenation method for short data blocks, is a supplementary improvement of the method in the patent mentioned. As a result, the whole process operates as described in this patent until a short block of data occurs. In this point, the current, modified circuit arrangement controls the processes in the system. FIG. 1D of the named patent can be exactly replaced by FIGS. 2A and 2B of the present description of the invention.

Drei Register unter anderem sind von den Funktionsblöcken sowohl im genannten Patent als auch in der vorliegenden Schaltungsanordnung zu finden: das Eingangsregister 10 (IN REG.) für Eingabedaten, das Altregister 12 (OLD REG.) für das Verkettungswort und das Ausgangsregister 14 (OUT REG.) für Ausgabedaten. Die Einrichtung arbeitet in genau gleicher Weise bis und mit dem Kasten 35 des Flussdiagramms, ausser dass der Kasten 34 weggefallen ist. Die Kasten 100 - 108 ersetzen den ehemaligen Kasten 36 und nach dem Verlassen des Kastens 108 gemäss der vorliegenden Anordnung wird wieder an den Kasten 37 angeschlossen, wobei die Vorgänge wieder dieselben wie früher sind. Zusätzliche Schaltungselemente in den Fign. 3A, 3B und 3C bezüglich der entsprechenden Figuren im genannten US.-Patent sind die EXKLUSIV-ODER-Verknüpfung EX-03 (Fig. 3A) zusammen mit der zugehörigen Verdrahtung für deren Anschluss, die zusätzlichen Eingabe- und Steuervorrichtungen für die beiden Multiplexer MPX2 und MPX3. Ein Dateneingang des EX-03 kommt vom Eingangsregister und der andere vom r-Block-E/A-Register 50. Der Ausgang des EX-03 wird einerseits dem MPX2 zugeführt und bildet dort den neuen Eingang No. 4, andererseits dem MPX3 als neuen Eingang No. 2. Eine zusätzliche Steuerleitung muss daher je MPX2 und MPX3 zugeführt werden.Three registers, among others, of the function blocks can be found both in the mentioned patent and in the present circuit arrangement: the input register 10 (IN REG.) For input data, the old register 12 (OLD REG.) For the chaining word and the output register 14 (OUT REG .) for output data. The device works in exactly the same way up to and with box 35 of the flow chart, except that box 34 has been omitted. Boxes 100-108 replace the former box 36 and after leaving box 108 according to the present arrangement is reconnected to box 37, the operations being the same as before. Additional circuit elements in FIGS. 3A, 3B and 3C with respect to the corresponding figures in said US Pat. Are the EXCLUSIVE-OR-link EX-03 (Fig. 3A) together with the associated wiring for their connection, the additional input and control devices for the two multiplexers MPX2 and MPX3. One data input of the EX-03 comes from the input register and the other from the r-block I / O register 50. The output of the EX-03 is fed to the MPX2 on the one hand and forms the new input no. 4, on the other hand the MPX3 as new input No. 2. An additional control line must therefore be supplied for each MPX2 and MPX3.

Zur Durchführung des vorliegenden erfinderischen Verfahrens zwecks Verkettung kurzer Blöcke wird die EX-O-Funktion der kurzen Blöcke X und Y mit dem Blockchiffreprodukt W des laufenden Verkettungswortes V eher im Schaltblock EX-03 ausgeübt als in EX-02 gemäss dem US.-Patent No. 4.078.152. Der Zweck bei der Chiffrierung ist, die Ausgabe von EX-03, welche den kurzen Chiffreblock Y darstellt, ebenfalls über MPX2 an das Altregister 12 zu richten, um dort den Platz im neuen Verkettungswort V' einzunehmen. Das Altregister 12 dient sowohl als das früher beschriebene Verkettungsregister wie auch als Speicher des entsprechenden neuen Verkettungswortes, das anschliessend zum laufenden Verkettungswort gemacht wird. Da nur die letzte volle Blocklänge des Verkettungsergebnisses als V' gespeichert wird, genügt es, wenn das Altregister eine volle Blocklänge umfasst und die überflüssigen ältesten Bytes fallengelassen werden.To carry out the present inventive method for the concatenation of short blocks, the EX-O function of the short blocks X and Y with the block cipher product W of the current concatenation word V is exercised in the switching block EX-03 rather than in EX-02 according to US Pat. No. . 4,078,152. The purpose of the encryption is to direct the output of EX-03, which represents the short cipher block Y, via MPX2 to the old register 12, in order to take the place there in the new concatenation word V '. The old register 12 serves both as the chaining register described earlier and as a memory for the corresponding new chaining word, which is then made the current chaining word. Since only the last full block length of the concatenation result is stored as V ', it is sufficient if the old register has a full block length and the redundant oldest bytes are dropped.

Im übrigen arbeitet die Anordnung der Fign. 3A - 3C der vorliegenden Erfindung wie jene des genannten Patentes, was nicht nochmals beschrieben werden soll. Die neuen Folgen von Mikroprogrammen würden ebenfalls im restwertspeicher 24 (ROM) untergebracht, um die erforderlichen Schiebe-, Schalt-, Prüf-, Verzweigungs-, usw. Funktionen zu steuern, wie dies im genannten Patent geschieht. Daher arbeiten der Ausgangsdecodierer 40, die Steuerschalter 42, der Eingangs-Multiplexer 32 und der Festwertspeicher 24 (ROM) sowie die zugehörigen Speicher-Adressregister 26 (MAR) genauso wie bisher.Otherwise the arrangement of the FIGS. 3A-3C of the present invention as those of the ge called patent, which should not be described again. The new sequences of microprograms would also be stored in the residual value memory 24 (ROM) in order to control the necessary shifting, switching, testing, branching, etc. functions, as is done in the patent mentioned. Therefore, the output decoder 40, the control switches 42, the input multiplexer 32 and the read-only memory 24 (ROM) and the associated memory address registers 26 (MAR) operate in the same way as before.

Zu Beginn der Beschreibung der vorliegenden Anordnung wird vorausgesetzt, dass das Vorhandensein eines kurzen Datenblocks festgestellt worden ist. Derzeit steckt dieser kurze Block (Klar- oder Chiffretext) im Eingangsregister 10. Die Anzahl n der enthaltenen Bytes des kurzen Blocks wird sogleich im Zähler 46 gespeichert. Daher kann jetzt davon ausgegangen werden, dass die Operation sich zum Kasten 30 des Flussdiagramms Fig. 2A verlagert hat. Dadurch wird die Zahl n, auf welche der Zähler 46 eingestellt worden ist, im Kopierregister 48 gespeichert. Das Verfahren erreicht nun den Kasten 31, wo entschieden wird, ob Verkettung abzuwenden sei oder nicht. Gemäss den Absichten der vorliegenden Erfindung kann dies bejaht werden, und es geht weiter zu den Kästen 32 und 33. Zusammen bewirken sie, dass der Inhalt des Altregisters 12, der das laufende Verkettungswort V umfasst, einerseits durch den π-Block krytographisch zu X verwandelt und so im w-Block E/A-Register 50 bereitgestellt wird, andererseits aber im Altregister noch zurückgehalten wird.At the beginning of the description of the present arrangement it is assumed that the presence of a short block of data has been determined. This short block (plain text or cipher text) is currently in the input register 10. The number n of bytes contained in the short block is immediately stored in the counter 46. Therefore, it can now be assumed that the operation has moved to box 30 of the flowchart in FIG. 2A. As a result, the number n to which the counter 46 has been set is stored in the copy register 48. The method now arrives at box 31, where a decision is made as to whether chaining should be averted or not. In accordance with the intentions of the present invention, this can be answered in the affirmative, and it continues to boxes 32 and 33. Together, they cause the content of the old register 12, which comprises the current concatenation word V, to be cryptographically converted to X on the one hand by the π block and is thus provided in the w-block I / O register 50, but on the other hand is still retained in the old register.

Der Vorgang der Transformierung von W (TW) gemäss Kasten 32 ist ein fakultativer Zusatz zur Verkettung und im genannten Patent beschrieben. Er kann also auch hier wie früher eingeschlossen oder weggelassen werden. Es geht jetzt weiter zum Kasten 35 des Flussdiagramms, nachdem der im US.-Patent noch existierende Kasten 34 ausgeschieden ist. Nun werden die n Eingangsbytes um (8 - n) Stellen nach links verschoben. Dadurch werden die Bytes im Eingangsregister 10 links-bündig eingestellt. Es soll hier noch daran erinnert werden, dass die Register der vorliegenden Schaltungsanordnung alle nach Bytes seriell organisiert sind.The process of transforming W (TW) according to box 32 is an optional additive for chaining and is described in the mentioned patent. It can be included or omitted here as before. Proceed now to box 35 of the flow chart after box 34, which still exists in the U.S. patent, has been eliminated. Now the n input bytes are shifted to the left by (8 - n) places. As a result, the bytes in the input register 10 are left-justified. It should be remembered here that the registers of the present circuit arrangement are all organized in series by bytes.

Das Verfahren setzt sich mit der Entscheidung im Kasten 100 fort, die als erste den vormaligen Kasten 36 ersetzt. Dabei wird die Betriebssteuerleitung 7 abgefragt, ob Verkettung verlangt ist. Wenn, wie anzunehmen, Verkettung bejaht wird, dann geht es weiter zum Kasten 101, wo der Entscheid fällt, ob das Verfahren im Chiffriermodus oder im Dechiffriermodus arbeitet.The process continues with the decision in box 100, which is the first to replace the previous box 36. The operating control line 7 is queried whether chaining is required. If, as is assumed, chaining is answered in the affirmative, then it proceeds to box 101, where the decision is made as to whether the method operates in the encryption mode or in the decryption mode.

Geht es um Chiffrierung, dann folgt Kasten 102, bei welchem Schritt der künftige Datenweg festgelegt wird. Gemäss Verfahrensschritt im Kasten 105 werden n Schiebeoperationen ausgeführt. Durch diese wird der im Eingangsregister gespeicherte, kurze Klartextblock X mit dem Anfangsteil des blockchiffrierten Ausdruckes W, der vom laufenden Verkettungswort V stammt und im π-Block E/A-Register 50 bereitsteht, in eine EX-O-Verknüpfung eingegeben. Gleichzeitig wird das Resultat dieser Verknüpfung, das den kurzen Chiffreblock Y darstellt, sowohl in das Altregister 12, zwecks Aufnahme in das neue Verkettungswort V', wie auch in das Ausgangsregister 14 eingegeben. Der soeben beschriebene Datenfluss und die zugehörigen Operationen sind schon in Fig. 1C erläutert worden.When it comes to encryption, box 102 follows, at which step the future data path is determined. According to the method step in box 105, n shift operations are carried out. The short plain text block X stored in the input register with the beginning part of the block-encrypted expression W, which comes from the current chaining word V and is available in the π block I / O register 50, is entered into an EX-O link. At the same time, the result of this connection, the short Cipher block Y represents, both in the old register 12, for inclusion in the new chaining word V ', as well as in the output register 14 entered. The data flow just described and the associated operations have already been explained in FIG. 1C.

Wie im Kasten 106 angedeutet ist, wird erneut geprüft und entschieden, ob Verkettung verlangt worden ist. Da dies unter den vorliegenden Umständen bejaht werden muss, geht das Verfahren einen Schritt weiter zum Kasten 108, wobei der Inhalt des Ausgangsregisters 14 insgesamt (8 - n)-mal verschoben wird, um darin den kurzen Block Y rechts-bündig einzustellen. Danach geht es zum Kasten 37 und die n Bytes von Y werden ausgegeben, so dass von hier an die Steuerung gemäss dem mehrfach zitierten US.-Patent wiederaufgenommen wird.As indicated in box 106, it is checked again and a decision is made as to whether concatenation has been requested. Since this must be affirmed in the present circumstances, the method goes one step further to box 108, the content of the output register 14 being shifted a total of (8-n) times in order to right-justify the short block Y therein. Then it goes to box 37 and the n bytes of Y are output, so that from here on the control according to the repeatedly cited US patent is resumed.

Kehren wir nocheinmal zum Verfahrensschritt 101 zurück und nehmen wir an, dass Dechiffrierung erforderlich ist. Die Steuerung geht nun an den Kasten 103 über, wobei wiederum der Datenweg festgelegt wird. Darauf folgt Kasten 105 und es werden n Schiebeoperationen ausgeführt, durch die der kurze Chiffreblock Y, der im Eingangsregister gespeichert ist, mit dem Anfangsteil des vom laufenden Verkettungswort V stammenden und im w-Block E/A Register bereitgestellten Blockchiffre-Ausdrucks W in einem EX-O verknüpft wird. Das Ergebnis der Verknüpfung wird anschliessend in das Ausgangsregister gegeben und gleichzeitig der Inhalt des Eingangsregisters, welches Y enthält, in das Altregister übergeführt, um dort einen Teil des neuen Verkettungswortes V' zu bilden. Der eben beschriebene Datenfluss und die Verfahrensschritte sind bereits in Fig. 1D dargelegt worden. Der nachfolgende Steuerungsverlauf geht über dieselben Schritte in den Kästen 106, 108 und 37, die bereits im Zusammenhang mit der Chiffrierung samt Verkettung eines kurzen Blocks beschrieben worden sind.Let's go back to step 101 and assume that decryption is required. Control now passes to box 103, again specifying the data path. This is followed by box 105 and n shift operations are carried out, by means of which the short cipher block Y, which is stored in the input register, with the beginning part of the block cipher expression W originating from the current chaining word V and provided in the w block I / O register in an EX -O is linked. The result of the link is then placed in the output register and at the same time the content of the input register, which contains Y, is transferred to the old register in order to form part of the new chaining word V 'there. The one just described Data flow and the process steps have already been set out in Fig. 1D. The subsequent control process proceeds via the same steps in boxes 106, 108 and 37, which have already been described in connection with the encryption and the concatenation of a short block.

Wenn wir nochmals mit dem Schritt im Kasten 100 beginnen, dann betrachten wir einen kurzen Block und nehmen an, dass keine Verkettung verlangt ist. So kann nach Wunsch die Verkettung gemäss dem zitierten US.-Patent und der vorliegenden Erfindung umgangen werden. Es folgt darauf der im Kasten 104 umschriebene Schritt. Wieder wird der Datenweg festgelegt. Gemäss dem Kasten 105 werden n Schiebeoperationen ausgeführt, wodurch der Klartextblock X oder der Chiffreblock Y, die im Eingangsregister gespeichert sind, mit dem Anfangsteil des Inhalts im Altregister in einem EX-0 verknüpft wird. In diesem Zeitpunkt enthält das Altregister den Blockchiffre-Ausdruck einer Grösse K2, wobei dieser Ausdruck während der Schritte 5, 7, 8 und 9 gemäss Fig. 1A des zitierten Patentes zugeführt worden ist. Das Resultat der EX-O-Verknüpfung wird in das Ausgangsregister überführt und der Inhalt des Altregisters wird wieder in dieses zurückversetzt. Sodann wird gemäss Kasten 106 geprüft, ob Verkettung im Spiel ist. Im vorliegenden Fall geht es nun weiter zum Kasten 107. Bei diesem Schritt wird der Inhalt im Altregister zusätzlich um (8 - n) Bytes verschoben, so dass wieder der Inhalt vor dem Schritt 104 erreicht wird, um die Vorbereitung zur Verarbeitung weiterer kurzer Blöcke zu treffen. Die Steuerung setzt sich mit den Schritten in den Kästen 108 und 37 fort,wobei der kurze Block X oder Y ausgelesen wird und der Datenfluss den Punkt C der Fig. 1A des genannten Patentes erreicht.If we start again with the step in box 100, we consider a short block and assume that no chaining is required. If desired, the concatenation according to the cited US patent and the present invention can be avoided. This is followed by the step outlined in box 104. The data path is determined again. According to box 105, n shift operations are carried out, as a result of which the plain text block X or the cipher block Y, which are stored in the input register, are linked with the beginning part of the content in the old register in an EX-0. At this point in time, the old register contains the block cipher printout of a size K2, this printout being supplied during steps 5, 7, 8 and 9 according to FIG. 1A of the cited patent. The result of the EX-O link is transferred to the output register and the content of the old register is returned to it. It is then checked according to box 106 whether chaining is in play. In the present case, it now proceeds to box 107. In this step, the content in the old register is additionally shifted by (8-n) bytes, so that the content is reached again before step 104 in order to prepare for processing further short blocks to meet. Control continues with the steps in boxes 108 and 37, with the short block X or Y is read out and the data flow reaches point C of FIG. 1A of said patent.

Nach der Beschreibung des Datenflusses anhand der Fign. 2A und 2B soll nun eine solche über die Arbeitsweise der Schaltungsanordnung folgen, wie sie zur Ausführung des Verfahrens erforderlich ist. In den Fig. 3A - 3C sind dazu alle notwendigen Einzelheiten dargestellt und der Arbeitsablauf kann mittels der Mikroprogramm-Folgen beschrieben werden, deren Liste unmittelbar anschliesst. Links der Mikroprogramm-Liste geben die in Klammern gesetzten Zahlen an, um welchen Schritt des Verfahrens nach den Fign. 2A und 2B des Flussdiagramms es sich jeweils handelt. Es bleibt zu bemerken, dass jeder bezifferte Schritt in der Mikroprogramm-Liste durch eine oder mehrere Mikroinstruktionen auszuführen ist, die im Festwertspeicher 24 (ROM) enthalten sind. Das Arbeiten der Steuereinheit einschliesslich Festwertspeicher 24, Ausgangsdecodierer 40, Steuerschalter 42, Eingangsmultiplexer 32 und weiterer zugehöriger Steuerelemente ist im US.-Patent No. 4.078.152 ausführlich beschrieben. Nur soviel der in den Fig. 3A - 3C dargestellten Anordnung wird speziell beschrieben, als dies zur Ausführung des Verkettungsverfahrens für kurze Blöcke der vorliegenden Erfindung notwendig ist.After the description of the data flow using the FIGS. 2A and 2B is now to be followed by one on the mode of operation of the circuit arrangement, as is required to carry out the method. 3A - 3C all the necessary details are shown and the workflow can be described by means of the microprogram sequences, the list of which immediately follows. The numbers in brackets on the left of the microprogram list indicate the step in the method according to FIGS. 2A and 2B of the flowchart are each. It should be noted that each numbered step in the microprogram list is to be performed by one or more microinstructions contained in read only memory 24 (ROM). The operation of the control unit including read-only memory 24, output decoder 40, control switch 42, input multiplexer 32 and other associated control elements is described in US Pat. 4.078.152 described in detail. Only so much of the arrangement shown in Figures 3A-3C is specifically described as is necessary to carry out the short block chaining method of the present invention.

MIKROPROGRAMM-LISTEMICROPROGRAM LIST

  • (100) ADDRESS EING.MPX LEITG. 7 TEST EING.MPX WENN 1 GEHE ZU (104) WENN 0 WEITER(100) ADDRESS INPUT MPX LEITG. INPUT TEST MPX IF 1 GO TO (104) IF 0 CONTINUE
  • (101) ADDRESS EING.MPX LEITG. 8 TEST EING.MPX WENN 0 GEHE ZU (103) WENN 1 WEITER(101) ADDRESS INPUT MPX LEITG. 8 INPUT TEST MPX IF 0 GO TO (103) IF 1 CONTINUE
  • (102) ADDRESS MPX3 KABEL 2 ADDRESS MPX2 KABEL 4 SETZE SR-MASKE 001111 GEHE ZU (105A)(102) ADDRESS MPX3 CABLE 2 ADDRESS MPX2 CABLE 4 SET SR MASK 001111 GO (105A)
  • (103) ADDRESS MPX3 KABEL 2 ADDRESS MPX2 KABEL 0 SETZE SR-MASKE 001111 GEHE ZU (105A)(103) ADDRESS MPX3 CABLE 2 ADDRESS MPX2 CABLE 0 SET SR MASK 001111 GO TO (105A)
  • (104) ADDRESS MPX4 KABEL 1 ADDRESS MPX3 KABEL 2 ADDRESS MPX2 KABEL 1 SETZE SR-MASKE 001110(104) ADDRESS MPX4 CABLE 1 ADDRESS MPX3 CABLE 2 ADDRESS MPX2 CABLE 1 SET SR MASK 001110
  • (105A) LADE ZAEHLER 46 SETZE U/D-LEITG.=O ADDRESS EING.MPX LEITG. 11(105A) CHARGE COUNTER 46 SET U / D LEITG. = O ADDRESS INPUT MPX LEITG. 11
  • (105B) SENDE SR-TAKTIMPULS VERMINDERE ZAEHLER 46 UM 1 TEST EING.MPX WENN 0 GEHE ZU (105B) WENN 1 WEITER(105B) SR TRANSMIT clock pulse diminish Z A EHLE R 46 UM 1 TEST EING.MPX IF 0 go to (105B) 1 CONTINUE IF
  • (106) ADDRESS EING.MPX LEITG. 7 TEST EING.MPX WENN 0 GEHE ZU (108A) WENN 1 WEITER(106) ADDRESS INPUT MPX LEITG. 7 INPUT TEST MPX IF 0 GO TO (108A) IF 1 CONTINUE
  • (107A) ADDRESS MPX2 KABEL 1 SETZE SR-MASKE 001000 (mC wählt ALTREG.) ADDRESS EING.MPX LEITG. 9 LADE ZAEHLER 46 SETZE U/D-LEITG.=1(107A) ADDRESS MPX2 CABLE 1 SET SR MASK 001000 (mC selects ALTREG.) ADDRESS INPUT MPX LEITG. 9 CHARGE COUNTER 46 SET U / D LEITG. = 1
  • (107B) SENDE SR-TAKTIMPULS ERHOEHE ZAEHLER 46 UM 1 TEST EING.MPX WENN 0 GEHE ZU (107B) WENN 1 WEITER(107B) SEND SR-TIMER INCREASE COUNTER 46 BY 1 TEST INPUT MPX IF 0 GO TO (107B) IF 1 CONTINUE
  • (108A) SETZE SR-MASKE 000010 (mE wählt AUSG.REG.) ADDRESS EING.MPX LEITG. 9 LADE ZAEHLER 46 SETZE U/D-LEITG.=1(108A) SET SR MASK 000010 (I choose OUTPUT REG.) ADDRESS INPUT MPX LEITG. 9 CHARGE COUNTER 46 SET U / D LEITG. = 1
  • (108B) SENDE SR-TAKTIMPULS ERHOEHE ZAEHLER 46 UM 1 TEST EING.MPX WENN 0 GEHE ZU (108B) WENN 1 GEHE ZU (37A)(108B) TRANSMIT SR-CLOCK PULSE INCREASE COUNTER 46 BY 1 TEST INPUT MPX IF 0 GO TO (108B) IF 1 GO TO (37A)

Entsprechend der früheren Beschreibung von Fig. 2 verläuft die Steuerung vom Mikroprogramm-Schritt (35) im genannten Patent zum Schritt (100) der vorliegenden Beschreibung. Das Eingangsregister enthält in diesem Zeitpunkt den neuen kurzen Block X oder Y zur Chiffrierung bzw. Dechiffrierung, das Altregister enthält das laufende Verkettungswort V und das π-Block E/A Register den Chiffreausdruck W des laufenden Verkettungswortes V.According to the earlier description of Fig. 2, control proceeds from microprogram step (35) in said patent to step (100) of the present description. At this point in time, the input register contains the new short block X or Y for encryption or decryption, the old register contains the current chaining word V and the π block I / O register contains the ciphertext W of the current chaining word V.

Im ersten Schritt (100) wird der Eingangs- multiplexer zur Adressierung der Leitung 7 veranlasst. Diese Leitung "ohne Verkettung" wird bei einem Start des Verfahrens beaufschlagt (oder nicht). Lautet die Betriebssteuerung "ohne Verkettung", dann erscheint auf Leitung 34 nach dem im Multiplexer 32 durchgeführten Test eine logische "1". Dies bedeutet, dass im Speicheradressregister 26 (MAR) eine Verzweigungsadresse gespeichert wird, die in den Festwertspeicher 24 (ROM) überführt wird, so dass das Verfahren jetzt zum Schritt (104) übergeht. Steht auf der Leitung 34 eine logische "0", was Verkettung bedeutet, dann geht das Verfahren zum nächsten Schritt im Festwertspeicher über, wobei die vormalige Adresse im Speicheradressregister 26 um 1 erhöht wird. Folgt nun aber der Schritt (101), dann wird im Eingangsmultiplexer 32 zuerst die Leitung 8 angesteuert, um dabei über Chiffrier- oder Dechiffrieroperation zu entscheiden. Wie beim Schritt (100) erscheint aufgrund dieser Prüfung der Leitung 8 ein Signal auf Leitung 34. Weist diese eine logische "0" auf, dann ist Dechiffrierung verlangt, und es geht weiter zum Schritt (103). Zeigt die Leitung 34 aber eine "1" an, dann ist Chiffrierung gefordert und es geht weiter zu Schritt (102).In the first step (100), the input multiplexer is caused to address line 7. This line "without chaining" is acted upon (or not) when the method is started. If the operating control is "without chaining", then a logical "1" appears on line 34 after the test carried out in multiplexer 32. This means that a branch address is stored in the memory address register 26 (MAR), which is transferred to the read-only memory 24 (ROM), so that the method now proceeds to step (104). If there is a logical "0" on line 34, which means chaining, then the method proceeds to the next step in the read-only memory, the previous address in the memory address register 26 being increased by 1. If step (101) now follows, however, line 8 is first activated in input multiplexer 32 in order to decide on the encryption or decryption operation. As in step (100), a signal appears on line 34 as a result of this test on line 8. If it has a logical "0", decryption is required and the process continues to step (103). Shows line 34 but a "1", then encryption is required and it continues to step (102).

Beim Schritt (102) bewirkt der aufgerufene Mikrobefehl im Festwertspeicher, dass über die Steuerschalter 42 Kabel No. 2 in MPX3 und Kabel No. 4 in MPX2 ausgewählt werden. Gleichzeitig wird durch die Steuerungsschalter 42 aber auch eine Schieberegister (SR)-Maske mit der Aufstellung 001111 über das entsprechende Kabel ausgegeben. Dies bedeutet je ein Eingangssignal der Leitungen mC, mD, mE und mF für vier der sechs UND-Tore A-0 bis A-5 unterhalb des Ausgangsregisters 14 in Fig. 3C. Dadurch werden die folgenden SR-Taktimpulse über die Leitungen C, D, E und F weitergeleitet, wobei die Schiebeoperationen im Altregister, im Eingangsregister, im Ausgangsregister bzw. im π-Block E/A Register in Gang gesetzt werden. Bei Abschluss dieses Schrittes geht es zum Schritt (105A).At step (102), the microinstruction called up in the read-only memory causes 42 cable no. 2 in MPX3 and cable No. 4 can be selected in MPX2. At the same time, the control switch 42 also outputs a shift register (SR) mask with the lineup 001111 via the corresponding cable. This means one input signal each for the lines mC, mD, mE and mF for four of the six AND gates A-0 to A-5 below the output register 14 in FIG. 3C. As a result, the following SR clock pulses are forwarded via lines C, D, E and F, the shift operations in the old register, in the input register, in the output register or in the π-block I / O register being started. When this step is completed, step (105A) is performed.

Wäre nach Schritt (101) zum Schritt (103) verzweigt worden, dann hätte sich eine dem Schritt (102) ähnliche Operation abgespielt, wobei die Steuerungsschalter 42 das Kabel No. 2 von MPX3 und das Kabel No. 0 von MPX2 angesteuert hätten. Das Kabel SR-Maske gibt nun wie beim Schritt (102) dieselbe Signalaufstellung ab, nämlich 001111. Daher erhalten auch dieselben Register Schiebe-Steuerimpulse zur Ausführung der in den Kästen 102 und 103 aufgezeichneten Operationen des Flussdiagramms. In beiden Fällen empfängt das Ausgangsregister die Ausgabewerte der EX-O-Funktion für den Inhalt des Eingangsregisters und des π-Block E/A Registers. Aber gemäss Kasten 102 empfängt das Altregister dieselben Eingangssignale wie das Ausgangsregister. Im Gegensatz hiezu empfängt das Altregister gemäss Kasten 103, nachdem ein anderes Kabel von MPX2 angesteuert worden ist, den Inhalt des Eingangsregisters, wie dies für Dechiffrierung und daher auch zur Vorbereitung des Altregisters im Hinblick auf die Eingliederung von Y in das neue Verkettungswort V' erforderlich ist. Nach Beendigung des Schrittes (103) folgt Schritt (105A).If branching to step (103) had taken place after step (101), an operation similar to step (102) would have taken place, with the control switch 42 connecting the cable No. 2 from MPX3 and cable No. 0 controlled by MPX2. The SR mask cable now outputs the same signal set-up as in step (102), namely 001111. Therefore, the same registers also receive shift control pulses for carrying out the operations of the flow chart recorded in boxes 102 and 103. In both cases the output register receives the output values of the EX-O function for the content of the input register and the π-block I / O register. But according to box 102, the old register receives the same input signals as the off gear register. In contrast to this, the old register according to box 103, after another cable has been driven by MPX2, receives the content of the input register, as is necessary for decryption and therefore also for the preparation of the old register with a view to integrating Y into the new chaining word V ' is. After step (103) is completed, step (105A) follows.

Es wird jetzt angenommen, dass die Prüfung im Schritt (100) ergeben hat "keine Verkettung", so dass Schritt (104) anschliesst. Der erste Befehl dieses Schrittes bewirkt, dass über das Ausgabekabel der Steuerschalter 42 Kabel No. l von MPX4, Kabel No. 2 von MPX3 und Kabel No. 1 von MPX2 angesteuert werden.'Diese Auswahl bestimmt den Datenweg, wobei der Inhalt des Eingangsregisters mit jenem des Altregisters der EX-O-Funktion zugeführt wird. Ursprünglich enthielt das Altregister gemäss dem US.-Patent No. 4.078.152 den Chiffreausdruck einer Grösse, die im K2-Register gespeichert war. Das Resultat der EX-O-Funktion wird in das Altregister zurückgebracht, und die Wahl von MPX2 bewirkt, dass auch der frühere Inhalt des Altregisters nochmals in dieses zurückgespeichert wird. Der Schritt (104) bestimmt, dass ausserdem das Kabel SR-Maske eine Signalaufstellung 001110 abgibt, was die Altregister, Eingangsregister und Ausgangsregister zu Empfängern von SR-Taktimpulsen während des Schrittes (105) macht.It is now assumed that the check in step (100) has resulted in "no chaining", so that step (104) follows. The first command in this step causes the control switch 42 to output cable no. l from MPX4, cable no. 2 from MPX3 and cable No. 1 can be controlled by MPX2. 'This selection determines the data path, the content of the input register and that of the old register being fed to the EX-O function. Originally, the old register according to U.S. Patent No. 4,078,152 the cipher print of a size that was stored in the K2 register. The result of the EX-O function is returned to the old register, and the selection of MPX2 means that the previous content of the old register is also saved again in this. The step (104) determines that the cable SR mask also outputs a signal list 001110, which makes the old registers, input registers and output registers receivers of SR clock pulses during step (105).

Der Schritt (105A) wird in zwei Teilen abgewickelt, wobei der Teilschritt (105A) die Steuerleitung für die Ausführung bereitstellt und der Teilschritt (105B) als Steuerschleife das aufeinanderfolgende Verschieben der Bytes im jeweiligen Register ermöglicht. Beim Verschieben wird gleichzeitig der Stand des Zählers 46 geprüft, um festzustellen, ob bereits die geforderte Anzahl Verschiebungen stattgefunden hat. Im Teilschritt (105A) wird der Zähler 46 mit der Zahl n geladen, die früher in das Kopierregister 48 eigegeben worden war. Ausserdem wird die U/D-Steuerleitung auf "0" gesetzt, was zum Herabsetzen des Zählerstandes bei jedem eintreffenden Impuls CP1 führt. Zugleich wird auch die Leitung No. 11 des Eingangs-Multiplexers angesteuert, wodurch eine im Festwertspeicher (ROM) 24 vorhandene Schrittfolge. prüfen kann, wann der Zählerstand Null erreicht. Die Beendigung des Teilschrittes (105A) löst den Start des Teilschrittes (105B) aus. Dabei wird die Abgabe eines SR-Taktimpulses durch die monostabile Kippschaltung (SS) 43 über die SR-Taktleitung an alle UND-Tore A-0 bis A-5 der Fig. 3C ausgelöst, um die vorgängig durch die SR-Maske ausgewählten Register zu erregen. In den Schrittfolgen (102), (103) und (104) werden also jeweils die speziellen Maskensignale aufgrund der erforderlichen Operationen ausgewählt. Der nächste Mikrobefehl des Schrittes (105B) vermindert den Stand im Zähler 46 über die Leitung CP1. Jetzt wird Leitung 11 des Eingangs-Multiplexers geprüft. Hat der Zählerstand Null erreicht, dann führt diese Leitung eine logische "1", was bedeutet, dass die erforderliche Zahl n Schiebeoperationen abgewickelt wurde. Damit wäre Schritt (105) beendet und es folgt Schritt (106). Ist der Zählerstand Null noch nicht erreicht, dann steht Leitung 11 auf logisch "0" und Schritt (105B) wird wiederholt.The step (105A) is carried out in two parts, the part step (105A) providing the control line for execution and the part step (105B) as a control loop enables the successive shifting of the bytes in the respective register. During the shift, the status of the counter 46 is checked at the same time to determine whether the required number of shifts has already taken place. In sub-step (105A), the counter 46 is loaded with the number n, which had previously been entered in the copy register 48. In addition, the U / D control line is set to "0", which leads to a reduction in the counter reading for each incoming pulse CP1. At the same time, line no. 11 of the input multiplexer controlled, whereby a sequence of steps present in the read-only memory (ROM) 24. can check when the counter reading reaches zero. The termination of sub-step (105A) triggers the start of sub-step (105B). The delivery of an SR clock pulse is triggered by the monostable multivibrator (SS) 43 via the SR clock line to all AND gates A-0 to A-5 of FIG. 3C in order to add the registers previously selected by the SR mask irritate. In the step sequences (102), (103) and (104), the special mask signals are selected based on the required operations. The next microinstruction of step (105B) decreases the level in counter 46 over line CP1. Line 11 of the input multiplexer is now checked. When the count has reached zero, this line carries a logical "1", which means that the required number n shift operations have been processed. This would end step (105) and step (106) follows. If the counter reading has not yet reached zero, line 11 is at logic "0" and step (105B) is repeated.

Durch den Schritt (106) wird Leitung 7 des Eingangs-Multiplexers 32 abgefragt, ob eine Operation "ohne Verkettung" im Gang ist. Führt die Leitung 7 eine Null, was Verkettung bedeutet, dann geht es weiter zum Schritt (108A). Andernfalls führt Leitung 7 eine logische "l", die "ohne Verkettung" aussagt und zum Schritt (107A) weiterführt.Step (106) queries line 7 of input multiplexer 32 as to whether an operation "without chaining" is in progress. If the line 7 carries a zero, which means chaining, then it proceeds to step (108A). Otherwise, line 7 carries a logic "1" that says "without chaining" and proceeds to step (107A).

Wenn also keine Verkettung verlangt ist, dann werden im Schritt (107A) die Steuerschalter 42 dazu veranlasst, das Kabel No. 1 vom MPX2 anzusteuern. Die SR-Maske wird auf 001000 eingestellt. Dadurch wird die C-Schiebeleitung beaufschlagt und Schiebeimpulse an das Altregister gerichtet. Gleichzeitig wird aber auch die Leitung 9 zum Eingangs-Multiplexer 32 angesteuert, und endlich wird noch die Zahl n in den Zähler 46 gesetzt sowie die U/D-Leitung mit einer "1" belegt, so dass der Zählerstand um jeden eintreffenden Impuls CP1 erhöht wird. Damit ist folgendes erreicht: das Altregister ist mit seinen Steuerkreisen in den Stand versetzt, eine Verschiebung seines Inhalts um 8 Bytes innerhalb des Registers vorzunehmen und sich selber den vormaligen Speicherinhalt vollständig wieder einzugeben, wie dies bereits gemäss Kasten 104 des rlussdiagramms geschehen ist. Damit wurde die im Altregister abgespeicherte Konstante bei dieser Betriebsart wieder vollständig an ihren eigenen Platz zurückgeschoben. Durch den auf die Zahl n eingestellten Zähler, desssen Stand sich jeweils erhöht, wird beim Erreichen des Wertes 8 ein Uebertrag erzeugt, wie im genannten Patent erläutert ist.Thus, if chaining is not required, the control switches 42 are caused to step the cable No. in step (107A). 1 controlled by the MPX2. The SR mask is set to 001000. As a result, the C sliding line is acted upon and shifting impulses are directed to the old register. At the same time, however, line 9 to input multiplexer 32 is also controlled, and finally the number n is also set in counter 46 and the U / D line is assigned a "1", so that the counter reading increases by each incoming pulse CP1 becomes. This achieves the following: The old register with its control circuits is able to shift its content by 8 bytes within the register and to completely re-enter the previous memory content, as has already been done according to box 104 of the flowchart. The constant stored in the old register has been completely pushed back into its own place in this operating mode. With the counter set to the number n, the level of which increases in each case, a transfer is generated when the value 8 is reached, as explained in the cited patent.

Die Taktsequenz des Schrittes (107B) ist eine Steuerschleife, welche den Registern erlaubt, Schiebeoperationen auszuführen bis die Zahl (8-n) erreicht ist. Der Schritt (107B) bewirkt zuerst, dass ein SR-Taktimpuls über den Ausgangsdecodierer 40 an die UND-Tore der Fig. 3C abgegeben wird. Der Impuls gelangt schliesslich über die Leitung C an das Altregister und löst eine Schiebeoperation aus. Gleichzeitig wird der Stand im Zähler 46 erhöht und automatisch die Leitung 9 abgefragt, um deren Zustand "0" oder "l" zu erfahren. Eine Null bedeutet, dass die erforderliche Zahl Schiebeoperationen noch nicht ausgeführt worden ist. Darauf beginnt das Verfahren wieder am Anfang des Schrittes (107B) Eine Eins bedeutet hingegen, dass man nun zum Schritt (108) übergehen und mit (108A) beginnen kann.The clock sequence of step (107B) is a control loop that allows the registers to perform shift operations until the number (8-n) is reached. Step (107B) first causes an SR clock pulse to be delivered through the output decoder 40 to the AND gates of FIG. 3C. The pulse finally reaches the old register via line C and triggers a shift operation. At the same time, the level in counter 46 is increased and line 9 is automatically queried in order to find out its state "0" or "1". A zero means that the required number of shift operations has not yet been performed. The process then begins again at the beginning of step (107B). A one, on the other hand, means that one can now proceed to step (108) and start with (108A).

Gemäss dem Kasten 108 werden jetzt die eben aufgestellten n Bytes Chiffretext Y oder Klartext X im Altregister nach (8 - n) Positionen rechts-bündig eingerichtet. Dies beginnt damit, dass über die SR-Maskenleitung von den Steuerschaltern 42 eine Signalaufstellung 000010 abgegeben wird. So wird die E-Leitung vorbereitet, die im Ausgangsregister Schiebeoperationen auslöst, sobald sie während des Teilschrittes (108B) von der SR-Taktleitung einen Impuls empfängt. Es ist nicht notwendig, einen der Multiplexer 1-4 auszuwählen, da es sich hier lediglich um eine Schiebeoperation in einem Register handelt. Aber da (8 - n) mal geschoben werden muss, wird die Leitung 9 des Eingangs-Multiplexers 32 angesteuert und die Zahl n in den Zähler 46 gesetzt. Gleichzeitig wird die U/D-Leitung auf logisch "1" gesetzt, so dass der Zählerstand erhöht werden kann. Weiter geht es nun mit dem Teilschritt (108B), der eine Schleife für Schiebeoperationen darstellt wie die Schritte (107B), (105B), usw. Vom Ausgangsdecodierer 40 wird jetzt ein SR-Taktimpuls abgegeben, der an das UND-Tor A-0 gelangt und im Ausgangsregister eine 1-Byte-Schiebeoperation auslöst. Der Stand im Zähler 46 wird erhöht und der Zustand der Leitung 9 zum Eingangsmultiplexer 32 abgefragt. Ist letzterer gleich "0", was bedeutet, dass noch nicht genügend Schiebeoperationen stattgefunden haben, um einen Uebertrag zu erzeugen, dann beginnt der Verfahrensablauf erneut beim Schritt (108B). Liegt jedoch auf der Leitung 9 eine "1" vor, dann setzt sich das Verfahren beim Schritt (37A) gemäss dem besagten Patent fort, wobei die n Bytes des dank dem Verfahren bereitgestellten, kurzen Blockes aus dem Ausgangsregister ausgegeben werden. Die speziellen Operationen gemäss Kasten 37 sind dieselben wie im Kasten 108, ausgenommen dass nach der Eingabe der Zahl n in den Zähler 46 die Leitung 11 statt der Leitung 9 abgefragt wird und dass die U/D-Leitung auf "0" gesetzt wird, weshalb der Zählerstand jeweils vermindert wird. Für eine spezielle Beschreibung hiezu wird wieder auf das US.-Patent No. 4.078.152 verwiesen, dessen Verfahren nun die weitere Steuerung wieder voll übernimmt.According to box 108, the n bytes of cipher text Y or plain text X just set up are now right-justified in the old register according to (8 - n) positions. This begins with the signal switches 000010 being emitted by the control switches 42 via the SR mask line. This prepares the E line that triggers shift operations in the output register as soon as it receives a pulse from the SR clock line during substep (108B). It is not necessary to select one of the multiplexers 1-4, since this is only a shift operation in a register. But since (8 - n) has to be shifted, line 9 of input multiplexer 32 is driven and number n is set in counter 46. At the same time the U / D line is set to logic "1" so that the counter reading can be increased. It continues with the sub-step (108B), which represents a loop for shifting operations such as steps (107B), (105B), etc. An SR clock pulse is now output by the output decoder 40, which is sent to the AND gate A-0 arrives and triggers a 1-byte shift operation in the output register. The level in counter 46 is increased and the status of line 9 to input multiplexer 32 is queried. If the latter is "0", which means that there have not yet been enough shift operations to generate a transfer, the process sequence begins again at step (108B). However, if there is a "1" on line 9, the method continues at step (37A) according to said patent, the n bytes of the short block provided by the method being output from the output register. The special operations in box 37 are the same as in box 108, except that after entering number n in counter 46, line 11 is queried instead of line 9 and the U / D line is set to "0", which is why the counter reading is reduced in each case. For a special description of this, reference is again made to US Pat. 4,078,152, whose procedure is now fully taken over by the further control.

Es ist daran zu denken, dass das Altregister 12 in diesem Zeitpunkt ein neues "laufendes" Verkettungswort enthält, das im weiteren Verfahren brauchbar ist, unabhängig davon ob im Datenstrom als nächstes ein "Satzende", ein kurzer Block oder ein voller Block auftritt. Dieses im Altregister befindliche Verkettungswort stellt also die letzten 8 Bytes eines chiffrierten TextsY dar, den die Einrichtung produziert hat, wenn wenigstens 8 Bytes verarbeitet worden sind. Andernfalls sind es weniger als 8 Bytes bearbeiteter Chiffretext, dem genügend letzte Bytes des Erstverkettungswortes vorangehen, um das Total von 8 Bytes zu erreichen.It should be remembered that at this point in time the old register 12 contains a new "running" concatenation word that can be used in the further process, regardless of whether a "block end", a short block or a full block is next in the data stream Block occurs. This concatenation word located in the old register thus represents the last 8 bytes of an encrypted text Y, which the device has produced when at least 8 bytes have been processed. Otherwise, it is less than 8 bytes of processed cipher text, preceded by enough last bytes of the first concatenation word to reach the total of 8 bytes.

Damit ist die Beschreibung der Schaltungsanordnung zur Ausführung des erfinderischen Verfahrens abgeschlossen. Es sind offensichtlich Aenderungen denkbar, ohne vom Erfindungskonzept abzuweichen, wenn beispielsweise andere Datenformate verwendet werden, oder spezielle Symbole zur Markierung oder Trennung kurzer Datenblöcke eingeführt würden.This concludes the description of the circuit arrangement for executing the inventive method. Changes are obviously conceivable without deviating from the concept of the invention if, for example, other data formats are used or special symbols for marking or separating short data blocks are introduced.

Das hier erläuterte erfinderische Verfahren zur Chiffrierung und Verkettung von Daten, bzw. deren Dechiffrierung, beim Auftreten kürzerer Blöcke als sonst üblich ist in jeder Blockchiffre-Anlage anwendbar, und besonders dort wo hohe Datensicherheit verlangt wird. Das trifft auf die Datenübermittlung zu, die leicht angezapft werden kann, oder auf grosse Dateien, bei denen unerlaubter Zugriff nicht so leicht abzuwehren ist. Auch in der Anwendung der immer zahlreicher werdenden Kreditkarten im Warenverkauf und bei Banken treten Probleme der Datensicherheit auf, für welche die vorliegende Erfindung eine mögliche Lösung darstellt.The inventive method for encryption and chaining of data, or their decryption, explained here when shorter blocks than usual occur can be used in any block cipher system, and especially where high data security is required. This applies to data transfer, which can be tapped easily, or to large files, for which unauthorized access is not easily prevented. Data security problems also arise in the application of the ever increasing number of credit cards in the sale of goods and at banks, for which the present invention represents a possible solution.

Claims (4)

l. Verfahren zur Chiffrierung von Datenblöcken X einer vorgegebenen Länge L(f) in runktion eines Chiffrierschlüssels zwecks Bildung chiffrierter Blöcke Y mit derselben Länge L (f) für die Ausgabe, verbunden mit Verkettung bei der Chiffrierung eingegebener Datenblöcke der Länge L(s), die kürzer ist als L(f), zwecks Bildung kurzer chiffrierter Blöcke Y(s) für die Ausgabe mit derselben Länge L(s), dadurch gekennzeichnet, dass die Eingabe eines kurzen Datenblocks Xi der Länge L(s) festgestellt wird, dass als Verkettungswort Vi des laufenden Chiffrierschrittes das zuletzt vorhandene Produkt
Figure imgb0025
des Chiffriervorganges in voller Blocklänge L(f) ohne Berücksichtigung der Länge des zuletzt ausgegebenen chiffrierten Blockes Yi-1 verwendet wird, dass das genannte Verkettungswort Vi chiffriert wird, ferner dass ein Teil L(s) des ganzen chiffrierten Verkettungswortes Wi durch eine mathematisch umkehrbare Funktion mit dem genannten kurzen Datenblock Xi kombiniert und die Kombination als chiffrierte Ausgabe Y. des kurzen Datenblocks verwendet wird und dass schliesslich die genannte Kombination der Länge L(s) als neuester Bestandteil des beim nächsten Chiffriervorgang zu verwendenden Verkettungswortes
Figure imgb0026
eingesetzt wird, unabhängig davon wie lange der nächste zu chiffrierende Datenblock Xi+1 ist.
l. Method for encrypting data blocks X of a predetermined length L (f) in operation of an encryption key in order to form encrypted blocks Y with the same length L (f) for the output, combined with concatenation during the encryption of input data blocks of length L (s) , the shorter is characterized as L (f) , in order to form short encrypted blocks Y (s) for the output with the same length L (s) , characterized in that the input of a short data block X i of length L (s) is determined as a concatenation word V i of the current encryption step the last available product
Figure imgb0025
of the encryption process in full block length L (f) is used, without taking into account the length of the last encrypted block Y i-1 , that said chaining word V i is encrypted, and that a part L (s) of the entire encrypted chaining word W i by a mathematically invertible function to said short data block X i are combined and the combination as encrypted output Y. of the short data block is used and that finally the combination of length L (s) mentioned is the newest component of the concatenation word to be used in the next encryption process
Figure imgb0026
is used, regardless of how long the next data block X i + 1 to be encrypted is.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass zur Bildung der genannten Kombination das chiffrierte Verkettungswort Wi und der eingegebene kurze Datenblock Xi einer EXKLUSIV-ODER-Verknüpfung zugeführt werden.2. The method according to claim 1, characterized in that to form said combination, the encrypted chaining word W i and the short data block X i entered are supplied with an EXCLUSIVE-OR operation. 3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der gerade in der Ausgabe erscheinende Chiffreblock Yi von n Bytes Länge mit dem vorgängig erschienenen Chiffretext Yi-1 zwecks Bildung eines neuen Verkettungswortes
Figure imgb0027
verbunden wird, welch letzteres beim nächsten Chiffriervorgang benötigt wird, und dass die genannte Verbindung durch Ausmerzen der n ältesten Bytes im zuletzt benutzten Verkettungswort Vi beim Einschieben des Chiffreblocks Yi bewirkt wird.
3. The method according to claim 1, characterized in that the cipher block Y i just appearing in the output of n bytes in length with the previously published cipher text Y i-1 in order to form a new concatenation word
Figure imgb0027
is connected, the latter being required for the next encryption process, and that the said connection is effected by erasing the n oldest bytes in the chaining word V i last used when inserting the cipher block Y i .
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass beim Beginn der Chiffrieroperationen ein vorgegebenes Erstverkettungswort (ICV) benutzt wird.4. The method according to claim 3, characterized in that a predetermined initial chaining word (ICV) is used at the start of the encryption operations.
EP79105225A 1978-12-29 1979-12-17 Method for enciphering data blocks of a given length Expired EP0012974B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US05/974,596 US4229818A (en) 1978-12-29 1978-12-29 Method and apparatus for enciphering blocks which succeed short blocks in a key-controlled block-cipher cryptographic system
US974596 1978-12-29

Publications (2)

Publication Number Publication Date
EP0012974A1 true EP0012974A1 (en) 1980-07-09
EP0012974B1 EP0012974B1 (en) 1983-05-25

Family

ID=25522237

Family Applications (1)

Application Number Title Priority Date Filing Date
EP79105225A Expired EP0012974B1 (en) 1978-12-29 1979-12-17 Method for enciphering data blocks of a given length

Country Status (6)

Country Link
US (1) US4229818A (en)
EP (1) EP0012974B1 (en)
JP (1) JPS5592483A (en)
CA (1) CA1127258A (en)
DE (1) DE2965551D1 (en)
IT (1) IT1163746B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0874496A2 (en) * 1997-04-23 1998-10-28 Matsushita Electric Industrial Co., Ltd. Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for improving security without greatly increasing hardware scale and processing time

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4520232A (en) * 1982-04-30 1985-05-28 Wilson William J Polygraphic encryption-decryption system
US4621334A (en) * 1983-08-26 1986-11-04 Electronic Signature Lock Corporation Personal identification apparatus
JP3053527B2 (en) * 1993-07-30 2000-06-19 インターナショナル・ビジネス・マシーンズ・コーポレイション Method and apparatus for validating a password, method and apparatus for generating and preliminary validating a password, method and apparatus for controlling access to resources using an authentication code
US5432848A (en) * 1994-04-15 1995-07-11 International Business Machines Corporation DES encryption and decryption unit with error checking
US5671283A (en) * 1995-06-08 1997-09-23 Wave Systems Corp. Secure communication system with cross linked cryptographic codes
US5684876A (en) * 1995-11-15 1997-11-04 Scientific-Atlanta, Inc. Apparatus and method for cipher stealing when encrypting MPEG transport packets
JPH10301492A (en) 1997-04-23 1998-11-13 Sony Corp Enciphering device and method therefor, decoding device and method therefor, and information processing device and method therefor
CN100385887C (en) * 1997-05-07 2008-04-30 西门子公司 Method and device for coding, transmitting and decoding digital data
TW375721B (en) 1998-06-17 1999-12-01 Ind Tech Res Inst DES chip processor capable of executing data encryption standard (DES) operation
US6944296B1 (en) * 1999-03-24 2005-09-13 Intel Corporation Video bit scrambling
EP1081888B1 (en) * 1999-08-31 2005-12-21 Matsushita Electric Industrial Co., Ltd. Encryption method, encryption apparatus, decryption method, and decryption apparatus
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
US20040088539A1 (en) * 2002-11-01 2004-05-06 Infante Steven D. System and method for securing digital messages
US20060088156A1 (en) * 2003-03-27 2006-04-27 Nds Limited, One London Road, Staines Cfm mode system
US7940930B2 (en) 2005-05-02 2011-05-10 Nds Limited Native scrambling system
US7546461B2 (en) * 2005-06-28 2009-06-09 Microsoft Corporation Strengthening secure hash functions
US7725719B2 (en) * 2005-11-08 2010-05-25 International Business Machines Corporation Method and system for generating ciphertext and message authentication codes utilizing shared hardware
US11488134B2 (en) * 2008-05-02 2022-11-01 Micro Focus Llc Format-preserving cryptographic systems
FR2966953B1 (en) * 2010-11-02 2015-08-28 St Microelectronics Rousset METHOD OF CRYPTOGRAPHIC COUNTERPRESSION BY DERIVATION OF SECRET DATA
US9066117B2 (en) * 2012-02-08 2015-06-23 Vixs Systems, Inc Container agnostic encryption device and methods for use therewith
EP2829012A4 (en) * 2012-03-21 2015-12-23 Irdeto Bv Method and system for chain transformation
CN107292618B (en) * 2016-04-11 2020-04-28 阿里巴巴集团控股有限公司 Method and device for processing ciphertext data encryption failure in database

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4078152A (en) * 1976-04-26 1978-03-07 International Business Machines Corporation Block-cipher cryptographic system with chaining

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4074066A (en) * 1976-04-26 1978-02-14 International Business Machines Corporation Message verification and transmission error detection by block chaining

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4078152A (en) * 1976-04-26 1978-03-07 International Business Machines Corporation Block-cipher cryptographic system with chaining

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1977 ELECTRO CONFERENCE RECORD, 1977, El Segundo, US, S. JEFFERY et al.: "Data encryption", Seiten 30/4-1 bis 30/4-6 * Seite 30/4-5, linke Spalte, Zeile 45 bis rechte Spalte, Zeile 13 * *
1978 NATIONAL TELECOMMUNICATIONS CONFERENCE RECORD, Band 2, 3-6, Dezember 1978, Birmingham, US, FENICHEL: "Data communications encryption - A description of applications and report on standards progress", Seiten 26.2.1 bis 26.2.5 * Seite 26.2.1, rechte Spalte, Absatz 2; Seite 26.2.2, rechte Spalte, Absatz 1 * *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0874496A2 (en) * 1997-04-23 1998-10-28 Matsushita Electric Industrial Co., Ltd. Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for improving security without greatly increasing hardware scale and processing time
EP0874496A3 (en) * 1997-04-23 2000-04-05 Matsushita Electric Industrial Co., Ltd. Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for improving security without greatly increasing hardware scale and processing time
US6459792B2 (en) 1997-04-23 2002-10-01 Matsushita Electric Industrial Co., Ltd. Block cipher using key data merged with an intermediate block generated from a previous block

Also Published As

Publication number Publication date
DE2965551D1 (en) 1983-07-07
JPS5592483A (en) 1980-07-12
JPS6333749B2 (en) 1988-07-06
US4229818A (en) 1980-10-21
IT7928247A0 (en) 1979-12-20
IT1163746B (en) 1987-04-08
EP0012974B1 (en) 1983-05-25
CA1127258A (en) 1982-07-06

Similar Documents

Publication Publication Date Title
EP0012974B1 (en) Method for enciphering data blocks of a given length
DE69031736T2 (en) ENCRYPTION METHOD
DE3689510T2 (en) Data obfuscation device and method.
DE69929251T2 (en) ENCRYPTION SYSTEM WITH A KEY OF CHANGING LENGTH
DE3884048T2 (en) Nonlinear random sequence generator.
DE69532227T2 (en) SIGNAL SEND PROCEDURE AND COMMUNICATION SYSTEM
DE69119844T2 (en) ENCRYPER
EP2433241A1 (en) Encoding methods
DE3036596A1 (en) METHOD FOR SECURELY PROCESSING A BUSINESS OPERATION OVER AN UNSECURED MESSAGE CHANNEL
DE2154018B2 (en) Arrangement for digital data encryption and decryption
DE60004409T2 (en) Circuit and method for generating random numbers
DE3138698A1 (en) METHOD FOR POTENTIZING LARGE BINARY NUMBERS IN A REMAINING CLASS MODULO N, ESPECIALLY FOR ENCRYPTING AND UNLOCKING DIGITALLY PRESENTED MESSAGES
EP3127272B1 (en) Encryption method and pseudo-random number generator
EP1683029B1 (en) Method for storing data in a random access memory and encryption and decryption device
WO2005043804A1 (en) Encryption and decryption method and device
DE3905667C2 (en)
DE69006774T2 (en) Method for encrypting a sequence consisting of at least one symbol.
EP0027572A1 (en) Method and apparatus for ciphered transmission of information
DE19757370C2 (en) Process for the tactile generation of pseudo-random data words
DE10162991A1 (en) Process for computer-aided encryption and decryption of data
DE2639806C2 (en) Method and device for encrypting or decrypting data blocks in binary representation
DE3432651B3 (en) Method for encrypted transmission, involves generating binary word for each set of messages, where different message keys are determined from word by cryptographic algorithm
DE2455477C3 (en) Method for concealing speech by interchanging the speech segments over time
WO1997032417A1 (en) Process for generating a check word for a bit sequence for verifying the integrity and authenticity of the bit sequence
DE4107266C2 (en) Process for fast encryption or decryption of large files using a chip card

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Designated state(s): DE FR GB

17P Request for examination filed

Effective date: 19801029

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Designated state(s): DE FR GB

REF Corresponds to:

Ref document number: 2965551

Country of ref document: DE

Date of ref document: 19830707

ET Fr: translation filed
PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed
PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 19891128

Year of fee payment: 11

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 19891130

Year of fee payment: 11

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 19891227

Year of fee payment: 11

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Effective date: 19901217

GBPC Gb: european patent ceased through non-payment of renewal fee
PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Effective date: 19910830

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Effective date: 19910903

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST