Counter-mode encryption and secret key encryption

By using a combination of asymmetric, symmetric, and counter mode encryption with XOR operations, the encryption-decryption bottleneck in end-to-end encryption is addressed, enhancing data transfer speeds in systems with high processing demands.

JP7776243B2Active Publication Date: 2025-11-26INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023551166
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-02-26
Filing Date
2022-01-11
Publication Date
2025-11-26
Estimated Expiration
2042-01-11

AI Technical Summary

Technical Problem

Existing end-to-end encryption methods bottleneck data transfer due to encryption and decryption operations being on the critical path, slowing down data transfer speeds in systems with high processing demands.

Method used

Implementing a combination of asymmetric, symmetric, and counter mode encryption to generate one-time pads independently of message transmission, using XOR operations for encryption and decryption, thereby removing encryption and decryption from the critical path.

Benefits of technology

Improves data transfer speeds by replacing encryption-decryption operations with XOR operations, allowing for faster communication by generating one-time pads in parallel with message transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007776243000001
    Figure 0007776243000001
  • Figure 0007776243000002
    Figure 0007776243000002
  • Figure 0007776243000003
    Figure 0007776243000003
Patent Text Reader

Abstract

The private key is communicated to the receiver system. A one-time pad is generated using the private key and a counter. An encrypted message is generated by XORing the first message with the one-time pad. The encrypted message and the counter are sent to the receiver system.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] FIELD OF THE DISCLOSURE This disclosure relates to data encryption, and more particularly to data encryption for communications between systems. [Background technology]

[0002] End-to-end encryption (E2EE) encrypts data at the sender system, communicates the encrypted message to the receiver, and decrypts the message at the receiver system. Because the message is encrypted before it leaves the sender, any system with access to the message between the sender and receiver cannot read it. Summary of the Invention

[0003] According to an embodiment of the present disclosure, a method for secure communication is provided. The method includes communicating a private key to a receiver system. A one-time pad is generated using the private key and a counter. An encrypted message is generated by XORing a first message with the one-time pad. The encrypted message and the counter are transmitted to the receiver system.

[0004] According to a further embodiment of the present disclosure, a second method for secure communication is provided. The method includes receiving a secret key from a transmitter system. A first one-time pad is generated using the secret key and a counter. An encrypted message is received from the transmitter system. The encrypted message is decrypted by performing an XOR operation on the encrypted message with the first one-time pad.

[0005] According to further embodiments of the present disclosure, a system and a computer program product for performing the method are provided.

[0006] The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure.

[0007] The drawings included in this application are incorporated into and constitute a part of this specification. They illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the disclosure. The drawings are merely illustrative of particular embodiments and are not intended to limit the disclosure. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 2 is an exemplary flow diagram of an initial handshake operation between a transmitter computing system and a receiver computing system using asymmetric encryption according to an embodiment. [Figure 2] 1 shows a flowchart of a method for a transmitter system to share a secret key with a receiver according to an embodiment. [Figure 3] 1 shows a flowchart of a method for a receiver system to obtain a private key from a transmitter system according to an embodiment. [Figure 4] FIG. 2 is an exemplary flow diagram of end-to-end encryption of a message according to an embodiment. [Figure 5] 1 shows a flowchart of a method for generating a one-time pad according to an embodiment. [Figure 6] 1 shows a flowchart of a method for a transmitter system to transmit an encrypted message according to an embodiment. [Figure 7] 1 shows a flowchart of a method for decryption of an encrypted message by a receiver system according to an embodiment. [Figure 8] FIG. 1 is a high-level block diagram of an exemplary computer system according to an embodiment.

[0009] While the invention is amenable to various modifications and alternative forms, specific features thereof have been shown by way of example in the drawings and will be described in detail. It is to be understood, however, that there is no intention to limit the invention to the particular embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. DETAILED DESCRIPTION OF THE INVENTION

[0010] Aspects of the present disclosure relate to encrypted communications between computing systems, and more particularly to encrypted communications between computing systems using secret key and counter mode encryption. While the present disclosure is not necessarily limited to such applications, various aspects of the present disclosure can be understood through a discussion of various examples using this context.

[0011] There is a rapid increase in distributed systems that require the ability to transfer large amounts of secure data quickly. With advances in technologies such as 5G networks, the bottleneck in data transfer is shifting from transfer speed to the processing power of the device itself. To ensure the security of transferred data, the data must be encrypted before being sent and decrypted upon receipt. In prior art processes, the encryption and decryption operations are on the critical path of data transfer. Removing the encryption and decryption operations from the critical path can improve the speed of data transfer with end-to-end encryption.

[0012]

[0006] Embodiments of the present disclosure provide methods, systems, and computer program products for end-to-end encryption that remove encryption and decryption operations from the critical path of data transfer. Embodiments of the present disclosure can use a combination of asymmetric, symmetric, and counter mode encryption.

[0013] In an initial handshake operation, the transmitter system can communicate a secret key to the receiver system using asymmetric encryption. The transmitter system can then use counter mode encryption with a counter and the secret key to generate a one-time pad. The transmitter system can then generate an encrypted message by performing an XOR (exclusive OR) operation on the message with the one-time pad. The encrypted message can then be sent to the receiver system along with the counter used to generate the one-time pad used in the XOR operation. The receiver system can then generate its own one-time pad using the counter and the secret key and XOR the one-time pad with the ciphertext to generate the plaintext message.

[0014] Notably, both systems allow the one-time pad to be generated before it is required to be used to encrypt a message. By making the generation of the one-time pad independent of the message, the one-time pad can be generated before or in parallel with the message, improving the speed of data transfer in end-to-end encryption. Compared to prior art methods, the encryption-communication-decryption critical path element is replaced by XOR-communication-XOR. XOR is a simpler operation and takes less time to complete than traditional encryption and decryption operations. Therefore, communication speeds can be improved over prior art methods.

[0015] In some embodiments, the receiver system can generate and store multiple one-time pads along with the value of the counter used to generate them. When the receiver system receives the counter and encrypted message from the transmitter, the receiver system can use the received counter value to identify the correctly stored one-time pad. Thus, in these embodiments, messages received out of sequence can be decoded.

[0016] Although reference is made herein to transmitter systems and receiver systems, each system may be configured to operate as either a transmitter system or a receiver system in some embodiments. Furthermore, in some embodiments, a single system may simultaneously operate as a receiver system with respect to a first computing system while operating as a transmitter system with respect to a second computing system.

[0017] Referring now to Figure 1, an exemplary flow diagram of an initial handshake operation between a sender computing system and a receiver computing system using asymmetric encryption is depicted, according to an embodiment. Asymmetric encryption involves the use of a public key and a private key. The public key may be used to encrypt data so that it can only be decrypted using the corresponding private key. The public key may be made available to others to encrypt data, and the corresponding private key may be kept secret so that only the holder of the private key can decrypt data encrypted using the public key.

[0018] The transmitter computing system can generate a unique private key 110 for use in future communications with the receiver computing system. The transmitter computing system can generate an encrypted private key 140 by encrypting 130 the private key 110 with the receiver's public key 120. The transmitter system can then communicate the encrypted private key 140 to the receiver computing system over one or more networks. The receiver computing system may decrypt 160 the encrypted private key 140 using the receiver's private key 150.

[0019] As shown, only the encrypted private key 140 is communicated over one or more networks. The encrypted private key 140 can only be decrypted using the receiver's private key 150, so the private key is protected if the encrypted private key 140 is compromised (e.g., by a man-in-the-middle attack) as it is communicated over one or more networks. Thus, after the initial handshake operation depicted in Figure 1, the transmitter system and receiver system may each have a private key 110 that is available only to the two computing systems.

[0020] Referring now to Figure 2, a flowchart of a method 200 for a transmitter system to share a secret key with a receiver is depicted, according to an embodiment. Method 200 may be performed using any suitable computing system. For example, method 200 may be performed by computer system 801 described with reference to Figure 8.

[0021] Method 200 begins with generating a private key at operation 210. The private key may be a unique key used only for communications with the receiver computing system. The private key may be generated according to any suitable algorithm.

[0022] In operation 220, the secret key is encrypted with the receiver's public key. As described herein, the receiver's private key may be used to encrypt data so that it can only be decrypted using the receiver's private key. The encryption may be performed using any suitable encryption algorithm.

[0023] The encrypted private key is sent to the receiver in operation 230. The encrypted private key may be communicated to the receiver system over one or more networks.

[0024] In operation 240, the transmitter system may receive an encrypted acknowledgment from the receiver system in response to transmitting the encrypted private key. As described with reference to Figure 3, the receiver computing system may generate the acknowledgment and encrypt it using the private key received from the transmitter system.

[0025] In operation 250, the transmitter system decrypts the encrypted acknowledgment using the private key to obtain the acknowledgment. The encrypted acknowledgment can be decrypted using any suitable decryption algorithm that corresponds to the encryption algorithm.

[0026] In operation 260, the transmitter system verifies the acknowledgment. In some embodiments, the computing system may verify the acknowledgment by comparing the acknowledgment to an expected acknowledgment to determine if a match exists. In some embodiments, the computing system may verify the acknowledgment by determining if the acknowledgment is readable. Once the acknowledgment is verified, the transmitter system may begin using the private key as described herein to communicate encrypted messages to the receiver.

[0027]

[0031] Referring now to Figure 3, a flowchart of a method 300 for a receiver system to obtain a private key from a transmitter system is depicted, according to an embodiment. Method 300 may be performed using any suitable computing system. For example, method 300 may be performed by computer system 801 described with reference to Figure 8.

[0028] In operation 310, the receiver system receives an encrypted private key from the transmitter over one or more networks. The encrypted private key may be encrypted using the receiver's public key.

[0029] The encrypted secret key is decrypted using the receiver's private key in operation 320. The receiver system may use any suitable decryption algorithm that corresponds to the encryption algorithm.

[0030] The receiver system may encrypt the acknowledgement message using a private key in operation 330. The receiver system may use any suitable encryption that allows decryption by the receiver using the same private key.

[0031] The receiver system may transmit the encrypted acknowledgment to the transmitter over one or more networks in operation 340. Sending the acknowledgment encrypted with the private key may indicate to the transmitter system that the receiver system has received the private key.

[0032] 4, an exemplary flow diagram for end-to-end encryption of a message according to an embodiment is depicted. The illustrated flow includes counter mode encryption using a secret key 420. As shown, the transmitter system and receiver system may each have the same secret key 420. The secret key 420 may be generated by the transmitter computing system and transmitted to the receiver computing system in an initial handshake operation as described herein.

[0033] As shown, both the transmitter system and the receiver system can encrypt 430 a combination of a nonce 405 and a counter 410 using a secret key 420 to generate a one-time pad 440. The nonce 405 may be an initialization vector of a set length. The counter 410 may be a numeric counter whose value is incremented each time a one-time pad is generated. The counter 410 may be of any size but ideally would be large enough to ensure that it does not overflow (i.e., the number of pads generated does not exceed the counter's maximum value). The counter may start at any value and may be configured to increment by any value to generate each subsequent one-time pad. For example, the counter could start at 0000 to generate the first one-time pad and increment by 1 for each subsequent one-time pad. Thus, in this example, the counter to generate the second one-time pad would be 0001. While the nonce 405 and counter 410 are depicted as separate entities, they may be part of the same string.

[0034] As shown, the receiver system may store the generated one-time pad 440 in a one-time pad list 445. The receiver system can then continue to generate one-time pads by incrementing a counter and encrypting the nonce and counter with the secret key 420. While Figure 4 does not show a corresponding one-time pad list on the transmitter system, in some embodiments the transmitter system may also have a one-time pad list that stores one-time pads for future use.

[0035] The transmitter system may encrypt the transmitter message 450 by performing an XOR operation 460 with a one-time pad 440 to generate an encrypted message 470. The transmitter system may then concatenate the one-time pad 440 and a counter 410 corresponding to the encrypted message 470. For example, a counter X bytes long may be prepended to the encrypted message, and the receiver system may be configured to identify the first X bytes as the counter and the remaining bytes as the encrypted message.

[0036] The transmitter system may transmit the counter 410 and the encrypted message 470 over one or more networks to a receiver system, which may identify the one-time pad 440 that corresponds to the counter 410 in a one-time pad list 445. For example, the receiver system may perform a table lookup using the counter to identify the corresponding one-time pad.

[0037] The receiver system can perform an XOR operation 460 on the encrypted message 470 with the one-time pad 440 to generate the transmitter message 450 .

[0038] As shown, only the encrypted message 470 and the counter 410 are communicated over one or more networks. The counter does not need to be encrypted because the counter alone without the private key cannot be used to decrypt the encrypted message, and the private key is known only by the sender and receiver systems. Thus, if the encrypted message is compromised (e.g., by a man-in-the-middle attack) as it is communicated over one or more networks, the sender's message is protected.

[0039] While Figure 4 depicts a transmitter system transmitting an encrypted message to a receiver system, in some embodiments, the receiver system may also be configured to transmit an encrypted message to a transmitter system. In some embodiments, messages transmitted from the receiver system to the transmitter system may use a different counter than messages transmitted from the transmitter system to the receiver system. For example, when generating a one-time pad for transmitting messages from the transmitter system to the receiver system, both systems may use an even counter value, and messages from the receiver system to the transmitter system may use an odd counter value.

[0040] Referring now to FIG. 5, a flowchart of a method 500 for generating a one-time pad according to an embodiment is depicted. Method 500 may be performed by a transmitter system or a receiver system. Method 500 may be performed using any suitable computing system. For example, method 500 may be performed by computer system 801 described with reference to FIG. 8.

[0041] Method 500 may begin after the initial handshake operations described in connection with Figures 1-3. In operation 510, the system may generate a one-time pad by encrypting a nonce and a counter with a secret key. The system may use any suitable encryption algorithm to generate the one-time pad.

[0042] The system may store the one-time pad in operation 520. The one-time pad and counter can be stored in any suitable computer storage such that the system can look up the corresponding one-time pad based on the counter.

[0043] In operation 530, the system may determine whether a threshold number of one-time pads have been stored. The threshold number of one-time pads may be pre-configured. In some embodiments, the threshold number is the maximum number of one-time pads that can be generated based on the size of the counter (i.e., the threshold may be reached when the counter reaches its maximum value). In some embodiments, the threshold number may be selected based on the rate of messages being sent so that one-time pads are available when needed.

[0044] If the threshold number of stored one-time pads has not been reached, the system may increment the counter in operation 540 and repeat operations 510 and 520. If the threshold has been reached, method 500 ends.

[0045] Referring now to Figure 6, a flowchart of a method 600 for a transmitter system to transmit an encrypted message is depicted, according to an embodiment. Method 600 may be performed using any suitable computing system. For example, method 600 may be performed by computer system 801 described with reference to Figure 8.

[0046] In operation 610, a message to be transmitted is provided to a receiver system. In operation 620, the transmitter system generates an encrypted message by XORing the message with a one-time pad. The transmitter system may generate multiple one-time pads and store them with associated counters as described with reference to FIG. 5. The transmitter system may select a one-time pad from the stored one-time pads to perform the XOR operation on. The one-time pad may be selected based on its association with the lowest counter.

[0047] In operation 630, the encrypted message and a counter associated with the one-time pad used to encrypt the message are transmitted over one or more networks to a transmitter system. The counter and the encrypted message may be concatenated in a predetermined manner. For example, the counter may be prepended to the encrypted message so that the first byte is the counter and the remaining bytes are the encrypted message.

[0048] 7, a flowchart of a method 700 for decrypting an encrypted message by a receiver system is depicted, according to an embodiment. Method 700 may be performed using any suitable computing system. For example, method 700 may be performed by computer system 801 described with reference to FIG. 8.

[0049] At operation 710, the receiver system receives the counter and the encrypted message from the transmitter system. At operation 720, the receiver identifies the one-time pad that corresponds to the received counter. As described with reference to FIG. 5, the receiver system may have multiple one-time pads stored with associated counters. The receiver system can identify the correct one-time pad by performing a table lookup using the received counter. At operation 730, the system generates the transmitter message by performing an XOR operation on the encrypted message with the one-time pad.

[0050] 8, there is shown a high-level block diagram of an exemplary computer system 801 that may be used (e.g., using one or more processor circuits of a computer or computer processor) in implementing one or more of the methods, tools, and modules described herein, and any associated functionality, in accordance with embodiments of the present disclosure. In some embodiments, the major components of computer system 801 include one or more CPUs 802, a memory subsystem 804, a terminal interface 812, a storage interface 816, an I / O (input / output) device interface 814, and a network interface 818, all of which may be communicatively coupled directly or indirectly for communication between components via a memory bus 803, an I / O bus 808, and an I / O bus interface unit 810.

[0051] Computer system 801 may include one or more general-purpose programmable central processing units (CPUs) 802A, 802B, 802C, and 802D (generically referred to herein as CPUs 802). In some embodiments, computer system 801 may include multiple processors typical of larger systems, while in other embodiments computer system 801 may instead be a single CPU system. Each CPU 802 may execute instructions stored in memory subsystem 804 and may include one or more levels of on-board cache.

[0052] The system memory 804 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 822 or cache memory 824. The computer system 801 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, the storage system 826 may be provided for reading from and writing to a non-removable, non-volatile magnetic medium, such as a “hard drive.” Although not shown, a magnetic disk drive may be provided for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), or an optical disk drive may be provided for reading from and writing to a removable, non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical medium. Additionally, the memory 804 may include flash memory, such as a flash memory stick drive or flash drive. Memory devices may be connected to the memory bus 803 by one or more data medium interfaces. The memory 804 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of various embodiments.

[0053] One or more programs / utilities 828, each having at least one set of program modules 830, may be stored in memory 804. The programs / utilities 828 may include a hypervisor (also called a virtual machine monitor), one or more operating systems, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include implementation of a network environment. The program modules 830 generally perform the functions or methodologies of the various embodiments.

[0054] 8 as a single bus structure providing a direct communication path between CPU 802, memory subsystem 804, and I / O bus interface 810, memory bus 803 may, in some embodiments, include multiple different buses or communication paths, which may be arranged in any of a variety of forms, such as point-to-point links in a hierarchical, star, or web configuration, multiple hierarchical buses, parallel and redundant paths, or any other suitable type of configuration. Additionally, while I / O bus interface 810 and I / O bus 808 are shown as single respective units, computer system 801 may, in some embodiments, include multiple I / O bus interface units 810, multiple I / O buses 808, or both. Additionally, although multiple I / O interface units are shown, this separates I / O bus 808 from the various communication paths running to the various I / O devices, in other embodiments some or all of the I / O devices may be directly connected to one or more system I / O buses.

[0055] In some embodiments, computer system 801 may be a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface but receives requests from other computer systems (clients). Further, in some embodiments, computer system 801 may be implemented as a desktop computer, a portable computer, a laptop or notebook computer, a tablet computer, a pocket computer, a telephone, a smartphone, a network switch or router, or any other suitable type of electronic device.

[0056] It should be noted that Figure 8 is intended to depict representative major components of an exemplary computer system 801. However, in some embodiments, individual components may have greater or less complexity than depicted in Figure 8, components other than or in addition to those shown in Figure 8 may be present, and the number, type, and configuration of such components may vary.

[0057] In addition to the above-described embodiments, other embodiments having fewer, more, or different operational steps are contemplated. Also, some embodiments may perform some or all of the above operational steps in a different order. The modules are listed and described illustratively according to the embodiments and are not meant to indicate the necessity of any particular module or the exclusivity of other potential modules (or the functions / purposes applied to any particular module).

[0058] In the foregoing, reference is made to various embodiments. However, it should be understood that the present disclosure is not limited to the specifically described embodiments. Instead, any combination of the described features and elements, whether associated with different embodiments or not, is contemplated for implementing and practicing the present disclosure. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. Moreover, while embodiments of the present disclosure may achieve advantages over other possible solutions or over the prior art, whether or not a particular advantage is achieved by a given embodiment does not limit the present disclosure. Accordingly, the described aspects, features, embodiments, and advantages are merely exemplary and should not be considered elements or limitations of the appended claims unless expressly recited in the claims.

[0059] The present invention may be a system, a method, or a computer program product, or a combination thereof. The computer program product may include a computer-readable storage medium having stored thereon computer-readable program instructions for causing a processor to carry out aspects of the present invention.

[0060] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device. The computer-readable storage medium may be, by way of example only, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or a suitable combination thereof. More specific examples of computer-readable storage media include portable computer diskettes, hard disks, RAM, ROM, EPROM (or flash memory), SRAM, CD-ROMs, DVDs, memory sticks, floppy disks, mechanically encoded devices having instructions recorded thereon, such as punch cards or ridge-in-groove structures, and suitable combinations thereof. As used herein, a computer-readable storage medium should not be construed as a transitory signal per se, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or an electrical signal transmitted over a wire.

[0061] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof). The network may be comprised of copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface of each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage on a computer-readable storage medium within the respective computing / processing device.

[0062] The computer-readable program instructions for carrying out the operations of the present invention may be either source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java, Smalltalk, C++, etc., and procedural programming languages ​​such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, as a standalone software package, or partially on the user's computer. Alternatively, the computer may be executed partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the computer-readable program instructions in order to carry out aspects of the present invention.

[0063] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0064] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to create a machine, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions can also be stored in a computer-readable storage medium connectable to a computer, programmable data processing apparatus, or other device, or combination thereof, that functions in a particular way, such that the computer-readable storage medium on which the instructions are stored configures one of the products containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0065] Computer-readable program instructions, such as instructions to perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams on a computer, other programmable apparatus, or other device, can also be loaded into a computer, other programmable data processing apparatus, or other device to perform a series of operational steps on the computer, other programmable apparatus, or other device to generate a computer-implemented process.

[0066] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of executable implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, which constitute one or more executable instructions for implementing the specified logical function(s). In some alternative embodiments, the functions shown in the blocks may occur out of the order shown in the figures. For example, two blocks shown in succession may actually be accomplished as a single step, executed concurrently, substantially concurrently, partially, or fully in a time-overlapping manner, or the blocks may be executed in the reverse order depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a special-purpose hardware-based system that performs the specified functions or operations or executes a combination of special-purpose hardware and computer instructions.

[0067] While the foregoing is directed to exemplary embodiments, other and further embodiments of the present invention may be devised without departing from its basic scope, which is determined by the claims that follow. The description of various embodiments of the present disclosure has been presented for illustrative purposes and is not intended to be exhaustive or limiting of the disclosed embodiments. It will be apparent to those skilled in the art that many modifications and variations are possible without departing from the scope and spirit of the described embodiments. The terms used herein have been selected to best explain the principles of the embodiments, practical applications or technical improvements to technology found in the market, or to enable those skilled in the art to understand the embodiments described herein.

[0068] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of various embodiments. As used herein, the singular forms "a," "an," and "the" are intended to include the plural unless the context clearly dictates otherwise. "Set of," "group of," "bunch of," etc. are intended to include one or more. It will be further understood that as used herein, the terms "includes" and / or "inducing" specify the presence of stated features, integers, steps, operations, elements, or components, or combinations thereof, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof, or combinations thereof. In the foregoing detailed description of exemplary embodiments of various embodiments, reference has been made to the accompanying drawings, which form a part hereof, and in which like numerals represent like elements, and in which are shown, by way of illustration, specific exemplary embodiments in which various embodiments may be practiced. Although these embodiments have been described in sufficient detail to enable those skilled in the art to practice the embodiments, other embodiments may be used, and logical, mechanical, electrical, and other changes may be made without departing from the scope of the various embodiments. In the foregoing description, numerous specific details are set forth to provide a thorough understanding of the various embodiments. However, the various embodiments may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques have not been shown in detail so as not to obscure the embodiments.

Claims

1. 1. A method for secure communication, said method comprising: communicating the private key to a receiver system; generating a plurality of one-time pads by encrypting a counter with the secret key, each one-time pad corresponding to a different value of the counter; providing a message after generating the plurality of one-time pads; generating an encrypted message by XORing the message with a one-time pad from the plurality of one-time pads; transmitting the encrypted message and the counter value corresponding to the one-time pad to the receiver system; A method comprising:

2. communicating the private key to the receiver system encrypting the private key with a public key to generate an encrypted private key; transmitting the encrypted private key to the receiver system; The method of claim 1 , comprising:

3. receiving an encrypted acknowledgment from the receiver system in response to transmitting the encrypted private key to the receiver system; decrypting the encrypted acknowledgment using the private key; verifying the acknowledgment; and The method of claim 2 further comprising:

4. Generating the plurality of one-time pads comprises: generating a first one-time pad using a first value of the counter; incrementing the counter to a second value; generating a second one-time pad using the second value of the counter; Including, The method comprises: providing a second message after generating the plurality of one-time pads; generating a second encrypted message by XORing the second message with the second one-time pad; transmitting the second encrypted message and the second value of the counter to the receiver system; The method of claim 1 further comprising:

5. The method of claim 1, wherein generating the multiple one-time pads includes encrypting a combination of a nonce and the counter with the private key.

6. 1. A method for secure communication, said method comprising: receiving a private key from a transmitter system; generating a plurality of one-time pads by encrypting a counter with the secret key, each one-time pad corresponding to a different value of the counter; receiving an encrypted message and a value of the counter from the transmitter system after generating the plurality of one-time pads; decrypting the encrypted message by XORing the encrypted message with a one-time pad from the plurality of one-time pads, the one-time pad corresponding to the received value of the counter; A method comprising:

7. Generating the plurality of one-time pads comprises: generating a first one-time pad using a first value of the counter; incrementing the counter to a second value; generating a second one-time pad using the second value of the counter; Including, The method comprises: storing the first one-time pad with the first value of the counter and the second one-time pad with the second value of the counter; identifying the first one-time pad in response to receiving the first value of the counter from the transmitter system along with the encrypted message; further comprising 7. The method of claim 6, wherein performing the XOR operation on the encrypted message with the one-time pad comprises performing the XOR operation on the encrypted message with the first one-time pad in response to identifying the first one-time pad.

8. Receiving the private key from the transmitter system receiving an encrypted private key from the transmitter system, the encrypted private key being encrypted using a public key; decrypting the encrypted private key using a private key corresponding to the public key; The method of claim 6, comprising:

9. in response to receiving the private key, encrypting an acknowledgment using the private key; transmitting the encrypted acknowledgment to the transmitter system; The method of claim 8 further comprising:

10. The method of claim 6, wherein generating the multiple one-time pads includes encrypting a combination of a nonce and the counter with the private key.

11. 1. A computer program for secure communications, the computer program being operable to cause a processor to perform operations, the operations comprising: communicating the private key to a receiver system; generating a plurality of one-time pads by encrypting a counter with the secret key, each one-time pad corresponding to a different value of the counter; providing a message after generating the plurality of one-time pads; generating an encrypted message by XORing the message with a one-time pad from the plurality of one-time pads; transmitting the encrypted message and the counter value corresponding to the one-time pad to the receiver system; a computer program comprising:

12. communicating the private key to the receiver system encrypting the private key with a public key to generate an encrypted private key; transmitting the encrypted private key to the receiver system; 12. The computer program of claim 11, comprising:

13. The operation is receiving an encrypted acknowledgment from the receiver system in response to transmitting the encrypted private key to the receiver system; decrypting the encrypted acknowledgment using the private key; verifying the acknowledgment; and The computer program of claim 12, further comprising:

14. The step of generating the plurality of one-time pads comprises: generating a first one-time pad using a first value of the counter; incrementing the counter to a second value; generating a second one-time pad using the second value of the counter; Including, The operation is providing a second message after generating the plurality of one-time pads; generating a second encrypted message by XORing the second message with the second one-time pad; transmitting the second encrypted message and the second value of the counter to the receiver system; The computer program of claim 11 , further comprising:

15. The computer program of claim 11, wherein generating the multiple one-time pads includes encrypting a combination of a nonce and the counter with the private key.

16. The operation is receiving a second private key from the transmitter system; generating a second plurality of one-time pads using the second secret key and a second counter, each of the second plurality of one-time pads corresponding to a different value of the second counter; receiving a second encrypted message from the transmitter system; decrypting the second encrypted message by XORing the second encrypted message with a one-time pad from the second plurality of one-time pads; The computer program of claim 11 , further comprising:

17. The generating of the second plurality of one-time pads comprises: generating a first one-time pad using a first value of the second counter; incrementing the second counter to a second value; generating a second one-time pad using the second value of the second counter; Including, The operation is storing the first one-time pad with the first value of the second counter and the second one-time pad with the second value of the second counter; identifying the second one-time pad in response to receiving the second value of the second counter from the transmitter system along with the second encrypted message; further comprising 17. The computer program product of claim 16, wherein performing the XOR operation on the second encrypted message with the one-time pad comprises performing the XOR operation on the encrypted message with the second one-time pad in response to identifying the second one-time pad.

18. Receiving the second private key from the transmitter system comprises: receiving an encrypted private key from the transmitter system, the encrypted private key being encrypted using a public key; decrypting the encrypted private key using a private key corresponding to the public key; 17. The computer program of claim 16, comprising:

19. The operation is in response to receiving the second private key, encrypting an acknowledgment response with the second private key; transmitting the encrypted acknowledgment to the transmitter system; 20. The computer program of claim 18, further comprising:

20. The computer program of claim 16, wherein generating the second plurality of one-time pads includes encrypting a combination of a nonce and the second counter with the second private key.

Citation Information

Patent Citations

  • Communication system, key distribution apparatus, encryption processor, and antitheft device

    JP2005341528A

  • Decryption device, encryption device, decryption method, encryption method, and communication system

    JP2011120051A

  • Data carrier for the secure transmission of information and method thereof

    US20030112972A1

  • Decrypting apparatus, encrypting apparatus, decrypting method, encrypting method, and communication system

    US20120201383A1