Key management provides the foundation for the secure generation, storage, distribution, and translation of cryptographic keys. Key management may include the practice of split knowledge and dual control. Split knowledge is a condition under which each individual has only partial knowledge of an entire secret. In cryptology, split knowledge may be implemented by two or more parties such that each party has a key component which, individually, conveys no knowledge of the resultant cryptographic key. A key component may be a string of characters. The resultant key may exist only within a secure computer apparatus, which may perform bitwise operations (e.g., exclusive or “XOR”) on said key components to generate the final key. Dual control is a process of utilizing two or more separate entities (usually administrators), operating in concert, to authorize sensitive functions or to access information. It is the policy of many institutions, such as retail banks, to require manual entry of the initial components or strings into a computer with suitable key generation software therein.
Cryptographic keys and the components thereof were once 56 bits in length. The advent of increasing processor speeds made 56 bit keys vulnerable to “brute force” attacks, which involve a systematic attempt of every possible key until the correct key is found. Processors are now capable of attempting every 56 bit key permutation in less than one day. The resources required for a brute force attack grow exponentially with increasing key size. Accordingly, cryptographic keys and their associated components are now 128 to 256 bits in length. An attempt of every possible 256 bit key is unfeasible due to the vast number of permutations.
As noted above, the dual control policy of many institutions require manual entry of the initial components or strings into a computer. However, the shift toward 128-256 bit keys makes manual entry of such strings cumbersome, time consuming, and prone to errors. Generating a key from an XOR of two components requires each component to have the same length as the final key. Requiring the components to have the same length as a 128-256 bit key is inconvenient and may require expensive upgrades to existing systems and procedures. Administrators are expected to enter these long strings of characters correctly into a keyboard. Furthermore, the initial components may be leaked by unscrupulous administrators conspiring with third parties to reverse engineer the key from the initial strings.
In view of the foregoing concerns, various examples disclosed herein provide an apparatus and method that facilitates manual key management while enhancing the security thereof. In one aspect, multiple strings may be accessed. Each string may have a bit length shorter than that of a cryptographic key. This allows each administrator to enter a shorter string or component. In a further aspect, the multiple strings may be sorted in an order and concatenated in the order in which they were sorted to generate the cryptographic key. This allows users to reproduce the key from the components without recording the order in which they were entered. The key may be reproduced by entering the components in any order. The security is only limited by the bit-size of the final derived key. If any component is obtained by an attacker, the security of the unexposed components may still be preserved. The aspects, features and advantages of the application will be further appreciated when considered with reference to the following description of examples and accompanying figures. The following description does not limit the application; rather, the scope of the application is defined by the appended claims and equivalents.
The computer apparatus 100 may also contain a processor 110 and memory 112. Memory 112 may store key management instructions 114 that may be retrieved and executed by processor 110. In one example, memory 112 may be a random access memory (“RAM”) device. In a further example, memory 112 may be divided into multiple memory segments organized as dual in-line memory modules (DIMMs). Alternatively, memory 112 may comprise other types of devices, such as memory provided on floppy disk drives, tapes, and hard disk drives, or other storage devices that may be coupled to computer apparatus 100 directly or indirectly. The memory may also include any combination of one or more of the foregoing and/or other devices as well. The processor 110 may be any number of well known processors, such as processors from Intel® Corporation. In another example, the processor may be a dedicated controller for executing operations, such as an application specific integrated circuit (“ASIC”). Although all the components of computer apparatus 100 are functionally illustrated in
The key generation techniques disclosed herein may be implemented in key management instructions 114 residing in memory 112. Key management instructions 114 may comprise any set of machine readable instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor(s). In that regard, the terms “instructions,” “modules” and “programs” may be used interchangeably herein. The instructions may be stored in any computer language or format, such as in object code or modules of source code. Furthermore, it is understood that the instructions may be implemented in the form of hardware, software, or a combination of hardware and software and that the examples herein are merely illustrative. Illustrative functions, methods and routines of key management instructions 114 (e.g., sort module 116, concatenation module 118, and key derivation function 120) are explained in more detail below.
In one example, key management instructions 114 may be realized in any non-transitory computer-readable media for use by or in connection with an instruction execution system such as computer apparatus 100, an ASIC, or other system that can fetch or obtain the logic from non-transitory computer-readable media and execute the instructions contained therein. “Non-transitory computer-readable media” can be any media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. Non-transitory computer readable media may comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable non-transitory computer-readable media include, but are not limited to, a portable magnetic computer diskette such as floppy diskettes or hard drives, a read-only memory (“ROM”), an erasable programmable read-only memory, or a portable compact disc.
One working example of the apparatus and method is shown in
As shown in block 202 of
As noted above, the strings may be transmitted to computer apparatus 100 over network 314. Network 314 may be a local area network (“LAN”), wide area network (“WAN”), the Internet, etc. Network 314 and intervening nodes may also use various protocols including virtual private networks, local Ethernet networks, private networks using communication protocols proprietary to one or more companies, cellular and wireless networks, HTTP, and various combinations of the foregoing. Although only a few computers are depicted in
Referring back to
Referring now to
The string generated by concatenation module 118 may be deemed the final cryptographic key (e.g., cryptographic key 402). However, in a further example, cryptographic key 402 may be forwarded to an additional module to further enhance the security thereof. Key derivation function (“KDF”) 120, shown in
Advantageously, the above-described apparatus and method facilitates maintenance of cryptographic keys while protecting against brute force attacks and potential leaks by unscrupulous administrators. In this regard, entity managers can be certain that the system is secure from reverse engineering. Furthermore, the burden placed on administrators, who enter components manually, may be alleviated, while the security benefits of a longer key are preserved.
Although the disclosure herein has been described with reference to particular examples, it is to be understood that these examples are merely illustrative of the principles of the disclosure. It is therefore to be understood that numerous modifications may be made to the examples and that other arrangements may be devised without departing from the spirit and scope of the application as defined by the appended claims. Furthermore, while particular processes are shown in a specific order in the appended drawings, such processes are not limited to any particular order unless such order is expressly set forth herein. Rather, processes may be performed in a different order or concurrently, and steps may be added or omitted.