WO2023030316A1 - 密钥生成和分发方法、密钥生成装置、密钥管理系统 - Google Patents

密钥生成和分发方法、密钥生成装置、密钥管理系统 Download PDF

Info

Publication number
WO2023030316A1
WO2023030316A1 PCT/CN2022/115838 CN2022115838W WO2023030316A1 WO 2023030316 A1 WO2023030316 A1 WO 2023030316A1 CN 2022115838 W CN2022115838 W CN 2022115838W WO 2023030316 A1 WO2023030316 A1 WO 2023030316A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
information
ciphertext
generate
user
Prior art date
Application number
PCT/CN2022/115838
Other languages
English (en)
French (fr)
Inventor
蔡利锋
蔡嘉禾
王艳
Original Assignee
蔡利锋
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 蔡利锋 filed Critical 蔡利锋
Publication of WO2023030316A1 publication Critical patent/WO2023030316A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Definitions

  • the present invention relates to the field of information security, more specifically, the present invention relates to a key generation and distribution method, a key generation device, a key management system, an encryption and decryption device, a file security system and an information security transfer system.
  • the shared key can be designed as a dynamic key, and the key information that needs to be updated will be passed along with the communication information.
  • the ciphertext is passed to the other party, and the shared key is dynamically updated during the communication process between the two parties to realize practical one-time key encryption, thereby avoiding corresponding attacks.
  • the dynamic key scheme is more suitable for real-time communication, but lacks advantages in information storage and key management.
  • the present invention will solve the problem of generating and safely distributing independent keys with the required key strength that can meet the required number, and build an encryption scheme that can prove safe in informatics theory on this basis, and then construct an information security transfer scheme and information security system.
  • a key generation and distribution method including:
  • the system information at least includes a master key and at least one one-way data conversion algorithm
  • the master key is composed of undisclosed random information
  • the one-way data the conversion algorithm generates output information determined from the input information based on the input information, and it is not feasible to speculate or/and deduce the input information from the output information;
  • the master key relying on the time stamp composed of non-repetitive arbitrary information, by using at least one of the one-way data conversion algorithms, generate an encryption code jointly determined by the time stamp and the information in the master key a key, associating the key with the timestamp information;
  • the time stamp is sent to a paired key generation device, wherein the paired key generation device stores second system information corresponding to the system information.
  • generating a key includes:
  • performing an operation on the timestamp and the master key to generate an intermediate key includes:
  • the intermediate key is generated using a non-degenerate combination of the timestamp and the master key.
  • performing an operation on the timestamp and the master key to generate an intermediate key includes:
  • the second one-way data conversion algorithm Using the timestamp and the master key as input information, generating the intermediate key by a second one-way data conversion algorithm, the second one-way data conversion algorithm being the same as or different from the one-way data conversion algorithm .
  • the one-way data conversion algorithm performs data conversion using input information as control information to generate output information
  • the system information also includes a public database configured to store public data comprising a number of bits substantially greater than the number of bits contained in the master key, and
  • the one-way data conversion algorithm performs data conversion on the public data to generate secondary information using the input information as control information.
  • the data conversion adopts combined modulo operation
  • the public data is configured to be composed of N sequences of the same length, each of which contains the same number of bits, is identified by a number indicating 0 to N-1 with the same number of bits, and is called a seed;
  • the input information is configured as an array composed of M numbers in sequence, and the sequence points to M seeds identified by the numbers;
  • the one-way data conversion algorithm is configured as:
  • the public data is configured as an end-to-end circular sequence of N*M elements, the circular sequence is divided into N units with a length of M, and each of the units uses a 0 Number identification to N-1;
  • the seed is configured to start from one unit and extend across the entire circular sequence in the same direction to form a sequence with a length of N*M, using the starting unit number as the seed number.
  • generating a key includes:
  • time stamp As control information, under the control of the time stamp, generate an intermediate key from the private data through a fourth one-way data conversion algorithm;
  • the one-way data conversion algorithm, the third one-way data conversion algorithm and the fourth one-way data conversion algorithm use the same or different one-way algorithms.
  • the method also includes:
  • the master key relying on the second time stamp, generate a second key jointly determined by the master key and the information in the second time stamp through the one-way data conversion algorithm, as the The second key corresponding to the second timestamp.
  • Premise 1 The master key is always kept safe, and all information output from the system, including keys generated and distributed from the system and information used for key distribution, cannot detect the master key information.
  • Premise 2 The generated keys are independent of each other. According to all the keys output from the system, combined with known public information and methods, there is no substantial help in deriving the next newly generated key.
  • Premise 3 The key distribution is safe and feasible, that is, the key can be safely sent to the legal recipient through the public channel, and the attacker who does not have the master key information cannot obtain the essential information of the key through the key transmission channel.
  • An information security system that satisfies the above three prerequisites can rely on a master key to achieve the required number of independent keys whose key strength can be equivalent to the number of bits of the master key and securely distribute them.
  • Provably secure encryption system
  • the key generation system using the method satisfies the above three prerequisites in operation and application, so that the method can rely on A master key is generated and securely distributed to any desired number of independent keys with a key strength comparable to the number of bits of the master key.
  • Input information can be easily converted into secondary information determined by said input information through a one-way data conversion algorithm, that is, deriving secondary information from input information is definite and feasible;
  • Feature 2 It is computationally impossible to convert the generated secondary information into the corresponding input information, that is, it is impossible to infer any substantial content of the input information based on the secondary information;
  • Feature 3 The conversion from input information to secondary information is a non-degenerate nonlinear transformation, that is, the value space of secondary information is not smaller than that of input information, so that different input information can correspond to different secondary information statistically.
  • raw information, and small changes in the input information can lead to global changes in the secondary information that cannot be predicted only by the amount of change.
  • a single bit change in the input information can cause the generated Unpredictable global changes in secondary information.
  • the one-way data conversion algorithm can perform one-way data conversion on any input information that can be converted into a conforming input format to generate the secondary information. Specifically, in the present invention, if the input information is N bits and the value space is 2 N , any information value between 0 and 2 N -1 can be used as valid input information to implement the one-way data conversion, Generate secondary information.
  • the timestamp and the master key can be operated through a one-way data conversion algorithm to generate the intermediate key; using the timestamp and the information in the master key as input information, The intermediate key is generated by the one-way data conversion algorithm.
  • the encryption system adopting the method of the present invention can effectively resist key collision attacks, and at the same time reduce the impact of the method on the one-way data conversion algorithm requirements, expanding the scope of application of the method.
  • Some one-way data conversion algorithms that can be used in the method of the present invention with the above four characteristics are introduced in the following embodiments, including square root operations, division operations, and some hash functions.
  • the one-way data conversion algorithm uses public data conversion under the control of input information; the system information of the key generation device is further augmented with a public database configured to store non-degenerate public data composed of sex information, the number of bits contained in the public data may be much larger than the number of bits contained in the master key and input information; the one-way data conversion algorithm is configured to convert the Public data is transformed into secondary information.
  • the public data conversion under the control of the input information can take various forms; the plaintext can be used as the public data, the encryption key can be used as the input information, and the input information control can be realized by using a commonly used encryption algorithm.
  • some data conversion methods that are not suitable for conventional encryption algorithms because the data generated by one-way conversion cannot be restored by a suitable algorithm can also be used in the method of the present invention.
  • the public data conversion under the control of the input information adopts a combined modulo operation
  • the public database is configured to be composed of N numbers of the same length, each of which contains the same number of bits, with a 0 The number identification to N-1 is called a seed
  • the input information is configured as an array composed of M numbers in sequence, and the sequence points to M seeds identified by the number
  • the combined modulo operation is configured to start from the sequentially extract M seeds pointed to by the numbers in the input information from the public database, and perform modulo operation on the M seeds to generate secondary information in the same format as the seeds.
  • the above-mentioned combined modulo operation is adopted, and the public database is configured as an end-to-end circular sequence containing N*M elements, and the circular sequence is divided into N units of length M, each Each of the units is identified by a number from 0 to N-1; the seed is configured to start from one of the units and extend in the same direction across the entire circular sequence to form a sequence with a length of N*M.
  • the starting unit number is used as the seed number.
  • the one-way data conversion algorithm uses public data conversion under the control of the above-mentioned input information, and the key can be generated using the following process:
  • an encryption algorithm with 1024-bit or higher key strength which can be proved secure in informatics theory, can be conveniently implemented on common communication equipment, so that unconditionally secure information exchange in the real physical world can be realized through the method .
  • the one-way data conversion algorithm may use more than one one-way algorithm, so that different one-way algorithms are used in different one-way data conversion steps.
  • the key generation device adopting the method is further configured to receive the time stamp sent from the paired key generation device, and according to the information in the time stamp, the key generation device adopts the A single-item data conversion algorithm relies on the master key to generate a key corresponding to the time stamp.
  • a key generation device including:
  • a system information module configured to store or/and generate system information of the key generating device, the system information at least includes a master key and at least one one-way data conversion algorithm, the master key is randomly assigned by an undisclosed Information composition, the one-way data conversion algorithm generates output information determined by the input information according to the input information, and it is not feasible to speculate or/and deduce the input information from the output information;
  • the key generation module is configured to generate a combination of the time stamp and the master key by using at least one of the one-way data conversion algorithms based on the time stamp composed of non-repetitive arbitrary information according to the master key. a key jointly determined by information in the key, associating the key with the timestamp information; and
  • a transmission module configured to send the time stamp to a paired key generation device, wherein the paired key generation device stores second system information corresponding to the system information.
  • the key generation module is further configured to:
  • the key generation module is further configured to:
  • the intermediate key is generated using a non-degenerate combination of the timestamp and the master key.
  • the key generation module is further configured to:
  • the second one-way data conversion algorithm Using the timestamp and the master key as input information, generating the intermediate key by a second one-way data conversion algorithm, the second one-way data conversion algorithm being the same as or different from the one-way data conversion algorithm .
  • the device also includes:
  • the public database is configured to store public data, the number of bits contained in the public data is much greater than the number of bits contained in the master key.
  • system information further includes a public database configured to store public data, the number of bits contained in the public data is much greater than the number of bits contained in the master key,
  • said one-way data conversion algorithm performs data conversion using input information as control information to generate output information
  • the key generation module is further configured as:
  • data conversion is performed on the public data by the one-way data conversion algorithm to generate secondary information.
  • the data conversion adopts combined modulo operation
  • the public data is configured to be composed of N sequences of the same length, each of which contains the same number of bits, is identified by a number indicating 0 to N-1 with the same number of bits, and is called a seed;
  • the input information is configured as an array composed of M numbers in sequence, and the sequence points to M seeds identified by the numbers;
  • the one-way data conversion algorithm is configured as:
  • the public data is configured as an end-to-end circular sequence of N*M elements, the circular sequence is divided into N units with a length of M, and each of the units uses a 0 Number identification to N-1;
  • the seed is configured to start from one unit and extend across the entire circular sequence in the same direction to form a sequence with a length of N*M, using the starting unit number as the seed number.
  • the key generation module is further configured to:
  • time stamp as control information, under the control of the time stamp, generate an intermediate key from the private data through a third one-way data conversion algorithm;
  • the key is associated with a corresponding timestamp.
  • the one-way data conversion algorithm, the second one-way data conversion algorithm and the third one-way data conversion algorithm use the same or different one-way algorithms.
  • the transmission unit is further configured to receive a second timestamp sent from the paired key generation device
  • the key generation unit is further configured to use the master key and the second time stamp as input information to generate a key through the one-way data conversion algorithm, the key and the second time stamp information Associated.
  • a key management system comprising:
  • Management terminal equipment described management terminal equipment comprises:
  • Control module configured to generate any information identifying its identity for each of the multiple users as the user identification code of the user;
  • a user information module configured to store the user identification code
  • the key generation module including the key generation device described in the previous embodiment and storing the master key, is configured to generate a corresponding user key for each of a plurality of users, and use the user identification code and the corresponding key The key is delivered to the corresponding user terminal equipment as the user key of the user.
  • the key generation module responds to the user identification code sent from the user information module, uses the user identification code as a time stamp, generates a key corresponding to the user identification code, and stores the The user identification code and the corresponding key are delivered to the corresponding user terminal equipment as the user key of the user.
  • control module is further configured to:
  • control module receives the corresponding user identification code from the user end device,
  • the user information module is further configured to check the received user identification code to confirm that the user identification code is a stored user identification code
  • the key generating module uses the user identification code as a time stamp, generates a user key corresponding to the user identification code, and feeds back the user key to the user terminal device.
  • the key generation module is further configured to:
  • the system also includes:
  • One or more intermediate management nodes of different levels are set between the management terminal device and the user terminal device.
  • the system also includes:
  • One or more client devices the client devices storing user identification codes corresponding to users.
  • an encryption and decryption device including:
  • the key generating device as described in the previous embodiment is configured to generate a one-time key
  • Input port configured to read or input data to be encrypted
  • a formatting unit configured to convert the data to be encrypted input by the input port into formatted plaintext matching the format of the one-time key
  • the encryption module is configured to generate a time stamp when encrypting, and according to the information in the time stamp, use the one-time key generated by the key generation module and the formatted plaintext to generate a master ciphertext, and convert the one-time The timestamp corresponding to the unique key is used as the ciphertext title, and the main ciphertext and the ciphertext title are combined to generate the ciphertext;
  • the sending port is configured to send the generated ciphertext to the paired decryption device.
  • the encryption and decryption device further includes:
  • a receiving port configured to receive ciphertext sent from a paired encryption device
  • the decryption module is configured to analyze the received ciphertext to extract the main ciphertext and the time stamp in the ciphertext header, and use the key generation module to generate a key corresponding to the time stamp according to the information in the time stamp Using the unique key as a decryption key, decrypting the main ciphertext with the decryption key to generate the decrypted plaintext;
  • the formatting unit is further configured to convert the decrypted plaintext into restored data
  • an output port configured to output the restoration data.
  • a file management system including a management terminal device and one or more user terminal devices,
  • the management terminal equipment includes:
  • the key management module adopts the key management system as described in the previous embodiment, configured to store the system master key, and generate and distribute the user master key for each user of the system;
  • the system encryption and decryption module adopts the encryption and decryption device as described in the previous embodiment, and is configured to encrypt and decrypt the file information exchanged between the client device and the management device;
  • a system file module configured to store system files of the file management system
  • the client equipment includes:
  • the user encryption and decryption module adopts the encryption and decryption device as described in the previous embodiment, and is configured to encrypt and decrypt the file information exchanged between the client device and the management device.
  • the management terminal device generates and stores the user identification code of each user of the user terminal device through the key management module, generates a user master key corresponding to the user identification code, and The user master key and the corresponding user identification code are distributed to each client device;
  • the user end device generates a time stamp through the user encryption and decryption module, generates a one-time key corresponding to the time stamp by relying on the user master key, and encrypts file information with the one-time key to generate a master ciphertext, Using the timestamp and the user identification code of the user as a ciphertext title, merging the main ciphertext and the ciphertext title to generate a ciphertext, and sending the ciphertext to the management terminal device through a public channel, As the document proof submitted by the user to the management terminal device;
  • the management terminal equipment receives the ciphertext sent from the client, analyzes the ciphertext through the system encryption and decryption module, and extracts the main ciphertext and the user identification code and time stamp in the ciphertext title; the key The management module generates a corresponding user master key according to the user identification code; the system encryption and decryption module generates a corresponding decryption key by relying on the user master key according to the information in the time stamp, and decrypts the master ciphertext, Confirm file information;
  • the management terminal device stores the ciphertext for confirming file information into the system file module.
  • the management terminal device is further configured to use the key management module to generate a user master key of the target user as the master key of the system encryption and decryption module, and encrypt the key through the system encryption and decryption module
  • the file information generates ciphertext and sends it to the target client device through the public channel;
  • the target user end device is further configured to receive the ciphertext sent from the management end device through the user encryption and decryption module, decrypt the ciphertext, and restore file information.
  • the system also includes:
  • One or more intermediate management nodes of different levels are set between the management terminal device and the user terminal device.
  • an information security transfer system including a paired first communication device and a second communication device, wherein
  • the first communication device includes:
  • the first key generating device which uses the key generating device as described in the previous embodiment, is configured to generate a one-time key as the first key;
  • the first input port is configured to read or input the first file to be sent
  • the first formatting unit is configured to convert the first file to be sent input by the input port into a first formatted plaintext in the same format as the key;
  • the first encryption module is configured to convert the first formatted plaintext into the first master ciphertext through the first key generated by the first key generating device, and use the corresponding first time stamp of the first key as a first ciphertext header, combining the first primary ciphertext and the first ciphertext header to generate a first ciphertext;
  • the first sending port is configured to send the generated first ciphertext to the second communication device
  • the second communication device includes:
  • the second key generating device which uses the key generating device as described in the previous embodiment, is configured to generate a one-time key as the second key;
  • a second receiving port configured to receive the first ciphertext sent by the first sending port
  • a second decryption module configured to parse the received first ciphertext to extract the first master ciphertext and the first timestamp in the header of the first ciphertext, according to the first timestamp, pass the second ciphertext
  • the key generation module generates a second decryption key corresponding to the first timestamp, and uses the second decryption key to decrypt the first master ciphertext to generate a second decrypted plaintext;
  • a second formatting module configured to convert the second decrypted plaintext into second restored data
  • the second output port is configured to output the second restored data as a second received file.
  • the second communication device further comprises:
  • the second input port is configured to read or input the second file to be sent
  • the second formatting module is also configured to convert the second file to be sent into a second formatted plaintext that is in the same format as the key;
  • the second encryption module is configured to convert the second formatted plaintext into a second master ciphertext through the second key generated by the second key generation module, and convert the second time corresponding to the second key to stamping as a second ciphertext header, merging the second primary ciphertext and the second ciphertext header to generate a second ciphertext;
  • a second sending port configured to send the second ciphertext to the first communication device
  • the first communication device further includes:
  • the first receiving port is configured to receive the second ciphertext sent by the second sending port
  • the first decryption module is configured to parse the received second ciphertext to extract the second main ciphertext and the second timestamp in the header of the second ciphertext, according to the second timestamp, through the first A key generation module generates a first decryption key corresponding to the second timestamp, and uses the first decryption key to decrypt the second master ciphertext to generate a first decrypted plaintext;
  • the first formatting unit is also configured to convert the first decrypted plaintext into first restored data
  • the first output port is configured to output the first restored data as a first received file.
  • one master key can be used to generate any required number of keys.
  • An independent key whose key strength can be equivalent to the number of bits of the master key can be distributed conveniently and securely among legitimate communicators who exclusively share the master key, thereby constructing a theoretically provable security system based on informatics.
  • a general and efficient encryption system that solves the fundamental problems of cryptography.
  • Fig. 1 is a schematic diagram showing a method for generating a key according to an embodiment of the present invention.
  • Fig. 2 is another schematic diagram illustrating key generation by a method according to an embodiment of the present invention.
  • FIG. 3 is a schematic diagram illustrating a combined modulo operation according to an embodiment of the present invention.
  • Fig. 4 is a schematic diagram illustrating a specific example of generating a key according to a method of an embodiment of the present invention.
  • Fig. 5 is a schematic diagram showing a key generation device according to an embodiment of the present invention.
  • FIG. 6 is a schematic diagram showing a key management system according to an embodiment of the present invention.
  • Fig. 7 is a schematic diagram showing an encryption and decryption device according to an embodiment of the present invention.
  • FIG. 8 is a schematic diagram showing a file management system according to an embodiment of the present invention.
  • Fig. 9 is a schematic diagram showing an information security delivery system according to an embodiment of the present invention.
  • the invention discloses a method for generating a key, by means of which a master key can be used to generate and securely distribute a required number of independent keys whose key strength can be equivalent to the number of bits of the master key;
  • the method constructs an efficient, reliable, and general-purpose key management system, relying on the keys of multiple users in a master key management system, and the multiple users can be unlimited users in the real world;
  • the generated key is used as a one-time key to encrypt plaintext information with the same number of bits, and a universal and efficient encryption system that can be proven safe in informatics theory can be constructed to meet various information security requirements.
  • the system adopting the method should meet the following prerequisites in the application process, so as to realize the security of the system.
  • Premise 1 The master key is kept safe at all times. Among all the information output from the system, no matter whether it is public or needs to be kept private during the application process, the master key information cannot be detected; the output information of the system includes Keys generated and distributed and information used for key distribution.
  • the ciphertext is considered public, and the plaintext may also be made public in the future.
  • the one-time key can usually be deduced relatively easily based on the ciphertext and the file information that will be released in the future. Therefore, in password cracking, it can be considered that the one-time key becomes public information after the information transmission is completed; in the key management system, the system administrator usually does not want the user to detect the master key information through the distributed key; therefore , in the premise, the key output from the system is regarded as information that can be used to attack the system master key.
  • Premise 2 The generated keys are independent of each other. Based on all the keys output from the system, combined with known public information and methods, there is no substantial help in deriving the next newly generated key, that is, using the key to generate There is no relationship between the essential information of the key generated by the method that can be determined by existing and future predictable methods, that is, the key contains independent information determined by the key strength.
  • Premise 3 The key distribution is safe and feasible, that is, the key can be safely distributed to legal recipients through public channels, and illegal recipients who do not have master key information cannot obtain the essential information of the key through the key transmission channel; specific cryptography In the application, the legal receiver who owns the master key can conveniently generate the key to be transmitted through the master key according to the key distribution information, and the attacker who does not own the master key distributes information and any public information and knowledge from the key Substantial information about the distribution key is not available in .
  • An information security system that satisfies Premises 1, 2, and 3 can rely on a master key to realize the generation and secure distribution of a required number of independent keys with strength equivalent to the master key, and then construct a theoretically provable security system based on informatics. encryption system.
  • the master key is the only private information of the system, and the key strength of the system is determined by the number of master key bits and the key generation method Therefore, the specific definitions of undetectable, underivable, unknowable, and unobtainable mentioned in the above premise all depend on the key strength of the system used.
  • key strength as the degree of difficulty to successfully deduce the information encrypted by a key with the help of public information and existing knowledge, which is equivalent to the difficulty of inferring an N-bit undisclosed random information.
  • the possible values of N-bit random information are uniformly distributed in a key space of size 2 N , and the success rate of randomly guessing a key with key strength of N bits is 1/2 N . Therefore, the undetectable, underivable, unknowable, unobtainable, etc.
  • the above-mentioned substantive information is the specific arrangement of bits contained in the key, so as to distinguish it from the information that needs to be disclosed according to cryptographic practice, such as the length and format of the key, and avoid confusion.
  • the bit is a basic unit of information familiar to those in the field of information science, and the information of multiple bits can be determined by a corresponding number of 0s or 1s in a specific sequence.
  • the basic form is a binary sequence consisting of 0 or 1.
  • Other bases can be used, such as but not limited to octal, decimal, and hexadecimal, for the convenience of human reading and identification.
  • embodiments described herein provide methods for generating encryption keys that are used to securely encrypt files.
  • the embodiments described herein also provide a method for generating a corresponding decryption key, that is, key security distribution, and the generated corresponding decryption key is used to decrypt the encrypted file.
  • the implementations described herein are in the category of symmetric encryption, where the encryption key and the decryption key are the same.
  • the features of the various embodiments described herein can be used in any combination with each other, unless stated otherwise.
  • Embodiments described herein can address issues associated with key generation and management.
  • the embodiments described herein can be used to provide one-time key data encryption, that is, use a one-time key to encrypt plaintext with the same number of bits as the one-time key, thereby ensuring that the key can be passed through the present invention.
  • the corresponding ciphertext and encryption system are provably secure in informatics theory.
  • Fig. 1 shows a schematic diagram of generating a key by the method of the present invention.
  • this embodiment describes the use of the method of the present invention, with the help of time stamps that can be composed of arbitrary information, at least through a one-way data conversion algorithm, relying on a master key generation and secure distribution to meet the required number, The implementation method of an independent key whose key strength can be equivalent to the number of bits of the master key.
  • the method in the embodiment of the present invention can usually be realized by a key generation module; the key generation module can be used in various systems, including but not limited to key generation devices, key management systems, encryption and decryption devices, and file management system, information security transmission system, etc., can be used as a component of the communication equipment in the system, in the form of hardware or/and software, using the method described in the embodiment of the present invention to generate a key, and apply it to these communication equipment to realize the key Secure Distribution and/or Secure Communication.
  • the key generation module can be used in various systems, including but not limited to key generation devices, key management systems, encryption and decryption devices, and file management system, information security transmission system, etc., can be used as a component of the communication equipment in the system, in the form of hardware or/and software, using the method described in the embodiment of the present invention to generate a key, and apply it to these communication equipment to realize the key Secure Distribution and/or Secure Communication.
  • the master key and the one-way data conversion algorithm may be generated and/or stored in the key generation module through common technical methods as system information of the key generation module.
  • the system information stored in the key generating device is acquired.
  • the system information includes at least a master key 101 and a one-way data conversion algorithm 102 .
  • the master key is composed of undisclosed random information as the only private information in the system;
  • the one-way data conversion algorithm is configured to convert the input information into secondary information determined by the input information, but from the secondary
  • the input information corresponding to raw information detection is impossible or computationally difficult. That is, the one-way data conversion algorithm is used to perform irreversible data conversion on input information to generate output information.
  • system information can also be flexibly generated according to usage scenarios.
  • two or more devices can flexibly set various parameters in the one-way data conversion algorithm.
  • Two or more devices can also generate the same master key.
  • the method introduces timestamps that can use arbitrary information.
  • a key is generated through the one-way data conversion algorithm, and the key is associated with the time stamp information.
  • the time stamp is sent to a paired key generation device, wherein the paired key generation device stores second system information corresponding to the system information.
  • the information in the timestamp is extensive, and any information that does not appear repeatedly can be used.
  • the time stamp is generated by the key generation device.
  • the time when the key is generated can be used as the time stamp; using the time as the time stamp can ensure that the value space of the time stamp is open and the information in the time stamp does not appear to be repeated.
  • some redundant random information can be added to the encryption time as a time stamp; by using the above time stamp, the value space of the time stamp can be kept open and the information in the time stamp does not appear repeatedly. Redundant random information is used as a buffer, so that the time stamp has good scalability while maintaining a fixed format; for example, the lower limit of the time code can be expanded with the increase of the encryption frequency, and the year code can be expanded with the increase of the service life of the system.
  • the key generation module generates a key in the following manner:
  • Generate timestamp 111 combine timestamp 111 with master key 101 to generate intermediate key 112; use intermediate key 112 as input information, generate secondary information 113 through one-way data conversion algorithm 102; extract from secondary information 113 The information generates a key 114 , associating the key 114 with a corresponding timestamp 111 .
  • Input information can be easily converted into secondary information determined by said input information through a one-way data conversion algorithm, that is, deriving secondary information from input information is definite and feasible;
  • Feature 2 It is computationally impossible to convert the generated secondary information into the corresponding input information, that is, it is impossible to infer any substantial content of the input information based on the secondary information;
  • Feature 3 The conversion from input information to secondary information is a non-degenerate nonlinear transformation, that is, the value space of secondary information is not smaller than that of input information, so that different input information can correspond to different secondary information statistically.
  • raw information, and small changes in the input information can lead to global changes in the secondary information that cannot be predicted only by the amount of change.
  • a single bit change in the input information can cause the generated Unpredictable global changes in secondary information.
  • the number of bits of the secondary information can be significantly larger than the number of bits of the input information and a nonlinear algorithm or nonlinear transformation can be introduced.
  • the one-way data conversion algorithm can perform one-way data conversion on any input information that can be converted into a conforming input format to generate the secondary information. Specifically, in the present invention, if the input information is N bits and the value space is 2 N , any information value between 0 and 2 N -1 can be used as valid input information to implement the one-way data conversion, Generate secondary information.
  • the key generation module sends the timestamp A corresponding to the key 114 to the paired key generation module, and the paired key generation module uses the same system information;
  • the paired key generation module After the paired key generation module receives the time stamp A, it generates the key A corresponding to the time stamp A through the method described above, according to the same system information, and adopts the same steps to realize key transmission.
  • the intermediate key only appears in the calculation and exists in the memory or cache of the computer, and the output information of the system does not include the intermediate key information.
  • the master key is the only private information, and other system information, including but not limited to system structure, key format, time stamp format, process, etc., can be kept public.
  • the key generation and distribution system using the method can satisfy the above-mentioned premise 1, 2, and 3 in operation and application, so that By means of the described method, a required number of independent keys having the same key strength as the number of bits of the master key is generated and securely distributed by means of one master key.
  • All the information output by the system includes timestamps and keys that may be used to encrypt file information or assign to objects belonging to the system. There is no other information that can be used to detect the master key. Using the one-way data conversion algorithm that conforms to feature 2, the substantive information of the intermediate key cannot be detected from the secondary information. Therefore, even if the information in the generated key is completely exposed for various reasons after use, from these exposed The intermediate key information cannot be inferred from the inferred part or even all of the secondary information in the key information, so that the substantive information of the master key cannot be obtained; since the timestamp can be arbitrary, it is completely independent of the secret key.
  • the key generation method and system information can be used in common information, and the time stamp does not expose system information and master key information. Therefore, the master key can be kept safe during the operation of the key generation system, and prerequisite 1 is satisfied.
  • the master key and system information are fixed, and the final decision to output different secondary information and keys is the time stamp that can take different values.
  • the time stamp composed of any information that may not be repeated is adopted, the value space of the time stamp is open, and the information in the time stamp can be independent.
  • the intermediate key is generated through the combination of the timestamp and the master key. With non-degenerate combination, the intermediate key can inherit the independent information in the timestamp.
  • any intermediate key can be converted into valid input information, and independent secondary information that can inherit the independent information in the intermediate key can be generated, so that the independent secondary information can be derived from the independent secondary information.
  • An independent key is selected from the raw information. Precondition 2 is satisfied.
  • the intermediate keys can inherit the key strength of the master key, so even with short timestamps, the key strength of the master key can be passed to the said secondary information, and then generate an independent key that can have the same key strength as the master key from the secondary information.
  • the time stamp with the same number of bits as the master key can be used to sequentially generate the intermediate key, secondary information, and key through the method shown in Figure 1; it is also easy to use a long time stamp to generate Realized in the system; when the number of bits of the selected secondary information is significantly greater than the number of key bits, the use of a long time stamp has no obvious impact on the amount of calculation required to generate the secondary information and the corresponding key and the information processing efficiency of the system .
  • the openness of the timestamp value space also ensures that any desired number of keys can be generated through the timestamp.
  • a key that can be conveniently distributed by means of a time stamp is generated by the described method.
  • the change of a single bit of the intermediate key will cause unpredictable global changes in the generated secondary information, so that without exposing the essential information of the intermediate key, according to The change of the timestamp cannot predict the change of the corresponding secondary information; therefore, the key generation process shown in Figure 1 is adopted to ensure that the essential information of the intermediate key is not exposed, and the corresponding secondary information cannot be speculated and generated from it based on the information in the timestamp. , so that keys can be distributed securely with timestamps. Precondition 3 is satisfied.
  • a one-way data conversion algorithm conforming to characteristics 1, 2, 3, and 4 is adopted to ensure that the essential information of the master key is not exposed through the above-mentioned key generation and distribution process, and the essence of the intermediate key is kept during the application process.
  • the information is not exposed, and through the method described in the embodiment of the present invention, with the help of the time stamp, any required number can be satisfied by relying on a master key generation and secure distribution, and the key strength can be independent of the number of master key bits. key.
  • the combination of the time stamp and the master key may adopt a simple non-degenerate combination method, such as modulo operation or simple information addition, to generate an intermediate key.
  • the above simple combination can also ensure that the master key is generated according to the information in the timestamp Any desired number of independent keys, the master key information remains secure during the key generation and distribution process, and the information from the timestamp cannot detect the secondary information generated by the intermediate key through the one-way data conversion algorithm , to achieve the generation and secure distribution of any desired number of independent keys.
  • key collisions that is, two independently selected or independently generated keys are the same; key collisions can usually be avoided by expanding the key space, that is, increasing the key strength; under the same key strength, you can By using random keys, avoid using known and easy-to-remember information as keys, maintain an effective key space, and reduce key collisions.
  • the direct collision of the master key is not considered; since the embodiment of the present invention usually generates a large number of one-time keys through a master key, in the application process, it can Consider the collision between these one-time keys, and avoid attackers from attacking the system through the collided one-time keys.
  • the key generation using the method of the present invention is very efficient, and a very high key strength can be selected.
  • it can be relatively easily used in common communication equipment 1024-bit or higher strength keys can be implemented on the network, so that random collisions between these one-time keys can be statistically guaranteed to be impossible in the real world.
  • the above-mentioned intermediate key generation method through the simple combination of timestamp and key is vulnerable to the above-mentioned key collision attack.
  • the attacker can relatively easily deduce the main Key information, thereby cracking the entire system.
  • the master key and the time stamp generate an intermediate key through a one-way data conversion algorithm.
  • a fixed 6-digit master key 763403 is set, and the one-way data conversion algorithm uses the square root algorithm.
  • the time stamp is the date at the time of encryption, such as 0803 (August 3rd).
  • the intermediate key is used as input information, and the secondary information is generated through a one-way data conversion algorithm (square root operation):
  • Extract information from secondary information such as the middle six digits, 750432, as a key, and mark the key 750432 with a timestamp 0803;
  • Extract information from secondary information such as the middle six digits, 769901, as a key, and mark the key 769901 with a timestamp 0804;
  • the form and content of the time stamp can be irrelevant to the master key and the key generation scheme, so the master key information is not exposed.
  • the time stamp can be combined with the master key to generate an intermediate key, and then generate definite secondary information and keys through one-way data conversion, but it is impossible to guess the corresponding intermediate key from the secondary information and keys , and the master key cannot be guessed, so the generated key does not reveal the master key information.
  • a required number of non-repeating keys can be generated through a time stamp of an appropriate length, for example, 100 million keys can be generated by using an 8-digit time stamp.
  • Fig. 2 shows an available process for generating an intermediate key through a one-way data conversion algorithm using a master key and a time stamp, and then generating secondary information and keys.
  • the intermediate key is generated through a one-way conversion algorithm.
  • the master key 201 and the timestamp 211 are used as input information, and the intermediate key 212 is generated through the one-way data conversion algorithm 202; the intermediate key 212 is used as the input information, and the secondary information 213 is generated through the one-way data conversion algorithm 203 , extract the information from the secondary information 213 to generate the key 214, and associate the key 214 with the corresponding time stamp.
  • the intermediate key is generated by a one-way data conversion algorithm
  • the transformation from the master key and the timestamp to the intermediate key is non-linear, and a single bit change in the timestamp will cause the generated intermediate key to Unpredictable global changes in information. Therefore, even if an attacker can obtain a small amount of intermediate key information through the above-mentioned key collision attack, he cannot effectively detect the essential information of the master key from the intermediate key and the corresponding time stamp information. Therefore, using the above method to generate an intermediate key can effectively resist the above-mentioned attack based on key collision.
  • the square root operation or other operations that can generate an irrational number determined by the input value according to an input value can be used to generate the secondary information that can be determined by the input value and meet the required arbitrary length.
  • the input information is digitized, and the digitized information is converted into a non-negative integer N as an input value.
  • the corresponding input information is 1-8-8-9, and the length of the secondary information is 24 bits.
  • N will be a very large number, and the bits of the secondary information The number will also be very long;
  • the numbers in the corresponding positions in a and b are added bit by bit. If the sum of the two is less than the modulus 10, the calculation result is the sum of the two. If the sum of the two is greater than the modulus, The sum of the two is subtracted from the modulus 10 or an integer multiple of 10, and the non-negative integer less than the modulus 10 is taken as the calculation result.
  • the above method can be extended to the modulo operation of all base numbers.
  • the above-mentioned a and b can select any value sequence of the same length to generate the target secondary information; for example, the first digit of the secondary information is 3, and the first digit of a or b can be 0 to Any number in 9, by pairing, for example 0 and 3, 1 and 2, 2 and 1, 3 and 0, 4 and 9, 5 and 8, 6 and 7, 7 and 6, 8 and 5, 9 and 4 , 3 is obtained by the above modulo operation, and the same is true for the numbers in other positions; therefore, it is impossible to speculate a and b from the secondary information, so that N and the input information cannot be obtained; in addition, due to discarding the integer and high decimal places In part, a single value change in the input value N can cause a global change in the generated a or b and the secondary information, so the above data conversion is nonlinear.
  • Feature 2 is available.
  • any input information can be converted into a definite non-negative integer smaller than the value of its value space, so that it can be used as a legal input; the above calculation uses the common sense that N and N+10 cannot be perfect square numbers at the same time, ensuring that Output non-zero secondary information of any required length, features 3 and 4 are available.
  • decimal arithmetic in the above demonstration and subsequent demonstrations is to facilitate a better understanding of the present invention by those skilled in the wider field.
  • an efficient one-way data conversion algorithm can be constructed through a division operation.
  • k is much greater than 2i
  • adding a non-zero number before and after the value can effectively avoid large changes in the format of the calculation result due to the presence of more 0 values before and after the input information and public data.
  • a and b are subjected to a modulo operation based on the numerical system used as the modulo bit by bit to generate secondary information.
  • the following is an 8-digit decimal value input information 3-7-2-8-1-5-9-6 to demonstrate the calculation process.
  • the converted input information format is 3728-1596, and the public data is 24 digits 367368971209437083569112. Input in actual application The length of information and public data is much larger than the above example;
  • Effective secondary information determined by the length of the common data that is significantly larger than the length of the input information can be output from the above division operation, ensuring that the transformation from the input information to the secondary information is non-degenerate; since the high-order digits of the result of the division operation are discarded, the input information
  • a single value change can cause a global change in the calculated value, so the above data conversion is nonlinear.
  • Feature 3 is available.
  • any input information can be converted into a certain non-negative integer smaller than the value of its value space, so it can be used as a legal input.
  • Feature 4 is available.
  • the calculation speed of the key generated by the above division one-way data conversion algorithm is inversely proportional to the length of the key, which is equivalent to the speed of the fastest encryption algorithm at present.
  • the public data can be commonly used in the methods using different master keys, as the public information of the system, it can be stored and transmitted publicly, and the master key is still the only variable privacy in the system that needs to be shared with different legal communicators Information: Under the existing information and computer technology conditions, the introduction of the public data will not increase the additional information storage burden of the communication equipment adopting the method of the present invention.
  • the randomness requirements for public data are not high, as long as there are no large numbers of repeated segments of digital information can be used as qualified public data, for example , public data can be generated using a random number generator in a computer attachment.
  • the one-way data conversion algorithm may adopt common data conversion under the control of input information.
  • the system information of the key generation module adds a public database on the basis of the master key and the one-way data conversion algorithm, configured to store public data, and the public data can be configured to adopt the Random numbers generated by the random number generator.
  • the public data conversion under the control of the input information is configured to convert the public data into secondary information under the control of the input information.
  • Commonly used encryption algorithms can be used to construct public data conversion under the control of the input information, or directly use commonly used encryption algorithms as public data conversion under the control of the input information.
  • Commonly used encryption algorithms such as DES, AES, etc.
  • its basic function is to convert plaintext into ciphertext under the control of a key, and usually the number of bits of the plaintext and the converted ciphertext is much greater than the number of bits of the key ; If the key of a commonly used encryption algorithm is used as input information, the plaintext to be encrypted is used as public data, and the ciphertext generated by the encryption algorithm is used as secondary information, then the encryption process of the commonly used encryption algorithm has characteristics 1, 2, and 3 , 4 one-way data conversion algorithm. The proof is as follows:
  • An effective encryption algorithm also requires that the transformation from the key and plaintext to the ciphertext be non-linear, requiring a small change in the information in the key or in the plaintext to cause the generated ciphertext to change according to the change in the key or in the plaintext.
  • Predicted global changes; Encrypting plaintext data with a key bit number much larger than the key bit number to generate ciphertext much larger than the key bit number is also a basic requirement for commonly used encryption algorithms, ensuring that from input information to output Information is a non-degenerate transformation. Feature 3 is available.
  • any bit combination that conforms to the key format can be used as a key and become valid input information, and feature 4 is available.
  • the intermediate key is used as one-time input information to participate in the conversion of the public data to generate secondary information and keys. Therefore, attacks against commonly used encryption algorithms use this Encryption methods and information security systems built by the method described in the invention are generally ineffective.
  • the one-way data conversion algorithm with features 1, 2, 3, 4 can be selected from many hash functions.
  • the common data conversion under the control of the input information adopts combined modulo operation.
  • the public database can be configured to be composed of N sequences of the same length, identified by numbers from 0 to N-1, called seeds, each of which contains the same number of bits; correspondingly, the input information is configured as An array composed of M numbered sequences, each of the input information points to M seeds identified by the numbers.
  • the one-way data conversion algorithm can adopt the following method:
  • the combined modulo operation is a one-way data conversion algorithm with features 1, 2, 3, 4, which is proved as follows:
  • Selecting M seeds determined by the numbers in the input information from the input information to perform modular operations can easily generate secondary information determined by the input information, and feature 1 is available;
  • the secondary information is to select the corresponding seeds in the public database according to the numbers in the input information, and generate these seeds through modular operations; according to the characteristics of the modular operations, as mentioned above, any sequence with the same format as the secondary information will be
  • the secondary information can be generated by a modulo operation with a suitable sequence of the same format. Therefore, before all seed combinations are tried, any seed in the public data cannot be excluded; the number of different combinations of numbers in the input information, That is, the possible above-mentioned seed combination mode is equal to the value space of the input information; in the case of hiding the input information, the degree of difficulty of detecting the corresponding input information from the secondary information is not less than random guessing of the input information, Therefore, no substantive information corresponding to the input information can be detected from the secondary information.
  • Feature 2 is available.
  • the input information is composed of seed numbers
  • the change of a single bit in the input information will change a number value, thereby changing the seeds participating in the combination.
  • the secondary information is as long as the seed, changing a single seed participating in the combination will cause the generated
  • the combined modulo operation conforms to strict nonlinear transformation; and the length of the generated secondary information can be significantly greater than the length of the input information, ensuring that the input information to the secondary information is non-degenerate sex conversion.
  • Feature 3 is available.
  • any input information can be converted into said numbering sequence, so that it can be used as legal input information.
  • Feature 4 is available.
  • the combined modulo operation is a strict one-way data conversion algorithm; in the case of disclosing the seed information in the database, it is necessary to use the aforementioned master key and timestamp as Input information, and generate an intermediate key through a one-way data conversion algorithm; adopt the above-mentioned one-way data conversion algorithm to generate an intermediate key, and a single bit change in the timestamp will cause unpredictable global changes in the intermediate key.
  • key information the secondary information and the key generated by the secondary information cannot be inferred from information changes in the time stamp, and the combined modulo operation conforms to strict one-way data conversion.
  • the one-way data conversion algorithm adopts combined modulo operation
  • the public database is configured as an end-to-end circular sequence containing N*M elements, and the circular sequence is divided into N lengths of M Units, each of which is identified by a number from 0 to N-1; dividing the circular sequence into units with a length of M is for the purpose of performing a shift modulo operation, which will be described in detail later;
  • the seed is configured to start from one unit and extend across the entire circular sequence in the same direction to form a sequence of length N*M, using the starting unit number as the corresponding seed number.
  • N seeds with the same number of bits as the circular sequence can be determined; the circular sequence can be used to maintain the largest number of seeds containing the largest number of bits with the smallest public database capacity seed.
  • the public database is a 64-bit binary ring sequence, which is divided into 16 4-bit units, and the order of the units is identified by 4-bit binary numbers from 0000 to 1111. In practical applications, the length of the circular sequence should be much larger.
  • 16 seeds can be derived from the binary circular sequence, each seed starts from one of the units and spans the entire circular sequence to form a 64-bit binary sequence equal in length to the circular sequence, and the unit The number of is used as the corresponding seed number.
  • the seed number 0101 starts from the unit '1001' of the number 0101 in the circular sequence, and extends sequentially to the unit '1100' of the number 1111, and further spans the unit of the number 1111, and the initial number 0000
  • the unit '1010' of the number is connected, and ends at the unit '0110' of the number 0100, forming a binary sequence with a length of 64-bits.
  • the input information is a 16-bit binary sequence, which contains 4 seed numbers in sequence: 1010-0110-0111-0101.
  • Combination modulus operation adopts the following steps:
  • the selected seed is first shifted, and the bits of the selected seed sequence are shifted in the same direction by the corresponding number of digits of the corresponding sequence number value; for example, as shown in Figure 3, No. 0 seed 1010 holds No change, the sequence of No. 1 seed 0110 is shifted back by 1 digit, and the last extra digit is folded back, keeping the length of the sequence unchanged; in the same way, the sequences of No. 2 and No. 3 seeds are shifted back by 2 and 3 digits respectively ; The numbers folded back are underlined in Figure 3;
  • Modulo operation is performed on the number sequence after the above-mentioned shift operation to generate secondary information.
  • the modulo operation becomes an XOR operation which is convenient for computer operation.
  • the calculation only needs to count the number of occurrences of 1 in the corresponding position, and the result of an odd number of 1s is 1, and the result of an even number of 1s is 0.
  • the input information 0000-0000-0000-0000 composed of all 0s points to 4 different varieties of the seed numbered 0000, which is equivalent to 4 different sequence
  • the input information and Other input information has the same degree of complexity; therefore, unlike common algorithms, in combinatorial modular arithmetic, all input information has the same degree of complexity under the condition of a fixed input information format.
  • the different one-way data conversion algorithms described in the above embodiments, different intermediate key generation methods, and these one-way data conversion algorithms and intermediate keys can be used. Different combinations of key generation methods can be used to construct a key generation method suitable for specific purposes.
  • this specification demonstrates that the method of the present invention can be used to use timestamps of arbitrary information, at least one one-way data conversion algorithm can be used, and a master key can be generated and safely distributed to meet any requirements.
  • a master key can be generated and safely distributed to meet any requirements.
  • the above method generates a key from a timestamp through the following data conversion chain: timestamp + primary key ⁇ intermediate key ⁇ secondary information ⁇ key, and the output timestamp and key are at the end of the data conversion chain ends.
  • the possibility of guessing the previous information, including the intermediate key and the master key, from the generated secondary information and key is cut off, ensuring that the system Keys that do not affect the security of the master key can be arbitrarily output; due to the arbitrariness of the information in the timestamp, it can be independent of the key generation method, so the timestamp used to distribute the key does not expose any system information; the above characteristics Ensure that the system's unique private information master key is always kept safe during key generation and application.
  • the non-linear feature of the one-way data conversion algorithm used in the method of the present invention described in the above embodiments makes the change of a single bit of the intermediate key cause a global change in the corresponding secondary information and the information in the key; the intermediate key is not disclosed
  • the key information cuts off the way to infer the generated secondary information and the corresponding key from the change of the intermediate key caused by the information change in the time stamp, so that the key can be safely distributed through the time stamp.
  • a one-way data conversion algorithm is introduced in the process of time stamp + master key ⁇ intermediate key, which further reduces the requirements for the one-way data conversion algorithm and expands the scope of application of the method.
  • the system information including the master key is fixed, and the time stamp finally determines the key information.
  • the time stamp for which any information can be selected has an open value space, which ensures the independence of information in the time stamp so that any required number of independent keys corresponding to the time stamp can be generated.
  • the master key participates in the generation of intermediate keys.
  • Using time stamp and master key to generate intermediate key through non-degenerate combination ensures that the intermediate key can inherit the key strength of the master key on the one hand, so that the method can be conveniently generated and Distributing a key with the same strength as the master key, on the one hand, inherits the independent information in the time stamp, so that the system can generate an independent key through the intermediate key through the time stamp that can use any information.
  • the method of the present invention generates an intermediate key that is not disclosed to the public through a non-degenerate combination of an independent time stamp that can use any information and a master key, and converts the intermediate key into secondary information through a one-way data conversion algorithm. Extracting keys from secondary information simultaneously achieves two goals that are difficult to achieve with existing technologies:
  • the arbitrariness of the information in the time stamp enables the system adopting the method of the present invention to use a general time stamp distribution key independent of the system and algorithm so as not to expose system information, eliminating the possibility of attacking the system during the key distribution process. possibility, while eliminating the possibility of relying on system information for information detection from general time stamps, secondary information and keys generated from the master key that inherit the key strength of the master key, so that it can be constructed according to the above method An ideal key security distribution scheme;
  • the intermediate key can inherit the key strength of the master key. Therefore, a short time stamp can be used to generate and distribute a high-strength key determined by the number of bits of the master key to achieve convenient key generation and distribution;
  • the time when the key is generated can be used as the timestamp, and at the same time, it is ensured that the information in the timestamp is not repeated and the number of timestamps that can be generated is open, so as to ensure that the intermediate key and secondary key generated by the timestamp
  • the number of information and keys is open, and any desired number of independent keys can be generated and distributed.
  • the time stamp and the master key are used as common input information, and a key that can simultaneously inherit the key strength of the master key and the independent information in the time stamp is generated through a non-degenerate one-way data conversion algorithm; with the help of the time stamp
  • the arbitrariness of the information and the openness of the value space can generate and securely distribute an unlimited number of keys through a universal time stamp independent of the key generation method.
  • some specific key generation processes using the method and the one-way data conversion algorithm that can be used in the method are described at the same time, and the one-way of the algorithm and the security of the process are preliminary Evaluate.
  • the present invention solves the problem of convenient generation and secure distribution of any required number of independent keys with required key strength.
  • the method can be used to build a universal and reliable key management system, relying on a master key to efficiently and conveniently manage the keys of complex systems that can contain any number of users;
  • the key is used as a one-time key to encrypt plaintext information with the same number of bits, and the corresponding time stamp is used as a decryption clue.
  • the method can be used to construct a general-purpose encryption algorithm that can be proven secure in informatics theory, relying on an exclusive shared master key to achieve efficient , Convenient and unlimited security information exchange.
  • the one-way data conversion algorithm employs common data conversion under the control of input information. That is, the one-way data conversion algorithm performs data conversion using input information as control information to generate output information.
  • the system information may include a master key 401, a public database 402, and one-way data conversion algorithms 403, 404 and 405;
  • system information further includes public data stored in the public database of the key generating device, and the number of bits contained in the public data is much larger than the number of bits contained in the master key.
  • a one-way data transformation algorithm performs data transformation on the common data to generate output information using input information as control information.
  • Key generation can be done by taking the following steps:
  • time stamp 411 composed of non-repetitive arbitrary information
  • the information is extracted from the secondary information 413 to generate a key 414, and the key 414 is associated with a corresponding time stamp.
  • the common data conversion under the control of the input information may adopt combined modulo operation.
  • the master key 401 may be a 1024-bit undisclosed binary random number sequence, composed of 1024 0s or 1s in sequence, including 64 16-bit seed numbers in sequence, and pointing to 64 seeds in sequence.
  • the one-way data conversion algorithm 403 can adopt the following combination modulus operation:
  • the extracted seeds can be subjected to a shift modulo operation similar to that shown in Figure 3; specifically, the selected 64 seeds are numbered from 0 to 63 according to the order of extraction, and the seed numbers are displaced in the same direction by the The number of digits corresponding to the sequential number value of the seed, for example, number 0 remains unchanged, number 1 moves back by 1 bit, number 2 moves back 2 bits, and so on. change; introducing a shift operation can statistically ensure a one-to-one correspondence between the input information and the generated secondary information.
  • Modulo operation is performed on the binary seed subjected to the above shift operation, and XOR operation as shown in FIG. 3 can be used to generate 512Kb private data 410 .
  • the key generation device generates a time stamp 411 according to the current time, takes the time stamp 411 as input information, and passes the private data 410 through a one-way data conversion algorithm 404 to generate an intermediate key 412 .
  • the one-way data conversion algorithm 404 can adopt the following combination modulus operation:
  • a 48-bit time stamp is used, including 8-bit year, 4-bit month, 5-bit date, 5-bit hour (using 24-hour format), 6-bit minute, and 6-bit second.
  • the remaining 14 bits are used as redundant information, which can be used at ordinary times.
  • the 48-bit time stamp may contain four 12-bit numbers sequentially, which point to the four information fragments in the private database 410 in sequence.
  • timestamp 411 As input information, sequentially select the information fragments corresponding to the 4 serial numbers in the timestamp 411 from the private database 410, and generate a 1024-bit intermediate key 412 through the above-mentioned shift modulo operation for these information fragments; Said intermediate key information exists only in computer memory or cache.
  • the encoded information of the year, month, date, hour, minute, second, and spare information can be dispersed into different numbers in the timestamp, maintaining a highly dynamic intermediate key.
  • the timestamp 411 may adopt the following format:
  • Y indicates the binary code of the year placed at this position, and the subscript indicates the serial number of the binary code from left to right.
  • M indicates the month
  • D indicates the date
  • H indicates the hour
  • m indicates the minute
  • S indicates the second
  • r indicates the spare number .
  • the binary code of 11 is 1011, corresponding to M 1 M 2 M 3 M 4 in the above timestamp format;
  • the binary code of 36 is 100100, corresponding to m 1 m 2 m 3 m 4 m 5 m 6 in the above timestamp format;
  • the binary code of 57 is 111001, corresponding to S 1 S 2 S 3 S 4 S 5 S 6 in the above timestamp format;
  • the valid information corresponding to the time stamp at 15:36:57 on November 26, 1998 is: 1110111r1101-0001010rrr10-1111001rrrrr-1101010rrrrr;
  • the key generation module randomly generates 14 binary spare numbers, such as 01101011011001, which replace the undetermined r in the above timestamp in sequence, and the timestamp used in the final calculation is:
  • the time stamp encoding method can ensure that the information in two adjacently generated time stamps can encode more than two different numbers, corresponding to more than two different information units in the private database, thereby maintaining the high dynamics of the corresponding intermediate key sex;
  • the format of the above timestamp can be set as a check code consisting of 14-bit information immediately after the current time.
  • the check code can be encoded in hexadecimal.
  • the above additional information can be grouped into 0110-1011-0110-01, check The code is 6B61; the format of the above timestamp can be 1998-11-26-15-36-57-6B61, which is convenient for reading and identification and processing by the processor of the communication device.
  • the 48-bit time stamp code can support the application requirements of 1024 key generation frequencies per second and a time span of 4096 years, and can be expanded at any time without affecting the operation speed and key generation process. For example, using The 72-bit time stamp only needs to add 2 modulo operations during the generation of the intermediate key, which further expands the number of keys that can be encoded and distributed by 224 times.
  • the 1024-bit intermediate key can be divided into 64 16-bit numbers in the same way as the master key, and the one-way data conversion algorithm 405 can use the same algorithm as 403:
  • the longest secondary information of 512Kb can be used as a one-time key to encrypt the plaintext with the same number of bits through modulo operation; a 1024-bit key with the same length as the master key can also be extracted.
  • the generation of the intermediate key by means of the private database described in this embodiment will not significantly increase the amount of computation for generating the key.
  • the private database can be calculated only once and used as a cache to generate all the keys required in this encryption application. Therefore, in application scenarios that require high encryption speed, such as real-time secure communication And the encryption and decryption of large-capacity information, the above-mentioned one-time private database generation required additional calculations have negligible impact on the overall encryption speed.
  • the key strength of the generated key is 1024 bits.
  • the 1024-bit key suggested in the public key algorithm usually refers to the number of bits of the key used, because in the public key algorithm
  • the optional integer value of the key is discontinuous, and the actual key space is far less than 2 1024 .
  • the success rate of guessing an undisclosed random public key is much greater than 1/2 1024 , corresponding to The key strength can be significantly less than 1024 bits; the key strength in the embodiment of the present invention can be equivalent to the number of bits of the master key, and the possible values of the 1024-bit master key are evenly distributed in the key space of 21024 , randomly The success rate of guessing an undisclosed random master key is not significantly greater than 1/2 1024 , and the key strength of the system is 1024 bits.
  • a key with a strength of 1024 bits can be considered uncrackable in the real physical world.
  • a key with a strength of 1024 bits means that an attacker who does not have the key information would need close to 21024 attempts to obtain the file information encrypted by the key with certainty; the estimated value obtained by using different statistical methods may be slightly lower than this value, but there will not be an order of magnitude difference.
  • the upper limit of the processing speed of a single processor is (3x10 8 m/s)/(10 -15 meters), that is, 3x10 23 times / second;
  • the secondary information generated by the above method can be used as a one-time key, and the ciphertext can be generated through modular operation with the plaintext information in the same format, and the corresponding timestamp can be used as a decryption clue to transmit the ciphertext between the communicators who share the master key.
  • Informatics theoretically provably secure encryption methods can be constructed.
  • the amount of calculation in the encryption and decryption process is 65 modular operations, 64 of which are used to generate a one-time key, and 1 is used to generate ciphertext or restore plaintext information from ciphertext.
  • the encryption method using the method of the present invention can be efficiently implemented on conventional portable communication equipment.
  • a conventional portable intelligent communication device with a 1G Hz processor the speed of processing the unconditionally secure ciphertext information with a key strength of 1024 bits is 15MbP, and the 512Kb public database storage space is also easy to use in the current common Realized on intelligent communication equipment.
  • public data and corresponding algorithm parameters can be easily adjusted to meet different application requirements.
  • the public database 402 may adopt a 4Kb circular sequence, including 256 128-bit units, and 256 4Kb seeds may be extracted from the circular sequence, using an 8-bit seed number. Then generating a key with 1024-bit strength requires 128 modular operations, the length of the one-time key is 4Kb, and the encryption and decryption process requires 129 modular operations.
  • the information capacity of the main ciphertext and the plaintext are the same, and the number of bits added to the ciphertext as a time stamp used as a decryption clue is negligible compared with the main ciphertext. Therefore, the information of the ciphertext The load ratio can be close to 1, forming an efficient encryption method.
  • the above-mentioned embodiment shows that any required number of unconditionally secure keys in the real physical world can be generated and safely distributed on common communication devices through the method of the present invention; the key is encrypted as a one-time key
  • the plaintext information with the same number of bits as the key can construct an encryption algorithm that can be proved secure in informatics theory, and realize unconditionally secure communication in the real physical world, and the information processing speed and file transmission speed of the information security system using the encryption algorithm Efficiency can be significantly higher than existing encryption applications.
  • the key generation device 500 of the embodiment of the present invention shown in FIG. 5 may include:
  • System information module 510 configured to store or/and generate system information of the key generating device, may include a master key, at least one one-way data conversion algorithm, and may add a public database as required; the one-way data The conversion algorithm generates output information determined from input information from which it is not feasible to speculate or/and deduce the input information.
  • the key generation module 520 is configured to generate a time stamp that can be encoded by any information that is not repeated, and generate a key corresponding to the time stamp according to the system information;
  • the transmission module 530 is configured to receive and send the time stamp.
  • the key generation module 520 uses one or more of the system information in the system information module 510 to generate a key through the method described in the previous embodiment, and the following process can be adopted:
  • the transmission module 530 sends the time stamp A to the paired key generation device; the paired key generation device has the same structure as the key generation device 500 and uses the same system information.
  • the transmission module 530 can also receive the time stamp B sent from the paired key generation device; the key generation module 520 is further configured to rely on the system information 510 according to the received time stamp B, and adopt the aforementioned Step, generate the corresponding key B.
  • the key generation module 520 is also configured to generate the timestamp.
  • the key generation module 520 may generate a key according to the methods in the foregoing embodiments.
  • the key generation module 520 may be configured to generate an intermediate key by performing an operation on the time stamp and the master key; using the intermediate key as input information, generate secondary information through the one-way data conversion algorithm ; extracting information from the secondary information to generate a key; and associating the key with a time stamp corresponding to the key.
  • the key generation module 520 may use a non-degenerate combination of the timestamp and the master key to generate the intermediate key.
  • the key generation module 520 is further configured to use the time stamp and the master key as input information to generate the intermediate key through a second one-way data conversion algorithm.
  • the key generation device 500 may also include a public database.
  • the public database may be configured to store public data comprising a significantly greater number of bits than the master key.
  • the key generation module 520 can also use the public data as input information to generate secondary information through the one-way data conversion algorithm; extract information from the secondary information to generate a key; and combine the key and the associated with the timestamp corresponding to the above key.
  • the one-way data conversion algorithm also performs data conversion on the common data using the input information as control information, and the data conversion employs combinatorial modulo operations.
  • the public data is configured to be composed of N number sequences with the same length, each of which contains the same number of bits, is identified by a number indicating 0 to N-1 with the same number of bits, and is called a seed.
  • the control information is configured as an array composed of M numbers in sequence, and the sequence points to the M seeds identified by the numbers.
  • the combined modulo operation is configured to sequentially extract M seeds pointed to by the number in the control information from the public data, and then perform a modulo operation on the M seeds to generate a Secondary information, where N and M are positive integers.
  • the public data can be configured as an end-to-end circular sequence containing N*M elements, the circular sequence is divided into N units with a length of M, and each of the units uses a 0 to N-1 ID number. Then, the seed is configured to start from one unit and extend across the entire circular sequence in the same direction to form a sequence with a length of N*M, using the starting unit number as the seed number.
  • the key generation module 520 may also use the master key as control information, and under the control of the master key, convert public data into private data through a second one-way data conversion algorithm; use the time stamp as control information , under the control of the timestamp, generate an intermediate key from the private data through a third one-way data conversion algorithm; using the intermediate key as control information, under the control of the intermediate key, through The one-way data conversion algorithm converts the public data into secondary information; extracts information from the secondary information to generate a key; and associates the key with a corresponding timestamp.
  • the one-way data conversion algorithm, the second one-way data conversion algorithm and the third one-way data conversion algorithm use the same or different one-way algorithms.
  • the transmission unit 530 may also receive the second time stamp sent from the paired key generation device. Then, the key generation module 520 uses the master key to generate a second key corresponding to the second time stamp through the one-way data conversion algorithm depending on the second time stamp.
  • This embodiment shows that the method of the present invention can be used to securely generate and exchange any required number of keys between legitimate communicators who share the master key through the key generation device 500.
  • the key strength can be compared with the master key bit equal number of independent keys.
  • the key generation device described in this embodiment can be used as a basic module of communication equipment to construct a multi-purpose information security system, and realize the informatics described in the method described in the present invention. Intensity of security information exchange.
  • the key management system 600 of the embodiment of the present invention includes a management terminal 610 and one or more user terminals 620 .
  • the user end device stores the user identification code corresponding to the user.
  • the user terminal 620 includes each user 620-i belonging to the system; the serial number i is only used in this specification to indicate that the user terminal 620 contains different users, and has no real meaning.
  • User ID ID is only used in this specification to indicate that the user terminal 620 contains different users, and has no real meaning.
  • the management terminal 610 includes: a control module 611 configured to generate and receive a user identification code; a user information module 612 configured to store the user identification code; a key generation module 613 configured to generate a key as described in the third embodiment A device configured to use the user identification code as a time stamp to generate a user key corresponding to the user identification code.
  • the control module 611 may generate, for each of the multiple users, any information identifying its identity as the user identification code of the user.
  • the control module 611 generates a user identification code i for each user 620-i, and stores the user identification code i into the user information module 612;
  • the user identification code can be a section of arbitrary information, for example, user characteristic information can be added
  • user identification codes can be in the form of QR codes, barcodes, etc., which are convenient for common information technology equipment to read;
  • the key generation module 613 responds to the user identification code i from the user information module 612, uses the user identification code i as a time stamp, generates the corresponding user key i, and submits the user key i and the corresponding user identification code i to the client
  • the corresponding system user 620-i in 620 implements key distribution;
  • the user terminal When the key of user 620-i is lost, the user terminal submits a key recovery application to the management terminal 610; the management terminal 610 may require the user terminal to submit the user identification code i.
  • the management terminal 610 receives the user identification code i through the control module 611; the user information module 612 can detect whether the user identification code i matches the information stored in the system; the key generation module 613 uses the user identification code i as a time stamp , generate a user key i corresponding to the user identification code i, and submit the user key i to the user 620-i to recover the user key.
  • the key generation module 613 includes the key generation device of the previous embodiment and stores a master key, configured to generate a corresponding user key for each of a plurality of users, and combine the user identification code and The corresponding key is delivered to the corresponding user end device as the user key of the user.
  • the key generation module 613 responds to the user identification code sent from the user information module, uses the user identification code as a time stamp, generates a key corresponding to the user identification code, and stores the user identification code and the corresponding key Pass it to the corresponding user terminal equipment as the user key of the user.
  • control module 611 When the user keys of one or more users are lost, the control module 611 receives corresponding user identification codes from the user terminal equipment.
  • the user information module 612 checks the received user identification code to confirm that the user identification code is a stored user identification code.
  • the key generation module 613 uses the user identification code as a time stamp, generates a user key corresponding to the user identification code, and feeds back the user key to the user end device.
  • the key generation module 613 can also respond to 2 or more user identification codes from the user information module 612, combine these user identification codes as a time stamp, generate a corresponding key, and use the key Assigned to the user as a key for communication between the users.
  • each user is assigned a public user identification code that can contain the user's public personal characteristic information and some random information; the key management The system generates and manages user information including the user identification code, uses the user identification code as a time stamp, generates the corresponding user key, and distributes it to the user; and when the user loses the user key, according to the user identification code submitted by the user, hardly restore user keys through the system.
  • the system end can distribute keys to system users in a secure manner.
  • the generated user keys can be stored in a medium, such as a disk, U-disk, printed paper, etc., using the The user identification code marks the corresponding medium, and the medium is delivered and handed over to the user in a secure manner, or the user may directly receive the user key from the management terminal.
  • the user identification code used to generate and restore the user key can be any general information independent of the key management system, completely avoiding the user key and system master key information in the key management application process risk of leakage.
  • one system master key can be used to securely and conveniently generate and maintain the keys of multiple users in the system, and the multiple users can include any required number of users in the real world, so
  • the keys include keys that need to be shared among the users, and the number thereof may be much greater than the number of users and the number of stored corresponding user identification codes.
  • Each communicator holds a master key, and through the key management system, all related keys are managed.
  • the communicator can use the master key as the master key of the key management system shown in FIG.
  • the identification code is used as a time stamp
  • the key generation module 613 is used to generate a master key corresponding to the identification code
  • the master key and the corresponding identification code information are stored in the communication device as a key for a certain period of time or in an application scenario.
  • master key may be the master key used for the communication of the current year, and the number of the year, such as 2021, may be used as the identification code.
  • an independent processor without external communication connection is used to operate, which can generally be regarded as a safe environment, which can meet the needs of conventional key management; the specific requirements for the safe environment will vary with the technology. developments and specific confidentiality requirements.
  • Communicators use their own trunk key as the master key of the next-level key management system, that is, the master key of the application-level key management system, and establish key management systems for different communication objects.
  • the communicator can set an identification code that can be any information for each communication object, and the identification code can be set by the communicator himself, or can use the public identification information of the communication object, for example, it can be the communication object's Name, mobile phone number, ID number, etc., or their combination; the identification code of the communication object can be made public, and can be mutually defaulted.
  • each correspondent has a permanent or relatively fixed personal identification code.
  • the personal identification code can contain information that the correspondent is willing to disclose to determine the identity of the correspondent. It is made available to the public in a form readable by communication devices.
  • the communicator uses the application-level key management system according to the personal identification code of the communication object, uses the personal identification code as a time stamp, and relies on the backbone key to generate the communication object key corresponding to the personal identification code; Send the communication object key to the communication object in a safe manner.
  • the communication object stores the key under the sender's electronic business card, and the electronic business card also includes the sender's personal identification code.
  • the communication parties exchange keys with each other through the above methods to establish a secure connection.
  • the electronic business cards of the two communicators who have established a secure connection respectively store the other party's personal identification code and the key sent from the other party.
  • a and B that have established a secure connection can communicate securely in the following ways:
  • the correspondent A generates the key A-B corresponding to the personal identification code of the correspondent B through the application-level key management system, and combines it with the key B-A generated by the correspondent B stored in the address book to generate the key AB; the correspondent B
  • the key B-A corresponding to the personal identification code of the correspondent A is generated by the application-level key management system, and is combined with the key A-B generated by the correspondent A stored in the address book to generate the key BA; using a symmetrical combination, the key AB and BA are the same, and using it as the master key for communication between the two parties can realize secure communication between A and B.
  • the above-mentioned key management system starts from the master key of the communicator, passes through the main key and the key of the communication object, and forms a hierarchical key management system, which can achieve the following beneficial effects:
  • the backbone key can be generated in an absolutely secure environment for actual communication, avoiding the direct use of the master key, and enhancing the security of the master key, so that when the backbone key is leaked, the use of the corresponding backbone key can be terminated key to limit the scope of influence to a minimum;
  • the key is generated from the key management system of the corresponding level through the public key identification code, which is convenient for key management and provides convenience for the key management of a large number of dynamic communication objects; at the same time, it can be passed
  • the key identification code can restore the key conveniently, avoid key loss and enhance the reliability of the system;
  • Using the key combination of both communicators for communication can effectively reduce the misinformation transmission; at the same time, when the key of the communicator is lost, the communication partner can be urgently contacted through the part of the key generated by the communicator, and the key can be recovered safely.
  • a master key can be used to conveniently, efficiently, orderly, and reliably manage and maintain the keys of a system whose number of users and complexity are not limited.
  • the present invention solves the problems of key generation and security maintenance in a large-scale complex structure information security system.
  • the encryption and decryption device 700 of the embodiment of the present invention as shown in FIG. 7 includes:
  • the key generation module 701 adopts the key generation device as described in the third embodiment, and is configured to use the generated secondary information as a one-time key.
  • Input port 702 configured to read or input a file to be sent
  • Formatting module 703 configured to convert the file to be sent into a formatted plaintext A in the same format as the key;
  • the encryption module 704 is configured to use the one-time key generated by the key generation module 701 to convert the formatted plaintext A into the main ciphertext A, use the time stamp A corresponding to the one-time key as the title of the ciphertext, and combine the main ciphertext Text A and ciphertext title A generate ciphertext A;
  • the sending port 705 is configured to send the ciphertext A to the paired encryption and decryption device.
  • the encryption and decryption device 700 also includes:
  • the receiving port 706 is configured to receive the ciphertext B sent from the paired encryption and decryption device
  • the decryption module 707 is configured to analyze the received ciphertext B to generate the main ciphertext B and the timestamp B, and generate the key B corresponding to the time stamp B through the key generation module 701 to decrypt the main ciphertext B to generate the decrypted plaintext B;
  • the formatting module 703 is further configured to convert the decrypted plaintext B into restored data
  • the output port 708 is configured to output the restored data as a received file, and the received file is the same as the file to be sent sent from the paired encryption and decryption device.
  • This embodiment shows that the method of the present invention can be adopted, and by means of the encryption and decryption device 700, with the help of time stamps composed of non-repetitive arbitrary information, relying on a master key to generate any required key strength can be compared with the master key.
  • a one-time key with the same number of key bits use the one-time key to encrypt plaintext with the same number of bits to generate ciphertext, and use the time stamp corresponding to the one-time key that can be used universally and independent of the key generation method as The only decryption clue, the ciphertext can and can only be decrypted by the legitimate communicator who shares the master key information through the time stamp, ensuring that no system information and key information are exposed during the ciphertext transmission process, thereby realizing informatics
  • the encryption and decryption device can be used as an independent unit in the communication equipment to encrypt and decrypt communication information, and can conveniently set the required key strength to build an unconditionally secure communication system in the real physical world.
  • the file management system 800 of the embodiment of the present invention includes a management terminal 810 and a user terminal 820 .
  • the user terminal 820 includes each user 820-i in the system, and the user encryption and decryption module 821 is installed on the communication device of each user 820-i, and the encryption and decryption device as described in the fifth embodiment is used to configure the encryption and decryption user
  • the file information transferred between 820-i and the management terminal 810, the serial number i is only used in this specification to indicate that the user terminal 820 contains different users, and has no real meaning.
  • each system belongs to the user Can be identified by its user ID.
  • the management terminal 810 includes: a system encryption and decryption module 811, which adopts the encryption and decryption device described in the fifth embodiment, configured to encrypt and decrypt file information transmitted between the management terminal 810 and the user terminal 820; a key management module 812, which adopts the encryption and decryption device as described in the fifth embodiment
  • the key management system described in the fourth embodiment is configured to distribute and manage user master keys and user information of system users; the storage module 813 is configured to store system files.
  • the key management module 812 generates a user identification code and a corresponding user master key for each user in the system, and distributes them to each user 820-i belonging to the system in the user terminal 820.
  • the user 820-i uses the user master key i to generate a one-time key encrypted file information through the user encryption and decryption module 821 to generate a master ciphertext, and the time stamp corresponding to the one-time key together with the user identification code i
  • the ciphertext title is generated by combining the main ciphertext and the ciphertext title, and sent to the management terminal 810 through a regular channel. As the proof that the user 820-i submits the file to the management terminal.
  • the management terminal 810 analyzes the received ciphertext sent from the user 820-i through the system encryption and decryption module 811, and extracts the main ciphertext and the user identification code i and the time stamp in the ciphertext title; the key management module 812 uses the user identification code i generates the corresponding user master key i; the system encryption and decryption module 811 generates the corresponding decryption key by relying on the user master key i according to the information in the time stamp, decrypts the master ciphertext, confirms the file information, and confirms the file information
  • the ciphertext of is stored in the storage module 813.
  • the management terminal 810 is further configured to, through the key management module 812, generate the user master key i of the target user 820-i, through the system encryption and decryption module, rely on the user master key i to generate a one-time key to encrypt file information Generate ciphertext and send it to the target user 820-i through a public channel;
  • the user terminal 820 is further configured such that the user 820-i receives the ciphertext sent from the management terminal through the user encryption and decryption module, decrypts the ciphertext, and restores file information.
  • the user terminal 820 is further configured to send a key recovery request to the management terminal 810 when the user master key i of the user 820-i is lost.
  • the key management module 812 of the management terminal 810 is further configured to, according to the user identification code i of the user 820-i, generate the user master key i of the user 820-i, pass it to the user 820-i in a secure manner, and restore the user master key i key.
  • the management terminal may be a manager of an institution or company, and the user may be a subordinate user of the manager; the delivered file may be a work report sent by the subordinate user to the manager , as the work proof of the subordinate user.
  • the administrator can use the method of the present invention to safely exchange work file information independently with multiple subordinate users by relying on a system master key.
  • the management end can be a publishing house or a patent acceptance institution, and the user can be a contributor or a patent submitter; the delivered file can be an article to be published or a patent application material, as the The proof of materials submitted by the contributor or patent applicant to the said publishing house or patent receiving institution.
  • the manager can use the method of the present invention to safely and independently process the application information of multiple highly dynamic users relying on one master key of the system.
  • the key management system 812 can adopt the hierarchical key management system as described in the fourth embodiment.
  • intermediate management terminals of different levels are set between the management terminal and the user terminal to establish Hierarchical file management system.
  • the method of the present invention can be used to safely and conveniently manage the file information of the complex system through a system master key.
  • the information security delivery system of the embodiment of the present invention shown in FIG. 9 includes a paired first communication device 900A and a second communication device 900B, wherein the first communication device 900A and the second communication device 900B may have the same structure and configuration, An encryption decryption device as described in the fifth embodiment is employed.
  • the first communication device 900A may be held by communicator A, and the second communication device 900B may be held by communicator B.
  • the first communication device 900A may include:
  • the first key generation module 901A using the key generation device described in the third embodiment, is configured to generate secondary information as a one-time key.
  • the first input port 902A is configured to read or input the file A to be sent;
  • the first formatting module 903A is configured to convert the file A to be sent into a formatted plaintext A in the same format as the key;
  • the first encryption module 904A is configured to use the one-time key generated by the first key generation module 901A and the formatted plaintext A to generate a master ciphertext A through a modulo operation, and use the time stamp A corresponding to the key as the first ciphertext Text title, merge the main ciphertext A and the first ciphertext title to generate ciphertext A;
  • the first sending port 905A is configured to send the ciphertext A to the second communication device 900B;
  • the second communication device 900B includes:
  • the second key generation unit 901B adopts the key generation device as described in the third embodiment, and is configured to generate secondary information as a one-time key.
  • the second receiving port 906B is configured to receive the ciphertext A sent by the first sending port
  • the second decryption module 907B is configured to parse the received ciphertext A to extract the main ciphertext A and the timestamp A in the header of the first ciphertext, and generate the decryption key A corresponding to the timestamp A through the second key generation module 901B , use the decryption key A and the main ciphertext A to generate the decrypted plaintext A through the inverse operation of the modulo operation.
  • the second formatting module 903B is configured to convert the decrypted plaintext A into restored data
  • the second output port 908B is configured to output the restored data as a received file A, and the received file A is the same as the file A to be sent.
  • the second communication device 900B further includes:
  • the second input port 902B is configured to read or input the file B to be sent;
  • the second formatting module 903B is also configured to convert the file B to be sent into a formatted plaintext B matching the key format;
  • the second encryption module 904B is configured to use the one-time key generated by the second key generation module 901B and the formatted plaintext B to generate the main ciphertext B through a modulo operation, and use the time stamp B corresponding to the key as the second ciphertext Text title, merge primary ciphertext B and second ciphertext title to generate ciphertext B;
  • the second sending port 905B is configured to send the generated ciphertext B to the first communication device 900A;
  • the first communication device 900A further includes a first receiving port 906A configured to receive the ciphertext B sent by the second sending port;
  • the first decryption module 907A is configured to parse the received ciphertext B to extract the main ciphertext B and the timestamp B in the header of the second ciphertext, and generate a decryption key corresponding to the timestamp B through the first key generation unit 901A B, generate the decrypted plaintext B by using the decryption key B and the main ciphertext B through the inverse operation of the modulo operation;
  • the first formatting module 903A is also configured to convert the decrypted plaintext B into restored data
  • the first output port 908A is configured to output the restored data as a received file B; wherein the received file B is the same as the to-be-sent file B sent from the second communication device.
  • This embodiment shows that the method of the present invention can be used, and through the information security delivery system 900, legal target communicators can use the same type of encryption and decryption device to establish a secure connection through an exclusive shared master key, and the encryption and decryption to be transmitted information, to achieve information transfer that can be proven safe in informatics theory.
  • the 1024-bit master key as described in the second embodiment can be used to construct a convenient and universal unconditionally secure communication system in the real world through the information security delivery system described in this embodiment.
  • the above embodiments outline the process of generating an independent key that can be safely distributed by the method of the present invention and the available one-way data conversion algorithm, as well as the key generation device, key management system, encryption device, and file constructed by the method.
  • the program or process part in the technology can be regarded as a "product” or “article” in the form of executable code and/or related data, and can participate in or realize all The methods and steps described above.
  • Computer-readable media may come in many forms, including tangible storage media, carrier media, or physical transmission media, etc.; tangible and stable storage media may include memory used by any computer, processor, or similar device or related modules or memory.
  • Unstable storage media can include dynamic memory, such as the main memory of a computer platform, and the like.
  • All or portions of the Software may from time to time communicate over a network, such as the Internet or other communication network.
  • Such communications may load software from one computer device or processor to another.
  • a hardware platform loaded from a server or host computer of the Internet of Things system to a computer environment, or other computer environments that implement the system, or systems with similar functions related to providing information required by the Internet of Things. Therefore, another medium that can transmit software elements can also be used as a physical connection between local devices, such as light waves, radio waves, electromagnetic waves, etc., and can be transmitted through cables, optical cables, or air.
  • the physical media used for carrier waves, such as cables, wireless connections or optical cables, and similar devices, as well as the lines forming the bus inside the computer system, etc., can also be considered as media that carry software.
  • the carrier transmission medium can transmit electric signal, electromagnetic signal, acoustic wave signal or light wave signal and so on. These signals may be generated by radio frequency or infrared, visible light, or acoustic data communication methods.
  • Typical computer-readable media include hard disks, floppy disks, magnetic tape, any other magnetic media; CD-ROM, DVD, DVD-ROM, any other optical media; punched cards, any other physical storage media containing a pattern of small holes; RAM, PROM , EPROM, FLASHEPROM, any other memory chips or tapes; carrier waves for transmitting data or instructions, cables or connecting devices for transmitting carrier waves, any other program codes and/or data that can be read by a computer.
  • a “module” in this specification refers to logic stored in hardware, firmware, or a set of software instructions.
  • the “module” referred to here can be implemented by software and/or hardware modules, or stored in any computer-readable non-transitory medium or other storage devices.
  • a software module can be compiled and linked into an executable program.
  • a software module here can respond to information passed by itself or other modules, and/or can respond when certain events or interruptions are detected.
  • Software modules may be provided on a computer readable medium, which may be configured to perform operations on a computing device (eg, a processor).
  • the computer readable medium here can be an optical disc, digital disc, flash drive, magnetic disk or any other kind of tangible medium.
  • the software module can also be acquired in the mode of digital download (the digital download here also includes the data stored in the compressed package or the installation package, which needs to be decompressed or decoded before execution).
  • the codes of the software modules here may be partially or completely stored in the storage device of the computing device executing the operation, and applied in the operation of the computing device.
  • Software instructions may be embedded in firmware, such as an erasable programmable read-only memory (EPROM).
  • EPROM erasable programmable read-only memory
  • a hardware module may comprise logical units connected together, such as gates, flip-flops, and/or programmable units, such as programmable gate arrays or processors.
  • the functions of the modules or computing devices described herein are preferably implemented as software modules, but may also be represented in hardware or firmware.
  • the modules mentioned here are logical modules, which are not limited by their specific physical form or memory.
  • a module can be combined with other modules, or separated into a series of sub-modules.
  • the key generation device or communication device includes a processor, volatile and non-volatile memory, may include at least one network interface, and input/output devices.
  • the network interface of the communication device may include a connection to a network, such as a wired or wireless connection to the Internet, to a cloud server on which data stored may be accessed by the communication device using the network.
  • the data processing module of the communication device may include a server computer, a desktop computer, a notebook computer, a tablet computer, a PDA, a smart phone, or other programmable computers.
  • Clients can include any connected or "smart" device capable of data communication, such as thermostats, air quality sensors, industrial equipment, etc. As more and more devices are connected to the Internet through the "Internet of Things", the client side includes more and more types of devices.
  • Data managed by the example systems described herein may remain encrypted at all times when stored in non-volatile memory, whether on the user device or on other devices such as cloud servers.
  • each programmable computer may include an input device for entering information into the device.
  • the input device can be a keyboard, keypad, cursor control device, touch screen, camera, scanner or microphone.
  • input information may be received from programmable computers on other networks through a communication interface.
  • a computing device may include a display device for presenting visual information.
  • a display device may be a computer monitor, flat panel display, projector or display panel.
  • a display device displays to a user one or more files encrypted via an encryption proxy according to the systems and methods described herein.
  • Embodiments of the modules, devices, systems, processes and methods described herein can be implemented in hardware or software or a combination of both.
  • the embodiments may also be implemented as computer programs executed on programmable computers, each of which includes at least one processor (such as a microprocessor), data storage systems (including volatile and nonvolatile memory and/or storage elements), at least one input device, and at least one output device.
  • the programmable computer hereinafter referred to as a device, computing device or server
  • the programmable computer may be a personal computer, laptop computer, personal data assistant, cellular telephone, smart phone device, tablet computer and/or wireless device.
  • program code is applied to input data to perform the functions described herein and generate output information.
  • the output information is applied to one or more output devices in a known manner.
  • Each software component or program can be implemented in a high-level procedural or object-oriented programming and/or scripting language to communicate with the computer system.
  • programs can be implemented in assembly or machine language, if desired. In any case, the language can be a compiled or interpreted language.
  • the processes and methods of the described embodiments can be distributed for sale on computer-readable media, including computer-readable media carrying computer-usable instructions for one or more processors.
  • the media may be provided in a variety of forms, including one or more floppy disks, optical disks, magnetic tape, chips, cable transmission, satellite transmission, Internet transmission or download, magnetic and electronic storage media, digital and analog signals, and the like.
  • the computer usable instructions may also be in various forms, including compiled and non-compiled code.

Landscapes

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

Abstract

本发明提供一种密钥生成和分发方法、密钥生成装置、密钥管理系统、以及信息安全传递系统。所述密钥生成和分发方法包括:获取或/和生成密钥生成装置的系统信息,所述系统信息至少包括一主密钥和至少一种单向数据转换算法,所述主密钥由未公开随机信息组成,所述单向数据转换算法根据输入信息,生成由所述输入信息确定的输出信息,并且由所述输出信息推测或/和推导所述输入信息是不可行的;根据所述主密钥,依靠由不重复的任意信息组成的时间戳,通过至少采用一种所述单向数据转换算法,生成由所述时间戳和所述主密钥中信息共同确定的密钥,将所述密钥与所述时间戳信息相关联;以及将所述时间戳发送给配对的密钥生成装置,其中所述配对的密钥生成装置存储有与所述系统信息相对应的第二系统信息。

Description

密钥生成和分发方法、密钥生成装置、密钥管理系统
本公开要求于2021年8月31日递交的中国专利申请第202111016098.6号的优先权,在此全文引用上述中国专利申请公开的内容以作为本申请的一部分。
技术领域
本发明涉及信息安全领域,更具体地,本发明涉及密钥生成和分发方法、密钥生成装置、密钥管理系统、加密解密装置、文件安全系统和信息安全传递系统。
背景技术
计算机和通讯技术的快速发展,以及随之而来的物联网、云计算、云存储的普及应用,给信息安全提出了新的挑战,也提供了新的发展机遇。信息的安全传递和存储是信息安全的核心,信息加密是实现信息安全的重要手段。
通过事先保存或共享一个密钥进行持续的加密解密给用户提供了一个很大的便利,也是密码学中常用的手段。但重复使用同一密钥会带来很多安全隐患,由此衍生出了很多针对特定加密算法的攻击策略。使用一次性密钥对文件进行加密可以有效避免大多数针对加密算法的密码学攻击,但大量一次性密钥的产生和交换通常是困难和繁琐的。当前,设计一个可证明安全的便捷通用的加密方案仍然是一个挑战。另外,由于通讯主体针对不同的通讯对象需要不同的密钥,密钥管理通常也是个问题,所述问题在需要管理大量密钥的机构和组织中尤为严重,在这些组织中,所涉及密钥的数量正比于成员数量的平方。
由于加密时明文信息量通常大于密钥信息量,通过密文可以安全传递大于密钥信息量的信息,因此可以将共享密钥设计为动态密钥,将需要更新的密钥信息伴随通讯信息通过密文传递给对方,在双方通讯过程中动态更新共享密钥,实现实用一次性密钥加密,从而避免相应的攻击。所述动态密钥方案比较适合实时通讯,在信息存储和密钥管理方面缺乏优势。
因此,一种能依靠一个主密钥产生所需数量的具有确定密钥强度的独立 密钥且能够将这些密钥便捷、安全分发的方法将有望克服现有加密方案的局限性,解决密码学和信息安全的根本问题。
发明内容
本发明将解决可满足所需数量的具有所需密钥强度的独立密钥的生成和安全分发问题,在此基础上构建信息学理论上可证明安全的加密方案,进而构建信息安全传递方案和信息安全系统。
根据本文描述的一个实施例,提供了一种密钥生成和分发方法,包括:
获取或/和生成密钥生成装置的系统信息,所述系统信息至少包括一主密钥和至少一种单向数据转换算法,所述主密钥由未公开随机信息组成,所述单向数据转换算法根据输入信息,生成由所述输入信息确定的输出信息,并且由所述输出信息推测或/和推导所述输入信息是不可行的;
根据所述主密钥,依靠由不重复的任意信息组成的时间戳,通过至少采用一种所述单向数据转换算法,生成由所述时间戳和所述主密钥中信息共同确定的密钥,将所述密钥与所述时间戳信息相关联;以及
将所述时间戳发送给配对的密钥生成装置,其中所述配对的密钥生成装置存储有与所述系统信息相对应的第二系统信息。
在一些实施例中,生成密钥包括:
通过所述密钥生成装置生成所述时间戳;
对所述时间戳与所述主密钥进行运算生成中间密钥;
将所述中间密钥作为输入信息,通过所述单向数据转换算法对所述中间密钥执行转换以生成次生信息;
从所述次生信息中提取信息生成密钥;以及
将所述密钥和所述密钥对应的时间戳相关联。
在一些实施例中,对所述时间戳与所述主密钥进行运算生成中间密钥包括:
对所述时间戳与所述主密钥使用非退化性组合来生成所述中间密钥。
在一些实施例中,对所述时间戳与所述主密钥进行运算生成中间密钥包括:
使用所述时间戳和所述主密钥作为输入信息,通过第二单向数据转换算法生成所述中间密钥,所述第二单向数据转换算法与所述单向数据转换算法 相同或者不同。
在一些实施例中,所述单向数据转换算法使用输入信息作为控制信息执行数据转换以生成输出信息,
所述系统信息还包括一个公共数据库,配置为存储公共数据,所述公共数据包含的比特数远大于主密钥所包含的比特数,以及
所述单向数据转换算法使用所述输入信息作为控制信息,对所述公共数据执行数据转换以生成次生信息。
在一些实施例中,所述数据转换采用组合模运算,
所述公共数据配置为由N个长度相同的数列组成,每个所述数列包含相同的比特数,用一个相同比特数的指示0到N-1的编号标识,并称为种子;
所述输入信息配置为由M个所述编号顺序组成的数列,顺序指向M个由所述编号标识的种子;
所述单向数据转换算法配置为:
将所述输入信息作为控制信息,从所述公共数据中顺序提取所述输入信息中的所述编号指向的M个种子;
将所述M个种子进行模运算,生成一个与所述种子格式相同的次生信息,其中N,M为正整数。
在一些实施例中,所述公共数据配置为包含N*M个元素的首尾相接的环状数列,所述环状数列分割成N个长度为M的单元,每个所述单元用一个0到N-1的编号标识;
种子配置为从一个所述单元开始,沿同一方向延伸跨越整个所述环状数列,形成一个长度为N*M的数列,用所述起始单元编号作为所述种子编号。
在一些实施例中,生成密钥包括:
将所述主密钥作为控制信息,在所述主密钥控制下,通过第三单向数据转换算法将公共数据转换为私密数据;
将所述时间戳作为控制信息,在所述时间戳的控制下,通过第四单向数据转换算法从所述私密数据中生成中间密钥;
将所述中间密钥作为控制信息,在所述中间密钥的控制下,通过所述单向数据转换算法将所述公共数据转换为次生信息;
从所述次生信息中提取信息生成密钥;以及
将所述密钥与对应的时间戳相关联,
其中,所述单向数据转换算法、所述第三单向数据转换算法和所述第四单向数据转换算法使用相同的或者不同的单向算法。
在一些实施例中,所述方法还包括:
接收从配对的密钥生成设备发送的第二时间戳;
根据所述主密钥,依靠所述第二时间戳,通过所述单向数据转换算法生成由所述主密钥和所述第二时间戳中信息共同确定的第二密钥,作为与所述第二时间戳对应的第二密钥。
在一个实施例中,提出了满足所述密钥生成和分发系统安全性的3个前提:
前提1.主密钥始终保持安全,从系统输出的所有信息中,包括从系统中生成和分发的密钥以及用于密钥分发的信息,均无法探测主密钥信息。
前提2.生成的密钥相互独立,根据所有从系统输出的密钥,结合已知公开信息和方法,对推导下一个新生成的密钥没有实质帮助。
前提3.密钥分发安全可行,即密钥可以通过公共信道安全地发送到合法接收者,而不掌握主密钥信息的攻击者不能通过密钥发送途径获取密钥的实质信息。
满足上述3个前提的信息安全系统可以依靠一个主密钥实现满足所需数量的,密钥强度可以和主密钥比特数相当的独立密钥的生成和安全分发,进而构建信息学理论上可证明安全的加密系统。
在另一个实施例中证明了,当单向数据转换算法具备下面4个特征时,采用所述方法的密钥生成系统在运行和应用中满足上述3个前提,从而可以通过所述方法,依靠一个主密钥生成和安全分发满足任意所需数量的密钥强度可以和主密钥比特数相当的独立密钥。
特征1:通过单向数据转换算法可以容易地将输入信息转换成由所述输入信息确定的次生信息,即从输入信息推导出次生信息是确定的和可行的;
特征2:将生成的次生信息转化为对应的输入信息在计算上是不可能的,即根据次生信息不能推测到输入信息的任何实质内容;
特征3:从输入信息到次生信息为非退化性非线性转换,即次生信息的取值空间不小于输入信息的取值空间,从而使不同的输入信息在统计学上可以对应不同的次生信息,并且输入信息的微小变化可导致次生信息中全局性的不能仅靠所述变化量预测的变化,严格的单向数据转换下,输入信息中单 个比特的变化即能引起所生成的次生信息不可预测的全局性变化。
特征4:所述单向数据转换算法可以将任何可以转化为符合输入格式的输入信息实施单向数据转换,生成所述次生信息。具体本发明中,如果输入信息为N比特,取值空间为2 N,则满足0到2 N-1之间的任一信息值都可以作为有效的输入信息,实施所述单向数据转换,生成次生信息。
在一些实施例中,所述时间戳与所述主密钥可以通过单向数据转换算法进行运算生成所述中间密钥;将所述时间戳和所述主密钥中的信息作为输入信息,通过所述单向数据转换算法生成所述中间密钥。
在一个实施例中证明了通过在中间密钥生成过程中引入单向数据转换算法,采用本发明所述方法的加密系统可以有效抵抗密钥碰撞攻击,同时降低所述方法对单向数据转化算法的要求,扩大所述方法的适用范围。
在下面一些实施例中引入一些具有上述4个特征的可用于本发明所述方法的单向数据转换算法,包括开方运算,除法运算,以及一些杂凑函数。
在一些实施例中,所述单向数据转换算法采用在输入信息控制下的公共数据转换;所述密钥生成设备的系统信息进一步增加一个公共数据库,配置为存储不包含大量重复单元的非退化性信息组成的公共数据,所述公共数据包含的比特数可以远大于主密钥和输入信息所包含的比特数;所述单向数据转换算法配置为在所述输入信息的控制下将所述公共数据转化为次生信息。
在一些实施例中展示了所述输入信息控制下的公共数据转换可以采用多种形式;可以将明文作为公共数据,加密密钥作为所述输入信息,利用常用的加密算法实现所述输入信息控制下的公共数据转换;此外,一些由于通过单向转换生成的数据无法通过合适的算法得到复原,从而不适合常规加密算法的数据转换方法,也可以用于本发明所述的方法中。
在一些实施例中,所述输入信息控制下的公共数据转换采用组合模运算;所述公共数据库配置为由N个长度相同的数列组成,每个所述数列包含相同的比特数,用一个0到N-1的编号标识,称为种子;所述输入信息配置为由M个所述编号顺序组成的数列,顺序指向M个由所述编号标识的种子;所述组合模运算配置为从所述公共数据库中顺序提取所述输入信息中所述编号指向的M个种子,将所述M个种子进行模运算,生成一个与所述种子格式相同的次生信息。
在一些实施例中,采用上述组合模运算,所述公共数据库配置为一个包 含N*M个元素的首尾相接的环状数列,所述环状数列分割成N个长度为M的单元,每个所述单元用一个0到N-1的编号标识;所述种子配置为从一个所述单元开始,沿同一方向延伸跨越整个所述环状数列,形成一个长度为N*M的数列,用所述起始单元编号作为所述种子编号。
在一些实施例中,所述单向数据转换算法采用上述输入信息控制下的公共数据转换,可以采用如下流程生成密钥:
将主密钥作为输入信息,在所述主密钥控制下,将公共数据转换为私密数据;生成由不重复的任意信息组成的时间戳,将所述时间戳作为输入信息,在所述时间戳的控制下,从所述私密数据中生成中间密钥;将所述中间密钥作为输入信息,在所述中间密钥的控制下,将所述公共数据转换为次生信息;从所述次生信息中提取信息生成密钥,将所述密钥与对应的所述时间戳相关联。
采用上述流程,可以在常用通讯设备上便捷地实现信息学理论上可证明安全的1024-比特或更高密钥强度的加密算法,从而可以通过所述方法实现真实物理世界中无条件安全的信息交流。
在一些实施例中,所述单向数据转换算法可采用一种以上的单向算法,以便在不同的单向数据转换步骤中采用不同的单向算法。
在一些实施例中,采用所述方法的密钥生成设备还配置为接收从配对的密钥生成设备发送的时间戳,根据所述时间戳中信息,通过所述密钥生成设备,采用所述单项数据转换算法,依靠所述主密钥,生成与所述时间戳对应的密钥。
根据本文描述的另一个实施例,提供了一种密钥生成装置,包括:
系统信息模块,配置为存储或/和生成所述密钥生成装置的系统信息,所述系统信息至少包括一主密钥和至少一种单向数据转换算法,所述主密钥由未公开随机信息组成,所述单向数据转换算法根据输入信息,生成由所述输入信息确定的输出信息,并且由所述输出信息推测或/和推导所述输入信息是不可行的;
密钥生成模块,配置为根据所述主密钥,依靠由不重复的任意信息组成的时间戳,通过至少采用一种所述单向数据转换算法,生成由所述时间戳和所述主密钥中信息共同确定的密钥,将所述密钥与所述时间戳信息相关联;以及
传输模块,配置为将所述时间戳发送给配对的密钥生成装置,其中所述配对的密钥生成装置存储有与所述系统信息相对应的第二系统信息。
在一些实施例中,所述密钥生成模块进一步配置为:
生成所述由不重复的任意信息组成的时间戳;
对所述时间戳与所述主密钥进行运算生成中间密钥;
将所述中间密钥作为输入信息,通过所述单向数据转换算法对所述中间密钥执行转换以生成次生信息;
从所述次生信息中提取信息生成密钥;以及
将所述密钥和所述密钥对应的时间戳相关联。
在一些实施例中,所述密钥生成模块进一步配置为:
对所述时间戳与所述主密钥使用非退化性组合来生成所述中间密钥。
在一些实施例中,所述密钥生成模块进一步配置为:
使用所述时间戳和所述主密钥作为输入信息,通过第二单向数据转换算法生成所述中间密钥,所述第二单向数据转换算法与所述单向数据转换算法相同或者不同。
在一些实施例中,所述装置还包括:
公共数据库,配置为存储公共数据,所述公共数据包含的比特数远大于主密钥所包含的比特数。
在一些实施例中,所述系统信息还包括一个公共数据库,配置为存储公共数据,所述公共数据包含的比特数远大于主密钥所包含的比特数,
其中,所述单向数据转换算法使用输入信息作为控制信息执行数据转换以生成输出信息,
所述密钥生成模块进一步配置为:
使用所述输入信息作为控制信息,通过所述单向数据转换算法对所述公共数据执行数据转换以生成次生信息。
在一些实施例中,所述数据转换采用组合模运算,
所述公共数据配置为由N个长度相同的数列组成,每个所述数列包含相同的比特数,用一个相同比特数的指示0到N-1的编号标识,并称为种子;
所述输入信息配置为由M个所述编号顺序组成的数列,顺序指向M个由所述编号标识的种子;
所述单向数据转换算法配置为:
将所述输入信息作为控制信息,从所述公共数据中顺序提取所述输入信息中的所述编号指向的M个种子;
将所述M个种子进行模运算,生成一个与所述种子格式相同的次生信息,其中N,M为正整数。
在一些实施例中,所述公共数据配置为包含N*M个元素的首尾相接的环状数列,所述环状数列分割成N个长度为M的单元,每个所述单元用一个0到N-1的编号标识;
种子配置为从一个所述单元开始,沿同一方向延伸跨越整个所述环状数列,形成一个长度为N*M的数列,用所述起始单元编号作为所述种子编号。
在一些实施例中,所述密钥生成模块进一步配置为:
将所述主密钥作为控制信息,在所述主密钥控制下,通过第二单向数据转换算法将公共数据转换为私密数据;
将所述时间戳作为控制信息,在所述时间戳的控制下,通过第三单向数据转换算法从所述私密数据中生成中间密钥;
将所述中间密钥作为控制信息,在所述中间密钥的控制下,通过所述单向数据转换算法将所述公共数据转换为次生信息;
从所述次生信息中提取信息生成密钥;以及
将所述密钥与对应的时间戳相关联。
在一些实施例中,所述单向数据转换算法、所述第二单向数据转换算法和所述第三单向数据转换算法使用相同的或者不同的单向算法。
在一些实施例中,所述传输单元进一步配置为接收从配对的密钥生成设备发送的第二时间戳;
所述密钥生成单元进一步配置为使用所述主密钥以及所述第二时间戳作为输入信息,通过所述单向数据转换算法生成密钥,所述密钥与所述第二时间戳信息相关联。
根据本文描述的另一个实施例,提供了一种密钥管理系统,包括:
管理端设备,所述管理端设备包括:
控制模块:配置为给多个用户的每个生成标识其身份的任意信息作为所述用户的用户识别码;
用户信息模块,配置为存储所述用户识别码;
密钥生成模块,包括如前面实施例所述的密钥生成装置并存储有主密钥, 配置为给多个用户的每个生成相应的用户密钥,并且将所述用户识别码和对应密钥传递给对应的用户端设备,作为所述用户的用户密钥。
在一些实施例中,所述密钥生成模块响应从所述用户信息模块发送的用户识别码,将所述用户识别码作为时间戳,生成所述用户识别码对应的密钥,并将所述用户识别码和对应密钥传递给对应的用户端设备,作为所述用户的用户密钥。
在一些实施例中,所述控制模块进一步配置为:
当一个或多个用户的用户密钥丢失时,所述控制模块从所述用户端设备接收对应的用户识别码,
所述用户信息模块进一步配置为对接收的所述用户识别码进行校验以确认所述用户识别码是存储的用户识别码,
所述密钥生成模块将所述用户识别码作为时间戳,生成所述用户识别码对应的用户密钥,并将所述用户密钥反馈给所述用户端设备。
在一些实施例中,所述密钥生成模块进一步配置为:
将不同用户端设备的用户识别码中的信息进行组合生成时间戳,生成用于所述不同用户之间通讯的密钥。
在一些实施例中,所述系统还包括:
设置在所述管理端设备和所述用户端设备之间的一个或多个不同层级的中间管理节点。
在一些实施例中,所述系统还包括:
一个或多个用户端设备,所述用户端设备存储对应用户的用户识别码。
根据本文描述的另一个实施例,提供了一种加密解密装置,包括:
如前面实施例所述的密钥生成装置,配置为生成一次性密钥;
输入端口,配置为读取或输入待加密数据;
格式化单元,配置为将输入端口输入的待加密数据转换为与所述一次性密钥格式相匹配的格式化明文;
加密模块,配置为生成加密时的时间戳,根据所述时间戳中的信息,用所述密钥生成模块生成的一次性密钥与所述格式化明文运算生成主密文,将所述一次性密钥对应的时间戳作为密文标题,合并所述主密文和所述密文标题以生成密文;
发送端口,配置为将生成的密文发送给配对的解密装置。
在一些实施例中,所述加密解密装置,还包括:
接收端口,配置为接收从配对的加密装置发送的密文;
解密模块,配置为解析接收的所述密文以提取主密文以及密文标题中的时间戳,根据所述时间戳中信息,用所述密钥生成模块生成与所述时间戳对应的一次性密钥作为解密密钥,用所述解密密钥解密所述主密文以生成解密后明文;
所述格式化单元进一步配置为将解密后明文转换为复原数据;
输出端口,配置为输出所述复原数据。
根据本文描述的另一个实施例,提供了一种文件管理系统,包括管理端设备和一个或多个用户端设备,
所述管理端设备包括:
密钥管理模块,采用如前面实施例所述的密钥管理系统,配置为存储系统主密钥,并且生成和分发用于系统的每个用户的用户主密钥;
系统加密解密模块,采用如前面实施例所述的加密解密装置,配置为加密解密所述用户端设备与所述管理端设备交流的文件信息;
系统文件模块,配置为存储所述文件管理系统的系统文件,
所述用户端设备包括:
用户加密解密模块,采用如前面实施例所述的加密解密装置,配置为加密解密所述用户端设备与所述管理端设备交流的文件信息。
在一些实施例中,所述管理端设备通过所述密钥管理模块生成和存储所述用户端设备的每个用户的用户识别码,生成所述用户识别码对应的用户主密钥,并将所述用户主密钥和对应的用户识别码分配给每个用户端设备;
所述用户端设备通过所述用户加密解密模块生成时间戳,依靠所述用户主密钥生成所述时间戳对应的一次性密钥,用所述一次性密钥加密文件信息生成主密文,将所述时间戳和所述用户的用户识别码作为密文标题,合并所述主密文和所述密文标题生成密文,将所述密文通过公共信道发送给所述管理端设备,作为所述用户向所述管理端设备提交的文件证明;
所述管理端设备接收从所述用户端发送的密文,通过所述系统加密解密模块解析所述密文,提取主密文以及密文标题中的用户识别码和时间戳;所述密钥管理模块根据所述用户识别码,生成对应的用户主密钥;所述系统加密解密模块根据所述时间戳中信息,依靠所述用户主密钥生成对应的解密密 钥,解密主密文,确认文件信息;
所述管理端设备将确认文件信息的所述密文存入所述系统文件模块。
在一些实施例中,所述管理端设备进一步配置为通过所述密钥管理模块生成目标用户的用户主密钥,作为所述系统加密解密模块的主密钥,通过所述系统加密解密模块加密文件信息生成密文,通过公共信道发送给目标用户端设备;
所述目标用户端设备进一步配置为通过所述用户加密解密模块,接收从所述管理端设备发送的密文,解密所述密文,并恢复文件信息。
在一些实施例中,所述系统还包括:
设置在所述管理端设备和所述用户端设备之间的一个或多个不同层级的中间管理节点。
根据本文描述的另一个实施例,提供了一种信息安全传递系统,包括配对的第一通信设备和第二通信设备,其中
所述第一通信设备包括:
第一密钥生成装置,其使用如前面实施例所述的密钥生成装置,配置为生成一次性密钥作为第一密钥;
第一输入端口,配置为读取或输入第一待发送文件;
第一格式化单元,配置为将输入端口输入的第一待发送文件转换为与密钥格式相同的第一格式化明文;
第一加密模块,配置为通过第一密钥生成装置生成的第一密钥将所述第一格式化明文转换为第一主密文,将所述第一密钥的对应第一时间戳作为第一密文标题,合并所述第一主密文和所述第一密文标题以生成第一密文;
第一发送端口,配置为将生成的第一密文发送给第二通信设备,
所述第二通信设备包括:
第二密钥生成装置,其使用如前面实施例所述的密钥生成装置,配置为生成一次性密钥作为第二密钥;
第二接收端口,配置为接收所述第一发送端口发送的所述第一密文;
第二解密模块,配置为解析接收的所述第一密文以提取第一主密文和第一密文标题中的第一时间戳,根据所述第一时间戳,通过所述第二密钥生成模块生成所述第一时间戳对应的第二解密密钥,使用所述第二解密密钥解密所述第一主密文以生成第二解密后明文;
第二格式化模块,配置为将所述第二解密后明文转换为第二复原数据;
第二输出端口,配置为输出所述第二复原数据作为第二已接收文件。
在一些实施例中,第二通信设备进一步包括:
第二输入端口,配置为读取或输入第二待发送文件;
第二格式化模块同时配置为将所述第二待发送文件转换为与密钥格式相同的第二格式化明文;
第二加密模块,配置为通过所述第二密钥生成模块生成的第二密钥将所述第二格式化明文转换为第二主密文,将所述第二密钥对应的第二时间戳作为第二密文标题,合并所述第二主密文和所述第二密文标题以生成第二密文;
第二发送端口,配置为将所述第二密文发送给第一通信设备;
第一通信设备进一步包括:
第一接收端口,配置为接收所述第二发送端口发送的所述第二密文;
第一解密模块,配置为解析接收的所述第二密文以提取其中的第二主密文以及第二密文标题中的第二时间戳,根据所述第二时间戳,通过所述第一密钥生成模块生成与所述第二时间戳对应的第一解密密钥,使用所述第一解密密钥解密所述第二主密文以生成第一解密后明文;
第一格式化单元同时配置为将所述第一解密后明文转换为第一复原数据;
第一输出端口,配置为输出所述第一复原数据作为第一已接收文件。
根据本发明实施例的密钥生成和分发方法、密钥生成装置、密钥管理系统、加密解密装置、文件管理系统、信息安全传递系统,能够依靠一个主密钥生成满足任意所需数量的密钥强度可以和主密钥比特数相当的独立密钥,并且能够将所述密钥在排他性共享主密钥的合法通讯者之间便捷、安全地分发,进而构建信息学理论上可证明安全的通用的高效加密系统,解决了密码学的根本问题。
此外,所公开的技术可以直接适应于许多其他通信系统和信息安全环境。
借助附图和下面具体实施例中的详细描述,本发明所述密钥生成和安全分发方法及其应用的其它特征和优点将变得更加明显。
附图说明
图1是示出根据本发明实施例的方法生成密钥的示意图。
图2是示出根据本发明实施例的方法生成密钥的另一个示意图。
图3是示出根据本发明实施例的组合模运算的示意图。
图4是示出根据本发明实施例的方法生成密钥的一个具体示例的示意图。
图5是示出根据本发明实施例的密钥生成装置的示意图。
图6是示出根据本发明实施例的密钥管理系统的示意图。
图7是示出根据本发明实施例的加密解密装置的示意图。
图8是示出根据本发明实施例的文件管理系统的示意图。
图9是示出根据本发明实施例的信息安全传递系统的示意图。
具体实施方式
本发明公开了一种密钥生成方法,利用所述方法可以依靠一个主密钥生成和安全分发可以满足所需数量的、密钥强度可以和主密钥比特数相当的独立密钥;可以利用所述方法构建高效、可靠、通用的密钥管理系统,依靠一个主密钥管理系统中多个用户的密钥,所述多个用户可以是在真实世界中数量不受限制的用户;将所产生的密钥作为一次性密钥加密比特数相同的明文信息,可以构建信息学理论上可证明安全的通用的高效加密系统,满足多种信息安全需求。
采用所述方法的系统在应用过程中应满足以下前提,以实现系统的安全性。
前提1:主密钥始终保持安全,从系统输出的所有信息中,无论公开的还是在应用过程中需要保持私密的信息,均无法探测主密钥信息;所述系统的输出信息包括从系统中生成和分发的密钥以及用于密钥分发的信息。
密码学应用中,密文被认为是公开的,明文也可能在日后公开,使用一次性密钥加密文件信息时,通常根据密文和日后公开的文件信息可以相对容易地推导出一次性密钥信息,因此,密码破译中,可以认为一次性密钥在完成信息传输后即成为公开信息;密钥管理系统中,系统管理员通常不希望用户通过分发到的密钥探测主密钥信息;因此,所述前提中,将从所述系统中输出的密钥看作可以用于攻击系统主密钥的信息。
前提2:生成的密钥相互独立,根据所有从系统输出的密钥,结合已知公开信息和方法,对推导下一个新生成的密钥没有实质帮助,也就是说,采 用所述密钥生成方法生成的密钥的实质信息之间没有可以通过现有和将来可预期方法所确定的关系,即所述密钥包含由密钥强度确定的独立信息。
前提3:密钥分发安全可行,即密钥可以通过公共信道安全地分发给合法接收者,不掌握主密钥信息的非法接收者不能通过密钥发送途径获取密钥的实质信息;具体密码学应用中,拥有主密钥的合法接收者可以根据密钥分发信息通过主密钥便捷地生成所要传输的密钥,而不拥有主密钥的攻击者从密钥分发信息和任何公开信息和知识中得不到关于所述分发密钥的实质信息。
满足前提1、2、3的信息安全系统可以依靠一个主密钥实现满足所需数量的具有和主密钥强度相当的独立密钥的生成和安全分发,进而构建信息学理论上可证明安全的加密系统。
现代密码学实践中,要求加密系统中除了可以编码成密钥的部分系统参数信息外,其它系统信息,包括但不限于算法、流程、数据格式、控制参数等均需要对外公开。因此,本发明描述的密钥生成方法以及由此构建的信息安全系统中,除非特别指明,主密钥是系统唯一的私密信息,系统的密钥强度由主密钥比特数和密钥生成方法和加密解密流程确定,因此,上述前提中所述的无法探测、不能推导、不可知、不能获取,等具体定义均取决于所采用系统的密钥强度。
这里,借助密码学实践,我们将密钥强度定义为借助公开信息和已有知识成功推测出由一个密钥加密的信息的困难程度与推测一个N-比特的未公开随机信息的困难程度相当。N-比特随机信息的可能取值均匀地分布在一个大小为2 N的密钥空间,随机推测一个密钥强度为N比特的密钥的成功率为1/2 N。因此,上述前提中所述无法探测、不能推导、不可知、不能获取等,在具体实践中可以定义为:在采用N-比特密钥强度的加密方法加密信息时,依靠密钥以外的信息和知识,每次探测、推导、获取目标信息的成功率不明显大于1/2 N,或者,成功获取由N比特密钥强度的加密方法加密的文件信息所需的尝试次数不明显小于2 N
上述实质信息为密钥中所包含比特的特定排列方式,以便和密钥的长度、格式等根据密码学实践需要公开的信息相区分,避免混淆。所述比特为信息科学领域人员所熟悉的信息基本单元,多个比特的信息可以由对应数量的0或1以特定的排列顺序所确定。
本说明书中主要讨论数字化信息,基本形式为由0或1组成的二进制数列,可以采用其它进制的数列,例如但不限于八进制,十进制,十六进制,以便于人工阅读和识别。所述进制数列和二进制数列之间具有一一对应的可转换关系,本说明书中,这些具有一一对应的可转换关系的数列可以被认为是等价的。
很多形式的可以检测和重复生成的物理信号都是可数字化的,例如可以包括但不限于光波、无线电波、电流脉冲、声波、核辐射、图形、符号,等,均可以通过数字化处理,最终转化为可由计算机处理器识别和加工的二进制编码信息;同时,数字化信息也可以通过转换成合适的物理信号和符号进行传输、加工、或引起响应;这些可数字化的物理信号和符号组合在信息学领域也可以认为与数列等价,从而包括在本说明书所讨论的信息范畴内。
下面,将结合附图详细描述根据本发明实施例的密钥生成方法、密钥生成装置、密钥管理系统、加密解密装置、文件管理系统、信息安全传递系统。
通过介绍本发明的密钥生成方法以及采用所述方法的各种装置或系统,以提供所要求保护的主题的实施方案的示例。下面描述的实施例不限制任何所要求保护的主题,并且任何要求保护的主题可以涵盖与下面描述所不同的方法或系统。所要求保护的主题不限于具有下文所描述的任何一个系统或方法的所有特征的系统或方法,也不限于下面描述的多个或全部所述装置或方法共有的特征。有可能下面描述的系统或方法不是在任何要求保护的主题中陈述的实施方案。在下面描述的系统或方法中公开的,但在本文件中没有要求的任何主题可以是另一个保护工具的主题,例如持续的专利申请,并且在本文件中披露任何此类主题,本申请人,发明人或所有者并不打算放弃,否认或向公众奉献它们。
本发明实施例的描述中通常会采用一些优化、评估和分析演示,以便于相关领域技术人员更好地理解本发明,需要理解的是,其中许多具体细节的阐述是为了提供对本文描述的实施方案的透彻理解,不应作为对本发明中所主张的权利要求的限制。实际实施中,可以采用现有知识和本领域常用的手段对具体的流程和算法进行优化,以便提高效率和方便使用。相关领域技术人员采用本领域熟知的方式对所述实施例中的具体方案进行优化,给出可选用的参数或建议以提高效率和扩大适用范围,或在本文中描述的评估和分析基础上,通过严格的科学论证,可能发现或弥补本文中所提供的评估和分析 的不足部分,并导致一些技术改进;这些可能的技术改进和有益建议在不超过本发明的新颖教学和创造精神的基础上,均不应妨害本发明所主张的权利要求。然而,可被本领域普通技术人员理解的是,有些情况下,本文描述的实施方案在没有这些具体细节的情况下也可以实践。其他情况下,公知的方法,流程和模块没有被详细描述,以免混淆在此描述的实施方案。而且,附图及其描述不应看成是对本文描述的实施方案的范围进行限制。
本文描述的是用于提供数据保护的方法,系统,计算机可读介质和设备的各种实施方案。通常,本文描述的实施方案提供了用于生成加密密钥的方法,所生成的加密密钥用于安全地加密文件。本文描述的实施方案还提供了用于生成对应的解密密钥的方法,即密钥安全分发,所生成的对应的解密密钥用于对所述的加密文件进行解密。通常,本文描述的实施方案属于对称加密范畴,其中所述加密密钥和所述解密密钥是相同的。通常,本文所述的各种实施方案的特征可以彼此以任何组合的方式使用,除非另有说明。
本文描述的实施方案可以处理与密钥生成和管理相关联的问题。尤其是,本文描述的实施方案可以用来提供一次性密钥数据加密,即利用一次性密钥加密与所述一次性密钥比特数相同的明文,从而在确保密钥可通过本发明所述方法安全生成和分发的前提下,对应密文以及加密系统是信息学理论上可证明安全的。
<第一实施例>
图1示出通过本发明所述方法生成密钥的示意图。借助图1,本实施例描述了利用本发明所述方法,借助可以由任意信息组成的时间戳,至少通过一种单向数据转换算法,依靠一个主密钥生成和安全分发满足所需数量,密钥强度可以和主密钥比特数相当的独立密钥的实现方法。
本发明实施例的所述方法通常可以通过密钥生成模块实现;所述密钥生成模块可以用于多种系统,包括但不限于密钥生成装置,密钥管理系统,加密解密装置,文件管理系统,信息安全传递系统等,可以作为系统中通讯设备的一个组成部件,以硬件或/和软件的形式,采用本发明实施例描述的方法,生成密钥,应用于这些通讯设备,实现密钥安全分发和/或安全通讯。
为实现本发明所述方法,可以通过常用技术方法在所述密钥生成模块中生成和/或存储所述主密钥和单向数据转换算法,作为所述密钥生成模块的系统信息。
如图1所述,首先,获取密钥生成装置中存储的系统信息。所述系统信息至少包括一个主密钥101,一个单向数据转换算法102。所述主密钥由未公开随机信息组成,作为系统中唯一的私密信息;所述单向数据转换算法配置为将输入信息转换为由所述输入信息确定的次生信息,但从所述次生信息探测对应的输入信息是不可能的,或者在计算上是困难的。也就是说,所述单向数据转换算法用于对输入信息执行不可逆数据转换以生成输出信息。
在另一个实施例中,系统信息也可以根据使用场景灵活地生成。例如,两个或多个设备可以灵活地设置单向数据转换算法里的各个参数。两个或多个设备还可以生成相同的主密钥。
为实现密钥安全分发,所述方法引入可采用任意信息的时间戳。
然后,使用所述主密钥以及所述时间戳作为输入信息,通过所述单向数据转换算法生成密钥,将所述密钥与所述时间戳信息相关联。
最后,将所述时间戳发送给配对的密钥生成装置,其中所述配对的密钥生成装置存储有与所述系统信息相对应的第二系统信息。
所述时间戳中的信息是广泛的,可以采用不重复出现的任意信息。
在一个实施例中,通过所述密钥生成装置生成所述时间戳。可以将生成密钥时的时间作为时间戳;采用时间作为时间戳,可以确保时间戳的取值空间是开放的且所述时间戳中信息不出现重复。
另一个实施例中,可以采用加密时的时间附加一些冗余随机信息作为时间戳;采用上述时间戳,可以在保持时间戳取值空间开放且时间戳中信息不重复出现的同时,将所述冗余随机信息作为缓冲,使时间戳在保持固定格式的情况下,具有较好的可扩充性;例如可以随着加密频率的提高扩充时间编码下限,随着系统使用年限的增加扩充年份编码。
具体地,如图1所示,所述密钥生成模块通过下述方式生成密钥:
生成时间戳111;将时间戳111与主密钥101组合生成中间密钥112;将中间密钥112作为输入信息,通过单向数据转换算法102生成次生信息113;从次生信息113中提取信息生成密钥114,将密钥114与对应的时间戳111相关联。
所述单向数据转换算法具有以下特征:
特征1:通过单向数据转换算法可以容易地将输入信息转换成由所述输入信息确定的次生信息,即从输入信息推导出次生信息是确定的和可行的;
特征2:将生成的次生信息转化为对应的输入信息在计算上是不可能的,即根据次生信息不能推测到输入信息的任何实质内容;
特征3:从输入信息到次生信息为非退化性非线性转换,即次生信息的取值空间不小于输入信息的取值空间,从而使不同的输入信息在统计学上可以对应不同的次生信息,并且输入信息的微小变化可导致次生信息中全局性的不能仅靠所述变化量预测的变化,严格的单向数据转换下,输入信息中单个比特的变化即能引起所生成的次生信息不可预测的全局性变化。实践中,可以采用次生信息的比特数明显大于输入信息的比特数并且引入非线性算法或非线性变换。
特征4:所述单向数据转换算法可以将任何可以转化为符合输入格式的输入信息实施单向数据转换,生成所述次生信息。具体本发明中,如果输入信息为N比特,取值空间为2 N,则满足0到2 N-1之间的任一信息值都可以作为有效的输入信息,实施所述单向数据转换,生成次生信息。
所述密钥生成模块将密钥114对应的时间戳A发送给配对的密钥生成模块,所述配对的密钥生成模块采用相同的系统信息;
配对的密钥生成模块接收到时间戳A后,通过前面所述方法,根据相同的系统信息,采用相同的步骤,生成时间戳A对应的密钥A,实现密钥传输。
整个密钥生成和传输过程中,中间密钥仅出现在计算中,存在于计算机的内存或缓存中,系统的输出信息中不包括中间密钥信息。
所述密钥生成和分发系统中,主密钥是唯一的私密信息,其它系统信息,包括但不限于系统结构、密钥格式、时间戳格式、流程等,均可以保持公开。
下面证明当单向数据转换算法102同时具备上述特征1、2、3、4时,采用所述方法的密钥生成和分发系统在运行和应用中可以满足上述前提1、2、3,从而可以通过所述方法,依靠一个主密钥生成和安全分发所需数量的密钥强度和主密钥比特数相同的独立密钥。
证明如下:
系统输出的全部信息包括时间戳,以及可能用于加密文件信息或分配给系统所属对象的密钥,除此之外没有其它可以用于探测主密钥的信息。采用符合特征2的单向数据转换算法,从次生信息中无法探测中间密钥的实质信息,因此,即使生成的密钥中的信息在使用后因为各种原因被全部暴露,从这些暴露的密钥信息中推测到的部分甚至全部次生信息中也不能推测到中间 密钥信息,从而得不到主密钥的实质信息;由于时间戳是由可以是任意的,完全独立于所述密钥生成方法和系统信息的可以通用的信息组成,时间戳也不暴露系统信息和主密钥信息。因此,主密钥可以在密钥生成系统的运行中保持安全,前提1满足。
所述密钥生成设备中,主密钥和系统信息是固定的,最终决定输出不同次生信息和密钥的是可以采用不同取值的时间戳。采用可以是不重复的任意信息组成的时间戳,时间戳的取值空间是开放的,时间戳中的信息可以是独立的。通过时间戳与主密钥组合生成中间密钥,采用非退化性组合,中间密钥可以继承时间戳中的独立信息。采用符合特征3和4的单向数据转换算法,任何中间密钥都可以转化为有效的输入信息,生成可以继承所述中间密钥中独立信息的独立次生信息,从而可以从所述独立次生信息中选出独立密钥。前提2满足。
采用非退化性组合生成中间密钥,中间密钥可以继承主密钥的密钥强度,因此,即使采用短的时间戳,也能通过中间密钥将主密钥的密钥强度传递给所述次生信息,进而从所述次生信息中生成可以具有和主密钥相同密钥强度的独立密钥。
如有必要,可以采用和主密钥比特数相同的时间戳,通过图1所示方法依次生成中间密钥、次生信息、密钥;采用长的时间戳也很容易在所述密钥生成系统中实现;在选用次生信息的比特数明显大于密钥比特数的情况下,采用长的时间戳对生成次生信息和对应密钥所需的计算量和系统的信息处理效率无明显影响。时间戳取值空间的开放性,也确保可以通过时间戳生成任意所需数量的密钥。
通过所述方法生成可以通过时间戳便捷分发的密钥是显而易见的。采用符合特征2和3的单向数据转换算法,中间密钥单个比特的变化即会引起所生成的次生信息不可预测的全局性变化,从而在不暴露中间密钥实质信息的情况下,根据时间戳的变化无法推测对应次生信息的变化;因此,采用图1所示的密钥生成流程,确保中间密钥实质信息不暴露,根据时间戳中信息无法推测对应的次生信息以及从中生成的密钥,从而可以通过时间戳安全分发密钥。前提3满足。
因此,采用符合特征1、2、3、4的单向数据转换算法,确保主密钥实质信息不通过上述密钥生成和分发过程以外的途径被暴露,并且在应用过程中 保持中间密钥实质信息不暴露,可以通过本发明实施例所述方法,借助所述时间戳,依靠一个主密钥生成和安全分发可以满足任意所需数量的,密钥强度可以与主密钥比特数相当的独立密钥。
在另一个实施例中,所述时间戳和主密钥的组合可以采用简单的非退化性组合方式,例如模运算或者简单的信息相加,生成中间密钥。
根据前面的分析,在采用符合特征1、2、3、4的单向数据转换算法以及不公开中间密钥信息的情况下,上述简单组合也可以确保根据时间戳中信息,依靠主密钥生成任意所需数量的独立密钥,主密钥信息在密钥生成和分发过程中保持安全,且从所述时间戳中信息探测不到由中间密钥通过单向数据转换算法生成的次生信息,实现满足任意所需数量的独立密钥的生成和安全分发。
密码学实践中,存在密钥碰撞,即两个独立选择或独立生成的密钥相同;密钥碰撞通常可以通过扩大密钥空间,也就是增加密钥强度得到避免;相同密钥强度下,可以通过采用随机密钥,避免将已知的容易记忆的信息作为密钥,保持有效的密钥空间,减少密钥碰撞。
本发明所述实施例中,和常用加密方法一样,主密钥的直接碰撞不在考虑之列;由于本发明实施例通常会通过一个主密钥生成大量的一次性密钥,应用过程中,可以考虑这些一次性密钥间的碰撞,避免攻击者通过碰撞的一次性密钥对系统进行攻击。尽管,后面会描述到,采用本发明所述方法的密钥生成是非常高效的,可以选用非常高的密钥强度,例如,根据第二实施例中的描述,可以相对容易地在常用通讯设备上实现1024比特或者更高强度的密钥,从而可以在统计学意义上确保这些一次性密钥间的随机碰撞在真实世界中不可能发生。
设想最坏的情况,一个能力强大的攻击者可以通过密文和解密后明文获取采用所述方法的密钥生成系统中输出的所有一次性密钥及对应时间戳,同时用自己的主密钥采用相同的方法生成大量的一次性密钥,期望与获取的一次性密钥发生碰撞,从发生碰撞的一次性密钥中探测对方主密钥信息。尽管,如前所述,这种攻击对高强度密钥收效甚微以至于在真实世界中不可能发生。
如果观测到密钥碰撞,攻击者从碰撞的密钥中可以容易地从自己的系统中推导出生成对应密钥的中间密钥信息。
上述通过时间戳和密钥简单组合的中间密钥生成方式对上述密钥碰撞攻 击是脆弱的,例如,攻击者可以从所述中间密钥信息和对应的时间戳信息中相对容易地推导出主密钥信息,从而破解整个系统。
在另一个实施例中,为避免上述碰撞攻击,主密钥和时间戳通过单向数据转换算法生成中间密钥。
下面,将参考一个具体示例描述密钥生成和分发具体示例:
在该示例中,设定固定的6位数主密钥763403,单向数据转换算法采用开方算法。
时间戳为加密时的日期例如0803(八月三日)。
采用下列步骤生成和分发密钥:
生成时间戳:0803;
时间戳与主密钥组合采用相乘取100万以下余数,即最后六位数,作为中间密钥:
763403*0803=613012609,取最后六位,得到中间密钥012609;
将中间密钥作为输入信息,通过单向数据转换算法(开方运算)生成次生信息:
将输入信息012609开根号,得到,112.28980363327740720570916632036,取小数点6位以后的18位数字,得到a:633277407205709166;
将输入信息012609加上1,即012610再开根号,得到,112.2942563090383532372986924121,取小数点6位以后的18位数字,得到b:309038353237298692;
将a和b进行逐位模运算,得到次生信息。
a:633277407205709166
b:309038353237298692
逐位相加,取二者之和的个位数;
次生信息 932205750432997758
从次生信息中提取信息,例如中间六位,750432,作为密钥,将密钥750432用时间戳0803标记;
将时间戳0803发送给配对的密钥生成装置,配对的密钥生成装置依靠同样的主密钥763403,采用相同的步骤,生成时间戳0803对应的密钥750432,实现密钥传递。
此外,当日期是0804(八月四日)时,日期0804的密钥生成和分发步骤:
生成时间戳:0804;
时间戳与主密钥组合:763403*0804=613776012,取最后六位,得到中间密钥776012;
将中间密钥776012作为输入信息;
将输入信息776012开根号,得到,880.91543294461585905541320952872,取小数点6位以后的18位数字,得到a:944615859055413209;
将输入信息776012加上1,即776013再开根号,得到880.9160005358059109568403944211,取小数点6位以后的18位数字,得到b:535805910956840394;
将a和b进行逐位模运算,得到次生信息。
a:944615859055413209
b:535805910956840394
次生信息 479410769901253593
从次生信息中提取信息,例如中间六位,769901,作为密钥,将密钥769901用时间戳0804标记;
将时间戳0804发送给配对的密钥生成装置,配对的密钥生成装置依靠同样的主密钥763403,采用相同的步骤,生成时间戳0804对应的密钥769901,实现密钥传递。
上面流程有以下特点:
1.时间戳形式和内容可以和主密钥以及密钥生成方案毫不相关,因此不暴露主密钥信息。
2.时间戳可以和主密钥组合,生成中间密钥,进而通过单向数据转换生成确定的次生信息和密钥,而从次生信息和密钥推测对应的中间密钥是不可能的,进而也不能推测主密钥,因此生成的密钥不暴露主密钥信息。
3.在没有和主密钥组合生成中间密钥的情况下,从时间戳以及时间戳的变化推测对应的密钥也是不可能的,因此,密钥可通过时间戳安全分发。上述形式非常接近的时间戳0803和0804对应的密钥值就大相径庭。
可以通过合适长度的时间戳生成所需数量的不重复的密钥,例如采用8位数时间戳可以生成1亿个密钥。
图2示出了主密钥和时间戳通过单向数据转换算法生成中间密钥,进而生成次生信息和密钥的一个可用流程。与图1的示例不同的是,图2的示例中通过单向转换算法生成中间密钥。
具体地,将主密钥201和时间戳211作为输入信息,通过单向数据转换算法202生成中间密钥212;将中间密钥212作为输入信息,通过单向数据转换算法203生成次生信息213,从次生信息213中提取信息生成密钥214,将密钥214与对应的时间戳相关联。
上述实施例中,由于采用了单向数据转换算法生成中间密钥,从主密钥和时间戳到中间密钥的变换是非线性的,时间戳中单个比特的变化将引起所生成的中间密钥信息的不可预测的全局性变化。因此,即使攻击者能够通过上述密钥碰撞攻击获取少量中间密钥信息,也无法从所述中间密钥和对应时间戳信息中有效探测主密钥实质信息。因此,采用上述方式生成中间密钥可有效对抗上述基于密钥碰撞的攻击。
在一些实施例中描述了一些可用于本发明所述方法的单向数据转换算法。应当理解,这些实施例仅用于表明可用于本发明所述方法的单向数据转换算法是普遍存在的,不作为对本发明中所主张的权利要求的限制,任何人构建的可适用于本发明中描述的密钥生成方法及其相关信息安全系统的单向数据转换算法均不应妨害本发明的新颖性以及本发明所主张的权利要求。
符合所述特征1、2、3、4的单向数据转换算法是普遍存在的。
在一个实施例中,例如可以通过开方运算,或其它可以根据一个输入数值生成由所述输入数值确定的无理数的运算,生成可由所述输入数值确定的满足所需任意长度的次生信息。
具体地,例如可以采取如下步骤:
将输入信息数字化,将所述数字化信息转化为非负整数N作为输入值。
计算
Figure PCTCN2022115838-appb-000001
精确到小数点后满足所需长度的数值,舍弃整数部分以及紧邻小数点的与N至少等长的小数部分,选取此后部分的确定长度的数值a;
计算
Figure PCTCN2022115838-appb-000002
精确到小数点后满足所需长度的数值,舍弃整数部分以及紧邻小数点的与N至少等长的小数部分,选取此后部分的确定长度的数值b;
将a和b逐位进行以N的进制为模的模运算,生成次生信息。
下面采用十进制数,N=1889演示具体计算过程,对应输入信息为1-8-8-9,次生信息长度为24位,实际应用中N将是一个非常大的数,次生信息的位数也会很长;
计算
Figure PCTCN2022115838-appb-000003
舍弃整数部分以及小数点后4位数字,得到2762420146175670116696808,取其中24位数字,得到a为276242014617567011669680;
计算
Figure PCTCN2022115838-appb-000004
舍弃整数部分以及小数点后4位数字,得到1713900185020498627353631,取其中24位数字,得到b为171390018502049862735363;
将a和b逐位进行以10为模的模运算,生成次生信息,具体操作如下:
a:276242014617567011669680
b:171390018502049862735363
以10为模的模运算;
次生信息:347532022119506873394943
上述以10为模的模运算中,a和b中对应位置的数字逐位相加,如果二者之和小于模数10,计算结果取二者之和,如果二者之和大于模数,将二者之和减去模数10或10的整数倍,将小于模数10的非负整数作为计算结果。上述方法可以推广到所有进制数的模运算。
上述开方运算为具备特征1、2、3、4的单向数据转换算法,证明如下:
将输入数值进行开方运算生成确定的所述次生信息在计算上可行,特征1具备。
很显然,通过模运算,上述a和b可以选择任何取值的同样长度的数列,生成目标次生信息;例如所述次生信息的首位数字为3,a或b的首位数字可以是0到9中的任何一个数字,通过配对,例如0和3、1和2、2和1、3和0、4和9、5和8、6和7、7和6、8和5、9和4,由上述模运算得到3,其它位置的数字同样如此;因此从所述次生信息中推测a和b是不可能的,从而也不能得到N以及输入信息;另外,由于舍弃了整数和高位小数部分,输入值N中单个数值变化即能引起生成的a或b以及次生信息全局性的变化,因此上述数据转换是非线性的。特征2具备。
显然地,任何输入信息均可以转换成小于其取值空间值的确定的非负整数,从而可以作为合法输入;上述计算利用了N和N+10不可能同时为完全 平方数的常识,确保可以输出任意所需长度的非0次生信息,特征3、4具备。
从上面的计算可以看出,从a或b推测N也是困难的,上述算法还可以进一步优化。
上述演示和后面的演示中采用十进制运算是为了便于更广泛领域的相关技术人员能够更好地理解本发明。实际计算中,采用二进制以及可以和二进制方便转换的八进制或十六进制更为方便;采用二进制后,上述模运算可以通过更适合计算机的XOR操作完成。
在另一个实施例中,借助公共数据,可以通过除法运算构建高效的单向数据转换算法。
将输入信息转化为数值形式,例如形式如x 1x 2x 3…x i-2x i-1x iy 1y 2y 3…y i-2y i-1y i
采用数值形式的公共数据,例如形式如z 1z 2z 3…z k-2z k-1z k
有利地,k远大于2i;
计算1z 1z 2z 3…z k-2z k-1z k1/1x 1x 2x 3…x i-2x i-1x i1,即将1z 1z 2z 3…z k-2z k-1z k1除以1x 1x 2x 3…x i-2x i-1x i1,计算至小数点后足够长的位数,舍弃计算结果整数部分与输入信息等长的高位数字,选取此后部分与公共数据等长的数值a;
计算时将数值前后各加入一位非0数字可有效避免由于输入信息和公共数据中前后出现较多的0值,使计算结果的格式发生较大变化。
计算1z 1z 2z 3…z k-2z k-1z k1/1y 1y 2y 3…y i-2y i-1y i1至小数点后足够长的位数,舍弃计算结果整数部分与输入信息等长的高位数字,选取此后部分与公共数据等长的数值b;
将a和b逐位进行以所用数值进制为模的模运算,生成次生信息。
下面用8位十进制数值输入信息3-7-2-8-1-5-9-6演示计算过程,转换后的输入信息格式为3728-1596,公共数据为24位数字367368971209437083569112,实际应用时输入信息和公共数据长度远大于上述示例;
计算13673689712094370835691121/137281,得到99603657549802018019.1805 20246793,舍弃整数部分8位高位数字,得到549802018019.180520246793,选取24位数值,得到a为549802018019180520246793;
计算13673689712094370835691121/115961,得到 117916279715545492326.653 96986918,舍弃整数部分8位高位数字,得到9715545492326.65396986918,选取24位数值,得到b为971554549232665396986918;
将a和b逐位进行以10为模的模运算,生成次生信息,具体操作如下:
a:549802018019180520246793
b:971554549232665396986918
以10为模的模运算;
次生信息:410356557241745816122601
上述除法运算为具备特征1、2、3、4的单向数据转换算法,证明如下:
通过除法运算从所述输入信息生成确定的次生信息是运算上可行的,特征1具备。
由于在次生信息生成过程中采用模运算,从次生信息中推测a和b是不可能的,从而也不能推测输入信息,特征2具备。
从上述除法运算中可以输出由公共数据长度决定的明显大于输入信息长度的有效次生信息,确保从输入信息到次生信息为非退化性变换;由于放弃了除法运算结果的高位数字,输入信息单个数值变化即能引起计算数值全局性的变化,因此上述数据转换是非线性的。特征3具备。
显然地,任何输入信息均可以转换成小于其取值空间值的一个确定的非负整数,从而可以作为合法输入。特征4具备。
从上面计算可以看出,小数部分出现循环前,从a或b推测输入信息也是困难的。
上述除法单向数据转换算法生成密钥的计算速度与密钥长度成反比,与目前最快的加密算法速度相当。
所述公共数据可以通用于采用不同主密钥的所述方法中,作为系统的公共信息,可以公开存储和传输,主密钥仍是系统中唯一需要与不同的合法通讯者共享的可变私密信息;在现有信息和计算机技术条件下,引入所述公共数据不增加采用本发明所述方法的通讯设备的额外信息存储负担。
本实施例中采用的除法运算以及后面实施例描述的其它单向数据转换算法中,对公共数据的随机性要求不高,只要不出现大量重复片段的数字信息均可作为合格的公共数据,例如,可以采用计算机附件中的随机数生成器生成公共数据。
另外,除了极特殊的密钥,例如全部由0组成,本实施例的除法运算中,在次生信息的长度远大于输入信息长度但还没有接近输入信息所对应的非负整数值的情况下,可以用1或其它简单的数值作为默认值,取代所述公共数据。上述前提很容易满足,例如采用上述8位数的输入信息3-7-2-8-1-5-9-6,满足上述前提的次生信息的长度可以达到数千位。
一些实施例中,所述单向数据转换算法可以采用输入信息控制下的公共数据转换。
所述密钥生成模块的系统信息在所述主密钥和单向数据转换算法的基础上,增加一个公共数据库,配置为存储公共数据,所述公共数据可以配置为采用通过常用计算机附件中的随机数生成器生成的随机数字。
所述输入信息控制下的公共数据转换配置为,在所述输入信息的控制下,将所述公共数据转换为次生信息。
可以借助常用的加密算法构建所述输入信息控制下的公共数据转换,或直接将常用的加密算法作为所述输入信息控制下的公共数据转换。
常用的加密算法,例如DES、AES、等,其基本功能是在一个密钥的控制下将明文转换成密文,并且通常明文以及转换后的密文的比特数要远大于密钥的比特数;如果将常用加密算法的密钥作为输入信息,待加密的明文作为公共数据,通过所述加密算法生成的密文作为次生信息,则常用加密算法的加密过程为具备特征1、2、3、4的单向数据转换算法。证明如下:
通过密钥将明文便捷地转换为密文是所有加密算法的基本功能,因此利用这些加密算法可以便捷地在输入信息(密钥)的控制下将公共数据(明文)转化为次生信息(密文),特征1具备;
通常的加密算法要求从密文推导明文是不可能的或者计算上是不可行的,计算的困难程度决定了加密方法的密钥强度;在使用同一密钥多次加密不同明文的常用加密算法中,根据密文和对应明文推测密钥也是不可行的。特征2具备。
有效的加密算法也要求从密钥和明文到密文的变换是非线性的,要求密钥或明文中信息的微小变化即可引起所生成密文的不能根据密钥或明文中信息的变化量所预测的全局性变化;通过一个密钥加密比特数远大于所述密钥比特数的明文数据生成远大于所述密钥比特数的密文也是常用加密算法的基本要求,确保从输入信息到输出信息为非退化性转换。特征3具备。
除了公共密钥算法,常用的加密算法中,符合密钥格式的任何比特组合均可用作密钥,成为有效输入信息,特征4具备。
与常用加密算法的应用场景不同,本发明所述方法中,中间密钥是作为一次性输入信息参与所述公共数据转换生成次生信息和密钥,因此,针对常用加密算法的攻击对采用本发明所述方法构建的加密方法和信息安全系统通常是无效的。
因此,很多已有加密算法可以作为本发明中所述方法的单向数据转换算法。
在另一些实施例中,可以从很多杂凑函数中选择具备特征1、2、3、4的单向数据转换算法。
在另一个实施例中,所述输入信息控制下的公共数据转换采用组合模运算。所述公共数据库可以配置为由N个长度相同的数列组成,用0到N-1的编号标识,称为种子,每个所述种子含有相同的比特数;相应地,所述输入信息配置为由M个编号顺序组成的数列,每个所述输入信息顺序指向M个由所述编号标识的种子。
所述单向数据转换算法可以采用如下方式:
顺序提取所述输入信息中所述编号指向的M个种子;将所述M个种子进行模运算,生成一个与所述种子格式相同的次生信息。
所述组合模运算为具备特征1、2、3、4的单向数据转换算法,证明如下:
从所述输入信息中选择M个由所述输入信息中所述编号确定的种子进行模运算可以便捷地生成由所述输入信息确定的次生信息,特征1具备;
次生信息是根据所述输入信息中的编号选取公共数据库中对应的种子,将这些种子通过模运算生成;根据模运算的特点,如前所述,任何一个与次生信息格式相同的数列都可以与合适的相同格式的数列通过模运算生成所述次生信息,因此,尝试完所有种子组合前,不能排除所述公共数据中的任何一个种子;所述输入信息中编号的不同组合数量,即可能的上述种子组合方式,等于所述输入信息的取值空间;在隐藏所述输入信息的情况下,从所述次生信息探测对应输入信息的困难程度不小于随机猜测所述输入信息,因此,从所述次生信息探测不到对应输入信息的实质信息。特征2具备。
由于输入信息由种子编号组成,所述输入信息中单个比特的改变将改变一个编号值,从而改变参与组合的种子,由于次生信息与种子等长,改变参 与组合的单个种子将引起所生成的次生信息的全局性变化,因此,所述组合模运算符合严格的非线性变换;并且,生成的次生信息长度可以明显大于所述输入信息长度,确保从输入信息到次生信息为非退化性转换。特征3具备。
显然地,任何输入信息均可转换为所述编号序列,从而可以作为合法输入信息。特征4具备。
在保持数据库中种子信息不公开的情况下,所述组合模运算为严格的单向数据转换算法;在公开数据库中种子信息的情况下,需要采用前面所述的将主密钥和时间戳作为输入信息,通过单向数据转换算法生成中间密钥;采取上述单向数据转换算法生成中间密钥,时间戳中单个比特的变化将引起中间密钥不可预测的全局性变化,在不公开中间密钥信息的情况下,从时间戳中信息变化无法推测所述次生信息和由所述次生信息生成的密钥,所述组合模运算符合严格的单向数据转换。
采组合模运算,在种子个数足够多的情况下,可以显著提高密钥生成效率。与除法运算相比,在采用2 N个种子的情况下,组合模运算的效率可提高接近N倍。例如选择256=2 8比特密钥的密钥生成系统,除法运算生成密钥需要约256次加法运算,如果采用256个种子,每个种子编号为8比特,组合模运算仅需32次模加法运算,效率提高8倍。
在另一个实施例中,单向数据转换算法采用组合模运算,公共数据库配置为一个包含N*M个元素的首尾相接的环状数列,所述环状数列分割成N个长度为M的单元,每个所述单元用一个0到N-1的编号标识;将所述环状数列分割成长度为M的单元是为了能够进行移位模运算,后面将详细描述;
所述种子配置为从一个所述单元开始,沿同一方向延伸跨越整个所述环状数列,形成一个长度为N*M的数列,用所述起始单元编号作为对应种子编号。
从所述N*M个元素形成的环状数列中可以确定N个与所述环状数列比特数相同的种子;采用环状数列可以用最小的公共数据库容量维持最大数量的包含最多比特数的种子。
下面结合图3描述所述组合模运算的一个具体示例。
如图3所示,公共数据库是一个64位二进制环状数列,分为16个4-比特单元,所述单元顺序用从0000到1111的4-比特二进制编号标识。实际应用中,环状数列的长度应该大得多。
从所述二进制环状数列中可以衍生出16个种子,每个种子从一个所述单元开始,跨越整个环状数列,形成一个与环状数列等长的64-比特二进制数列,将所述单元的编号作为对应种子编号。
例如,如图3所示,编号0101的种子从环状数列中编号0101的单元‘1001’开始,顺序延伸至编号1111的单元‘1100’,进一步跨越编号1111的单元,与起始的编号0000的单元‘1010’相接,结束于编号0100的单元‘0110’,形成一个长度为64-比特的二进制数列。
输入信息为16-比特二进制数列,顺序包含4个种子编号:1010-0110-0111-0101。
组合模运算采用如下步骤:
顺序选取所述输入信息中对应编号的种子:1010、0110、0111、0101,将所述种子按照选取顺序进行编号,如图3所示,顺序编号为0号到3号;
在模运算前,先将选取的种子进行移位操作,将选取的种子数列的比特沿同一方向移位与对应顺序编号值对应的位数;例如,如图3所示,0号种子1010保持不变,1号种子0110的序列后移1位,最后多出的1位数字折叠回来,保持数列长度不变;采用同样的方式,2号和3号种子序列分别后移2位和3位;折叠回来的数字在图3中用下划线标出;
将上述实行移位操作后的数列进行模运算,生成次生信息。采用二进制数列,模运算变成了方便计算机操作的XOR运算。对于多个数列的逐位XOR运算,计算时只需统计对应位置上1出现的次数,奇数个1结果为1,偶数个1结果为0。
采用移位模运算,可以确保从包含相同种子的不同顺序组合的输入信息中生成不同的次生信息,从而使次生信息和输入信息在统计学上保持一一对应关系。
明显地,上述组合模运算中,输入信息中单个比特的变化将引起所生成的次生信息的不可预测的全局性变化,确保从输入信息到次生信息的转换符合严格的非线性变换。
显然地,上述组合模运算中,全部为0组成的输入信息0000-0000-0000-0000指向的是编号为0000的种子的4个不同变种,相当于4个不同的数列,所述输入信息和其它输入信息具有相同的复杂程度;因此,不同于常用算法,组合模运算中,在固定输入信息格式的情况下,所有的输入信息具有相同的 复杂程度。
在一些实施例中,借助图1和图2中描述的流程,可以采用上述实施例描述的不同的单向数据转化算法,不同的中间密钥生成方式,以及这些单向数据转换算法和中间密钥生成方式的不同组合,构建适合具体用途的密钥生成方法。
借助上述实施例,本说明书展示了可以通过本发明所述方法,借助可采用任意信息的时间戳,至少采用一种单向数据转换算法,依靠一个主密钥生成和安全分发可满足任意所需数量的、密钥强度可以和主密钥比特数相当的独立密钥。
回到图1,上述方法通过以下数据转换链从时间戳生成密钥:时间戳+主密钥→中间密钥→次生信息→密钥,所输出的时间戳和密钥处于数据转换链的两端。
由于中间密钥→次生信息的转换过程中采用了单向数据转换算法,隔断了从所生成的次生信息和密钥推测前面信息,包括中间密钥和主密钥的可能性,确保系统可以随意地输出不影响主密钥安全性的密钥;由于时间戳中信息的任意性,可以独立于密钥生成方法,因此用于分发密钥的时间戳也不暴露任何系统信息;上述特征确保密钥生成和应用过程中系统唯一的私密信息主密钥始终保持安全。
借助上述实施例描述的用于本发明所述方法的单向数据转换算法的非线性特征使得中间密钥单个比特的改变将引起对应次生信息和密钥中信息的全局性变化;不公开中间密钥信息,隔断了从时间戳中信息变化引起的中间密钥变化中推测所生成的次生信息和对应密钥的途径,从而可以通过时间戳安全地分发密钥。一些实施例中,在时间戳+主密钥→中间密钥的过程中引入单向数据转换算法,进一步降低了对单向数据转化算法的要求,扩大所述方法的适用范围。
所述系统中,包括主密钥的系统信息是固定的,最终决定密钥信息的是时间戳。所述可选用任意信息的时间戳具有开放的取值空间,保证了时间戳中信息的独立性从而可以生成任意所需数量的与所述时间戳对应的独立密钥。
作为系统中唯一的私密信息,主密钥参与中间密钥的生成。采用时间戳和主密钥通过非退化性组合生成中间密钥,保证了中间密钥一方面可以继承 了主密钥的密钥强度,使所述方法可以借助较短的时间戳便捷地生成和分发与主密钥强度相当的密钥,一方面继承了时间戳中的独立信息,使系统通过可采用任意信息的时间戳经过中间密钥生成独立密钥。
因此,本发明所述方法借助可采用任意信息的独立时间戳与主密钥通过非退化性组合生成不对外公开的中间密钥,通过单向数据转换算法将中间密钥转化为次生信息,从次生信息中提取密钥,同时实现了现有技术难以达到的两个目标:
1.时间戳中信息的任意性,使得采用本发明所述方法的系统可以采用独立于系统和算法从而不暴露系统信息的通用时间戳分发密钥,消除了在密钥分发过程中攻击系统的可能性,同时消除了从通用的时间戳中信息探测依靠系统信息,从主密钥中生成的继承了主密钥密钥强度的次生信息和密钥的可能性,从而可以根据上述方法构建一个理想的密钥安全分发方案;
2.时间戳中信息的独立性,使得由时间戳和主密钥通过非退化性组合生成的中间密钥继承了时间戳中的独立信息,保证了由中间密钥通过单向数据转换算法生成的次生信息和密钥的独立性;因此,即使在使用后次生信息和密钥信息全部暴露,从所有已生成和使用的密钥信息中也无法推测新生成和发送的密钥的实质信息;从而可以根据上述方法构建一个理想的密钥生成机制。
上述实施例中,通过引入时间戳和主密钥经非退化性组合生成中间密钥的方式,同时产生了两个有益的结果:
1.中间密钥可以继承主密钥的密钥强度,因此,可以采用短的时间戳生成和分发由主密钥比特数确定的高强度密钥,实现便捷的密钥生成和分发;
2.可以采用密钥生成时的时间作为时间戳,同时确保了时间戳中信息不重复且所能生成时间戳的数量是开放的,从而确保通过所述时间戳生成的中间密钥、次生信息、密钥的数量是开放的,实现生成和分发任意所需数量的独立密钥。
上述实施例中,将时间戳和主密钥作为共同的输入信息,通过非退化性单向数据转换算法生成可以同时继承主密钥密钥强度和时间戳中独立信息的密钥;借助时间戳中信息的任意性和取值空间的开放性,通过可独立于密钥生成方法的通用的时间戳生成和安全分发数量不受限制的密钥。上述实施例 中同时描述了采用所述方法的一些具体的密钥生成流程,以及可用于所述方法的单向数据转换算法,并对所述算法的单向性和流程的安全性进行了初步评估。
借助本实施例中所描述的方法,本发明解决了可满足任意所需数量的,具有所需密钥强度的独立密钥的便捷生成和安全分发问题。将所述时间戳作为用户识别码,可以利用所述方法构建通用可靠的密钥管理系统,依靠一个主密钥高效、便捷地管理可以包含任意数量用户的复杂系统的密钥;将所述密钥作为一次性密钥加密比特数相同的明文信息,将对应时间戳作为解密线索,可以利用所述方法构建信息学理论上可证明安全的通用加密算法,依靠一个排他性共享主密钥,实现高效、便捷、无限制的安全信息交流。
<第二实施例>
下面,将结合图4描述根据第二实施例的生成密钥的一个具体示例。单向数据转换算法采用在输入信息控制下的公共数据转换。也就是说,所述单向数据转换算法使用输入信息作为控制信息执行数据转换以生成输出信息。
如图4所示,系统信息可以包括主密钥401,公共数据库402,单向数据转换算法403、404和405;
在第二实施例的方法中,所述系统信息还包括存储在所述密钥生成装置的公共数据库中的公共数据,所述公共数据包含的比特数远大于主密钥所包含的比特数。
在该示例中,单向数据转换算法使用输入信息作为控制信息,对所述公共数据执行数据转换以生成输出信息。
可以采取以下步骤生成密钥:
将主密钥401作为输入信息,在主密钥401的控制下,将公共数据402通过单向数据转换算法403转换为私密数据410;
生成一个由不重复的任意信息组成的时间戳411,将时间戳411作为输入信息,在时间戳411的控制下,从私密数据410中通过单向数据转换算法404生成中间密钥412;
将中间密钥412作为输入信息,在中间密钥412的控制下,将公共数据402通过单向数据转换算法405转换为次生信息413;
从次生信息413中提取信息生成密钥414,将密钥414与对应的时间戳 相关联。
在一个实施例中,所述输入信息控制下的公共数据转换可以采用组合模运算。
对应地,公共数据库402可以是一个512Kb的二进制环状数列,采用类似于图3所示的方式,分割成65536=2 16个单元,每个单元长度64比特,由64个0或1顺序组成,用16比特编号标识;种子从一个所述单元开始,沿同一方向跨越整个环状数列,形成一个512Kb二进制数列,用所述起始单元编号作为对应种子编号;从公共数据库402中可以提取2 16个512Kb种子,用16比特编号标识。
主密钥401可以是一个1024比特的未公开二进制随机数列,由1024个0或1顺序组成,顺序包含64个16比特的所述种子编号,顺序指向64个所述种子。
单向数据转换算法403可以采用如下组合模运算:
将主密钥401作为输入信息,从公共数据库402中顺序提取主密钥401中编号指向的64个种子;
可以将提取的所述种子进行类似于如图3所示的移位模运算;具体地,按照提取顺序将选取的64个种子从0到63编号,将所述种子数列向同一方向位移所述种子的顺序编号值对应的位数,例如0号数列保持不变,1号数列后移1位,2号数列后移2位,以此类推,末位多出的数值折叠回来保持数列长度不变;引入移位操作可以在统计学上确保输入信息和生成的次生信息一一对应。
将进行上述移位操作的二进制种子进行模运算,可以采用如图3所示的XOR操作,生成512Kb的私密数据410。
密钥生成设备根据当时的时间生成时间戳411,将时间戳411作为输入信息,将私密数据410通过单向数据转换算法404生成中间密钥412。
单向数据转换算法404可以采用如下组合模运算:
将512Kb的私密数据410顺序分割为4096=2 12个1024比特的信息片段,每个信息片段用一个12比特的编号标识;私密数据库410中信息仅出现在加密过程中,仅存在于计算机内存或缓存中。
采用48比特的时间戳,包括8比特年份、4比特月份,5比特日期、5比特小时(采用24小时制)、6比特分钟、6比特秒,剩余的14比特作为冗 余信息,平时可以用随机信息填充作为备用,以维持时间戳格式的稳定,可以在需要时作为扩充信息,例如可以在高频加密过程中增加10比特秒以下的时间编码从而将加密系统的时间分辨率提高到毫秒,也可以进一步在年份编码中再增加4个比特,将采用所述方法的加密系统的有效时间跨度提高到2 12=4096年。
所述48-比特时间戳可以顺序包含4个12-比特编号,顺序指向私密数据库410中的4个所述信息片段。
将时间戳411作为输入信息,从私密数据库410中顺序选取时间戳411中4个编号对应的信息片段,将这些信息片段通过前面所述的移位模运算生成一个1024比特的中间密钥412;所述中间密钥信息仅存在于计算机内存或缓存中。
可以将所述年份、月份、日期、小时、分钟、秒的编码信息以及备用信息分散到时间戳中的不同编号中,维持高度动态变化的中间密钥。
具体地,例如时间戳411可以采用下面格式:
Y 1M 1D 1H 1m 1S 1Y 2rD 2H 2m 2S 2-Y 3M 2D 3H 3m 3S 3Y 4rrrm 4S 4-Y 5M 3D 4H 4m 5S 5Y 6rr rrr-Y 7M 4D 5H 5m 6S 6Y 8rrrrr
其中Y表示该位置放置年的二进制编码,下标表明二进制编码从左到右的序号,同样地,M表示月份、D表示日期、H表示小时、m表示分钟,S表示秒,r表示备用数字。
例如1998年11月26日15时36分57秒的时间戳的构建方式如下:
1998大于8-比特可编码信息的最大值255,除以256取余数,得到206,二进制编码为11001110,分别对应上述时间戳格式中的Y 1Y 2Y 3Y 4Y 5Y 6Y 7Y 8
11月,取11的二进制编码1011,分别对应上述时间戳格式中的M 1M 2M 3M 4
26日,取26的二进制编码11010,分别对应上述时间戳格式中的D 1D 2D 3D 4D 5
15时,取15的二进制编码01111,分别对应上述时间戳格式中的H 1H 2H 3H 4H 5
36分,取36的二进制编码100100,分别对应上述时间戳格式中的m 1m 2m 3m 4m 5m 6
57秒,取57的二进制编码111001,分别对应上述时间戳格式中的 S 1S 2S 3S 4S 5S 6
因此,1998年11月26日15时36分57秒对应时间戳的有效信息为:1110111r1101-0001010rrr10-1111001rrrrr-1101010rrrrr;
密钥生成模块随机生成14位二进制备用数字,例如为01101011011001,顺序取代上述时间戳中未确定的r,最终计算中用到的时间戳为:
111011101101-000101011010-111100110110-110101001001;
所述时间戳编码方式可以确保2个相邻产生的时间戳中的信息可以编码2个以上不同的编号,对应私密数据库中2个以上不同的信息单元,从而保持所对应中间密钥的高度动态性;
可以将上述时间戳的格式设置为当前时间后面紧接14比特信息构成的校验码,例如可以采用16进制编码校验码,上述附加信息可分组为0110-1011-0110-01,校验码为6B61;上述时间戳格式可以为1998-11-26-15-36-57-6B61,便于阅读和通讯设备的处理器识别和处理。
所述48比特时间戳编码经过扩充后可以支持每秒1024个密钥生成频率、时间跨度为4096年的应用需求,并且在不影响运算速度和密钥生成流程的基础上随时扩展,例如,采用72比特时间戳,在中间密钥生成过程中仅需增加2次模运算,将可编码分发的密钥数量进一步扩大2 24倍。
将中间密钥412作为输入信息,在所述中间密钥的控制下,将公共数据402通过单向数据转换算法405转换为次生信息413;
1024比特的中间密钥可以采取与主密钥一样的方式,顺序分割成64个16比特的编号,单向数据转换算法405可以采用和403同样的算法:
从公共数据库402中顺序提取中间密钥412指向的64个种子,将所述种子进行移位模运算,生成一个512Kb的次生信息413,从次生信息413中提取所需长度的密钥;最长可以将512Kb的次生信息作为一次性密钥,通过模运算加密同样比特数的明文;也可以提取和主密钥长度相等的1024比特的密钥。
通过本实施例所述的私密数据库方式生成中间密钥不会明显增加生成密钥的计算量。通常,一次加密应用中可以仅计算一次私密数据库,将其作为缓存,由此生成本次加密应用中所需的所有密钥,因此,在对加密速度要求较高的应用场景,例如实时安全通讯和大容量信息加密解密,上述一次性的私密数据库生成所需的额外计算量对整体加密速度的影响可以忽略不计。
采用上述流程,在确保主密钥信息不通过从系统输出的密钥和时间戳以外的途径泄露的情况下,所生成密钥的密钥强度为1024比特。
不同于公共密钥算法中或一些加密算法中所指的密钥长度,例如公共密钥算法中建议的1024比特密钥通常指的是所采用的密钥的比特数,由于公共密钥算法中密钥可选的整数值是不连续的,实际密钥空间远小于2 1024,根据所述密钥选择规则,猜测一个所述未公开随机公共密钥的成功率远大于1/2 1024,对应的密钥强度可以明显小于1024比特;本发明实施例中的密钥强度是可以与主密钥比特数相当的,1024比特主密钥的可能取值均匀分布在2 1024的密钥空间,随机猜测一个未公开随机主密钥的成功率不明显大于1/2 1024,系统的密钥强度为1024比特。
强度为1024比特的密钥在真实物理世界中可以认为是不可破解的。强度为1024比特的密钥意味着不拥有密钥信息的攻击者如果想比较确定地获得所述密钥加密的文件信息,需要接近2 1024次尝试;采用不同统计方法得到的估算值可能略低于这个数值,但不会有数量级的差别。遵循基本物理定律的真实世界存在以下物理学限制:信息处理速度不能快于光速,即3x10 8米/秒;可观测宇宙的大小约为140亿光年,约1.4x10 10x10 16=1.4x10 26米,对应的宇宙年龄约为140亿年,约1.4x10 10x3x10 7=4.2x10 17秒;最小的可操纵粒子例如核子的直径为10 -15米。在这些物理定律限制下,设想一个10 -15米的处理器通过光速读取信息,则单个处理器处理速度的上限为(3x10 8米/秒)/(10 -15米),即3x10 23次/秒;设想一个和当前宇宙体积相当的计算机,可以包含的所述处理器的数量上限为(1.4x10 26米) 3/(10 -15米) 3=2.8x10 123个;所述计算机的信息处理速度上限为(3x10 23次/秒)x(2.8x10 123个)=8.4x10 146次/秒;在当前宇宙年龄尺度下,可完成的计算量上限为(8.4x10 146次/秒)x(4.2x10 17秒)=3.53x10 164次,不大于2 547次。因此,密钥强度为1024比特的密钥在遵从物理定律的真实世界中是不能被破解的。
上述估计默认处理器之间可以自由协作分工共同完成计算,光速限制下,上述协作在所述体积的计算机上实际上不可能实现,协作分工也需要额外的计算资源,因此,所述可完成计算量的上限还需要进一步下调。不同的可操作最小粒子尺度,可观测宇宙的范围、以及宇宙年龄,可能给出不同的估计值,但对所述结论影响不大。
上述信息学理论上可证明安全的密钥强度为1024比特的密钥在遵循基 本物理定律的真实世界中可以认为是无条件安全的密钥。
采用本实施例中所述流程,生成1024比特强度的密钥所需计算量略大于64次XOR操作;生成中间密钥的4次48比特长度的XOR运算,折合到最后生成512Kb一次性密钥,增加的比例为(4x48)/(512x8x64)=0.07%,接近0。
可以将上述方法生成的次生信息作为一次性密钥,与相同格式的明文信息通过模运算生成密文,将对应时间戳作为解密线索,在共享主密钥的通讯者之间传递密文,可以构建信息学理论上可证明安全的加密方法。上述1024比特密钥强度的加密方法中,加密解密过程的计算量为65次模运算,其中64次用于生成一次性密钥,1次用于生成密文或从密文中还原明文信息。
采用本发明所述方法的加密方法可以在常规便携式通讯设备上高效地实现。例如使用具有1G赫兹处理器的常规便携式智能通讯设备,处理所述密钥强度为1024比特的无条件安全的密文信息的速度为15MbP,所述512Kb的公共数据库存储空间也很容易在当前普通的智能通讯设备上实现。
所述实施例中,公共数据和对应的算法参数可以方便地进行调整,以满足不同的应用需求。
另一个实施例中,公共数据库402可以采用4Kb环状数列,包含256个128比特单元,从所述环状数列中可以提取256个4Kb的种子,采用8比特种子编号。则生成1024比特强度的密钥需要128次模运算,一次性密钥的长度为4Kb,加密解密过程需要129次模运算。
生成当前主流加密协议中256比特强度的密钥需要32次模运算,加密解密过程需要33次模运算。
显然地,根据上述实施例可以容易地实现2048比特或更高密钥强度的加密算法。
采用上述方法的加密算法中,主密文和明文的信息容量相同,附加于密文中用作为解密线索的时间戳的比特数与主密文相比可以忽略不计,因此,所述密文的信息承载比例可以接近1,形成一个高效的加密方法。
上述实施例中展示了可以通过本发明所述方法,在常用通讯设备上生成和安全分发任意所需数量的,真实物理世界中无条件安全的密钥;将所述密钥作为一次性密钥加密与密钥比特数相同的明文信息,可以构建信息学理论 上可证明安全的加密算法,实现真实物理世界中无条件安全的通讯,且采用所述加密算法的信息安全系统的信息处理速度和文件传输效率可以明显高于已有加密应用。
<第三实施例>
下面,将参考图5描述根据本发明实施例的密钥生成装置。
如图5所示的本发明实施例的密钥生成装置500可以包括:
系统信息模块510,配置为存储或/和生成所述密钥生成装置的系统信息,可以包括主密钥,至少一种单向数据转换算法,可以根据需要增加一个公共数据库;所述单向数据转换算法根据输入信息,生成由所述输入信息确定的输出信息,其中由所述输出信息推测或/和推导所述输入信息是不可行的。
密钥生成模块520,配置为生成可由不重复的任意信息编码的时间戳,并且根据所述系统信息,生成与所述时间戳对应的密钥;
传输模块530,配置为接收和发送时间戳。
密钥生成模块520借助系统信息模块510中的所述系统信息中的一种或多种,通过如前面实施例中所述的方法生成密钥,可以采用如下流程:
生成所述时间戳;将所述时间戳中的信息与主密钥中信息通过运算生成中间密钥;将所述中间密钥作为输入信息,通过所述单向数据转换算法生成次生信息;从所述次生信息中提取信息生成密钥A,将所述时间戳与密钥A相关联。
传输模块530将时间戳A发送给配对的密钥生成装置;所述配对的密钥生成装置具有与密钥生成装置500相同的结构,采用相同的系统信息。
在另一个实施例中,传输模块530还可以接收从配对的密钥生成装置发送的时间戳B;密钥生成模块520进一步配置为根据接收的时间戳B,依靠系统信息510,采用前面所述步骤,生成对应的密钥B。
密钥生成模块520还配置为生成所述时间戳。
密钥生成模块520可以根据前面实施例的方法生成密钥。
例如,密钥生成模块520可以配置为对所述时间戳与所述主密钥进行运算生成中间密钥;将所述中间密钥作为输入信息,通过所述单向数据转换算法生成次生信息;从所述次生信息中提取信息生成密钥;以及将所述密钥和 所述密钥对应的时间戳相关联。
此外,密钥生成模块520可以对所述时间戳与所述主密钥使用非退化性组合来生成所述中间密钥。
在一个示例中,密钥生成模块520进一步配置为使用所述时间戳和所述主密钥作为输入信息,通过第二单向数据转换算法生成所述中间密钥。
尽管图中未示出,密钥生成装置500还可以包括公共数据库。公共数据库可以配置为存储公共数据,所述公共数据包含的比特数远大于主密钥所包含的比特数。
密钥生成模块520还可以将所述公共数据作为输入信息,通过所述单向数据转换算法生成次生信息;从所述次生信息中提取信息生成密钥;以及将所述密钥和所述密钥对应的时间戳相关联。
在一些示例中,单向数据转换算法还使用将输入信息作为控制信息对公共数据执行数据转换,并且所述数据转换采用组合模运算。
例如,所述公共数据配置为由N个长度相同的数列组成,每个所述数列包含相同的比特数,用一个相同比特数的指示0到N-1的编号标识,并称为种子。所述控制信息配置为由M个所述编号顺序组成的数列,顺序指向M个由所述编号标识的种子。
所述组合模运算配置为从所述公共数据中顺序提取所述控制信息中的所述编号指向的M个种子,然后将所述M个种子进行模运算,生成一个与所述种子格式相同的次生信息,其中N,M为正整数。
此外,公共数据可以配置为包含N*M个元素的首尾相接的环状数列,所述环状数列分割成N个长度为M的单元,每个所述单元用一个0到N-1的编号标识。然后,种子配置为从一个所述单元开始,沿同一方向延伸跨越整个所述环状数列,形成一个长度为N*M的数列,用所述起始单元编号作为所述种子编号。
密钥生成模块520还可以将所述主密钥作为控制信息,在所述主密钥控制下,通过第二单向数据转换算法将公共数据转换为私密数据;将所述时间戳作为控制信息,在所述时间戳的控制下,通过第三单向数据转换算法从所述私密数据中生成中间密钥;将所述中间密钥作为控制信息,在所述中间密钥的控制下,通过所述单向数据转换算法将所述公共数据转换为次生信息; 从所述次生信息中提取信息生成密钥;以及将所述密钥与对应的时间戳相关联。
所述单向数据转换算法、所述第二单向数据转换算法和所述第三单向数据转换算法使用相同的或者不同的单向算法。
所述传输单元530还可以接收从配对的密钥生成设备发送的第二时间戳。然后,密钥生成模块520使用所述主密钥,依靠所述第二时间戳,通过所述单向数据转换算法生成与所述第二时间戳对应的第二密钥。
本实施例展示了可以采用本发明所述方法,通过密钥生成装置500,在共享主密钥的合法通讯者之间安全生成和交换任意所需数量的,密钥强度可以与主密钥比特数相当的独立密钥。本实施例中描述的密钥生成装置可以作为通讯设备的基本模块,用以构建多种用途的信息安全系统,实现本发明所述方法描述的信息学理论上可证明安全的具有所需密钥强度的安全信息交流。
<第四实施例>
下面,将参考图6描述根据本发明实施例的密钥管理系统。
如图6所示的本发明实施例的密钥管理系统600包括管理端610和一个或多个用户端620。所述用户端设备存储对应用户的用户识别码。
用户端620,包括系统所属的每个用户620-i;序号数i仅用于在本说明书中表示用户端620包含不同的用户,无实质含义,具体系统管理中,每个系统所属用户可由其用户识别码标识。
管理端610包括:控制模块611,配置为生成和接收用户识别码;用户信息模块612,配置为存储所述用户识别码;密钥生成模块613,采用如第三实施例所述的密钥生成装置,配置为将所述用户识别码作为时间戳,生成与所述用户识别码对应的用户密钥。
控制模块611可以为给多个用户的每个生成标识其身份的任意信息作为所述用户的用户识别码。
控制模块611给每个用户620-i生成一个用户识别码i,将所述用户识别码i存入用户信息模块612;所述用户识别码可以为一段任意信息,例如可以为用户特征信息加上一些随机信息,用户标识码可以采用例如二维码,条 形码,等方便常用信息技术设备读取的形式;
密钥生成模块613响应来自用户信息模块612的用户识别码i,将用户识别码i作为时间戳,生成对应的用户密钥i,将用户密钥i和对应的用户识别码i提交给用户端620中对应的系统用户620-i,实现密钥分配;
当用户620-i密钥丢失时,用户端向管理端610提交密钥恢复申请;管理端610可以要求所述用户端提交用户识别码i。
管理端610通过控制模块611接收用户识别码i;用户信息模块612可以检测所述用户识别码i是否与系统中存储的信息相匹配;密钥生成模块613将所述用户识别码i作为时间戳,生成与所述用户识别码i对应的用户密钥i,并将用户密钥i提交给用户620-i,恢复用户密钥。
在一些示例中,密钥生成模块613包括前面实施例的密钥生成装置并存储有主密钥,配置为给多个用户的每个生成相应的用户密钥,并且将所述用户识别码和对应密钥传递给对应的用户端设备,作为所述用户的用户密钥。
密钥生成模块613响应从所述用户信息模块发送的用户识别码,将所述用户识别码作为时间戳,生成所述用户识别码对应的密钥,并将所述用户识别码和对应密钥传递给对应的用户端设备,作为所述用户的用户密钥。
当一个或多个用户的用户密钥丢失时,控制模块611从所述用户端设备接收对应的用户识别码。
用户信息模块612对接收的所述用户识别码进行校验以确认所述用户识别码是存储的用户识别码。
密钥生成模块613将所述用户识别码作为时间戳,生成所述用户识别码对应的用户密钥,并将所述用户密钥反馈给所述用户端设备。
进一步地,密钥生成模块613还可以响应来自用户信息模块612的2个或2个以上的用户识别码,将这些用户识别码进行组合作为时间戳,生成对应的密钥,将所述密钥分配给所述用户,作为所述用户之间进行通讯的密钥。
通过本实施例描述的密钥管理系统,采用当前常用技术手段,给每个用户分配一个可以包含用户可公开的个人特征信息和一些随机信息组成的可以公开的用户识别码;所述密钥管理系统生成和管理包括用户识别码在内的用户信息,将用户识别码作为时间戳,生成对应的用户密钥,分配给用户;并在用户丢失用户密钥时,根据用户提交的用户识别码,通过系统方便的恢复 用户密钥。
本实施例中,系统端可以通过安全的方式向系统用户分配密钥,例如,可以将生成的用户密钥存放在一个介质中,例如磁盘、U-盘、纸质印刷品,等,用所述用户识别码标记对应的介质,将所述介质通过安全方式递送、转交给所述用户,也可以由用户直接从管理端接收所述用户密钥。
本实施例中,用以生成和恢复用户密钥的用户识别码可以是任意的独立于密钥管理系统的通用信息,完全避免了密钥管理应用过程中的用户密钥和系统主密钥信息泄露的风险。
所述密钥管理系统中除了系统主密钥需要保持私密外,其它信息,包括用户识别码都可以是公开的,最大限度减少了系统的运行和维护成本;通过可以公开存储或调用的用户识别码生成和恢复用户密钥可以有效防止密钥丢失,进一步增加了密钥管理系统的可靠性。
通过所述密钥管理系统,可以依靠一个系统主密钥安全、便捷地产生和维护系统中多个用户的密钥,所述多个用户可以是包括真实世界中任意所需数量的用户,所述密钥包括所述用户之间需要共享的密钥,其数量可以远大于所述用户的数量以及所存储的对应用户识别码的数量。
另一个实施例中,描述了所述密钥管理系统的一个具体应用。
每一个通讯者持有一个主密钥,通过所述密钥管理系统,管理所有相关密钥。
通讯者可以在与外界信息隔绝的安全环境下,将所述主密钥作为图6所示的密钥管理系统的主密钥,通过控制模块611生成可以是任意信息的识别码,将所述识别码作为时间戳,利用所述密钥生成模块613生成所述识别码对应的主干密钥,将所述主干密钥与对应识别码信息存储在通讯设备中,作为一定时期或应用场景下的主密钥。例如所述主干密钥可以是用于当年通讯的主密钥,可以用当年的年份数字,例如可以为2021,作为识别码。
当前技术条件下,处在私密空间的,采用不具有外界通讯连接的独立处理器进行操作,一般可以认为是安全环境,可以满足常规的密钥管理需要;对安全环境的具体要求会随着技术发展以及具体的保密程度要求而改变。
通讯者用自己的主干密钥作为下一级密钥管理系统的主密钥,即应用层级密钥管理系统的主密钥,建立针对不同通讯对象的密钥管理系统。
例如,通讯者可以给每个通讯对象设定一个可以是任意信息的识别码,所述识别码可以由通讯者自己设定,或者可以用通讯对象的公开标识信息,例如,可以是通讯对象的姓名、手机号、ID号等,或者其组合;通讯对象的识别码是可以公开的,可以相互之间默认的。
有利地,可以建议每个通讯者拥有永久的或相对固定的个人识别码,所述个人识别码可以包含通讯者愿意公开的可以确定通讯者身份的信息,以二维码、条形码等便于被现有通讯设备读取的形式向公众公开。
通讯者根据通讯对象的个人识别码,利用所述应用层级的密钥管理系统,将所述个人识别码作为时间戳,依靠所述主干密钥生成所述个人识别码对应的通讯对象密钥;将所述通讯对象密钥通过安全方式发送给通讯对象。通讯对象将所述密钥存储在发送者的电子名片下,所述电子名片同时包括发送者个人识别码。
通讯双方通过上述方式相互交换密钥,建立安全连接。建立安全连接的通讯者双方的电子名片中分别保存对方的个人识别码以及从对方发来的密钥。
建立安全连接的A和B可以通过下列方式进行安全通讯:
通讯者A通过所述应用层级密钥管理系统生成通讯者B个人识别码对应的密钥A-B,与存储在通讯录中由通讯者B生成的密钥B-A进行组合生成密钥AB;通讯者B通过所述应用层级密钥管理系统生成通讯者A个人识别码对应的密钥B-A,与存储在通讯录中由通讯者A生成的密钥A-B进行组合生成密钥BA;采用对称组合,密钥AB和BA相同,将其作为双方通讯的主密钥,可以实现A和B之间的安全通讯。
上述密钥管理系统从通讯者主密钥开始,经过主干密钥、通讯对象密钥,形成一个层级密钥管理系统,可以实现以下有益的效果:
可以在绝对安全的环境下生成主干密钥,用于实际通讯,避免直接使用主密钥,增强了主密钥的安全性,从而可以在所述主干密钥发生泄漏时,终止使用对应主干密钥,将影响范围限制到最小;
所述密钥管理系统中,通过可以公开的密钥识别码从对应层级的密钥管理系统中生成密钥,便于密钥管理,给大量动态通讯对象的密钥管理提供了方便;同时可以通过密钥识别码方便地恢复密钥,避免密钥丢失,增强了系 统的可靠性;
采用通讯者双方的密钥组合进行通讯,可以有效减少信息误发;同时,在通讯者单方密钥丢失时,可以通过己方生成的部分密钥紧急联系通讯对象,安全恢复密钥。
大规模信息安全系统中,包括密钥生成,交换和保密维护在内的密钥管理通常是一个极其困难的问题。通过所述密钥管理系统,可以依靠一个主密钥方便、高效、有序、可靠地管理和维护一个用户数量和复杂程度不受限制的系统的密钥。通过本实施例,本发明解决了大规模复杂结构信息安全系统中密钥的生成和安全维护问题。
<第五实施例>
下面,将参考图7描述根据本发明实施例的加密解密装置。
如图7所示的本发明实施例的加密解密装置700包括:
密钥生成模块701,采用如第三实施例中所述的密钥生成装置,配置为将生成的次生信息作为一次性密钥。
输入端口702,配置为读取或输入待发送文件;
格式化模块703,配置为将所述待发送文件转换为与密钥格式相同的格式化明文A;
加密模块704,配置为用密钥生成模块701生成的一次性密钥将格式化明文A转换为主密文A,将所述一次性密钥对应的时间戳A作为密文标题,合并主密文A和密文标题A生成密文A;
发送端口705,配置为将密文A发送给配对的加密解密装置。
进一步的,根据本实施例的加密解密装置700还包括:
接收端口706,配置为接收从配对的加密解密装置发送的密文B;
解密模块707,配置为解析接收的密文B生成主密文B和时间戳B,通过密钥生成模块701生成与时间戳B对应的密钥B解密主密文B以生成解密后明文B;
格式化模块703进一步配置为将解密后明文B转换为复原数据;
输出端口708,配置为输出所述复原数据作为已接收文件,所述已接收文件和从配对的加密解密装置发送的待发送文件相同。
本实施例展示了可以采用本发明所述方法,通过加密解密装置700,借助由不重复的任意信息组成的时间戳,依靠一个主密钥生成可满足任意所需数量的密钥强度可以与主密钥比特数相当的一次性密钥,用所述一次性密钥加密比特数相同的明文生成密文,将所述一次性密钥对应的可以通用的独立于密钥生成方式的时间戳作为唯一的解密线索,所述密文可以且仅可以由共享主密钥信息的合法通讯者通过所述时间戳解密,确保密文传递过程中不暴露任何系统信息和密钥信息,从而实现信息学理论上可证明安全的加密方法。所述加密解密装置可以作为通讯设备中独立的单元,对通讯信息进行加密解密,可以方便的设置所需密钥强度,构建真实物理世界中无条件安全的通讯系统。
<第六实施例>
下面,将参考图8描述根据本发明实施例的文件管理系统。
如图8所示的本发明实施例的文件管理系统800包括管理端810和用户端820。
用户端820,包括系统中每个所属用户820-i,每个用户820-i的通讯设备上安装用户加密解密模块821,采用如第五实施例所述的加密解密装置,配置为加密解密用户820-i和管理端810之间传递的文件信息,所述序号数i仅用于在本说明书中表示用户端820包含不同的用户,无实质含义,具体的文件管理系统中每个系统所属用户可由其用户识别码标识。
管理端810包括:系统加密解密模块811,采用如第五实施例描述的加密解密装置,配置为加密解密管理端810和用户端820之间传递的文件信息;密钥管理模块812,采用如第四实施例所述的密钥管理系统,配置为分配和管理系统用户的用户主密钥和用户信息;存储模块813,配置为存储系统文件。
密钥管理模块812生成系统中每个用户的用户识别码和对应的用户主密钥,分配给用户端820中的每个系统所属用户820-i。
用户820-i利用所述用户主密钥i,通过所述用户加密解密模块821生成一次性密钥加密文件信息生成主密文,将所述一次性密钥对应的时间戳连同用户识别码i作为密文标题,合并所述主密文和密文标题生成密文,通过常 规信道发送到管理端810。作为用户820-i向管理端提交文件的证明。
管理端810通过系统加密解密模块811解析接收到的从用户820-i发送的密文,提取主密文以及密文标题中的用户识别码i和时间戳;密钥管理模块812根据用户识别码i生成对应的用户主密钥i;系统加密解密模块811根据所述时间戳中信息,依靠用户主密钥i中生成对应解密密钥,解密主密文,确认文件信息,并将确认文件信息的所述密文存储到存储模块813中。
管理端810进一步配置为,通过密钥管理模块812生成目标用户820-i的用户主密钥i,通过所述系统加密解密模块,依靠所述用户主密钥i生成一次性密钥加密文件信息生成密文,通过公共信道发送给目标用户820-i;
用户端820进一步配置为,用户820-i通过所述用户加密解密模块,接收从所述管理端发送的密文,解密所述密文,恢复文件信息。
用户端820进一步配置为,当用户820-i的用户主密钥i丢失后,向管理端810发送密钥恢复请求。
管理端810的密钥管理模块812进一步配置为,根据用户820-i的用户识别码i,生成用户820-i的用户主密钥i,通过安全方式传递给用户820-i,恢复用户主密钥。
在一个实施例中,所述管理端可以是一个机构或公司的管理者,所述用户可以是管理者的下级用户;所传递的文件可以是所述下级用户向所述管理者发送的工作报告,作为所述下级用户的工作证明。
利用所述文件管理系统,管理者可以采用本发明所述方法,依靠一个系统主密钥与所属多个下级用户独立地安全交换工作文件信息。
在另一个实施例中,所述管理端可以是一个出版社或专利受理机构,所述用户可以是投稿者或专利提交者;所传递的文件可以是待发表文章或专利申请材料,作为所述投稿者或专利申请者向所述出版社或专利受理机构提交的材料证明。
利用所述文件管理系统,管理者可以采用本发明所述方法,依靠系统一个主密钥安全地独立处理多个高度动态用户的申请信息。
在另一个实施例中,密钥管理系统812可以采用如第四实施例所述的层级密钥管理系统,通过类似的方式,在管理端和用户端之间设置不同层级的中间管理端,建立层级文件管理系统。
利用所述层级文件管理系统,可以采用本发明所述方法,通过一个系统主密钥安全便捷地管理复杂系统的文件信息。
<第七实施例>
下面,将参考图9描述根据本发明实施例的信息安全传递系统。
如图9所示的本发明实施例的信息安全传递系统包括配对的第一通信设备900A和第二通信设备900B,其中第一通信设备900A和第二通信设备900B可以具有相同的结构和配置,采用如第五实施例中所述的加密解密装置。
第一通信设备900A可以由通信者A持有,第二通信设备900B可以由通信者B持有。
具体地,例如第一通信设备900A可以包括:
第一密钥生成模块901A,采用如第三实施例描述的密钥生成装置,配置为生成次生信息作为一次性密钥。
第一输入端口902A,配置为读取或输入待发送文件A;
第一格式化模块903A,配置为将待发送文件A转换为与密钥格式相同的格式化明文A;
第一加密模块904A,配置为将第一密钥生成模块901A生成的一次性密钥与格式化明文A通过模运算生成主密文A,将所述密钥对应的时间戳A作为第一密文标题,合并主密文A和第一密文标题以生成密文A;
第一发送端口905A,配置为将密文A发送给第二通信设备900B;
第二通信设备900B包括:
第二密钥生成单元901B,采用如第三实施例描述的密钥生成装置,配置为生成次生信息作为一次性密钥。
第二接收端口906B,配置为接收第一发送端口发送的密文A;
第二解密模块907B,配置为解析接收的密文A以提取主密文A和第一密文标题中的时间戳A,通过第二密钥生成模块901B生成时间戳A对应的解密密钥A,将解密密钥A与主密文A通过模运算的逆运算生成解密后明文A。
第二格式化模块903B,配置为将所述解密后明文A转换为复原数据;
第二输出端口908B,配置为输出所述复原数据作为已接收文件A,所述已接收文件A与所述待发送文件A相同。
类似地,第二通信设备900B进一步包括:
第二输入端口902B,配置为读取或输入待发送文件B;
第二格式化模块903B同时配置为将待发送文件B转换为与密钥格式相匹配的格式化明文B;
第二加密模块904B,配置为将第二密钥生成模块901B生成的一次性密钥与格式化明文B通过模运算生成主密文B,将所述密钥对应的时间戳B作为第二密文标题,合并主密文B和第二密文标题以生成密文B;
第二发送端口905B,配置为将生成的密文B发送给第一通信设备900A;
第一通信设备900A进一步包括第一接收端口906A,配置为接收所述第二发送端口发送的密文B;
第一解密模块907A,配置为解析接收的密文B以提取主密文B和第二密文标题中的时间戳B,通过第一密钥生成单元901A生成与时间戳B对应的解密密钥B,将所述解密密钥B与主密文B通过模运算的逆运算生成解密后明文B;
所述第一格式化模块903A同时配置为将解密后明文B转换为复原数据;
第一输出端口908A,配置为输出所述复原数据作为已接收文件B;其中已接收文件B与从第二通讯设备发送的待发送文件B相同。
本实施例展示了可以采用本发明所述方法,通过信息安全传递系统900,合法的目标通讯者之间可以利用同类型的加密解密装置,通过排他性共享主密钥建立安全连接,加密解密所要传递的信息,实现信息学理论上可证明安全的信息传递。可以采用如第二实施例中所描述的1024比特强度的主密钥,通过本实施例所述的信息安全传递系统构建便捷通用的真实世界中无条件安全的通讯系统。
以上实施例概述了通过本发明所述方法生成可以安全分发的独立密钥的流程和可用的单向数据转换算法以及通过所述方法构建的密钥生成装置、密钥管理系统、加密装置、文件管理系统、信息安全传递系统所需要的信息和方法的不同方面和/或通过程序实现其他步骤的方法。技术中的程序或流程部分可以被认为是以可执行的代码和/或相关数据的形式而存在的“产品”或“制 品”,可以以软件的形式,通过计算机可读介质所参与或实现所述方法和步骤。计算机可读介质可能有多种形式,包括有形的存储介质,载波介质或物理传输介质等;有形的、稳定的储存介质可以包括任何计算机、处理器、或类似设备或相关的模块所用到的内存或存储器。例如,各种半导体存储器,光盘、磁盘,磁带驱动器、以及其他计算机或类似设备中使用的,能够实现图中所描述的系统组件的存储系统。不稳定的存储介质可以包括动态内存,例如计算机平台的主内存等。
所有软件或其中的一部分有时可能会通过网络进行通信,如互联网或其他通信网络。此类通信可以将软件从一个计算机设备或处理器加载到另一个。例如:从物联网系统的一个服务器或主机计算机加载至一个计算机环境的硬件平台,或其他实现系统的计算机环境,或与提供物联网所需要的信息相关的类似功能的系统。因此,另一种能够传递软件元素的介质也可以被用作局部设备之间的物理连接,例如光波、电波、电磁波等,通过电缆、光缆或者空气等实现传播。用来载波的物理介质如电缆、无线连接或光缆等类似设备,以及计算机系统内部形成总线的线路等,也可以被认为是承载软件的介质。载波传输介质可以传递电信号、电磁信号、声波信号或光波信号等。这些信号可以由无线电频率或红外、可见光波、声波数据通信的方法所产生。通常的计算机可读介质包括硬盘、软盘、磁带、任何其他磁性介质;CD-ROM、DVD、DVD-ROM、任何其他光学介质;穿孔卡、任何其他包含小孔模式的物理存储介质;RAM、PROM、EPROM、FLASHEPROM,任何其他存储器片或磁带;传输数据或指令的载波、电缆或传输载波的连接装置、任何其他可以利用计算机读取的程序代码和/或数据。这些计算机可读介质的形式中,会有很多种出现在处理器在执行指令、传递一个或更多结果的过程之中。在这里的用法除非限制了有形的“储存”介质,其他表示计算机或机器“可读介质”的术语都表示在处理器执行任何指令的过程中参与的介质。
本说明书中的“模块”指的是存储在硬件、固件中的逻辑或一组软件指令。这里所指的“模块”能够通过软件和/或硬件模块执行,或被存储于任何一种计算机可读的非临时媒介或其他存储设备中。在一些实施例中,一个软件模块可以被编译并连接到一个可执行的程序中。显然,这里的软件模块可以对自身或其他模块传递的信息做出回应,并且/或者可以在检测到某些事件 或中断时做出回应。可以在一个计算机可读媒介上提供软件模块,该软件模块可以被设置为在计算设备上(例如处理器)执行操作。这里的计算机可读媒介可以是光盘、数字光盘、闪存盘、磁盘或任何其他种类的有形媒介。也可以通过数字下载的模式获取软件模块(这里的数字下载也包括存储在压缩包或安装包内的数据,在执行之前需要经过解压或解码操作)。这里的软件模块的代码可以被部分的或全部的储存在执行操作的计算设备的存储设备中,并应用在计算设备的操作之中。软件指令可以被植入在固件中,例如可擦可编程只读存储器(EPROM)。显然,硬件模块可以包含连接在一起的逻辑单元,例如门、触发器,以及/或包含可编程的单元,例如可编程的门阵列或处理器。这里所述的模块或计算设备的功能优选的作为软件模块实施,但是也可以被表示在硬件或固件中。一般情况下,这里所说的模块是逻辑模块,不受其具体的物理形态或存储器的限制。一个模块能够与其他的模块组合在一起,或被分隔成为一系列子模块。
通常,所述密钥生成装置或通讯设备包括处理器,易失性和非易失性存储器,可以包含至少一个网络接口,以及输入/输出设备。所述通讯设备的网络接口可以包括与网络的连接,诸如与因特网的有线或无线连接连接到云服务器,存储在云服务器上的数据可以由所述通讯设备使用所述网络来访问。通讯设备的数据处理模块可以包括服务器计算机,台式计算机,笔记本电脑,平板电脑,PDA,智能手机,或其他可编程计算机。用户端可以包括任何能够进行数据通信的连接或“智能”设备,例如恒温器,空气质量传感器,工业设备等。随着越来越多的设备通过“物联网”进行联网,用户端包含的设备种类也越来越多。
当存储在无论是用户设备上的还是诸如云服务器的其他设备上的非易失性存储器中时,由本文描述的示例系统管理的数据可以始终保持是加密的。
在一些实施方案中,每个可编程计算机可以包括用于将信息输入到该设备中的输入设备。例如,输入设备可以是键盘,小键盘,光标控制设备,触摸屏,照相机,扫描仪或麦克风。在一些实施方案中,可以通过通信接口从其他网络上的可编程计算机接收输入信息。在一些实施方案中,计算设备可以包括用于呈现视觉信息的显示设备。例如,显示设备可以是计算机显示器,平板显示器,投影仪或显示面板。在一些实施方案中,显示设备向用户显示 一个或多个根据本文描述的系统和方法经由加密代理加密过的文件。
本文描述的模块,装置,系统,过程和方法的实施方案可以用硬件或软件或两者的组合来实现。或者,这些实施方案也可以用在可编程计算机上执行的计算机程序来实现,每个可编程计算机包括至少一个处理器(例如微处理器),数据存储系统(包括易失性和非易失性存储器和/或存储元件),至少一台输入设备,以及至少一台输出设备。例如但不限于,所述可编程计算机(以下称为设备,计算设备或服务器)可以是个人计算机,膝上型计算机,个人数据助理,蜂窝电话,智能电话设备,平板电脑和/或无线设备。对于任何软件组件,程序代码被应用于输入数据以执行本文所述的功能并生成输出信息。所述输出信息以已知的方式被应用于一个或多个输出设备。
每个软件组件或程序可以以高级程序或面向对象的编程和/或脚本语言来实现以与计算机系统通信。但是,如果需要,程序可以用汇编语言或机器语言来实现。无论如何,该语言可以是编译或解释的语言。此外,所描述的实施方案中的过程和方法能够以计算机可读介质的形式分发销售,所述计算机可读介质包括承载用于一个或多个处理器的计算机可用指令的计算机可读介质。所述介质可以以各种形式提供,包括一个或多个软盘,光盘,磁带,芯片,有线传输,卫星传输,互联网传输或下载,磁和电子存储介质,数字和模拟信号等。所述计算机可用指令也可以是各种形式,包括编译和非编译的代码。
本文已经描述了用所述方法依靠一个主密钥生成和安全分发满足任意所需数量的具有任意所需密钥强度的独立密钥的各种实施方案。借助这些实施方案,可以实现一次性密钥在大规模数据通信和存储系统中的应用,同时消除分配和管理大量随机密钥的挑战。
本文已经描述了多个示例实施方案。然而,本领域的技术人员将会理解的是,在不脱离如所附权利要求书限定的实施方案的范围的情况下,可以进行其他变化和修改。
除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员共同理解的相同含义。应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明 确地这样定义。
上面是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的公开范围内。应当理解,这里所描述的各种实施方式仅仅是以说明性示例的方式给出的,并且不应被解释为限制权利要求的范围。如上所述,实施方式可以制品的形式实现,每个制品包括由用户设备、通信装置、通讯系统的其他元件的处理电路执行的一个或多个软件程序。所述电路的常规方面是本领域技术人员公知的,此处不再赘述。替代实施方式可以利用与上文在说明性实施方式背景下描述的不同密钥生成方法,密钥生成装置,密钥管理系统,加密解密装置,文件管理系统,信息安全传递系统中共享密钥生成和分发过程,文件传递协议和文件格式。在所附权利要求范围内的这些和许多其它替代实施方式对于本领域技术人员将是显而易见的。并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。

Claims (31)

  1. 一种密钥生成和分发方法,包括:
    获取或/和生成密钥生成装置的系统信息,所述系统信息至少包括一主密钥和至少一种单向数据转换算法,所述主密钥由未公开随机信息组成,所述单向数据转换算法根据输入信息,生成由所述输入信息确定的输出信息,并且由所述输出信息推测或/和推导所述输入信息是不可行的;
    根据所述主密钥,依靠由不重复的任意信息组成的时间戳,通过至少采用一种所述单向数据转换算法,生成由所述时间戳和所述主密钥中信息共同确定的密钥,将所述密钥与所述时间戳信息相关联;以及
    将所述时间戳发送给配对的密钥生成装置,其中所述配对的密钥生成装置存储有与所述系统信息相对应的第二系统信息。
  2. 如权利要求1所述的方法,其中,采用以下流程生成密钥:
    通过所述密钥生成装置生成所述时间戳;
    对所述时间戳与所述主密钥进行运算生成中间密钥;
    将所述中间密钥作为输入信息,通过所述单向数据转换算法对所述中间密钥执行转换以生成次生信息;
    从所述次生信息中提取信息生成密钥;以及
    将所述密钥和所述密钥对应的时间戳相关联。
  3. 如权利要求2所述的方法,其中,对所述时间戳与所述主密钥进行运算生成中间密钥包括:
    对所述时间戳与所述主密钥使用非退化性组合来生成所述中间密钥。
  4. 如权利要求2所述的方法,其中,对所述时间戳与所述主密钥进行运算生成中间密钥包括:
    使用所述时间戳和所述主密钥作为输入信息,通过第二单向数据转换算法生成所述中间密钥,所述第二单向数据转换算法与所述单向数据转换算法相同或者不同。
  5. 如权利要求1所述的方法,其中,所述单向数据转换算法使用输入信息作为控制信息执行数据转换以生成输出信息,
    所述系统信息还包括一个公共数据库,配置为存储公共数据,所述公共数据包含的比特数远大于主密钥所包含的比特数,以及
    所述单向数据转换算法使用所述输入信息作为控制信息,对所述公共数据执行数据转换以生成次生信息。
  6. 如权利要求5所述的方法,其中,所述数据转换采用组合模运算,
    所述公共数据配置为由N个长度相同的数列组成,每个所述数列包含相同的比特数,用一个相同比特数的指示0到N-1的编号标识,并称为种子;
    所述输入信息配置为由M个所述编号顺序组成的数列,顺序指向M个由所述编号标识的种子;
    所述单向数据转换算法配置为:
    将所述输入信息作为控制信息,从所述公共数据中顺序提取所述输入信息中的所述编号指向的M个种子;
    将所述M个种子进行模运算,生成一个与所述种子格式相同的次生信息,其中N,M为正整数。
  7. 如权利要求6所述的方法,其中所述公共数据配置为包含N*M个元素的首尾相接的环状数列,所述环状数列分割成N个长度为M的单元,每个所述单元用一个0到N-1的编号标识;
    种子配置为从一个所述单元开始,沿同一方向延伸跨越整个所述环状数列,形成一个长度为N*M的数列,用所述起始单元编号作为所述种子编号。
  8. 如权利要求5所述的方法,其中,采用如下流程生成密钥,包括:
    将所述主密钥作为控制信息,在所述主密钥控制下,通过第三单向数据转换算法将公共数据转换为私密数据;
    将所述时间戳作为控制信息,在所述时间戳的控制下,通过第四单向数据转换算法从所述私密数据中生成中间密钥;
    将所述中间密钥作为控制信息,在所述中间密钥的控制下,通过所述单向数据转换算法将所述公共数据转换为次生信息;
    从所述次生信息中提取信息生成密钥;以及
    将所述密钥与对应的时间戳相关联,
    其中,所述单向数据转换算法、所述第三单向数据转换算法和所述第四单向数据转换算法使用相同的或者不同的单向算法。
  9. 如权利要求1所述的方法,还包括:
    接收从配对的密钥生成设备发送的第二时间戳;
    根据所述主密钥,依靠所述第二时间戳,通过所述单向数据转换算法生 成由所述主密钥和所述第二时间戳中信息共同确定的第二密钥,作为与所述第二时间戳对应的第二密钥。
  10. 一种密钥生成装置,包括:
    系统信息模块,配置为存储或/和生成所述密钥生成装置的系统信息,所述系统信息至少包括一主密钥和至少一种单向数据转换算法,所述主密钥由未公开随机信息组成,所述单向数据转换算法根据输入信息,生成由所述输入信息确定的输出信息,并且由所述输出信息推测或/和推导所述输入信息是不可行的;
    密钥生成模块,配置为根据所述主密钥,依靠由不重复的任意信息组成的时间戳,通过至少采用一种所述单向数据转换算法,生成由所述时间戳和所述主密钥中信息共同确定的密钥,将所述密钥与所述时间戳信息相关联;以及
    传输模块,配置为将所述时间戳发送给配对的密钥生成装置,其中所述配对的密钥生成装置存储有与所述系统信息相对应的第二系统信息。
  11. 如权利要求10所述的装置,其中,所述密钥生成模块进一步配置为:
    生成所述时间戳;
    对所述时间戳与所述主密钥进行运算生成中间密钥;
    将所述中间密钥作为输入信息,通过所述单向数据转换算法对所述中间密钥执行转换以生成次生信息;
    从所述次生信息中提取信息生成密钥;以及
    将所述密钥和所述密钥对应的时间戳相关联。
  12. 如权利要求11所述的装置,其中,所述密钥生成模块进一步配置为:
    使用所述时间戳和所述主密钥作为输入信息,通过第二单向数据转换算法生成所述中间密钥,所述第二单向数据转换算法与所述单向数据转换算法相同或者不同。
  13. 如权利要求10所述的装置,其中,所述系统信息还包括一个公共数据库,配置为存储公共数据,所述公共数据包含的比特数远大于主密钥所包含的比特数,
    其中,所述单向数据转换算法使用输入信息作为控制信息执行数据转换以生成输出信息,
    所述密钥生成模块进一步配置为:
    使用所述输入信息作为控制信息,通过所述单向数据转换算法对所述公共数据执行数据转换以生成次生信息。
  14. 如权利要求13所述的装置,其中,所述数据转换采用组合模运算,
    所述公共数据配置为由N个长度相同的数列组成,每个所述数列包含相同的比特数,用一个相同比特数的指示0到N-1的编号标识,并称为种子;
    所述输入信息配置为由M个所述编号顺序组成的数列,顺序指向M个由所述编号标识的种子;
    所述单向数据转换算法配置为:
    将所述输入信息作为控制信息,从所述公共数据中顺序提取所述输入信息中的所述编号指向的M个种子;
    将所述M个种子进行模运算,生成一个与所述种子格式相同的次生信息,其中N,M为正整数。
  15. 如权利要求14所述的装置,其中,其中所述公共数据配置为包含N*M个元素的首尾相接的环状数列,所述环状数列分割成N个长度为M的单元,每个所述单元用一个0到N-1的编号标识;
    种子配置为从一个所述单元开始,沿同一方向延伸跨越整个所述环状数列,形成一个长度为N*M的数列,用所述起始单元编号作为所述种子编号。
  16. 如权利要求13所述的装置,其中,所述密钥生成模块进一步配置为:
    将所述主密钥作为控制信息,在所述主密钥控制下,通过第三单向数据转换算法将公共数据转换为私密数据;
    将所述时间戳作为控制信息,在所述时间戳的控制下,通过第四单向数据转换算法从所述私密数据中生成中间密钥;
    将所述中间密钥作为控制信息,在所述中间密钥的控制下,通过所述单向数据转换算法将所述公共数据转换为次生信息;
    从所述次生信息中提取信息生成密钥;以及
    将所述密钥与对应的时间戳相关联,
    其中,所述单向数据转换算法、所述第三单向数据转换算法和所述第四单向数据转换算法使用相同的或者不同的单向算法。
  17. 如权利要求10所述的装置,其中,所述传输单元进一步配置为接收从配对的密钥生成设备发送的第二时间戳;
    所述密钥生成单元进一步配置为根据所述主密钥,依靠所述第二时间戳, 通过所述单向数据转换算法生成由所述主密钥和所述第二时间戳中信息共同确定的第二密钥,作为与所述第二时间戳对应的第二密钥。
  18. 一种密钥管理系统,包括:
    管理端设备,所述管理端设备包括:
    控制模块:配置为给多个用户的每个生成标识其身份的任意信息作为所述用户的用户识别码;
    用户信息模块,配置为存储所述用户识别码;
    密钥生成模块,包括如权利要求10到17的任一中所述的密钥生成装置并存储有主密钥,配置为给多个用户的每个生成相应的用户密钥,并且将所述用户识别码和对应密钥传递给对应的用户端设备,作为所述用户的用户密钥。
  19. 如权利要求18所述的系统,其中,所述密钥生成模块响应从所述用户信息模块发送的用户识别码,将所述用户识别码作为时间戳,生成所述用户识别码对应的密钥,并将所述用户识别码和对应密钥传递给对应的用户端设备,作为所述用户的用户密钥。
  20. 如权利要求18所述的系统,其中,所述控制模块进一步配置为:
    当一个或多个用户的用户密钥丢失时,所述控制模块从所述用户端设备接收对应的用户识别码,
    所述用户信息模块进一步配置为对接收的所述用户识别码进行校验以确认所述用户识别码是存储的用户识别码,
    所述密钥生成模块将所述用户识别码作为时间戳,生成所述用户识别码对应的用户密钥,并将所述用户密钥反馈给所述用户端设备。
  21. 如权利要求18所述的系统,其中,所述密钥生成模块进一步配置为:
    将不同用户端设备的用户识别码中的信息进行组合生成时间戳,生成用于所述不同用户之间通讯的密钥。
  22. 如权利要求18所述的系统,还包括:
    设置在所述管理端设备和所述用户端设备之间的一个或多个不同层级的中间管理节点。
  23. 如权利要求18所述的系统,还包括:
    一个或多个用户端设备,所述用户端设备存储对应用户的用户识别码。
  24. 一种加密解密装置,包括:
    如权利要求10-17的任一所述的密钥生成装置,配置为生成一次性密钥;
    输入端口,配置为读取或输入待加密数据;
    格式化单元,配置为将输入端口输入的待加密数据转换为与所述一次性密钥格式相匹配的格式化明文;
    加密模块,配置为生成加密时的时间戳,根据所述时间戳中的信息,用所述密钥生成模块生成的一次性密钥与所述格式化明文运算生成主密文,将所述一次性密钥对应的时间戳作为密文标题,合并所述主密文和所述密文标题以生成密文;
    发送端口,配置为将生成的密文发送给配对的解密装置。
  25. 如权利要求24所述的加密解密装置,还包括:
    接收端口,配置为接收从配对的加密装置发送的密文;
    解密模块,配置为解析接收的所述密文以提取主密文以及密文标题中的时间戳,根据所述时间戳中信息,用所述密钥生成模块生成与所述时间戳对应的一次性密钥作为解密密钥,用所述解密密钥解密所述主密文以生成解密后明文;
    所述格式化单元进一步配置为将解密后明文转换为复原数据;
    输出端口,配置为输出所述复原数据。
  26. 一种文件管理系统,包括管理端设备和一个或多个用户端设备,
    所述管理端设备包括:
    密钥管理模块,采用如权利要求18到23的任一所述的密钥管理系统,配置为存储系统主密钥,并且生成和分发用于系统的每个用户的用户主密钥;
    系统加密解密模块,采用如权利要求24或25所述的加密解密装置,配置为加密解密所述用户端设备与所述管理端设备交流的文件信息;
    系统文件模块,配置为存储所述文件管理系统的系统文件,
    所述用户端设备包括:
    用户加密解密模块,采用如权利要求24或25所述的加密解密装置,配置为加密解密所述用户端设备与所述管理端设备交流的文件信息。
  27. 如权利要求26所述的系统,其中,所述管理端设备通过所述密钥管理模块生成和存储所述用户端设备的每个用户的用户识别码,生成所述用户识别码对应的用户主密钥,并将所述用户主密钥和对应的用户识别码分配给每个用户端设备;
    所述用户端设备通过所述用户加密解密模块生成时间戳,依靠所述用户主密钥生成所述时间戳对应的一次性密钥,用所述一次性密钥加密文件信息生成主密文,将所述时间戳和所述用户的用户识别码作为密文标题,合并所述主密文和所述密文标题生成密文,将所述密文通过公共信道发送给所述管理端设备,作为所述用户向所述管理端设备提交的文件证明;
    所述管理端设备接收从所述用户端发送的密文,通过所述系统加密解密模块解析所述密文,提取主密文以及密文标题中的用户识别码和时间戳;所述密钥管理模块根据所述用户识别码,生成对应的用户主密钥;所述系统加密解密模块根据所述时间戳中信息,依靠所述用户主密钥生成对应的解密密钥,解密主密文,确认文件信息;
    所述管理端设备将确认文件信息的所述密文存入所述系统文件模块。
  28. 如权利要求27所述的系统,其中,所述管理端设备进一步配置为通过所述密钥管理模块生成目标用户的用户主密钥,作为所述系统加密解密模块的主密钥,通过所述系统加密解密模块加密文件信息生成密文,通过公共信道发送给目标用户端设备;
    所述目标用户端设备进一步配置为通过所述用户加密解密模块,接收从所述管理端设备发送的密文,解密所述密文,并恢复文件信息。
  29. 如权利要求28所述的系统,还包括:
    设置在所述管理端设备和所述用户端设备之间的一个或多个不同层级的中间管理节点。
  30. 一种信息安全传递系统,包括配对的第一通信设备和第二通信设备,其中
    所述第一通信设备包括:
    第一密钥生成装置,其使用如权利要求10-17的任一所述的密钥生成装置,配置为生成一次性密钥作为第一密钥;
    第一输入端口,配置为读取或输入第一待发送文件;
    第一格式化单元,配置为将输入端口输入的第一待发送文件转换为与密钥格式相同的第一格式化明文;
    第一加密模块,配置为通过第一密钥生成装置生成的第一密钥将所述第一格式化明文转换为第一主密文,将所述第一密钥的对应第一时间戳作为第一密文标题,合并所述第一主密文和所述第一密文标题以生成第一密文;
    第一发送端口,配置为将生成的第一密文发送给第二通信设备,
    所述第二通信设备包括:
    第二密钥生成装置,其使用如权利要求10-17的任一所述的密钥生成装置,配置为生成一次性密钥作为第二密钥;
    第二接收端口,配置为接收所述第一发送端口发送的所述第一密文;
    第二解密模块,配置为解析接收的所述第一密文以提取第一主密文和第一密文标题中的第一时间戳,根据所述第一时间戳,通过所述第二密钥生成模块生成所述第一时间戳对应的第二解密密钥,使用所述第二解密密钥解密所述第一主密文以生成第二解密后明文;
    第二格式化模块,配置为将所述第二解密后明文转换为第二复原数据;
    第二输出端口,配置为输出所述第二复原数据作为第二已接收文件。
  31. 如权利要求30所述的信息安全传递系统,其中
    第二通信设备进一步包括:
    第二输入端口,配置为读取或输入第二待发送文件;
    第二格式化模块同时配置为将所述第二待发送文件转换为与密钥格式相同的第二格式化明文;
    第二加密模块,配置为通过所述第二密钥生成模块生成的第二密钥将所述第二格式化明文转换为第二主密文,将所述第二密钥对应的第二时间戳作为第二密文标题,合并所述第二主密文和所述第二密文标题以生成第二密文;
    第二发送端口,配置为将所述第二密文发送给第一通信设备;
    第一通信设备进一步包括:
    第一接收端口,配置为接收所述第二发送端口发送的所述第二密文;
    第一解密模块,配置为解析接收的所述第二密文以提取其中的第二主密文以及第二密文标题中的第二时间戳,根据所述第二时间戳,通过所述第一密钥生成模块生成与所述第二时间戳对应的第一解密密钥,使用所述第一解密密钥解密所述第二主密文以生成第一解密后明文;
    第一格式化单元同时配置为将所述第一解密后明文转换为第一复原数据;
    第一输出端口,配置为输出所述第一复原数据作为第一已接收文件。
