WO2005006642A1 - System and method for encrypting and verifying messages using three-phase encryption - Google Patents

System and method for encrypting and verifying messages using three-phase encryption Download PDF

Info

Publication number
WO2005006642A1
WO2005006642A1 PCT/US2003/033380 US0333380W WO2005006642A1 WO 2005006642 A1 WO2005006642 A1 WO 2005006642A1 US 0333380 W US0333380 W US 0333380W WO 2005006642 A1 WO2005006642 A1 WO 2005006642A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
text
message
generating
intermediate value
Prior art date
Application number
PCT/US2003/033380
Other languages
French (fr)
Inventor
Mohammad Peyravian
David J. Craft
Harm P. Hofstee
Daniel A. Brokenshire
Original Assignee
International Business Machines Corporation
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 Corporation filed Critical International Business Machines Corporation
Priority to AU2003282981A priority Critical patent/AU2003282981A1/en
Priority to CN2003801104205A priority patent/CN1820448B/en
Publication of WO2005006642A1 publication Critical patent/WO2005006642A1/en

Links

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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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 relates in general to a system and method for encrypting, decrypting, and verifying the integrity of messages.
  • the present invention relates to a system and method for using a three-phase encryption process to encrypt, decrypt, and verify the integrity of a message.
  • the Internet provides an efficient and inexpensive means of communication between large numbers of users. The same infrastructure can be shared among the different users; it is unnecessary for each pair of communicating users to establish a separate channel of communication as is the case, for example, with users of standard telephones and fax machines. The sharing of the channels of communication provided by the Internet significantly increases the probability of intercepted communication, eavesdropping, tampering with the messages, etc.
  • secret key encryption the same secret key is used both for the encryption of the message at the source and the decryption of the message at the target.
  • secret key encryption is the Data Encryption Standard (DES).
  • each user has a private key (which is kept secret from the other users) and a public key (which each user publicly distributes).
  • the two keys are mathematically related in such a way that a source uses the target's public key to encrypt a message such that practically only the target can decrypt the message.
  • a good encryption standard must be computationally efficient for the source and the target, and at the same time, the standard must be not be easy to "break" using cryptanalysis: the art and science of breaking encryption algorithm. It is also important for the encryption standard to provide means for verifying the integrity of a message — whether a message was altered during its transmission through an unsecured medium.
  • the current method and system provide a means for verifying the integrity of a transmitted message by comparing, at the target, a received control number to a decrypted control number.
  • the source and target share a secret master key, which the source uses to encrypt a message, and after the message is transmitted to the target, the target uses to decrypt the message.
  • the message to be encrypted and transmitted to the target is received by the source in plain-text form.
  • the source first generates a first and second random number and constructs a plain-text envelope comprising: the plain-text message; the first random number; the second random number; a pad field; and a number indicating the length of the pad field.
  • the pad field is generated such that a length of: the plain-text message; the first random number; the second random number; the pad field; and the number indicating the length of the pad field is an integer multiple of a block size of a block cipher algorithm used in the encryption/decryption process.
  • a first, second, and third key are subsequently generated. The three keys are used one at each of the three phases of the encryption process.
  • the keys are generated from the secret master key and the first random number using a decryption function of a block cipher algorithm used in the encryption/decryption process.
  • a first set of N intermediate blocks is generated from the N plain-text blocks and the first key using the function of a block cipher algorithm encryption/decryption.
  • a second set of N intermediate blocks is generated from the first set of N intermediate blocks and the second key using the encryption function of the block cipher encryption/decryption algorithm.
  • N cipher text blocks are generated from the second set of N intermediate blocks and the third key using the encryption function of the block cipher encryption/decryption algorithm.
  • a protected-text envelope is then constructed containing: a number indicating the length of the protected-text envelope; the first random value; and the N cipher-text blocks.
  • the protected-text envelope is transmitted to a target over an unsecured medium such as the Internet.
  • the protected-text envelope is received by the target, which shares the source's secret master key.
  • the target extracts from the protected-text envelope: the number indicating the length of the protected-text envelope; the first random value; and the N cipher-text blocks.
  • the first, second, and third keys are then generated from the extracted first random number and the secret master key using the decryption function of the block cipher encryption/decryption algorithm.
  • the second set of the N intermediate blocks is generated from the N cipher-text blocks and the third key using the decryption function of the block cipher encryption decryption algorithm.
  • second set of the N intermediate blocks is generated from the first set of N intermediate blocks and the second key using the decryption function of the block cipher encryption/decryption algorithm.
  • the N plain-text blocks are generated from the first set of N intermediate blocks and the first key using the decryption function of the block cipher encryption/decryption algorithm.
  • the plain-text message is then extracted from the N plain-text blocks of the plain-text envelope.
  • a first random number included in the N plain-text blocks is then extracted and compared to the first random number extracted from the protected-text envelope. If the two numbers are not equal the received message is not trusted since it can be concluded that the message was most likely altered during its transmission from the source to the target. If the two numbers are equal, the message can be trusted.
  • Figure 1 is a block diagram illustrating the encryption of a message at a source, transmission in encrypted form over an unsecured medium, and decryption of the message at a target;
  • Figure 2 is a block diagram illustrating a system for encrypting a message using a three-phase encryption process;
  • Figure 3 is a block diagram illustrating a system for decrypting a message using a three-phase decryption process;
  • Figure 4 is a flowchart illustrating a method for receiving, encrypting, and transmitting a message;
  • Figure 5 is a flowchart illustrating a method for encrypting a message using a three-phase encryption process;
  • Figure 6 is a flowchart illustrating a method for receiving encrypted text, decrypting the encrypted text, and extracting a message from the decrypted text;
  • Figure 1 is a block diagram illustrating encryption of a message at a source, transmission in encrypted form over an unsecured medium, and decryption of the message at a target.
  • Source 110 is configured to receive a plain-text message and construct plain-text envelope 120.
  • plain-text envelope 120 includes the plain-text message and additional numbers and fields generated at the source.
  • envelope 160 shows a larger image of plain-text envelope 120.
  • envelope 120 contains N blocks PO-PN- I that include the random number S, a number indicating the length of the pad field, the message "Hello!, a pad field, and the random number R.
  • Source 110 encrypts plain-text envelope 120 to create N cipher text blocks CO-CN- I using master key M 115 and the three-phase encryption process.
  • Protected-text envelope 130 is then constructed using the cipher text and other control numbers and transmitted through unsecured medium 125.
  • Oval 160 shows a larger image of protected-text envelope 130.
  • envelope 130 contains a number indicating the length of the protected-text envelope, the control random number R, and the cipher text.
  • Target 135 is configured to receive the message and decrypt the extracted cipher text using master key M 140, which is shared between the source and the target. After decryption, the target recovers plain-text envelope 145, which should be identical to plain-text envelope 120 unless the cipher text was altered during transmission through unsecured medium 125.
  • Figure 2 is a block diagram illustrating a system for encrypting a message using the three-phase encryption process. Encryption device 210 is configured to receive the N blocks P 0 -P N _i of the plain-text envelope P and generate the N blocks C 0 -C N _ X of cipher text C.
  • Encryption device 210 includes: N-l exclusive or modules 220, ..., 222, and 224; N-l exclusive or modules 242, 244, ..., 246; N-l exclusive or modules 256, ..., 258, and 260; N encryption modules 212, 214, ..., 216, and 218; N encryption modules 226, 228, ..., 230, and 232; and N encryption modules 248, 250, ..., 252, and 254.
  • the exclusive or modules are configured to generate an output by performing a bitwise "xor" operation on the two inputs to the modules.
  • the function Enc() may be the encryption function of any block cipher encryption/decryption algorithm and Kj is one of three keys Ki, K 2 , and K 3 generated at the source.
  • the first key is used in encryption modules 212-218, the second key is used in encryption modules 226-232, and the third key is used in encryption modules 248-254.
  • Dec() may be the decryption function of any block cipher encryption/decryption algorithm
  • M is the secret master key
  • is the "xor" operator.
  • block Po is input into encryption module 212 to generate intermediate block Ao.
  • Block Ao and block Pt are then input into exclusive or module 220 and the output from exclusive or module 220 is input into encryption module 214 to generate intermediate block
  • the process repeats until block AN-2 and block PN- I are input into exclusive or module 224 and the output from exclusive or module 224 is input into encryption module 218 to generate intermediate block AN- I to complete the first phase of the encryption process.
  • the second phase of the encryption process begins with intermediate block AN- I being input into encryption module 232 to generate intermediate block B N - I .
  • Block AN- 2 is then input into encryption module 230 and the output from encryption module 230 and block AN- I are input into exclusive or module 246 to generate intermediate block BN-2- This process repeats until block Ai is input into encryption module 226 and the output from encryption module 226 and block Ao are input into exclusive or module 242 to generate intermediate block Bo to complete the second phase of the encryption process.
  • the third phase of the encryption process begins with intermediate block Bo being input into encryption module 248 to generate cipher text block Co.
  • Block Bj is then input into encryption module 250 and the output from encryption module 250 and block B 0 are input into exclusive or module 256 to generate cipher text block C-i.
  • FIG. 3 is a block diagram illustrating a system for decrypting a message using a three-phase decryption process.
  • Decryption device 310 is configured to receive the N blocks C 0 - C w _, of cipher text C and generate the N blocks P 0 - P N _ X of the plain-text envelope P.
  • Decryption device 310 includes: N-l exclusive or modules 320, ... , 322, and 324; N-l exclusive or modules 334, 236, ..., and 338; N-l exclusive or modules 348,
  • N decryption modules 312, 314, ..., 316, and 318 N decryption modules 326, 328, ..., 330, and 332
  • N decryption modules 340, 342, ..., 344, and 346 The exclusive or modules are configured to generate an output by performing a bitwise "xor" operation on the two inputs to the modules.
  • the function Enc() may be the decryption function of any block cipher algorithm and Kj is one of three keys Ki, K 2 , and K3 generated by the target.
  • the third key is used in decryption modules 312-318, the second key is used in decryption modules 326-332, and the first key is used in decryption modules 340-346.
  • Dec() may be the decryption function of any block cipher encryption/decryption algorithm, M is the secret master key, and ⁇ is the "xor 5 ' operator.
  • block Co is input into decryption module 312 to generate intermediate block Bo.
  • Block Bo and block Ci are then input into exclusive or module 320 and the output from exclusive or module 320 is input into decryption module 314 to generate intermediate block Bi.
  • the process repeats until block CN- 2 and block C N - I are input into exclusive or module 324 and the output from exclusive or module 324 is input into decryption module 318 to generate intermediate block B N -! to complete the first phase of the decryption process.
  • the second phase of the decryption process begins with intermediate block B N - I being input into decryption module 332 to generate intermediate block A N - I .
  • Block B N - 2 and block A -! are input into exclusive or module 338 and the output from module 338 is input into decryption module 330 to generate intermediate block A - 2 -
  • This process repeats until block A] and intermediate block Bo are input into exclusive or module 334 and the output from exclusive or module 334 is input into decryption module 326 to generate intermediate block Ao to complete the second phase of the decryption process.
  • the third phase of the decryption process begins with intermediate block Ao being input into decryption module 340 to generate plain text block Po.
  • Block Ai is then input into decryption module 342 and the output from decryption module 342 and block Ao are input into exclusive or module 348 to generate plain text block Pi. This process repeats until block A N - I is input into decryption module 346 and the output from decryption module 346 and block A N - 2 are input into exclusive or module 352 to generate plain text block P N - I to complete the third phase of the decryption process.
  • Figure 4 is a flowchart illustrating a method for receiving, encrypting, and transmitting a message. Processing begins at 400 whereupon, at step 410, secret master key M is received by the source. The same secret master key M is shared between the source and the target.
  • Secret master key M may be received from storage unit 415.
  • the secret master key may be changed frequently to ensure the key's confidentiality.
  • the message to be encrypted may be received from storage unit 425.
  • two fixed-size random numbers ( ⁇ & R) are generated.
  • a determination is then made as to whether a pad field is required to construct a plain-te ⁇ ; envelope at decision 435.
  • the plain-text envelope is formed using fixed-size random number S, a number indicating the length of the pad field (if any), the message to be encrypted, the pad field, and the fixed-size random number R.
  • the size (length) of the envelope must be an integral multiple of the cipher's block size.
  • the block size for the AES block cipher algorithm is 128 bits. If the length of the message, S, R, and the number indicating the length of the pad field is an integral multiple of the cipher's block size, decision 435 branches to "yes" branch 445 whereupon processing continues at step 455.
  • decision 435 branches to "no" branch 440 whereupon, at step 450, a pad field containing any arbitrary pattern is generated.
  • the length of the pad field is chosen so as to provide a plain-text envelope having a length that is an integral multiple of the cipher's block size.
  • a plain-text envelope P is generated.
  • envelope P contains: the fixed- size random number S, a number indicating the length of the pad field, the message to be encrypted, the pad field, and the fixed-size random number R.
  • Envelope P contains N equal-size blocks PO-PN-I •
  • the plain-text envelope P is encrypted using the three-phase encryption process to construct a protected-text envelope. More details of the encryption process are shown in the flowchart of Figure 5.
  • the protected-text envelope is transmitted to the target over an unsecured medium such as the Internet.
  • Dec() may be the decryption function of any block cipher encryption/decryption algorithm, M is the secret master key, and ⁇ is the "xor" operator.
  • M is the secret master key
  • is the "xor" operator.
  • N intermediate blocks A (A O -AN- I ) are generated from the N blocks of the plain-text envelope and the first key using an encryption function according to the formulas:
  • Enc() may an encryption function of a block cipher encryption/decryption algorithm.
  • the second of three phases of the three-phase encryption is performed.
  • FIG. 6 is a flowchart illustrating a method for receiving encrypted text, decrypting the encrypted text, and extracting a message from the decrypted text.
  • a protected-text envelope is received through an unsecured medium such as the Internet.
  • the protected- text envelope contains: the length of the envelope, a random number R, and N cipher text blocks C.
  • the cipher text blocks typically contain a message in encrypted form.
  • the length of the envelope, the random number R, and the cipher text blocks C are extracted from the protected-text envelope.
  • the cipher text blocks are decrypted to recover N blocks of a plain-text envelope. More details on the decryption are provided in the flowchart of Figure 7.
  • the plain-text envelope contains: a fixed-size random number R, a number representing the length of a pad field contained in the envelope, a message, the pad field, and an additional copy of random number R.
  • the plain-text message is then extracted at step 625.
  • the integrity of the message is determined. More details on the integrity determination are provided in the flowchart of Figure 8. Processing ends at 699.
  • Dec() may be the decryption function of any block cipher encryption/decryption algorithm
  • M is the secret master key
  • is the "xor" operator.
  • the N intermediate blocks B (BO-BN- I ) are regenerated from the N cipher text blocks C extracted from the received protected-text envelope and the first key Ki using a decryption function according to the formulas:
  • the second of three phases of the three-phase decryption is performed.
  • the third and final phase of the three-phase decryption is performed.
  • the N blocks of the plain-text envelope are (PQ-PN- I ) are regenerated from the N intermediate A blocks and the third key K 3 using an encryption function according to the formula:
  • Figure 8 is a flowchart illustrating a method for verifying the integrity of a decrypted message.
  • a second copy of the random number R is extracted from the decrypted plain-text envelope P.
  • a first copy of the random number R is extracted from the protected-text envelope C.
  • a determination is then made as to whether the random number R extracted from the plain-text envelope is equal to the random number R extracted from the protected-text envelope R at decision 815. If the two numbers are equal, decision 815 branches to "yes" branch 820 whereupon, at step 830, it is determined that the decrypted message can be trusted. In other words, it is determined that it is highly unlikely that anyone has tampered with the message while the message was being transmitted though the unsecured medium.
  • FIG. 9 illustrates information handling system 901 which is a simplified example of a computer system capable of performing the computing operations described herein.
  • Computer system 901 includes processor 900 which is coupled to host bus 902.
  • a level two (L2) cache memory 904 is also coupled to host bus 902.
  • Host-to-PCI bridge 906 is coupled to main memory 908, includes cache memory and main memory control functions, and provides bus control to handle transfers among PCI bus 910, processor
  • Main memory 908 is coupled to Host-to-PCI bridge 906 as well as host bus 902.
  • Devices used solely by host processors) 900 such as LAN card 930, are coupled to PCI bus 910.
  • Service Processor Interface and ISA Access Pass-through 912 provides an interface between PCI bus 910 and PCI bus 914.
  • PCI bus 914 is insulated from PCI bus 910.
  • Devices, such as flash memory IS are coupled to PCI bus 914.
  • flash memory 918 includes BIOS code that incorporates the necessary processor executable code for a variety of low-level system functions and system boot functions.
  • PCI bus 914 provides an interface for a variety of devices that are shared by host processors) 900 and Service Processor 916 including, for example, flash memory 918.
  • PCI-to-ISA bridge 935 provides bus control to handle transfers between PCI bus 914 and ISA bus 940, universal serial bus (USB) functionality 945, power management functionality 955, and can include other functional elements not shown, such as a realtime clock (RTC), DMA control, interrupt support, and system management bus support.
  • Nonvolatile RAM 920 is attached to ISA Bus 940.
  • Service Processor 916 includes JTAG and I2C busses 922 for communication with processor(s) 900 during initialization steps.
  • JTAG/T2C busses 922 are also coupled to L2 cache 904, Host-to-PCI bridge 906, and main memory 908 providing a communications path between the processor, the Service Processor, the L2 cache, the Host-to-PCI bridge, and the main memory.
  • Service Processor 916 also has access to system power resources for powering down information handling device 901.
  • Peripheral devices and input/output (I/O) devices can be attached to various interfaces (e.g., parallel interface 962, serial interface 964, keyboard interface 968, and mouse interface 970 coupled to ISA bus 940.
  • I/O controller not shown
  • ISA bus 940 can be an interface bus 940.
  • LAN card 930 is coupled to PCI bus 910.
  • modem 975 is connected to serial port 964 and PCI-to-ISA Bridge 935.
  • the set of instructions may be stored in another computer memory, for example, on a hard disk drive, or in removable storage such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via the Internet or other computer network.
  • the present invention may be implemented as a computer program product for use in a computer.
  • the various methods described are conveniently implemented in a general purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the required method steps.
  • This invention is used in systems requiring transmitting and receiving secure messages which is accomplished by way of encrypting, decrypting and verifying the integrity of the messages.

Abstract

A method and system for encrypting and verifying the integrity of a message using a three-phase encryption process is provided. A source having a secret master key that is shared with a target receives the message and generates a random number. The source then generates: a first set of intermediate values from the message and the random number; a second set of intermediate values from the first set of values; and a cipher text from the second set of values. At the three phases, the values are generated using the encryption function of a block cipher encryption/decryption algorithm. The random number and the cipher text are transmitted to the target, which decrypts the cipher text by reversing the encryption process. The target verifies the integrity of the message by comparing the received random number with the random number extracted from the decrypted cipher text.

Description

System and Method for Encrypting and Verifying Messages Using Three-Phase Encryption
Background of the Invention The present invention relates in general to a system and method for encrypting, decrypting, and verifying the integrity of messages. In particular, the present invention relates to a system and method for using a three-phase encryption process to encrypt, decrypt, and verify the integrity of a message. The Internet provides an efficient and inexpensive means of communication between large numbers of users. The same infrastructure can be shared among the different users; it is unnecessary for each pair of communicating users to establish a separate channel of communication as is the case, for example, with users of standard telephones and fax machines. The sharing of the channels of communication provided by the Internet significantly increases the probability of intercepted communication, eavesdropping, tampering with the messages, etc. Thus, it has become increasingly important to have available means of communication that provide an efficient way of securing the transmission of messages between a source and a target over shared channels of communication such as the Internet. The most common method of secured communication is to encrypt the message at the source in such a way that practically only the target can decrypt the message. Many types of encryption/decryption have been developed to address the need for secured communications. There are two main types of encryption techniques: secret key encryption and private/public key encryption. In secret key encryption, the same secret key is used both for the encryption of the message at the source and the decryption of the message at the target. An example of secret key encryption is the Data Encryption Standard (DES). In public/private key encryption, each user has a private key (which is kept secret from the other users) and a public key (which each user publicly distributes). The two keys are mathematically related in such a way that a source uses the target's public key to encrypt a message such that practically only the target can decrypt the message. A good encryption standard must be computationally efficient for the source and the target, and at the same time, the standard must be not be easy to "break" using cryptanalysis: the art and science of breaking encryption algorithm. It is also important for the encryption standard to provide means for verifying the integrity of a message — whether a message was altered during its transmission through an unsecured medium. What is needed, therefore, is a system and method that could provide an efficient encryption/decryption standard between a source and a target while not being susceptible to cryptanalysis. The system and method should also provide the capability to verify the integrity of a transmitted message to a high degree of probability. Summary
It has been discovered that the aforementioned challenges can be addressed by a method and a system for ©nesryptMig9 deciyptings, and verifying tie integrity of a message using a three-phase encryption process. The structure of the three-phase encryption process makes cryptanalysis of the algorithm extremely difficult, which significantly reduces the probability ©f 46breϋMng" the encryption. In addition, the current method and system provide a means for verifying the integrity of a transmitted message by comparing, at the target, a received control number to a decrypted control number. The source and target share a secret master key, which the source uses to encrypt a message, and after the message is transmitted to the target, the target uses to decrypt the message. The message to be encrypted and transmitted to the target is received by the source in plain-text form. The source first generates a first and second random number and constructs a plain-text envelope comprising: the plain-text message; the first random number; the second random number; a pad field; and a number indicating the length of the pad field. The pad field is generated such that a length of: the plain-text message; the first random number; the second random number; the pad field; and the number indicating the length of the pad field is an integer multiple of a block size of a block cipher algorithm used in the encryption/decryption process. A first, second, and third key are subsequently generated. The three keys are used one at each of the three phases of the encryption process. The keys are generated from the secret master key and the first random number using a decryption function of a block cipher algorithm used in the encryption/decryption process. At the fist phase of the encryption process, a first set of N intermediate blocks is generated from the N plain-text blocks and the first key using the function of a block cipher algorithm encryption/decryption. At the second phase of the encryption process, a second set of N intermediate blocks is generated from the first set of N intermediate blocks and the second key using the encryption function of the block cipher encryption/decryption algorithm. At the third and final phase of the encryption process, N cipher text blocks are generated from the second set of N intermediate blocks and the third key using the encryption function of the block cipher encryption/decryption algorithm. A protected-text envelope is then constructed containing: a number indicating the length of the protected-text envelope; the first random value; and the N cipher-text blocks. The protected-text envelope is transmitted to a target over an unsecured medium such as the Internet. The protected-text envelope is received by the target, which shares the source's secret master key. The target extracts from the protected-text envelope: the number indicating the length of the protected-text envelope; the first random value; and the N cipher-text blocks. The first, second, and third keys are then generated from the extracted first random number and the secret master key using the decryption function of the block cipher encryption/decryption algorithm. At the fist phase of the decryption process, the second set of the N intermediate blocks is generated from the N cipher-text blocks and the third key using the decryption function of the block cipher encryption decryption algorithm. At the second phase of the decryption process, second set of the N intermediate blocks is generated from the first set of N intermediate blocks and the second key using the decryption function of the block cipher encryption/decryption algorithm. At the third and final phase of the decryption process, the N plain-text blocks are generated from the first set of N intermediate blocks and the first key using the decryption function of the block cipher encryption/decryption algorithm. The plain-text message is then extracted from the N plain-text blocks of the plain-text envelope. In order to verify the integrity of the message, a first random number included in the N plain-text blocks is then extracted and compared to the first random number extracted from the protected-text envelope. If the two numbers are not equal the received message is not trusted since it can be concluded that the message was most likely altered during its transmission from the source to the target. If the two numbers are equal, the message can be trusted. The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way . limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
Brief Description of the Drawings The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items. Figure 1 is a block diagram illustrating the encryption of a message at a source, transmission in encrypted form over an unsecured medium, and decryption of the message at a target; Figure 2 is a block diagram illustrating a system for encrypting a message using a three-phase encryption process; Figure 3 is a block diagram illustrating a system for decrypting a message using a three-phase decryption process; Figure 4 is a flowchart illustrating a method for receiving, encrypting, and transmitting a message; Figure 5 is a flowchart illustrating a method for encrypting a message using a three-phase encryption process; Figure 6 is a flowchart illustrating a method for receiving encrypted text, decrypting the encrypted text, and extracting a message from the decrypted text; Figure 7 is a flowchart illustrating a method for decrypting an encrypted message using a three-phase decryption process; Figure 8 is a flowchart illustrating a method for verifying the integrity of a received and decrypted message; and Figure 9 illustrates an information handling system that is a simplified example of a computer system capable of performing the operations described herein. Detailed Description The following is intended to provide a detailed description of an example of the invention and should not be taken to be limiting of the invention itself. Rather, any number of variations may fall within the scope of the invention defined in the claims following the description. Figure 1 is a block diagram illustrating encryption of a message at a source, transmission in encrypted form over an unsecured medium, and decryption of the message at a target. Source 110 is configured to receive a plain-text message and construct plain-text envelope 120. In one embodiment, plain-text envelope 120 includes the plain-text message and additional numbers and fields generated at the source. Oval
160 shows a larger image of plain-text envelope 120. In one embodiment, envelope 120 contains N blocks PO-PN-I that include the random number S, a number indicating the length of the pad field, the message "Hello!", a pad field, and the random number R. Source 110 encrypts plain-text envelope 120 to create N cipher text blocks CO-CN-I using master key M 115 and the three-phase encryption process. Protected-text envelope 130 is then constructed using the cipher text and other control numbers and transmitted through unsecured medium 125. Oval 160 shows a larger image of protected-text envelope 130. In one embodiment, envelope 130 contains a number indicating the length of the protected-text envelope, the control random number R, and the cipher text. Target 135 is configured to receive the message and decrypt the extracted cipher text using master key M 140, which is shared between the source and the target. After decryption, the target recovers plain-text envelope 145, which should be identical to plain-text envelope 120 unless the cipher text was altered during transmission through unsecured medium 125. Figure 2 is a block diagram illustrating a system for encrypting a message using the three-phase encryption process. Encryption device 210 is configured to receive the N blocks P0 -PN_i of the plain-text envelope P and generate the N blocks C0 -CN_X of cipher text C. Encryption device 210 includes: N-l exclusive or modules 220, ..., 222, and 224; N-l exclusive or modules 242, 244, ..., 246; N-l exclusive or modules 256, ..., 258, and 260; N encryption modules 212, 214, ..., 216, and 218; N encryption modules 226, 228, ..., 230, and 232; and N encryption modules 248, 250, ..., 252, and 254. The exclusive or modules are configured to generate an output by performing a bitwise "xor" operation on the two inputs to the modules. The encryption modules are configured to generate an output according to the formula Out = Enc^ (In) .
The function Enc() may be the encryption function of any block cipher encryption/decryption algorithm and Kj is one of three keys Ki, K2, and K3 generated at the source. The first key is used in encryption modules 212-218, the second key is used in encryption modules 226-232, and the third key is used in encryption modules 248-254. The three keys are generated according to the formula: K. = O∞M(R@i), i = 1,2,3.
Dec() may be the decryption function of any block cipher encryption/decryption algorithm, M is the secret master key, and Θ is the "xor" operator. Initially, block Po is input into encryption module 212 to generate intermediate block Ao. Block Ao and block Pt are then input into exclusive or module 220 and the output from exclusive or module 220 is input into encryption module 214 to generate intermediate block
Figure imgf000009_0001
The process repeats until block AN-2 and block PN-I are input into exclusive or module 224 and the output from exclusive or module 224 is input into encryption module 218 to generate intermediate block AN-I to complete the first phase of the encryption process. The second phase of the encryption process begins with intermediate block AN-I being input into encryption module 232 to generate intermediate block BN-I. Block AN-2 is then input into encryption module 230 and the output from encryption module 230 and block AN-I are input into exclusive or module 246 to generate intermediate block BN-2- This process repeats until block Ai is input into encryption module 226 and the output from encryption module 226 and block Ao are input into exclusive or module 242 to generate intermediate block Bo to complete the second phase of the encryption process. The third phase of the encryption process begins with intermediate block Bo being input into encryption module 248 to generate cipher text block Co. Block Bj is then input into encryption module 250 and the output from encryption module 250 and block B0 are input into exclusive or module 256 to generate cipher text block C-i. This process repeats until block BN-I is input into encryption module 254 and the output from encryption module 254 and block BN-2 are input into exclusive or module 260 to generate cipher text block CN-I to complete the third phase of the encryption process. Figure 3 is a block diagram illustrating a system for decrypting a message using a three-phase decryption process. Decryption device 310 is configured to receive the N blocks C0 - Cw_, of cipher text C and generate the N blocks P0 - PN_X of the plain-text envelope P. Decryption device 310 includes: N-l exclusive or modules 320, ... , 322, and 324; N-l exclusive or modules 334, 236, ..., and 338; N-l exclusive or modules 348,
350, and 352; N decryption modules 312, 314, ..., 316, and 318; N decryption modules 326, 328, ..., 330, and 332; and N decryption modules 340, 342, ..., 344, and 346. The exclusive or modules are configured to generate an output by performing a bitwise "xor" operation on the two inputs to the modules. The decryption modules are configured to generate an output according to the formula: Out = Dec^ (In) .
The function Enc() may be the decryption function of any block cipher algorithm and Kj is one of three keys Ki, K2, and K3 generated by the target. The third key is used in decryption modules 312-318, the second key is used in decryption modules 326-332, and the first key is used in decryption modules 340-346. The three keys are generated according to the formula: i , = Becw(/?Θi), i = 1,2,3.
Dec() may be the decryption function of any block cipher encryption/decryption algorithm, M is the secret master key, and Θ is the "xor5' operator. Initially, block Co is input into decryption module 312 to generate intermediate block Bo. Block Bo and block Ci are then input into exclusive or module 320 and the output from exclusive or module 320 is input into decryption module 314 to generate intermediate block Bi. The process repeats until block CN-2 and block CN-I are input into exclusive or module 324 and the output from exclusive or module 324 is input into decryption module 318 to generate intermediate block BN-! to complete the first phase of the decryption process. The second phase of the decryption process begins with intermediate block BN-I being input into decryption module 332 to generate intermediate block AN-I. Block BN-2 and block A -! are input into exclusive or module 338 and the output from module 338 is input into decryption module 330 to generate intermediate block A -2- This process repeats until block A] and intermediate block Bo are input into exclusive or module 334 and the output from exclusive or module 334 is input into decryption module 326 to generate intermediate block Ao to complete the second phase of the decryption process. The third phase of the decryption process begins with intermediate block Ao being input into decryption module 340 to generate plain text block Po. Block Ai is then input into decryption module 342 and the output from decryption module 342 and block Ao are input into exclusive or module 348 to generate plain text block Pi. This process repeats until block AN-I is input into decryption module 346 and the output from decryption module 346 and block AN-2 are input into exclusive or module 352 to generate plain text block PN-I to complete the third phase of the decryption process. Figure 4 is a flowchart illustrating a method for receiving, encrypting, and transmitting a message. Processing begins at 400 whereupon, at step 410, secret master key M is received by the source. The same secret master key M is shared between the source and the target. Secret master key M may be received from storage unit 415. The secret master key may be changed frequently to ensure the key's confidentiality. At step 420, the message to be encrypted may be received from storage unit 425. At step 430, two fixed-size random numbers (§ & R) are generated. A determination is then made as to whether a pad field is required to construct a plain-te∑ ; envelope at decision 435. The plain-text envelope is formed using fixed-size random number S, a number indicating the length of the pad field (if any), the message to be encrypted, the pad field, and the fixed-size random number R. In an embodiment where a block cipher encryption algorithm is to be used in the encryption of the plain-text envelope, the size (length) of the envelope must be an integral multiple of the cipher's block size. For example, the block size for the AES block cipher algorithm is 128 bits. If the length of the message, S, R, and the number indicating the length of the pad field is an integral multiple of the cipher's block size, decision 435 branches to "yes" branch 445 whereupon processing continues at step 455. If the length of the message, S, R, and the number indicating the length of the pad field is not an integral multiple of the cipher's block size, decision 435 branches to "no" branch 440 whereupon, at step 450, a pad field containing any arbitrary pattern is generated. The length of the pad field is chosen so as to provide a plain-text envelope having a length that is an integral multiple of the cipher's block size. At step 455, a plain-text envelope P is generated. In one embodiment, envelope P contains: the fixed- size random number S, a number indicating the length of the pad field, the message to be encrypted, the pad field, and the fixed-size random number R. Envelope P contains N equal-size blocks PO-PN-I • At step 460, the plain-text envelope P is encrypted using the three-phase encryption process to construct a protected-text envelope. More details of the encryption process are shown in the flowchart of Figure 5. At step 460, the protected-text envelope is transmitted to the target over an unsecured medium such as the Internet. Figure 5 is a flowchart illustrating a method for encrypting a message using a three-phase encryption process. Processing begins at 500 whereupon at 510, three keys are generated from the random number R and the secret master key using the decryption function of a block cipher algorithm. In one embodiment, the three keys may be generated according to the formula: JC. = BecM(i2θ ), = ls2,3.
Dec() may be the decryption function of any block cipher encryption/decryption algorithm, M is the secret master key, and Θ is the "xor" operator. At step 515, the first of three phases of the three-phase encryption is performed.
N intermediate blocks A (AO-AN-I) are generated from the N blocks of the plain-text envelope and the first key using an encryption function according to the formulas:
Figure imgf000012_0001
Enc() may an encryption function of a block cipher encryption/decryption algorithm. At step 520, the second of three phases of the three-phase encryption is performed. N intermediate blocks B (BO-BN- are generated from the N intermediate A blocks and the second key K2 using an encryption function according to the formulas: _ f EnCj,2(4) i = N-ϊ B' [4+I ΘEnCj,2 (4) t = N-2,N-3,...,0-
At step 525, the third and final phase of the three-phase encryption is performed. N cipher text blocks C (CO-CN-I) are generated from the N intermediate blocks B and the third key K3 using an, encryption function according to the formulas: f EncK (Bl) i = 0 C = \ 3 ' {R,_1 ΘEncJf3(R-) t = l,2,...,N-l
A protected-text envelope is then constructed. In one embodiment, the protected- text envelope contains: the length of the envelope, the random number R, and the cipher text blocks C. Processing ends at 599. Figure 6 is a flowchart illustrating a method for receiving encrypted text, decrypting the encrypted text, and extracting a message from the decrypted text.
Processing begins at 600 whereupon, at step 610, a protected-text envelope is received through an unsecured medium such as the Internet. In one embodiment, the protected- text envelope contains: the length of the envelope, a random number R, and N cipher text blocks C. The cipher text blocks typically contain a message in encrypted form. At step 615, the length of the envelope, the random number R, and the cipher text blocks C are extracted from the protected-text envelope. At step 620, the cipher text blocks are decrypted to recover N blocks of a plain-text envelope. More details on the decryption are provided in the flowchart of Figure 7. In one embodiment, the plain-text envelope contains: a fixed-size random number R, a number representing the length of a pad field contained in the envelope, a message, the pad field, and an additional copy of random number R. The plain-text message is then extracted at step 625. At step 630, the integrity of the message is determined. More details on the integrity determination are provided in the flowchart of Figure 8. Processing ends at 699. Figure 7 is a flowchart illustrating a method for decrypting an encrypted message using a three-phase process. Processing begins at 700 whereupon at 710, three keys are generated from the extracted random number R and the secret master key M using the decryption function of a cipher algorithm. In one embodiment, the three keys may be generated according to the formula: K, = OecM(R@i), i = 1,2,3.
Dec() may be the decryption function of any block cipher encryption/decryption algorithm, M is the secret master key, and θ is the "xor" operator. At step 715, the first of three phases of the three-phase decryption is performed. The N intermediate blocks B (BO-BN-I) are regenerated from the N cipher text blocks C extracted from the received protected-text envelope and the first key Ki using a decryption function according to the formulas:
_J Decff3(C,) t' = 0 ^ " [Dec^ς ©£,_,) i = \,2,...,N-Y
At step 720, the second of three phases of the three-phase decryption is performed. The N intermediate blocks A (AO-AN- are regenerated from the N intermediate B blocks and the second key K2 using a decryption function according to the formulas: J Dec^ tø) i = N-l ' ' Dec^φ ® 4+1) i = M-2,N-3,...,0 '
At step 725, the third and final phase of the three-phase decryption is performed. The N blocks of the plain-text envelope are (PQ-PN-I) are regenerated from the N intermediate A blocks and the third key K3 using an encryption function according to the formula:
Figure imgf000014_0001
Figure 8 is a flowchart illustrating a method for verifying the integrity of a decrypted message. At step 810, a second copy of the random number R is extracted from the decrypted plain-text envelope P. A first copy of the random number R is extracted from the protected-text envelope C. A determination is then made as to whether the random number R extracted from the plain-text envelope is equal to the random number R extracted from the protected-text envelope R at decision 815. If the two numbers are equal, decision 815 branches to "yes" branch 820 whereupon, at step 830, it is determined that the decrypted message can be trusted. In other words, it is determined that it is highly unlikely that anyone has tampered with the message while the message was being transmitted though the unsecured medium. If the two numbers are not equal, decision 815 branches to "no" branch 825 whereupon, at step 835, it is determined that the decrypted message cannot be trusted. In other words, it is determined that it is highly likely that someone has tampered with the message while the message was being transmitted though the unsecured medium. Processing ends at 899. Figure 9 illustrates information handling system 901 which is a simplified example of a computer system capable of performing the computing operations described herein. Computer system 901 includes processor 900 which is coupled to host bus 902. A level two (L2) cache memory 904 is also coupled to host bus 902. Host-to-PCI bridge 906 is coupled to main memory 908, includes cache memory and main memory control functions, and provides bus control to handle transfers among PCI bus 910, processor
900, L2 cache 904, main memory 908, and host bus 902. Main memory 908 is coupled to Host-to-PCI bridge 906 as well as host bus 902. Devices used solely by host processors) 900, such as LAN card 930, are coupled to PCI bus 910. Service Processor Interface and ISA Access Pass-through 912 provides an interface between PCI bus 910 and PCI bus 914. In this manner, PCI bus 914 is insulated from PCI bus 910. Devices, such as flash memory IS, are coupled to PCI bus 914. In one implementation, flash memory 918 includes BIOS code that incorporates the necessary processor executable code for a variety of low-level system functions and system boot functions. PCI bus 914 provides an interface for a variety of devices that are shared by host processors) 900 and Service Processor 916 including, for example, flash memory 918.
PCI-to-ISA bridge 935 provides bus control to handle transfers between PCI bus 914 and ISA bus 940, universal serial bus (USB) functionality 945, power management functionality 955, and can include other functional elements not shown, such as a realtime clock (RTC), DMA control, interrupt support, and system management bus support. Nonvolatile RAM 920 is attached to ISA Bus 940. Service Processor 916 includes JTAG and I2C busses 922 for communication with processor(s) 900 during initialization steps.
JTAG/T2C busses 922 are also coupled to L2 cache 904, Host-to-PCI bridge 906, and main memory 908 providing a communications path between the processor, the Service Processor, the L2 cache, the Host-to-PCI bridge, and the main memory. Service Processor 916 also has access to system power resources for powering down information handling device 901. Peripheral devices and input/output (I/O) devices can be attached to various interfaces (e.g., parallel interface 962, serial interface 964, keyboard interface 968, and mouse interface 970 coupled to ISA bus 940. Alternatively, many I/O devices can be accommodated by a super I/O controller (not shown) attached to ISA bus 940. In order to attach computer system 901 to another computer system to copy files over a network, LAN card 930 is coupled to PCI bus 910. Similarly, to connect computer system 901 to an ISP to connect to the Internet using a telephone line connection, modem 975 is connected to serial port 964 and PCI-to-ISA Bridge 935. While the computer system described in Figure 9 is capable of executing the processes described herein, this computer system is simply one example of a computer system. Those skilled in the art will appreciate that many other computer system designs are capable of performing the processes described herein. One of the preferred implementations of the invention is an application, namely, a set of instructions (program code) in a code module which may, for example, be resident in the random access memory of the computer. Until required by the computer, the set of instructions may be stored in another computer memory, for example, on a hard disk drive, or in removable storage such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via the Internet or other computer network. Thus, the present invention may be implemented as a computer program product for use in a computer. In addition, although the various methods described are conveniently implemented in a general purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the required method steps. While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from this invention and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims. It will be understood by those with skill in the art that if a specific number of an introduced claim element is intended, such intent will be explicitly recited in the claim, and in the absence of such recitation no such limitation is present. For a non-limiting example, as an aid to understanding, the following appended claims contain usage of the introductory phrases "at least one" and "one or more" to introduce claim elements. However, the use of such phrases should not be construed to imply that the introduction of a claim element by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an"; the same holds true for the use in the claims of definite articles.
lEsiassaoiaS AppieaFaiiiy This invention is used in systems requiring transmitting and receiving secure messages which is accomplished by way of encrypting, decrypting and verifying the integrity of the messages.

Claims

What is claimed is: 1. A method for encrypting a message, the method comprising: receiving a plain text; generating a first key (K- , a second key (K2), and a third key (K3); generating a first intermediate value from the plain text and the first key
Figure imgf000018_0001
generating a second intermediate value from the first intermediate value and the second key (K2); and generating a cipher text message from the second intermediate value and the third key (K3).
2. The method of Claim 1, further comprising receiving a secret master key (M).
3. The method of Claim 1, further comprising generating a first random number and a second random number.
4. The method of Claim 1, further comprising generating a pad field such that a length of: the plain-text message; the first random number; the second random number; the pad field; and a number indicating a length of the pad field is an integer multiple of a block size of a block cipher algorithm.
5. The method of Claim 1, further comprising constructing a plain-text envelope comprising: the plain-text message; the first random number; the second random number; the pad field; and the number indicating the length of the pad field.
6. The method of Claim 1, wherein the generating the first intermediate value comprises generating the first intermediate value from the plain-text envelope and the first key.
7. The method of Claim 1, further comprising constructing a protected-text envelope comprising: a number indicating a length of the protected-text envelope; the first random value; and the cipher-text message.
8. The method of Claim 1, further comprising transmitting the protected-text envelope to a target over an unsecured medium.
9. The method of Claim 1, wherein the generating the first key, the second key, and the third key comprises generating the first key, the second key, and the third key from the secret master key and the first random number.
10. The method of Claim 1, wherein the generating the first key, the second key, and the third key comprises generating the first key, the second key, and the third key from the secret master key and the first random number using a decryption function of a block cipher algorithm.
11. The method of Claim 1, wherein the generating the first intermediate value, the second intermediate value, and the cipher-test message comprises using an encryption function of a block cipher algorithm.
12. A method for decrypting a cipher iA message, the method comprising: receiving a cipher text; generating a first key, a second key, and a third key; generating a first intermediate value from the cipher text and the first key; generating a second intermediate value from the first intermediate value and the second key; and generating a plain-text envelope from the second intermediate value and the third key.
13. The method of Claim 12, wherein the receiving further comprises receiving a first control number and wherein the plain-text envelope comprises a plain-text message and a second control number.
14. The method of Claim 12, further comprising setting an integrity of the received cipher text to: a "Can be Trusted" setting if the first control number is equal to the second control number and a "Cannot be Trusted" setting if the first control number is not equal to the second control number.
15. The method of Claim 12, further comprising receiving a secret master key.
16. The method of Claim 12, wherein the generating the first key, the second key, and the third key comprises generating the first key, the second key, and the third key from the secret master key and the first control number.
17. The method of Claim 12, wherein the generating the first key, the second key, and the third key comprises generating the first key, the second key, and the third key from the secret master key and the first control number using a decryption function of a block cipher algorithm.
18. The method of Claim 12, wherein the generating the first intermediate value, the second intermediate value, and the plain-text envelope comprises using an decryption function of a block cipher algorithm.
19. The method of Claim 12, further comprising receiving the cipher text from a source over an unsecured medium.
20. An information handling system comprising: one or more processors; a memory accessible from the processors; a receiver accessible from the processors for receiving data; a message encryption tool that encrypts messages, the message encryption tool enabled to: receive a plain text at the receiver; generate a first key, a second key, and a third key; generate a first intermediate value from the plain text and the first key; generate a second intermediate value from the first intermediate value and the second key; and generate a cipher text message from the second intermediate value and the third key.
21. The information handling system of Claim 20, wherein the message encryption tool is further enabled to receive a secret master key.
22. The information handling system of Claim 20, wherein the message encryption tool is further enabled to generate a first random number and a second random number.
23. The information handling system of Claim 20, wherein the message encryption tool is further enabled to generate a pad field such that a length of: the plain-text message, the first random number, the second random number, the pad field, and a number indicating a length of the pad field is an integer multiple of a block size of a block cipher algorithm.
24. The information handling system of Claim 20, wherein the message encryption tool is further enabled to construct a plain-text envelope comprising: the plain-text message, the first random number, the second random number, the pad field, and the number indicating the length of the pad field.
25. The information handling system of Claim 20, wherein, in order to generate the first intermediate value, the message encryption tool is further enabled to generate the first intermediate value from the plain-text envelope and the first key.
26. The information handling system of Claim 20, wherein the message encryption tool is further enabled to construct a protected-text envelope comprising: a number indicating a length of the protected-text envelope, the first random value, and the cipher-text message.
27. The information handling system of Claim 20, wherein the message encryption tool is further enabled to transmit the protected-text envelope to a target over an unsecured medium.
28. The information handling system of Claim 20, wherein, in order to generate the first key, the second key, and the third key, the message encryption tool is further enabled to generate the first key, the second key, and the third key from the secret master key and the first random number.
29. The information handling system of Claim 20, wherein, in order to generate the first key, the second key, and the third key, the message encryption tool is further enabled to generate the first key, the second key, and the third key from the secret master key and the first random number using a decryption function of a block cipher algorithm.
30. The information handling system of Claim 20, wherein, in order to generate the first intermediate value, the second intermediate value, and the cipher-text message, the message encryption tool is further enabled to use an encryption function of a block cipher algorithm.
31. An information handling system comprising: one or more processors; a memory accessible from the processors; a receiver accessible from the processors for receiving data; a message decryption tool that decrypts messages, the message decryption tool enabled to: receive a cipher text at the receiver; generate a first key, a second key, and a third key; generate a first intermediate value from the cipher text and the first key; generate a second intermediate value from the first intermediate value and the second key; and generate a plain-text envelope from the second intermediate value and the third key.
32. The information handling system of Claim 31 : wherein, in order to receive the cipher text, the message decryption tool is further enabled to receive a first control number; and wherein the plain-text envelope comprises a plain-text message and a second control number.
33. The information handling system of Claim 31, wherein the message decryption tool is further enabled to set an integrity of the received cipher text to: a "Can be Trusted" setting if the first control number is equal to the second control number; and a "Cannot be Trusted" setting if the first control number is not equal to the second control number.
34. The information handling system of Claim 31, wherein the message decryption tool is further enabled to receive a secret master key.
35. The information handling system of Claim 1, wherein, in order to generate the first key, the second key, and the third key, the message decryption tool is further enabled to generate the first key, the second key, and the third key from the secret master key and the first control number.
36. The information handling system of Claim 31, wherein, in order to generate the first key, the second key, and the third key, the message decryption tool is further enabled to generate the first key, the second key, and the third key from the secret master key and the first control number using a decryption function of a block cipher algorithm.
37. The information handling system of Claim 31, wherein, in order to generate the first intermediate value, the second intermediate value, and the plain-text envelope, the message decryption tool is further enabled to use an decryption function of a block cipher algorithm.
38. The information handling system of Claim 31, wherein the message decryption tool is further enabled to receive the cipher text from a source over an unsecured medium.
39. A computer program product stored on a computer operable media for encrypting a message, the computer program product comprising: means for receiving a plain text; means for generating a first key, a second key, and a third key; means for generating a first intermediate value from the plain text and the first key; means for generating a second intermediate value from the first intermediate value and the second key; and means for generating a cipher text message from the second intermediate value and the third key.
40. The computer program product of Claim 39, further comprising means for receiving a secret master key.
41. The computer program product of Claim 39, further comprising means for generating a first random number and a second random number.
42. The computer program product of Claim 39, further comprising means for generating a pad field such that a length of: the plain-text message, the first random number, the second random number, the pad field, and a number indicating a length of the pad field is an integer multiple of a block size of a block cipher algorithm.
43. The computer program product of Claim 39, further comprising means for constructing a plain-text envelope, the plain-text envelope comprising: the plain- text message, the first random number, the second random number, the pad field, and the number indicating the length of the pad field.
44. The computer program product of Claim 39, wherein the means for generating the first intermediate value comprises means for generating the first intermediate value from the plain-text envelope and the first key.
45. The computer program product of Claim 39, further comprising means for constructing a protected-text envelope, the protected-text envelope comprising: a number indicating a length of the protected-text envelope, the first random value, and the eipher-texl message.
46. The computer program product of Claim 39, further comprising means for transmitting the protected-text envelope to a target over an unsecured medium.
47. The computer program product of Claim 39, wherein the means for generating the first key, the second key, and the third key comprises means for generating the first key, the second key, and the third key from the secret master key and the first random number.
48. The computer program product of Claim 39, wherein the means for generating the first key, the second key, and the third key comprises means for generating the first key, the second key, and the third key from the secret master key and the first random number using a decryption function of a block cipher algorithm.
49. The computer program product of Claim 39, wherein the means for generating the first intermediate value, the second intermediate value, and the cipher-text message comprises means for using an encryption function of a block cipher algorithm.
50. A computer program product for decrypting a cipher text message, the computer program product comprising: means for receiving a cipher text; means for generating a first key, a second key, and a third key; means for generating a first intermediate value from the cipher text and the first key; means for generating a second intermediate value from the first intermediate value and the second key; and means for generating a plain-text envelope from the second intermediate value and the third key.
51. The computer program product of Claim 50, wherein the receiving further comprises means for receiving a first control number and wherein the plain-text envelope comprises a plain-text message and a second control number.
52. The computer program product of Claim 50, further comprising means for setting an integrity of the received cipher text to: a "Can be Trusted" setting if the first control number is equal to the second control number and a "Cannot be Trusted" setting if the first control number is not equal to the second control number.
53. The computer program product of Claim 50, further comprising means for receiving a secret master key.
54. The computer program product of Claim 50, wherein the means for generating the first key, the second key, and the third key comprises means for generating the first key, the second key, and the third key from the secret master key and the first control number.
55. The computer program product of Claim 50, wherein the means for generating the first key, the second key, and the third key comprises means for generating the first key, the second key, and the third key from the secret master key and the first control number using a decryption function of a block cipher algorithm.
56. The computer program product of Claim 50, wherein the means for generating the first intermediate value, the second intermediate value, and the plain-text envelope comprises using an decryption function of a block cipher algorithm.
57. The computer program product of Claim 50, further comprising means for receiving the cipher text from a source over an unsecured medium.
PCT/US2003/033380 2003-06-19 2003-10-20 System and method for encrypting and verifying messages using three-phase encryption WO2005006642A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2003282981A AU2003282981A1 (en) 2003-06-19 2003-10-20 System and method for encrypting and verifying messages using three-phase encryption
CN2003801104205A CN1820448B (en) 2003-06-19 2003-10-20 System and method for encrypting and verifying messages using three-phase encryption

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/464,891 2003-06-19
US10/464,891 US6996233B2 (en) 2003-06-19 2003-06-19 System and method for encrypting and verifying messages using three-phase encryption

Publications (1)

Publication Number Publication Date
WO2005006642A1 true WO2005006642A1 (en) 2005-01-20

Family

ID=33563713

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/033380 WO2005006642A1 (en) 2003-06-19 2003-10-20 System and method for encrypting and verifying messages using three-phase encryption

Country Status (6)

Country Link
US (1) US6996233B2 (en)
KR (1) KR100834364B1 (en)
CN (1) CN1820448B (en)
AU (1) AU2003282981A1 (en)
TW (1) TWI273809B (en)
WO (1) WO2005006642A1 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650409B1 (en) * 2004-09-15 2014-02-11 Altera Corporation FPGA configuration data scrambling using input multiplexers
US7685631B1 (en) * 2003-02-05 2010-03-23 Microsoft Corporation Authentication of a server by a client to prevent fraudulent user interfaces
US7617158B2 (en) * 2004-03-22 2009-11-10 Telefonaktiebolaget L M Ericsson (Publ) System and method for digital rights management of electronic content
US7725715B2 (en) 2005-02-24 2010-05-25 Access Business Group International Llc System and method for three-phase data encryption
US7352621B2 (en) * 2005-06-23 2008-04-01 Intel Corporation Method for enhanced block management
KR20070076848A (en) * 2006-01-20 2007-07-25 삼성전자주식회사 Apparatus and method for improving the security level in a card authentication system
KR100746033B1 (en) * 2006-02-17 2007-08-06 삼성전자주식회사 Apparatus and method for measuring integrity
KR100864092B1 (en) 2006-11-23 2008-10-16 한국전자통신연구원 Packet encryption method using block chaining mode of block cipher
EA015331B1 (en) * 2007-01-30 2011-06-30 Датаски, Ллк Systems and methods for filtering cellular telephone messages
CN100594691C (en) * 2007-10-09 2010-03-17 华中科技大学 Data transmission encryption method of MANET network
KR100954224B1 (en) 2007-11-06 2010-04-21 한국전자통신연구원 Apparatus for offset code book coding
EP2319233B1 (en) * 2008-08-28 2017-12-06 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for a digital subscriber line
CN101409618B (en) * 2008-11-24 2011-01-26 农革 Method for encrypting and deciphering multi-reader document
CN101924632B (en) * 2010-09-07 2012-05-09 西南交通大学 Reliable transmission method for transmitting traction information by block encryption
US9066117B2 (en) * 2012-02-08 2015-06-23 Vixs Systems, Inc Container agnostic encryption device and methods for use therewith
US9154471B2 (en) 2013-11-26 2015-10-06 At&T Intellectual Property I, L.P. Method and apparatus for unified encrypted messaging
CN107070637A (en) * 2017-01-13 2017-08-18 广东技术师范学院天河学院 A kind of data encryption/decryption method of overlapping packet
US10615971B2 (en) * 2017-05-22 2020-04-07 Microsoft Technology Licensing, Llc High integrity logs for distributed software services
WO2019045741A1 (en) * 2017-08-31 2019-03-07 Visa International Service Association Single node multi-party encryption

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4941176A (en) * 1988-08-11 1990-07-10 International Business Machines Corporation Secure management of keys using control vectors
US5157567A (en) * 1990-12-05 1992-10-20 Seagate Technology, Inc. Composite disk drive head assembly having an improved core-to-slider bond
US5544086A (en) * 1994-09-30 1996-08-06 Electronic Payment Services, Inc. Information consolidation within a transaction network
US20030159036A1 (en) * 2000-02-15 2003-08-21 Walmsley Simon Robert Validation protocol and system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517567A (en) * 1994-08-23 1996-05-14 Daq Electronics Inc. Key distribution system
US5727062A (en) * 1995-07-06 1998-03-10 Ritter; Terry F. Variable size block ciphers
CN1365088A (en) * 2001-01-19 2002-08-21 南相浩 Multiple algorithm and multilayer storage method of cipher key

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4941176A (en) * 1988-08-11 1990-07-10 International Business Machines Corporation Secure management of keys using control vectors
US5157567A (en) * 1990-12-05 1992-10-20 Seagate Technology, Inc. Composite disk drive head assembly having an improved core-to-slider bond
US5544086A (en) * 1994-09-30 1996-08-06 Electronic Payment Services, Inc. Information consolidation within a transaction network
US20030159036A1 (en) * 2000-02-15 2003-08-21 Walmsley Simon Robert Validation protocol and system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
COPPERSMITH D. ET AL.: "A proposed mode for triple-Des encryption", IBM JOURNAL OF RESEARCH AND DEVELOPMENT, vol. 40, no. 2, March 1996 (1996-03-01), pages 253 - 262, XP002123781 *
MENEZES A. ET AL.: "Handbook of applied cryptograph.", 1997, CRC PRESS LLC, pages: 233 - 273, XP008040257 *
MERKLE R. ET AL.: "On the security of multiple encryption", COMMUNICATIONS OF THE ACM, vol. 24, no. 7, July 1981 (1981-07-01), pages 465 - 467, XP002903983 *
SCHNEIER B.: "Applied cryptography, second edition: protocols, algorithms, and source code in C.", 1996, JOHN WILEY & SONS,INC., pages: 28 - 363, XP002985121 *

Also Published As

Publication number Publication date
TWI273809B (en) 2007-02-11
US6996233B2 (en) 2006-02-07
US20050008162A1 (en) 2005-01-13
AU2003282981A1 (en) 2005-01-28
CN1820448B (en) 2012-09-12
TW200518549A (en) 2005-06-01
KR100834364B1 (en) 2008-06-02
KR20060019548A (en) 2006-03-03
CN1820448A (en) 2006-08-16

Similar Documents

Publication Publication Date Title
US6996233B2 (en) System and method for encrypting and verifying messages using three-phase encryption
US20180013555A1 (en) Data transmission method and apparatus
EP0725512B1 (en) Data communication system using public keys
EP1223707A1 (en) Variable length key encrypting system
CN110932851B (en) PKI-based multi-party cooperative operation key protection method
WO1990009009A1 (en) Data carrier and data communication apparatus using the same
EP2290871A2 (en) Encryption method and apparatus using composition of ciphers
US7894608B2 (en) Secure approach to send data from one system to another
Terec et al. DNA security using symmetric and asymmetric cryptography
CN111404953A (en) Message encryption method, message decryption method, related devices and related systems
KR20040096778A (en) Method and apparatus for the generation of public key based on a user-defined id in a cryptosystem
JPH10171717A (en) Ic card and cipher communication system using the same
EP1416664A2 (en) Data encryption method
CN112738037A (en) Data encryption communication method
JPH0946332A (en) Communication system for communication statement enciphered by rsa procedure
KR20040052304A (en) Security apparatus and method for digital hardware system
US6826689B1 (en) Method and system for emulating a secret code between two hardware modules
KR101793528B1 (en) Certificateless public key encryption system and receiving terminal
JPH0777933A (en) Network data ciphering device
CN111355577B (en) Network data safety transmission system and method
CN102474413A (en) Private key compression
CN117221878A (en) Information security control method and device based on wireless network equipment
JPH0934355A (en) Ciphering system and ciphering system applicable to communication network
CN112733171A (en) Data rapid encryption method, data rapid encryption device, data rapid decryption method and data rapid decryption device
JP3164347B2 (en) IC tag

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200380110420.5

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1020057022072

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020057022072

Country of ref document: KR

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP