Abstract:
A cryptographic system includes an online computer, an offline computer and custom hardware and software by which the two computers can securely communicate to facilitate the creation, secure use, and maintenance of private cryptographic keys. The system securely stores private cryptographic keys while still enabling the keys to be quickly and easily accessed as needed in a variety of applications including, but not limited to, electronic financial transactions, cryptographic transaction processing, medical record access, email encryption, or any other cryptographic authentication process.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
       [0001]    This application claims priority from U.S. Provisional Patent Application No. 62/106,392 filed on Jan. 22, 2015 entitled METHOD AND SYSTEM FOR SECURELY STORING AND USING PRIVATE CRYPTOGRAPHIC KEYS, which is hereby incorporated by reference. 
     
    
     BACKGROUND 
       [0002]    The present application generally relates to computer systems and, more particularly, to methods and systems for creating, securing, using, and maintaining private keys in cryptographic systems. 
         [0003]    Cryptographic systems are known to use dedicated offline computers for storing private cryptographic keys. Communication between online and offline computers, which is necessary in order to make use of private keys when interacting with internet facing applications, is often performed over USB drives that are manually connected and disconnected, and perform data transfer by simple read and write operations. This process is far too slow for use by more than a single occasional user. In addition, the use of commercial USB flash drives offers significant attack surfaces to those trying to compromise the offline computer. 
       BRIEF SUMMARY OF THE DISCLOSURE 
       [0004]    A cryptographic system in accordance with one or more embodiments includes an online (i.e., internet (or other network) connected) computer, an offline (i.e., internet (or other network) disconnected) computer, and custom hardware and software by which the two computers can securely communicate to facilitate the creation, secure use, and maintenance of private cryptographic keys. 
         [0005]    This system securely stores private cryptographic keys while still enabling the keys to be quickly and easily accessed as needed in a variety of applications including, but not limited to, electronic financial transactions, cryptographic transaction processing, medical record access, email encryption, or any other cryptographic authentication process. 
         [0006]    In accordance with one or more embodiments, the system automates and secures the interaction between online and offline computers. Dedicated, fully authenticated, purpose built communication devices are used to perform these communications without the use of potentially compromised communications standards and hardware. 
         [0007]    In accordance with one or more embodiments, a novel combination of hardware and software is used that enforces legitimate, allowable, and valid communication between digital devices through strict enforcement of permitted protocols, data length, response time, and allows only expected data changes throughout the transmission path. 
         [0008]    In accordance with one or more embodiments, an electrical to optical signal shift is implemented in order to prevent unobserved remote interrogation of electromagnetic emissions. 
         [0009]    In accordance with one or more embodiments, optical communications are performed using a dynamic polarization controller to achieve a desired polarization state that acts as a unique fingerprint on the optical signal. 
         [0010]    In accordance with one or more embodiments, the optical communications channel is inherently unable to be non-destructively interrogated (either remotely or through contact), providing de facto detection of MITM (Man In The Middle) attacks. 
         [0011]    In accordance with one or more embodiments, electronic communications are marked with hardware specific identifiers and timestamps at each step in the process, implementing a validation factor that the device sending data is the one expected to send data. 
         [0012]    In accordance with one or more embodiments, the timing of operations and communications is very tightly constrained, documented, monitored, and validated providing inherent detection of MITM attacks. 
         [0013]    In accordance with one or more embodiments, application security is enforced by only permitting a finite and small set of communication operations and verifying the type of operation thoroughly at each step. 
         [0014]    In accordance with one or more embodiments, a trivially small electronic transaction whitelist containing all valid operations is used to perform a go/no-go prior to either device parsing the associated request and response data. 
         [0015]    In accordance with one or more embodiments, both the online computer and offline computer are housed within nested, physically hardened vaults embedded with a layer of Mu-metal or other electromagnetic shielding material, providing physical, acoustic, optical, and electromagnetic isolation from the outside world and each other. 
         [0016]    In accordance with one or more embodiments, the system provides a generic validation failure response to a message deemed invalid at any step in the communication cycle, which flushes buffered data from the communication channel and resets the communication. No specific error messages or information detailing the state of the communication failure or record of the invalid data is stored by either computer, minimizing or reducing the risk of information leakage due to improper error handling techniques. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0017]      FIGS. 1A-1E  (collectively  FIG. 1 ) illustrate an exemplary cryptographic system in accordance with one or more embodiments. 
           [0018]      FIG. 2  schematically illustrates the  FIG. 1  cryptographic system. 
           [0019]      FIG. 3  functionally illustrates communications between the online and offline computers in the cryptographic system in accordance with one or more embodiments. 
           [0020]      FIG. 4  functionally illustrates exemplary hardware for communications between the online and offline computers in the cryptographic system in accordance with one or more embodiments. 
           [0021]      FIGS. 5A and 5B  (collectively  FIG. 5 ) illustrate an exemplary Faraday cage wall design of the cryptographic system in accordance with one or more embodiments. 
           [0022]      FIG. 6  is a flow diagram illustrating an exemplary operation of the cryptographic system in accordance with one or more embodiments. 
       
    
    
     DETAILED DESCRIPTION 
       [0023]      FIGS. 1 and 2  illustrate an exemplary cryptographic system  100  in accordance with one or more embodiments.  FIG. 1  illustrates the nested Faraday vaults in the system.  FIG. 1A  shows the closed outer Faraday vault  102  of the system.  FIG. 1B  shows the outer vault  102  opened and the inner vault  104  therein. In  FIG. 1C , the outer vault  102  is shown wire-framed to reveal an online computer  106  and the inner vault  104 .  FIG. 1D  is an enlarged view of the inner vault  104 .  FIG. 1E  shows the inner vault  104  opened to reveal the offline computer  108 . 
         [0024]      FIG. 2  schematically illustrates the cryptographic system. The online computer  106 , which is located in the outer vault  102 , has a connection to outside networks  110  and communicates across dedicated hardware (also referred to herein as the online device and the offline device)  112 ,  114  with the offline computer  108 . The offline computer  108 , which is located within the inner vault  104 , communicates only across dedicated hardware  112 ,  114  with the online computer  106 . 
         [0025]    The online and offline computers  106 ,  108  can comprise a variety of computer devices including personal computers (e.g., desktop, notebook, and tablet computers). Each computer includes at least one computer processor, a storage medium readable by the processor for storing applications and data, and input/output devices such as, e.g., a keyboard and a display. 
         [0026]    The online and offline computers  106 ,  108  run custom real time operating systems executing tightly time controlled software processes. 
         [0027]      FIG. 3  is a high level schematic diagram illustrating the dedicated hardware  112 ,  114  across which the online and offline computers  106 ,  108  communicate with each other.  FIG. 4  provides a more detailed functional overview of the dedicated hardware  112 ,  114 . Each of the two shaded rectangles represents a custom piece of hardware  112 ,  114  containing a high grade embedded system integrated with dual serial-optical converters. 
         [0028]      FIG. 5  illustrates details of an exemplary Faraday cage wall design for the inner and outer vaults  102 ,  104 . The cage wall includes a concrete wall robustly reinforced with stainless rebar (to minimize magnetic resonance), lined with rubber isolated layers of copper sheet and Mu-metal to eliminate electromagnetic leakage. The dimensions shown in the figure are by way of example only, and can be varied. 
         [0029]    During operation of the cryptographic system, the online computer  106  receives or originates electronic transaction requests or other cryptographic operation requiring private keys. The offline computer  108  generates new public/private key pairs, outputs public keys to the Online computer  106  and stores the corresponding private keys. The offline computer  108  is able to use the private keys it stores to sign electronic transaction requests or other cryptographic operation requests from the Online computer  106 . 
         [0030]      FIG. 6  is a flow diagram illustrating exemplary operation of the cryptographic system. 
         [0031]    I. Once the online computer  106  initiates a signing, key creation or other cryptographic operation request, these requests are passed across a combination of dedicated hardware serial and, in parallel, custom communications across generic digital I/O pins to serve as verification of communications into a device  112 , which verifies the validity of the incoming request based on length, timing, and a unique identifier. 
         [0032]    II. A One Time Machine Authentication Code (OTM) is generated for each request by computation of an XOR operation on the unique device ID expressed in binary together with a one-time randomly generated number, commonly known in the field of application security as a Nonce. 
         [0033]    III. Assuming the request communication is verified successfully, the device  112  then appends several unique parameters including the OTM, converts the communications data to light and passes it through the wall of the inner vault  104  to a similar device  114 . 
         [0034]    IV. The OTM is used to uniquely identify a specific request and will be included in the corresponding response in order to provide a one to one mapping of request to response pairs. 
         [0035]    V. This device  114  converts the incoming data stream from light back to electronic serial data and verifies the validity of the incoming request based on length, timing, and a number of parameters unique to a specific combination of online computer  106  and upstream communications device  112 . 
         [0036]    VI. Assuming the communication is verified successfully, the device  114  then appends a unique identifier, makes note of the electronic transaction and passes the data along to the offline computer  108  via a combination of electronic serial and single ended bit-banged electronic communications. 
         [0037]    VII. The offline computer  108  receives the request and performs complementary validation. Assuming the communication is successfully validated, the offline computer  108  performs the requested operation, in a preset amount of time and passes out the result of the operation via a combination of electronic serial and single ended bit-banged electronic communications to its communications device  114 . 
         [0038]    VIII. This device  114  only accepts incoming data that it is expecting based on issued requests it has white listed. The responses to these requests must arrive in order, properly formatted and on time. 
         [0039]    IX. Assuming these conditions are met the device  114  verifies the validity of the request based on length, timing, and a number of parameters unique to a specific combination of offline computer  108  and upstream communications devices all the way back to and including the originating online computer  106 . 
         [0040]    X. Assuming the communication is verified successfully, the device  114  then appends several unique parameters, makes note of the electronic transaction, converts the communications data to light and passes it through the wall of the inner vault  104  to the device  112  in the outer vault  102 . The device  112  only accepts incoming data that it is expecting based on issued requests it has white listed. The responses to these requests must arrive in order, properly formatted and on time. 
         [0041]    XI. Assuming these conditions are met the device  112  converts the incoming data stream from light back to electronic serial data and verifies the response data based on expected length, timing, and a number of parameters unique to a specific combination of upstream communications devices including both the offline computer  108  and online computer  106  in the communications chain. 
         [0042]    XII. Assuming the communication is verified successfully, the device  112  makes note of the operation and passes the signed electronic transaction or other result of along to the online computer  106  via a combination of dedicated hardware serial and, in parallel, custom communications across generic digital I/O pins to serve as verification of communications. 
         [0043]    XIII. The online computer  106  receives the response communication and performs complementary validation. Assuming all validation conditions are upheld throughout the communication cycle, the online computer  106  processes the data contained in the response. 
         [0044]    The processes of the cryptographic system described above may be implemented in software, hardware, firmware, or any combination thereof. The processes can be implemented in one or more computer programs executing on a programmable computer including a processor, a storage medium readable by the processor (including, e.g., volatile and non-volatile memory and/or storage elements), and input and output devices. Each computer program can be a set of instructions (program code) in a code module 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 (e.g., in a hard disk drive, or in a removable memory such as an optical disk, external hard drive, memory card, or flash drive) or stored on another computer system and downloaded via the Internet or other network. 
         [0045]    Having thus described several illustrative embodiments, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to form a part of this disclosure, and are intended to be within the spirit and scope of this disclosure. While some examples presented herein involve specific combinations of functions or structural elements, it should be understood that those functions and elements may be combined in other ways according to the present disclosure to accomplish the same or different objectives. In particular, acts, elements, and features discussed in connection with one embodiment are not intended to be excluded from similar or other roles in other embodiments. Additionally, elements and components described herein may be further divided into additional components or joined together to form fewer components for performing the same functions. 
         [0046]    Accordingly, the foregoing description and attached drawings are by way of example only, and are not intended to be limiting.