PCT/CN2022/115838 2021-08-31 2022-08-30 密钥生成和分发方法、密钥生成装置、密钥管理系统 WO2023030316A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111016098.6 2021-08-31
CN202111016098.6A CN113726512A (zh) 2021-08-31 2021-08-31 密钥生成和分发方法、密钥生成装置、密钥管理系统

Publications (1)

Publication Number Publication Date
WO2023030316A1 true WO2023030316A1 (zh) 2023-03-09

Family

ID=78680051

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/115838 WO2023030316A1 (zh) 2021-08-31 2022-08-30 密钥生成和分发方法、密钥生成装置、密钥管理系统

Country Status (2)

Country Link
CN (1) CN113726512A (zh)
WO (1) WO2023030316A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726512A (zh) * 2021-08-31 2021-11-30 蔡利锋 密钥生成和分发方法、密钥生成装置、密钥管理系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090245516A1 (en) * 2008-02-26 2009-10-01 Pasupuleti Sureshbabu Ravikiran Method and system for high entropy encryption using an unpredictable seed based on user regisration time
US20140281523A1 (en) * 2013-03-13 2014-09-18 Vector Vex Inc. System and method of secure remote authentication of acquired data
US20150319151A1 (en) * 2014-05-01 2015-11-05 At&T Intellectual Property I, Lp Apparatus and method for secure delivery of data utilizing encryption key management
CN110636028A (zh) * 2018-06-21 2019-12-31 蔡利锋 密钥生成装置、加密装置、密钥生成和分发系统
CN112039883A (zh) * 2020-08-31 2020-12-04 深圳前海微众银行股份有限公司 一种区块链的数据分享方法及装置
CN113726512A (zh) * 2021-08-31 2021-11-30 蔡利锋 密钥生成和分发方法、密钥生成装置、密钥管理系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090245516A1 (en) * 2008-02-26 2009-10-01 Pasupuleti Sureshbabu Ravikiran Method and system for high entropy encryption using an unpredictable seed based on user regisration time
US20140281523A1 (en) * 2013-03-13 2014-09-18 Vector Vex Inc. System and method of secure remote authentication of acquired data
US20150319151A1 (en) * 2014-05-01 2015-11-05 At&T Intellectual Property I, Lp Apparatus and method for secure delivery of data utilizing encryption key management
CN110636028A (zh) * 2018-06-21 2019-12-31 蔡利锋 密钥生成装置、加密装置、密钥生成和分发系统
CN112039883A (zh) * 2020-08-31 2020-12-04 深圳前海微众银行股份有限公司 一种区块链的数据分享方法及装置
CN113726512A (zh) * 2021-08-31 2021-11-30 蔡利锋 密钥生成和分发方法、密钥生成装置、密钥管理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YANG, PINLIN: "Design and Implementation of Identify Authentication Algorithm for E-commerce Platform", XIANDAI-DIANZI-JISHU = MODERN ELECTRONICS TECHNIQUE, SHAANXI-SHENG XINXI CHANYETING; SHAANXI DIANZI ZAZHISHE, CN, vol. 40, no. 23, 1 December 2017 (2017-12-01), CN , pages 155 - 157, 161, XP009544241, ISSN: 1004-373X, DOI: 10.16652/j.issn.1004-373x.2017.23.039 *

Also Published As

Publication number Publication date
CN113726512A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
US8275997B2 (en) Method of encrypting and transmitting data and system for transmitting encrypted data
US8031865B2 (en) Multiple level security system and method for encrypting data within documents
US8675864B2 (en) Apparatus for encrypting data
US20070028088A1 (en) Polymorphic encryption method and system
JP2008513811A (ja) 計算変換の方法及びシステム
WO2019242645A1 (zh) 密钥生成装置、加密解密装置、密钥生成和分发系统以及信息安全传递系统
Vyakaranal et al. Performance analysis of symmetric key cryptographic algorithms
Joshy et al. Text to image encryption technique using RGB substitution and AES
US8458452B1 (en) System and method for encryption and decryption of data transferred between computer systems
WO2023030316A1 (zh) 密钥生成和分发方法、密钥生成装置、密钥管理系统
RU2459367C2 (ru) Способ формирования переменного ключа для блочного шифрования и передачи шифрованных данных
CN111556004A (zh) 混合式双重网络加密系统
Rabah Theory and implementation of data encryption standard: A review
US20190166105A1 (en) Method and system for encrypting/decrypting data with ultra-low latency for secure data storage and/or communication
Shaker et al. Digital Signature Based on Hash Functions
Pushpa Enhancing Data Security by Adapting Network Security and Cryptographic Paradigms
TWI705685B (zh) 雙重網路加密系統
CN112907247A (zh) 一种区块链授权计算控制方法
WO2021138747A1 (en) A method for symmetric asynchronous generative encryption
US7526643B2 (en) System for transmitting encrypted data
TW202218373A (zh) 混合式多階運算加解密系統、其發送端裝置、以及其接收端裝置
KR20200055672A (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
CN111835506B (zh) 基于一次使用密码本的信息安全数字加密方法
Kumar et al. A Symmetric Multiple Random Keys (SMRK) Model Cryptographic Algorithm
Rajesh Double Encryption using TEA and DNA

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22863451

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE