WO2010091565A1 - 需要采用穷举法解密的随机加密方法 - Google Patents

需要采用穷举法解密的随机加密方法 Download PDF

Info

Publication number
WO2010091565A1
WO2010091565A1 PCT/CN2009/072947 CN2009072947W WO2010091565A1 WO 2010091565 A1 WO2010091565 A1 WO 2010091565A1 CN 2009072947 W CN2009072947 W CN 2009072947W WO 2010091565 A1 WO2010091565 A1 WO 2010091565A1
Authority
WO
WIPO (PCT)
Prior art keywords
random
encryption
key
ciphertext
sequence
Prior art date
Application number
PCT/CN2009/072947
Other languages
English (en)
French (fr)
Inventor
刘海云
Original Assignee
Liu Haiyun
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
Priority claimed from CN2009100042179A external-priority patent/CN101488858B/zh
Application filed by Liu Haiyun filed Critical Liu Haiyun
Publication of WO2010091565A1 publication Critical patent/WO2010091565A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Definitions

  • the present invention relates to a random encryption method by which an encrypted method is used to encrypt a generated ciphertext regardless of how the decryption program is written.
  • EFS Encrypting File System
  • the existing EFS export method of importing certificates and private keys is not only difficult to use, but many people dare not use EFS, and the time spent importing the import certificate and private key, twice accessing and placing the mobile storage device on average is one. More than a minute, it is also possible that the certificate and private key cannot be recovered because the mobile storage device is lost, leaving many users to stay away from EFS.
  • the known encryption method uses the user identity information to encrypt the plaintext
  • various algorithms are used to generate the password identification information
  • the password identification information is used to verify the user identity information, which provides convenience for the user, but also solves the problem.
  • the shortcut is provided, and the password identification information often cannot withstand the attack.
  • the existing random encryption method encrypts the random data while generating the password identification information, but only locks the user identity information in the password identification information.
  • the random data is not locked in the password identification information, and only the user identity information needs to be compared when decrypting, and the random data does not need to be compared.
  • cloud computing is currently developing at a high speed.
  • the key escrow service in the cloud needs the present invention to increase the security of ciphertext. Summary of the invention
  • the invention is generated for the above four problems, and is mainly used for encrypting the backup of the protection certificate and the private key.
  • an encryption method is provided, the encryption process of which is as follows: [I] input the encryption strength and user identity information UserlD, according to the relationship between the random length of the random key, the encryption strength and the predetermined decryption program speed, calculate the random length Long of the random key, and generate a random random length Long Key Random,
  • an encryption method is provided, the encryption process of which is as follows: [I] input encryption strength and user identity information UserlD, according to a random length of a random key, an encryption strength, and a predetermined decryption program speed. Relationship, calculating the random length Long of the random key, generating a random key Random with a random length of Long,
  • an encryption method is provided, the encryption process of which is as follows: [I] input encryption strength and user identity information UserlD, according to a random length of a random key, an encryption strength, and a predetermined decryption program speed. Relationship, calculating the random length Long of the random key, generating a random key Random with a random length of Long,
  • the insertion of the password identification information PassID into the ciphertext ReText refers to an action of adding the password identification information PassID as a unit or splitting into a plurality of units to one or more positions in the ciphertext ReText to form a new code string.
  • the insertion position is not limited to the position in the ciphertext ReText, and can also be added at the beginning and the end of the ciphertext ReText.
  • an encryption method is provided, the encryption process of which is as follows:
  • [I] input the encryption strength and user identity information UserlD, according to the relationship between the random length of the random key, the encryption strength and the predetermined decryption program speed, calculate the random length Long of the random key, and generate a random random length Long Key Random,
  • the PassID is added as a unit or split into multiple units to add a new code string to one or more positions in the ciphertext ReText, and the insertion position is not limited to the position in the ciphertext ReText, but may also be added to the ciphertext. Both ends of ReText.
  • the random length Long is composed of one or more of the following: the number of units in the random key, the number of bits in each unit in the random key, the range of variation of the unit in the random key, and the random length Long
  • the plaintext or ciphertext form is stored in an associated storage space for storing the ciphertext ReText, and is used to specify to the decryption program a random length range of the random key detected by the exhaustive method, and the related storage for storing the ciphertext Retext Space refers to one of the following four: 1 save the space of the ciphertext Retext, 2 save the space of the ciphertext Retext file attribute, 3 database, 4 is used to save the file or space of random length Long,
  • the ciphertext Retext characterized in that any decryption program for ciphertext Retext needs to use an exhaustive method or a combination of exhaustive methods and cryptanalysis techniques to find a random key.
  • Random not only needs to compare the user identity information input during decryption with the user identity information released during the decryption process, but also needs to compare the random key enumerated by the exhaustive loop with the random key released during the decryption process. Only after the comparison of the above two keys is the same, can ensure that the ciphertext ReText is correctly decrypted to release the important plaintext Text.
  • the predetermined algorithm refers to an encryption algorithm that encrypts using the user identity information UserlD and the random key Random, and includes one or more of the following encryption algorithms: substitution, permutation, confusion, diffusion, iteration, combined splitting, Mathematical relationship encryption, displacement encryption, logical encryption, calculation Encryption, packet encryption, stream cipher encryption, linear encryption, nonlinear encryption, symmetric encryption algorithms, asymmetric encryption algorithms, statistical data encryption, pseudo-random encryption, using polynomials that increase the number of terms and adjust the power as the encryption process increases.
  • the encryption strength depends on the password identification information PassID generated after encrypting the user identity information UserlD and the random key Random.
  • the password identification information PassID generated after encrypting the user identity information UserlD and the random key Random.
  • the decryption of the password identification information PassID is completed, so as to ensure the ciphertext ReText of the important plaintext Text.
  • the encryption strength is also equal to the encryption strength for encrypting the important plaintext Text and is one of the following: random length, average calculation amount of decryption, maximum calculation amount of decryption, average calculation amount of decryption, and calculation amount of encryption Magnification, the maximum calculation amount of decryption, the magnification of the calculation amount at the time of encryption, the average calculation amount of the decryption, the magnification of the calculation amount at the time of single decryption, the maximum calculation amount of the decryption, the magnification of the calculation amount at the time of single decryption, decryption The average number of attempts to decrypt, the maximum number of attempts to decrypt, the average decryption time on a predetermined speed machine, and the longest decryption time on a predetermined speed machine.
  • the random key is composed of one or more of the following information: stochastic information generated by the system, pseudo-random information generated by the system, and pseudo-random data generated by the user using the user identity information UserlD.
  • Information information obtained by using a certain algorithm to intervene the pseudo-random data generated by the system in memory or in external memory, and information obtained by interfering with the pseudo-random data generated by the system using the number of clocks.
  • an encryption method is provided, the encryption process of which is as follows: [1] Input encryption strength and user identity information UserlD, according to the relationship between the length of the random key, the encryption strength, and the predetermined decryption program speed Calculate the length of the random key Long, and generate a random key Random of length Long.
  • [V] in the above encryption process can be modified to: Insert a data smaller than the random key Random length Long and the private key KeyText identification key KeylD into the encrypted backup ReCome of the private key KeyText.
  • the data is larger or smaller than the random key Random length Long and used to indicate the random key Random length Long data, as a random key Random length Long ciphertext.
  • an encryption method is provided, and the encryption process is as follows: [A] Encrypting plaintext MessFile obtains ciphertext BeMF, and inserts the identification key KeylD of the private key KeyText into the ciphertext BeMF.
  • [C] input the encryption strength and user identity information UserlD, according to the relationship between the random length of the random key, the encryption strength and the predetermined decryption program speed, calculate the random length Long of the random key, and generate a random random length Long Key Random,
  • the stream cipher is used to encrypt the code string UR to generate the password identification information PassID for identifying the user identity information User1D and the random key Random at the time of decryption, [E] using the private key KeyText and the password identification information PassID to derive a code string KP, [ F] encrypting the code string KP by using the algorithm of serial number code encryption generated by the sorting, encrypting the code string KP by using the stream cipher generated by increasing the number of items of the encryption process and adjusting the power of the polynomial to generate the encrypted key of the private key KeyText Back up the ReCome,
  • an encryption method is provided, the encryption process of which is as follows:
  • KeyText has a private key that matches each other.
  • KeylD's private key KeyText's encrypted backup ReCome, if found, execute [H]; if not found, execute [C],
  • [C] input the encryption strength and user identity information UserlD, according to the relationship between the random length of the random key, the encryption strength and the predetermined decryption program speed, calculate the random length Long of the random key, and generate a random random length Long Key Random,
  • Encrypted plaintext MessFile gets the ciphertext BeMF, and inserts the key of the private key KeyText, KeylD, into the ciphertext BeMF, and ends.
  • an encryption method is provided, the encryption process of which is as follows:
  • KeyText has an encrypted backup of the private key KeyText that matches the identification key KeylD ReCome, if found, execute [4]; if not found, execute [5],
  • Encrypting plaintext MessFile gets the ciphertext BeMF, and inserts the key of the private key KeyText, KeylD, into the ciphertext BeMF, and then ends the process.
  • the process PKey provides an option to select the encryption strength type on a graphical interactive interface with a command button, provides an edit box for inputting the encryption strength value, and up and down arrows or other controls for adjusting the value in the frame to provide input user identity information.
  • UserlD's edit box prompting the user to enter the encryption strength or not using the default encryption strength, prompting the user to enter the user identity information UserlD of the encrypted private key KeyText backup or not entering the user identity information of the current user in the system.
  • the process PKey determines whether the user inputs the user identity information UserlD used to encrypt the private key KeyText backup. If input, execute [9], if not, extract the user identity information UserlD from the system, and then execute [10].
  • the process PKey determines whether the user identity information UserlD input by the user is valid, if it is valid, receives the user identity information UserlD input by the user, and then executes [10], and if invalid, sends an error to the graphical interface to be displayed in [6]. Prompt message, and execute [6],
  • the process PKey copies 384 bytes of random data to the first 384 bytes of the sequence ID, and the process PKey generates a random sequence P of 384 bytes.
  • the private key KeyText is used to generate a series IS with 384 integers.
  • the series IS are arranged in ascending order, and the data in the series IS is recorded in the sorted position number by ir[0], ir[l], ir[2], ir[3], ir[4] , ir[i] , ... constitute an integer sequence IR.
  • the random data is processed here to destroy the pseudo-random periodicity, so that the data is used later as a random key, where ir[i] represents the integer in the sequence IS where the original position number is i after sorting , is placed at the position of the serial number ir[i], d[i], p[i] respectively represent the data of the sequence ID and the number of bytes in the sequence P, " ⁇ ", " / ", "%”", respectively: XOR, divisible, modulo... */
  • the process PKey starts from the byte with the serial number of 128 in the sequence ID, and copies 128 bytes to the sequence P, and copies the sequence P to the sequence S, and arranges the words in the sequence S in descending order.
  • Section data and record the byte data in the sequence S in the sorted position number to r[0], r[l], r[2], r[3], r[4], r[i] , ... the integer sequence R,
  • r[i] indicates that the integer whose sequence number is i in the sequence S is placed at the position of the sequence r[i] after sorting, ...*/
  • d[2xi] d[2 i] ⁇ s[2 i] /*...0 ⁇ i ⁇ 64 ...
  • d[2xi+ l] ((d[2xi+ l] + s[2xi + 1] ) %256 ) /*...0 ⁇ i ⁇ 64 ...
  • the process PKey copies the sequence S to the sequence P, and arranges the sequences in descending order.
  • Each byte of data in S, and the sequence number of the byte data in the sequence S is recorded to r[0], r[l], r[2], r[3], r[4], r[i], ... is an integer sequence R.
  • r[i] indicates that the integer whose sequence number is i in the sequence S is placed at the position of the sequence r[i] after sorting, . ⁇ */
  • d[2xi] d[2xi] ⁇ s[2xi-256] /*...
  • d[2xi+l] (d[2xi+l] - s[2xi - 255]+256)%256 /* ...128 ⁇ i ⁇ 192 ...
  • the process PKey copies the last 128 bytes of the ID of the sequence ID into the sequence P, and copies the sequence P into the sequence S, and arranges the data of each byte in the sequence S in descending order, and the sequence S
  • the sequence number of the byte data after sorting is recorded in the integer sequence R composed of r[0], r[l], r[2], r[3], r[4], r[i], ...
  • r[i] indicates that the integer whose sequence number is i in the sequence S is placed at the position of the sequence r[i] after sorting, . ⁇ */
  • the data encryption sequence ID header data, s[i], d[i], p[i] respectively represent the data of the sequence S, the sequence ID, and the sequence number P in the sequence P, 0 ⁇ i ⁇ 128 ......*/
  • Process PKey copies the sequence S to the sequence P, and arranges the columns in descending order
  • Each byte of data in S, and the sequence number of the byte data in the sequence S is recorded to r[0], r[l], r[2], r[3], r[4], r[i], ... constitutes an integer sequence R,
  • r[i] represents the integer in the sequence S where the original position number is i, after sorting, is placed at the position r[i], ...*/
  • the process PKey shifts the data of the byte ID in the sequence ID to two bits forward, and adds the removed information to the data tail of the previous byte sequence with an odd number, and moves the second byte data out. Information is added at the end of the last byte of data,
  • the data of the sequence ID having the even number of bytes is shifted back by one, and the removed information is added to the header of the data whose last byte number is even, and the information of the second last byte data is added.
  • the first part of the first byte of data is shifted back by one, and the removed information is added to the header of the data whose last byte number is even, and the information of the second last byte data is added.
  • the data of the serial number sequence IR generated in step [10] is used to encrypt the information in the middle and the rear of the sequence ID, and the result is stored in the sequence Q.
  • the above d[i], q[i] respectively represent the sequence. ID, the number of bytes in the Q column is the data of the i, and the sequence ir[i] represents the integer data of the sequence i in the sequence IR, ... */
  • the process PKey generates a random number sequence consisting of 516 bytes, and copies the sequence into the sequence S.
  • the random key Random and the user identity information UserlD are used to derive a 516-byte sequence. a sequence of numbers, and copying the sequence to the sequence P, arranging the data of each byte in the sequence P in descending order, and recording the byte data in the sequence P in the sorted position number to r[0], r[l] , r[2] , r[3] , r[4] , r[i] , ... form an integer sequence R, calculated in a loop,
  • the process PKey copies the first 512 bytes of the sequence P to the sequence S, and arranges the data of each byte in the sequence S in descending order, and records the byte data in the sequence S in the sorted position number.
  • r[i] represents a sequence
  • the data of the original position number i in S is sorted and placed at the position of the sequence r[i]. */
  • v is the defined variable
  • the information in the last byte of the variable v is encrypted for the information in the sequence ID
  • d[i], p[i], q[i] represent the sequence ID, the sequence P, and the sequence Q, respectively.
  • the data with the byte number i is... */
  • the process PKey generates a random number sequence consisting of 2048 bytes, and copies the sequence into the first 2048 bytes of the sequence Q, and converts the private key KeyText into a string KTs, from the 2048th word of the sequence Q.
  • the section begins to cover forward, copying the string KTs into the first 2048 bytes of the sequence Q, starting from the 2049th byte of the sequence Q, and adding the data in the first 512 bytes of the sequence ID to the end of the Q.
  • the process PKey starts from the first byte of the sequence ID, and copies the sequence P to the sequence ID.
  • d[516 + ix5 + 2] q[r[i] ⁇ 5 +2] /*...0 ⁇ i ⁇ 512.
  • d[516 + ix5 + 3] q[r[i] ⁇ 5 +3] / *...0 ⁇ i ⁇ 512...
  • the process PKey will connect the random key Random, the user identity information UserlD, and the two together to form a binary sequence RU of length n, which will be the first (n /4 _ 11 ) word in the sequence ID.
  • n the first (n /4 _ 11 ) word in the sequence ID.
  • the odd-numbered information copy in the section is added to the tail of the series RU.
  • the byte data in the array ID is added to the end of the sequence RU until the length of the sequence RU is 3080x8 bits.
  • d[i] , u[i] represent the data of the sequence ID and the sequence number i in the sequence RU, n > 8 ⁇ 8, where n is the sum of the random key Random and the number of bits of the user identity information UserlD, which may result in encryption calculation The amount is too large, if so, the above formula can be modified as appropriate, ... */
  • the process PKey inserts the length Long of the random key Random, the identification key KeylD of the private key KeyText into the number ID, and then saves the sequence ID as an encrypted backup ReCome of the private key KeyText in the storage disk Disk for Save the relevant storage space of the ciphertext BeMF and end the process.
  • the method of ordering the generated serial number code to participate in the operation is used a plurality of times.
  • the method is called an algorithm for encrypting the serial number code generated by the sorting.
  • the algorithm for encoding the serial number code generated by the sorting can use the serial number code to rearrange a certain code string to implement encryption, or use the serial number code to perform other operations with a certain code string to implement encryption, which can prevent existing ones.
  • Various cryptanalysis methods, [19] and [22] use the method of increasing the number of terms in the polynomial in the algorithm for generating stream ciphers, and adding the highest power nonlinear encryption method in the polynomial to encrypt.
  • the method can invalidate the linear analysis and the differential analysis method, and the random key is locked in the password identification information by the present invention, and the exhaustive method is used to find the decryption method, so that the calculation amount completely exceeds the cracker's tolerance, so the secret The text attack also failed.
  • the method of generating a stream cipher can also be implemented by using a polynomial in which the number of items increases as the encryption process increases, and the power varies with the encryption process. That is, the power in the stream cipher polynomial can be adjusted as needed.
  • an encryption method is provided, and the encryption process is as follows: [1] The user requests to encrypt a file in the storage disk Disk.
  • the process PKey provides an option to select the encryption strength type on a graphical interactive interface with a command button, provides an edit box for inputting the encryption strength value, and up and down arrows or other controls for adjusting the value in the frame to provide input user identity information.
  • UserlD's edit box prompting the user to enter the encryption strength or not using the default encryption strength, prompting the user to enter the user identity information UserlD of the encrypted private key KeyText backup or not entering the user identity information of the current user in the system.
  • the process PKey determines whether the user inputs the user identity information UserlD used to encrypt the private key KeyText backup. If input, execute [9], if not, extract the user identity information UserlD from the system, and then execute [10].
  • the process PKey determines whether the user identity information UserlD input by the user is valid, if it is valid, receives the user identity information UserlD input by the user, and then executes [10], and if invalid, sends an error to the graphical interface to be displayed in [6]. Prompt message, and execute [6],
  • Process PKey calculates the random length Long of the random key according to the relationship between the random length of the random key, the encryption strength and the predetermined decryption program speed, and generates a random key Random with a random length of Long.
  • the process PKey uses the user identity information UserlD and the random key Random to derive a code string UR, and uses the algorithm of the sequence number code encryption generated by the order to encrypt the code string UR, and uses a polynomial that increases the number of items and adjusts the power with the encryption process.
  • Process PKey extracts the private key KeyText, and derives a code string KP by using the extracted private key KeyText and the password identification information PassID.
  • Process PKey encrypts the code string KP by using the algorithm of serial number code encryption generated by the sorting, and encrypts the code string by using the stream cipher generated by the polynomial of increasing the number of items and adjusting the power of the encryption process.
  • the process PKey inserts the random length Long of the random key Random and the identification key KeylD of the private key KeyText into the encrypted backup ReCome of the private key KeyText. [15] The process PKey saves the encrypted backup ReCome of the private key KeyText in the relevant storage space for storing the ciphertext BeMF, and ends the process.
  • an encryption method is provided, and the encryption process is as follows: [1] The user requests to encrypt a file in the storage disk Disk.
  • Encrypted plaintext MessFile gets ciphertext BeMF and identifies the private key KeyText
  • the process PKey provides an option to select the encryption strength type on a graphical interactive interface with a command button, provides an edit box for inputting the encryption strength value, and up and down arrows or other controls for adjusting the value in the frame to provide input user identity information.
  • UserlD's edit box prompting the user to enter the encryption strength or not using the default encryption strength, prompting the user to enter the user identity information UserlD of the encrypted private key KeyText backup or not entering the user identity information of the current user in the system.
  • PassID derives a code string KP, [11] Encrypting the code string KP by using the algorithm of the serial number code encryption generated by the sorting, encrypting the code string by using the stream cipher generated by increasing the number of items and the polynomial of the power of the encryption process to generate the encrypted key KeyText Backup ReCome,
  • the encrypted backup ReCome of the private key KeyText is stored in the relevant storage space for storing the ciphertext BeMF, and ends.
  • an encryption method is provided, and the encryption process is as follows: [1] The user requests to encrypt a file in the storage disk Disk.
  • the process PKey provides an option to select the encryption strength type on a graphical interactive interface with a command button, provides an edit box for inputting the encryption strength value, and up and down arrows or other controls for adjusting the value in the frame to provide input user identity information.
  • UserlD's edit box prompting the user to enter the encryption strength or not using the default encryption strength, prompting the user to enter the user identity information UserlD of the encrypted private key KeyText backup or not entering the user identity information of the current user in the system.
  • the stream cipher is used to encrypt the code string UR to generate the password identification information PassID for identifying the user identity information User1D and the random key Random at the time of decryption, [10] extracting the private key KeyText, and using the extracted private key KeyText and password identification
  • the message PassID derives a code string KP
  • KeylD inserts the encrypted key KeyText's encrypted backup ReCome
  • the backup ReCome is characterized in that any decryption program for the backup ReCome needs to use an exhaustive method or a combination of exhaustive methods and cryptanalysis techniques to find a random key, which requires not only the user identity entered during decryption.
  • the information is compared with the user identity information released during the decryption process, and the random key enumerated by the exhaustive loop needs to be compared with the random key released during the decryption process, only in the comparison of the two keys mentioned above.
  • the encrypted backup ReCome of the private key KeyText can be correctly decrypted to release the private key KeyText.
  • the encryption strength depends on the password identification information PassID generated after encrypting the user identity information UserlD and the random key Random.
  • ReCome performs correct decryption to release the private key KeyText, and when decrypting, after confirming that the user identity information UserlD and the random key Random are correct, the calculation amount of the private key KeyText is solved from the encrypted backup ReCome of the private key KeyText. The total amount of calculations is often very small.
  • the encryption strength is also equal to the encryption strength of encrypting the private key KeyText and is one of the following: random length, decryption
  • the average calculation amount, the maximum calculation amount of decryption, the average calculation amount of the decryption, the magnification of the calculation amount at the time of encryption, the maximum calculation amount of the decryption, the magnification of the calculation amount at the time of encryption, and the average calculation amount of the decryption are calculated with respect to the single decryption.
  • the random key is composed of one or more of the following information: random information generated by the system, pseudo-random information generated by the system, pseudo-random data generated by the system using the user identity information UserlD
  • the information obtained after the intervention of the algorithm, the information obtained by using the algorithm to intervene the pseudo-random data generated by the system using the data in the memory or the external memory, and the information obtained by interfering with the pseudo-random data generated by the system using the clock number, and System refers to a cryptosystem or operating system.
  • the insertion refers to an action of adding a code string as a unit or splitting into multiple units to one or more positions in another code string to form a new code string, and the insertion position is not limited to the code string.
  • the location can also be added at the beginning and end of the code string.
  • the algorithm encrypts the code string UR by using the serial number code encryption generated by the sorting, encrypts the code string UR by using the stream cipher generated by increasing the number of items and the polynomial of the power of the encryption process, and is modified as: ⁇ Encrypted by a predetermined algorithm
  • the code string UR, and the predetermined algorithm is composed of one or more of the following encryption algorithms: substitution, permutation, confusion, diffusion, iteration, combined split method, mathematical relationship encryption, displacement encryption, logical encryption, arithmetic encryption , packet encryption, stream cipher encryption, linear encryption, nonlinear encryption, symmetric encryption, asymmetric encryption, statistical data encryption, pseudo-random encryption algorithm, stream cipher encryption generated by increasing the number of items and adjusting the power of the polynomial with the encryption process Algorithm, an algorithm for encoding the serial number code generated by the sorting,
  • the algorithm encrypts the code string KP by using the sequence number code encryption generated by the sorting, encrypts the code string KP by using the stream cipher generated by increasing the number of items and the polynomial of the power of the encryption process, and is modified as: ⁇ encrypted by a predetermined algorithm
  • the code string KP, and the predetermined algorithm is composed of one or more of the following encryption algorithms: substitution, permutation, confusion, diffusion, iteration, combined split method, mathematical relationship encryption, displacement encryption, logical encryption, arithmetic encryption , packet encryption, stream cipher encryption, linear encryption, nonlinear encryption, symmetric encryption, asymmetric encryption, statistical data encryption, pseudo-random encryption algorithm, stream cipher encryption generated by increasing the number of items and adjusting the power of the polynomial with the encryption process Algorithm, An algorithm that uses serial number code encryption generated by sorting.
  • KeyText's encrypted backup ReCome is modified to: store the random length Long in the relevant storage space for saving the backup ReCome, and back up the private key KeyText identification key KeylD in the relevant storage space for saving the backup ReCome, and
  • the storing the random length Long in the relevant storage space for saving the backup ReCome means storing the random length Long in one of the following five: 1 saving the space of the backup ReCome, 2 saving the space of the backup ReCome file attribute, 3
  • the database, 4 is used to save a file or space of a random length Long, 5 is used to save a file or space of both the random length Long and the identification mark KeylD; the backup key KeylD of the private key KeyText is backed up for saving the backup ReCome
  • the relevant storage space refers to backing up the identification key KeylD of the private key KeyText in one of the following five: 1 to save the space of the backup ReCome, 2 to save the space of the backup ReCome file attribute, 3 database, 4 for saving the
  • the identification key Key1D of the private key KeyText is inserted into the ciphertext BeMF, and is modified to: back up the identification key Key1D of the private key KeyText in the relevant storage space for storing the ciphertext BeMF, and the identification of the private key KeyText
  • the flag KeylD is backed up in the relevant storage space for storing the ciphertext BeMF, which means that the identification key KeylD of the private key KeyText is backed up in one of the following four: 1 to save the space of the ciphertext BeMF, 2 to save the space of the ciphertext BeMF file attribute , 3 database, 4 is used to save the file or space of the identification key KeylD,
  • the storing the encrypted backup ReCome of the private key KeyText in the relevant storage space for storing the ciphertext BeMF means storing the encrypted backup ReCome of the private key KeyText in one of the following four: 1 Saving the ciphertext BeMF Space, 2 saves the space of the ciphertext BeMF file attribute, 3 database, 4 is used to save the file or space of the backup ReCome,
  • the encryption method described above can also have two features: 1. Verify the legitimacy of the user in the encryption process, and only the authenticated user can complete the encryption of the private key KeyText.
  • the verifying the legitimacy of the user means that the user is required to input the verification information, and the input verification information is verified, and the verification information refers to the user of the current user saved in the system.
  • Identity information such as login password, etc.
  • the encryption method in the present invention encrypts the same information even if the same user identity information is used, and the encryption strength is variable.
  • the encryption method in the present invention can adjust the encryption strength of the encryption method by adjusting the random length of the random key. As the speed of the encryption machine increases, the user's needs change. Therefore, the encryption method in the present invention can cope with the development of the future cracking device, and effectively secure the information encrypted by the encryption method in the present invention.
  • 4 - A and 4 - B are decryption flowcharts of the fourth embodiment of the present invention.
  • FIG. 5 is a flowchart of encryption according to a fifth embodiment of the present invention.
  • Figure 6 is a flow chart showing the encryption of the sixth embodiment of the present invention.
  • the information of the private key, certificate, important file and the like encrypted by the encryption method in the present invention is called an important plaintext.
  • the invention uses the user identity information and the random key to co-encrypt, locks the random key and the user identity information in the password identification information, and uses the anti-cryptographic analysis method when generating the password identification information.
  • the encrypted ciphertext of the present invention no matter how the cracker writes the decryption program, in addition to using the exhaustive method or the combination of the exhaustive method and the cryptanalysis technique, the ciphertext cannot be effectively solved by using other cryptanalysis methods.
  • any decryption program for the present invention still needs to use an exhaustive method or a combination of exhaustive methods and cryptanalysis techniques to find a random key to ensure success.
  • the encryption method in the present invention uses the same user identity information for the same information, and the obtained encryption strength is variable.
  • the encryption method in the present invention can encrypt the encryption method by adjusting the random length of the random key. The strength varies as the speed of the encryption machine increases or the user's needs change. Therefore, the encryption method in the present invention can cope with the development of the future cracking device, and effectively secure the information encrypted by the encryption method in the present invention.
  • the basic feature of the encryption method according to the present invention is: inputting user identity information and encryption strength, and calculating a random length of the random key according to a relationship between a random length of the random key, an encryption strength, and a predetermined decryption program speed, and Generating the random key of the random length, which is a random key that cannot be calculated according to any plaintext and user identity information; encrypting the important plaintext by using the user identity information and the random key; and the random key and the user in the encryption process
  • the identity information is locked in the password identification information. Even if the provided user identity information is correct, any decryption program for the present invention still needs to use an exhaustive method or a combination of exhaustive methods and cryptanalysis techniques to find a random key to ensure success.
  • Secret cipher decryption The random length described herein is composed of one or more of the following parameters: the number of units in the random key, the number of bits in each unit in the random key, and the range of variation of the unit in the random key.
  • the use of exhaustive methods for decryption does not mean that only the exhaustive method is used for decryption, and other advanced cryptanalysis techniques can be used to eliminate some of the impossible random keys to speed up the exhaustive method. Find the speed of the random key.
  • the exhaustive method described in the preceding sentence refers to the premise of inputting user identity information, and within the range of random key variation, the decryption program uses an algorithm to list the random keys that have not been excluded one by one, and uses some algorithm to The currently listed random key, user identity information, and password identification information are compared to verify the currently listed random key. Until the correct random key is found or all possible random keys have been tried.
  • the cryptographic system of the present invention requires the user or the system to provide the user identity information of the encrypted information when encrypting or decrypting.
  • the user identity information mentioned in this article refers to the key that can be fully grasped by the user. It can be input by the user when encrypting and decrypting, including user name, user password, user fingerprint, DNA, hobbies, social relations, special experience, identity.
  • the user identity information includes not only the terminal user identity information input by the terminal user or the terminal system, but also the host party key assigned to the terminal user by the cloud of the important plaintext host service provider. .
  • the escrow key is the server user identity information provided by the important plaintext escrow provider.
  • the cryptographic system generated by the present invention must use random information to participate in encryption in the encryption process.
  • the random information generated in the encryption system for encrypting information is divided into two types.
  • the first kind of random information belongs to the member of the password identification object. When decrypting, it cannot ensure that the random information is solved once by using the user identity information and other information, and the random information must be used to find the random information.
  • the second kind of random information is not a member of the password identification object, and can be solved once by using the user identity information, the random key and the ciphertext when decrypting. Out of this random information, this article simply refers to this random information as a random number.
  • the random key in the present invention uses a symmetric key. It is assumed here that when encrypting, the user identity information input by the user is a user password containing X characters, and each character in the user password contains any one of the U element sets. The time used for encryption is T. The random key that needs to be searched for by exhaustive method is composed of y units. Each unit contains any one of the R element sets, and the encryption and decryption processes are all in the process. Complete on a computer with equal speed.
  • k the correction coefficient and k > 0, and S is the number of attempts by the exhaustive method.
  • S the number of attempts by the exhaustive method.
  • k the maximum time required for the legitimate user to decrypt
  • tl 0.5xkxTx (R Y + 1 ).
  • the cracker does not know the user identity information, so the user identity information and the random key are All must be tested, so the average successful crack time:
  • the probability of successful cracking within the year is 1.20445119x10. Even if the speed of cracking the computer is 10,000 times that of the cryptocomputer, the probability of the cracker successfully cracking within one year is only
  • the user inputting multiple kinds of information makes the length X of the user identity information easily larger than 8, and the number of elements constituting the user identity information is also U. It can be increased, and the random key length y that needs to be searched by the exhaustive method can be further increased, that is, it is easy to further reduce the probability that the cracker successfully cracks.
  • the encrypted information of the present invention needs to use an exhaustive method to find a random key, and increases the average decryption calculation amount, thereby causing an average solution.
  • the increase of the secret time greatly reduces the probability of successful cracking in unit time, and the average decryption time can be controlled within the range acceptable to legitimate users, but for the cracker, because the correct user identity information is not grasped, this time is
  • the user identity information is further increased to u x times, so that the cracking time exceeds the ability of the cracker to withstand, forcing the cracker to abandon the forced crack, thereby achieving the purpose of ensuring information security.
  • the encryption strength depends on the password identification information generated after encrypting the user identity information and the random key.
  • decrypting only the decryption of the password identification information is completed before the other ciphertexts can be correctly decrypted to release the important plaintext.
  • the encryption strength can also be considered to be equal to the encryption strength for encrypting important plaintext.
  • the user or system can set the encryption strength by adjusting the random length.
  • the software or machine to which the present invention is applied can be input with a random length directly by the user or system to set the encryption strength.
  • the encryption strength can also be set by inputting the following parameters: the average calculation amount of decryption, the maximum calculation amount, the average calculation amount of decryption or the maximum calculation amount, the magnification of the calculation amount at the time of encryption, the average calculation of the decryption or the maximum calculation.
  • the counter statistics can be inserted in the decryption program to obtain:
  • the decryption program enumerates a possible random key, and uses the random key to complete an attempted decryption calculation function f(x, y, z), where x is the user identity information.
  • the length, y is the length of the random key, ⁇ is the length of the ciphertext, and the random key length is in bits.
  • the random keys are all in bits from Equation 3 to Equation 10, and the value of each bit is 0. Or 1, the length of the random key can be adjusted as needed, in which case the random length depends entirely on the length of the random key, ie the number of bits.
  • the user can derive according to the basic principle of the present invention. For example, two bits are used as a unit, and each unit has a value ranging from 00, 01, and 10.
  • the counter statistics can be inserted into the encryption program to obtain: the calculation function of the encrypted program encryption g ( X : , 2 ), where is the length of the user identity information, y is the length of the random key, z is the length of the ciphertext, random secret The key length is in bits.
  • the average calculation amount of the decryption is relative to the magnification of the calculation amount when encrypting, and can be passed to the equation:
  • the length y of the random key that should be used for encryption can be calculated from the equation in a similar manner as above.
  • the above equations are all obtained under the condition that the cryptanalysis method fails.
  • an encryption algorithm for identifying the user identification information and the random key identification information can be generated, which can be analyzed by the cracker using the cryptanalysis method.
  • the present invention calculates the random key length before encryption, according to the subroutine for calculating the acceleration capability run by the cryptosystem, and obtains the acceleration capability of the latest cryptanalysis method grasped in the system for the decryption process, Lengthening the length of the random key prevents the use of the cryptographic analysis method to break the effect of the present invention, so as to ensure that the present invention can always keep up with the development of the cryptanalysis method, and the encryption program written by the present invention can be used to not update the encryption.
  • the encryption program can be automatically improved. Encryption strength, automatically make the current latest crack technology immediately lost effect.
  • the acceleration ability is expressed by the old crack method for the average calculation amount when decrypting a certain length of ciphertext and the average calculation amount when decrypting the same length ciphertext by the new crack method, and of course, it can be expressed in other forms, of course.
  • the above ratio can be expressed by 1 minus, and can also be represented by the reciprocal of the above ratio, and is also represented by 1 minus the reciprocal.
  • the average decryption time of the user to the ciphertext is acceptable.
  • the implementation of the invention The current fastest cryptanalysis method should be applied to the decryption program for the present invention in time, and the number of cycles of the exhaustive program should be minimized, that is, on the basis of making full use of the cryptanalysis, the exhaustive loop is used for decryption, which is legal. Users provide convenience.
  • the user identity information and the random key are encrypted by an algorithm to generate password identification information for identifying the user identity information and the random key, and the algorithm for generating the password identification information is Before the announcement, in addition to using the exhaustive method to crack, there is no other effective cracking method. After the algorithm for generating the password identification information is published, a new cryptanalysis method appears, which can accelerate the cracking of the ciphertext generated by the algorithm.
  • the acceleration ability of the new cryptanalysis method for the decryption process can be expressed as a function: m (x , y , z), where X is the length of the known user identity information, and y is the length of the random key, The length of the ciphertext, the random key length is in bits, and the function m (x, y, z) represents the average calculation amount when decrypting a certain length of ciphertext by the old crack method and decrypting the same length ciphertext by the new crack method. The average calculated ratio.
  • the implementer of the present invention immediately applies the cracking method to the decryption method of the legitimate user after knowing the cracking method, so as to improve the working efficiency of the legitimate user decrypting program, and at the same time, the acceleration capability function m (x) including the method is adopted. , y, z)
  • the subroutine of the calculation function is submitted to the encryption program.
  • the encryption strength input by the user or the system is:
  • the average decryption time of the decrypted computer on the predetermined speed is V, the legal user knows the user identity information, and the relevant method when the legitimate user decrypts can be obtained:
  • Vxtl x2x m (x,y,z) f ( x , y , z ) 2 ⁇ 6
  • the acceleration capability m (X, y, z) is also taken into account in the process of calculating the length y of the random key to be used before encryption.
  • x in m(x, y, z) is the length of the known user identity information
  • Z is the length of the ciphertext.
  • the method of the present invention encrypts the user identity information and the random key algorithm has a cryptanalysis method
  • the cryptographic analysis method and the exhaustive method can be combined to exhaustively during the time set by the user.
  • the method handles longer random keys.
  • the random key is composed of one or more of the following information: random information generated by the system, pseudo-random information generated by the system, and user identity information.
  • the information obtained by interfering with the pseudo-random data generated by the system, the information obtained by using some algorithm to intervene the pseudo-random data generated by the system using the data in the memory or the external memory, and the pseudo-random generated by the system using the clock number refers to the cryptosystem or operating system.
  • the invention can use the exclusive OR, non, AND, or other logical operations to encrypt in the encryption operation of the information; and can also use arithmetic such as addition, subtraction, multiplication, division, power, square, modulo and function. Operations to encrypt; can also be encrypted using mathematical relational operations.
  • the "mathematical relations" mentioned in the preceding sentence are: size relationship, set relationship, etc., where the size relationship includes greater than, greater than or equal to, equal to, less than or equal to, less than, not equal to, the set relationship includes the relationship between the element and the set ( Belongs to, does not belong to, collections and collections between the inclusion, the mapping relationship, etc., the use of mathematical relational operations encryption refers to the encryption algorithm established according to the mathematical relationship, for example, according to the size relationship between the code of the encrypted object and a certain data to select a password or encryption algorithm, etc., according to the element ( In this paper, the relationship between an encrypted object or a code generated by an encrypted object or the like and a certain set to select a password or an encryption algorithm, etc., according to a mapping relationship (a one-to-one mapping or a non-one-to-one mapping) is established.
  • the encryption realized by logical operation is simply referred to as logical encryption
  • the encryption realized by arithmetic operation is simply referred to as arithmetic encryption
  • the encryption realized by mathematical relational operation is simply referred to as mathematical relationship encryption.
  • the invention can use the forward moving information code position in the encryption of the information (the position that is later removed can be filled with the code removed before or after, or can be filled with random code or non-random code), and can be used.
  • the rules rearrange the information code location, and can also insert non-random code into the information code, or even insert random code into the information code (the random code may not need to be searched exhaustively when decrypting, and may also need to be used
  • the exhaustive method seeks to encrypt information in a way that causes the position of the information code to change.
  • the encryption algorithm that causes the change of the position of the information code is called displacement encryption.
  • the invention can utilize the algorithm of the serial number code encryption generated by the sorting, and the so-called serial number code encryption algorithm generated by the sorting refers to rearranging other information according to the serial number code generated by the sorting (plain text, cipher text, user identity information, key). , the random number and its derived information, etc., the code location to implement the encryption method, or the serial number code generated by the sorting directly with other information (plaintext, ciphertext, user identity information, key, random number and its derivatives)
  • the code of the information, etc. performs various arithmetic operations such as XOR, addition, multiplication, and division to implement encryption.
  • the invention can not only use stream cipher encryption, linear cipher algorithm, symmetric cipher algorithm, but also block cipher algorithm, non-linear cipher algorithm, asymmetric cipher algorithm, and can also use alternative, confuse, spread, iterative, statistical data encryption. Even pseudo-random encryption and random encryption algorithms other than the present invention are used.
  • the invention When encrypting important plaintext, the invention must also encrypt the user identity information and the random key, and in the process of encrypting the important ciphertext, the user identity information and the random key, multiple (including two) codes are to be used.
  • Strings are combined into one or more (including two) code strings in a join or inter-insertion manner, and even split a code string into multiple (including two) code strings in some way, if the code string is Combining and splitting are better, and the encryption strength can also be increased. Therefore, the combination and splitting of code strings is also used as an encryption algorithm, and this encryption algorithm is called a combined splitting method. Multiple (including two) code strings generated by the combined splitting method can be encrypted with different encryption algorithms or by the same encryption algorithm. Combine multiple (including two) code strings into a combined split method After a new code string, the new code string should be encrypted. Of course, if the merged code string is encrypted and the encryption strength is sufficient, the new code string can no longer be encrypted. In the encryption process of the important ciphertext, the user identity information and the random key, the invention does not require who must first encrypt the password and who is secret.
  • [I] input the user identity information UserlD and the encryption strength, calculate the random length Long according to the relationship between the random length of the random key, the encryption strength and the predetermined decryption program speed, and generate a random key Random with a random length of Long,
  • the random length Long is composed of one or more of the following: the number of units in the random key, the number of bits in each unit in the random key, the range of variation of the unit in the random key, and after the encryption is completed,
  • the random length Long is stored in the ciphertext or the plaintext in the relevant storage space for storing the ciphertext Retext, and the related storage space for storing the ciphertext Retext refers to one of the following five: 1 Saving the ciphertext Retext Space, 2 saves the space of the ciphertext Retext file attribute, 3 database, 4 is used to save the file or space of random length Long, 5 is used to save the file or space of the random length Long and the recognition mark TextID,
  • the random key Random is part of the key encrypted for the important plaintext Text and part of the key decrypted by the ciphertext Retext, and is composed of one or more of the following information: stochastic information generated by the system, The pseudo-random information generated by the system, the information obtained by using the user identity information UserlD to interfere with the pseudo-random data generated by the system, and the pseudo-random data generated by the system using the memory or the data in the external memory are intervened by some algorithm. Information, information obtained by using a number of clocks to intervene pseudo-random data generated by the system with an algorithm, and the system refers to a cryptosystem or an operating system.
  • the predetermined algorithm consists of one or more of the following encryption algorithms: substitution, permutation, confusion, diffusion, iteration, combined splitting, mathematical relationship encryption, displacement encryption, logical encryption, arithmetic encryption, packet encryption, flow Password encryption, linear encryption, nonlinear encryption, symmetric encryption, asymmetric encryption, statistical data encryption, pseudo-random encryption algorithm, stream cipher encryption algorithm using polynomial with increasing number of items in the encryption process and adjusting power, using sorting
  • the generated algorithm for serial number code encryption wherein the user identity information UserlD and the random key Random are used, in addition to utilizing the user identity information UserlD and the random key Random itself, including the following letter
  • One or more of the information information derived from user identity information UserlD, information derived from random key Random, random number, information derived from random number, important plaintext Text, information derived from important plaintext Text, Among the four of the user identity information UserID, random key Random, random number and important plaintext Text, the user identity information UserID, random key Random, random number and
  • the important plain text refers to one or more of the following information: private key, certificate, personal privacy, trade secret, enterprise secret, computer security information, the important plaintext Text to be encrypted to obtain ciphertext Retext is the process of encrypting the important plain text, user identity information UserlD and random key Random, and the process is diverse. Fourteen of them are listed below: (1) For important plain text, user identity The information UserlD and the random key Random are respectively encrypted to obtain the ciphertext Re1, the ciphertext Re2, the ciphertext Re3 corresponding to the three, and then the ciphertext Rel, the ciphertext Re2, and the ciphertext Re3 are combined into one ciphertext Retext.
  • the ciphertext of the code string S and the ciphertext Re4 are combined into one ciphertext Retext, and (3) the important plain text, the user identity information UserlD and the random key Random are respectively encrypted to obtain the ciphertext Rel corresponding to the three.
  • the ciphertext Re2 and the ciphertext Re3 combine two of the ciphertext Rel, the ciphertext Re2, and the ciphertext Re3 into one code string S, and encrypt the code string S to obtain the ciphertext Re4, and then The ciphertext Rel, the ciphertext Re2, and the ciphertext Re3 are not combined into the ciphertext and the ciphertext Re4 constituting the code string S into a code string ReS, and then the code string ReS is encrypted to obtain the ciphertext Retext.
  • the combination is a code string S
  • the code string S is encrypted to obtain the ciphertext Re2
  • the ciphertext Rel and the ciphertext Re2 are combined into one ciphertext to obtain the ciphertext Retext
  • the user Identity One of the information UserlD and the random key Random is encrypted to obtain the ciphertext Rel, and the other two are not involved in generating the cipher Rel, and the other two are combined into one code string S, and the code string S is encrypted.
  • the ciphertext Re2 is obtained, and then the ciphertext Rel and the ciphertext Re2 are combined into one code string ReS, and then the code string ReS is encrypted to obtain the ciphertext Retext, (7) the important plaintext Text, the user identity information UserlD and the random key.
  • One of the three is encrypted to obtain the ciphertext Rel, and one of the other three of the three that has not been encrypted and the ciphertext Rel is combined into a code string S, and the code string S is encrypted to Obtaining the ciphertext Re2, and then combining the ciphertext Re2 with the aforementioned three (ie, the important plain text, the user identity information UserlD, and the random key Random) into a code string ReS, and then Encrypting the code string ReS to obtain the ciphertext Retext, (8) encrypting one of the important plaintext Text, the user identity information UserlD, and the random key Random to obtain the ciphertext Rel, which is not among the foregoing three Participate in the creation of the other two of the cipher Rel One and the ciphertext Rel are combined into a code string S, and the code string S is encrypted to obtain the ciphertext Re2, and the foregoing three (ie, the important plain text, the user identity information UserlD and the random
  • the other two that have not been encrypted are combined with the ciphertext Rel into a code string S, and the code string S is encrypted to obtain a ciphertext Retext, ( ⁇ ) firstly the important plain text, the user identity information UserlD and the random key Random.
  • the two of the three are combined into one code string S, and then the code string S is encrypted to generate a ciphertext Rel, and the data and the ciphertext Rel which are not involved in the code string S among the three above are combined into one code string ReS.
  • the code string ReS is encrypted to obtain the ciphertext Retext
  • (12) the important plain text, the user identity information UserlD and the random key Random are combined into one code string S, and then the code string S is encrypted.
  • the outer one and the ciphertext Rel and the ciphertext Re2 are combined into one code string S, the code string S is encrypted to obtain the ciphertext Retext, and (14) the important plain text, the user identity information UserlD and the random key Random are three.
  • the code in is inserted into each other and split into multiple (including two) new code strings Sl, code strings
  • the ciphertext Retext includes not only the information generated after encrypting the important plaintext Text, but also the information generated by encrypting the user identity information UserlD and the random key Random, that is, the password identification information PassID, and writing the decryption program anyway, when decrypting Under the condition of inputting the user identity information UserlD, it is necessary to use the exhaustive method or the combination of cryptanalysis and exhaustive attack to find the random key Random to ensure the correct decryption of the ciphertext ReText to release the important plaintext Text.
  • the encryption strength depends on the password identification information PassID generated after encrypting the user identity information UserlD and the random key Random.
  • the encryption strength is also equal to the encryption strength for encrypting the important plaintext Text and is one of the following: random length, average calculation amount of decryption, maximum calculation amount of decryption, average calculation amount of decryption, and calculation amount of encryption Magnification, the maximum calculation amount of decryption, the magnification of the calculation amount at the time of encryption, the average calculation amount of the decryption, the magnification of the calculation amount at the time of single decryption, the maximum calculation amount of the decryption, the magnification of the calculation amount at the time of single decryption, decryption The average number of attempts to decrypt, the maximum number of attempts to decrypt, the average decryption time on a predetermined speed machine, and the longest decryption time on a predetermined speed machine.
  • the input user identity information UserlD and the encryption strength are input according to one of the following eight sequences: 1 first input the user identity information UserlD, then input the encryption strength, 2 first input the encryption strength, and before generating the random key Random, Enter the user identity information UserlD, 3 first enter the encryption strength, and after generating the random key Random, enter the user identity information UserlD, 4 in the process of inputting the user identity information UserlD, input the encryption strength, and before generating the random key Random Enter the user identity information UserlD, 5 in the process of inputting the user identity information UserlD, input the encryption strength, and after generating the random key Random, complete the input user identity information UserlD, 6 the user determines the user identity information UserlD and the encryption strength Input of the two Sequence, 7 enter the user identity information UserlD with two processes, and input the encryption strength with one of the processes, 8 input the user identity information UserlD with two threads, and input the encryption strength with one of the threads.
  • the cryptosystem In order to indicate the necessary attributes such as the owner of the ciphertext Retext, the cryptosystem often assigns an identification text TextID to the important plaintext Text. In the process of generating the ciphertext Retext, the cryptographic system backs up the identification mark TextID in the context for storing the ciphertext Retext.
  • the identification mark TextID is composed of one or more of the following information: random data, version number, establishment and modification time of the important plaintext Text, and the related storage space for storing the ciphertext Retext It refers to one of the following five: 1 to save the space of the ciphertext Retext, 2 to save the space of the ciphertext Retext file attribute, 3 database, 4 to save the file or space of the identification mark TextID, 5 to save the random length Long a file or space that recognizes both the text and the text IDID,
  • the user identity information UserlD described above includes not only the end user identity information End-UserlD input by the terminal user or the terminal system, but also the cloud to the terminal of the important plaintext hosting service provider.
  • the user-assigned escrow key, and, in the process of encrypting the important plaintext Text, the cloud of the important plaintext escrow service provider generates a custodian key, which is encrypted after the escrow party key is encrypted using the public key of the end user.
  • the escrow key is sent to the end user computer, and the end user computer decrypts the received ciphertext with the private key to obtain the escrow key, and then uses the escrow key to participate in encrypting the important plaintext Text and its ciphertext, and encrypting After completion, the end user computer sends the ciphertext Retext to the cloud of the important plaintext hosting service provider for saving.
  • the terminal user inputs the terminal user identity information End-UserlD, and the terminal user computer utilizes the important plaintext hosting service provider.
  • End-UserlD and sends the encrypted end user identity information End-UserlD to the cloud of the important plaintext host service provider, and sends a request to decrypt the ciphertext Retext information.
  • the cloud verifies the request information, the private key is used to receive the secret.
  • Decryption to obtain the end user identity information End-UserlD, the cloud extracts and decrypts the encrypted hoster key to obtain the hoster key, and then, the cloud utilizes the hoster key and the terminal user identity information End-UserlD,
  • the ciphertext Retext is decrypted by the exhaustive method to obtain the important plaintext Text.
  • the cloud encrypts the important plaintext Text by using the public key of the end user, and sends the encrypted important plaintext Text to the end user, and the end user uses the private key to encrypt the important one.
  • the plaintext Text is decrypted to obtain the important plaintext Text.
  • the ciphertext Retext is decrypted, the ciphertext Retext and the escrow secret are also sent after the request submitted by the cloud authentication terminal user of the important plaintext custodian is correctly sent.
  • the key is sent to the end user computer, and the terminal user inputs the terminal on his own computer.
  • the user identity information End-User1D decrypts the ciphertext Retext by using the terminal user identity information End-UserlD and the hoster key to obtain an important plaintext Text.
  • the end user can also choose to perform decryption on the third party computer.
  • the end user sends the ciphertext Retext to the cloud of the important plaintext escrow service provider the ciphertext Retext can be encrypted and then sent again by the cloud public key, or can be sent directly without the cloud public key cryptography, in the cloud of the important plaintext escrow service provider.
  • the ciphertext Retext may be encrypted and then sent again by the end user public key, or may be sent directly without the end user public key encryption.
  • the invention may also have some other features such as: 1
  • the user inputs the user identity information UserlD and the encryption strength on the graphical interaction interface with the command button, 2 verifies the legitimacy of the user, and only the user who passes the risk certificate can complete the important plaintext. Encryption of Text.
  • the file security system (including the encryption system and the decryption system) for backing up key passwords and certificates by the present invention will be abbreviated as FKSS;
  • the private key KeyText which is backed up and restored by the present invention is encrypted by the present invention.
  • Method to protect the important plaintext; encrypt the private key KeyText with the encryption method of the present invention to generate the private key KeyText's encrypted backup is called ReCome (after generating the ReCome, FKSS still retains the private key KeyText);
  • the file or information waiting for FKSS encryption other than the key KeyText is called plaintext MessFile;
  • the ciphertext generated by encrypting the plaintext MessFile by FKSS is called BeMF.
  • the encryption process is as follows:
  • [C] input the encryption strength and user identity information UserlD, according to the relationship between the length of the random key, the encryption strength and the speed of the predetermined decryption program, calculate the length Long of the random key, and generate a random key Random of length Long ,
  • KeyText has a private key that matches each other.
  • KeylD's private key KeyText's encrypted backup ReCome, if found, execute [H]; if not found, execute [C],
  • [C] input the encryption strength and user identity information UserlD, according to the relationship between the length of the random key, the encryption strength and the speed of the predetermined decryption program, calculate the length Long of the random key, and generate a random key Random of length Long ,
  • Encrypted plaintext MessFile gets the ciphertext BeMF, and inserts the key of the private key KeyText, KeylD, into the ciphertext BeMF, and ends.
  • the encryption process is as follows:
  • KeyText has a private key that matches each other.
  • KeylD's private key KeyText's encrypted backup ReCome, if found, execute [4]; if not found, execute [5],
  • Encrypting plaintext MessFile gets the ciphertext BeMF, and inserts the key of the private key KeyText, KeylD, into the ciphertext BeMF, and then ends the process.
  • the process PKey provides an option to select the encryption strength type on a graphical interactive interface with a command button, provides an edit box for inputting the encryption strength value, and up and down arrows or other controls for adjusting the value in the frame to provide input user identity information.
  • UserlD's edit box prompting the user to enter the encryption strength or not using the default encryption strength, prompting the user to enter the user identity information UserlD of the encrypted private key KeyText backup or not entering the user identity information of the current user in the system.
  • the process PKey determines whether the user inputs the user identity information UserlD used to encrypt the private key KeyText backup. If input, execute [9], if not, extract the user identity information UserlD from the system, and then execute [10].
  • the process PKey determines whether the user identity information UserlD input by the user is valid, if it is valid, receives the user identity information UserlD input by the user, and then executes [10], and if invalid, sends an error to the graphical interface to be displayed in [6]. Prompt message, and execute [6],
  • the process PKey copies 384 bytes of random data to the first 384 bytes of the sequence ID, and the process PKey generates a random sequence P of 384 bytes.
  • the private key KeyText is used to generate a series IS with 384 integers.
  • the series IS are arranged in ascending order, and the data in the series IS is recorded in the sorted position number by ir[0], ir[l], ir[2], ir[3], ir[4] , ir[i] , ... constitute an integer sequence IR.
  • d[i] d[i] A p[ir[i]] /* .
  • the random data is processed here to destroy the pseudo-random periodicity, so that the data is used later as a random key, where ir[i] represents the integer in the sequence IS where the original position number is i after sorting , is placed at the position of the serial number ir[i], d[i], p[i] respectively represent the data of the sequence ID and the number of bytes in the sequence P, " ⁇ ", " / ", "%”", respectively: XOR, divisible, modulo... */
  • the process PKey starts from the byte with the serial number of 128 in the sequence ID, and copies 128 bytes to the sequence P, and copies the sequence P to the sequence S, and arranges the words in the sequence S in descending order.
  • Section data and record the byte data in the sequence S in the sorted position number to r[0], r[l], r[2], r[3], r[4], r[i] , ... the integer sequence R,
  • r[i] indicates that the integer whose sequence number is i in the sequence S is placed at the position of the sequence r[i] after sorting, ...*/
  • d[2xi] d[2 i] ⁇ s[2 i] /*...0 ⁇ i ⁇ 64 ...
  • d[2xi+ l] ((d[2xi+ l] + s[2xi + 1] ) %256 ) /*...0 ⁇ i ⁇ 64 ...
  • the process PKey copies the sequence S into the sequence P, arranges the byte data in the sequence S in descending order, and records the byte data in the sequence S in the sorted position number to be r[0 ], r[l], r[2], r[3], r[4], r[i], ... are formed in the integer sequence R.
  • r[i] indicates that the integer whose sequence number is i in the sequence S is placed at the position of the sequence r[i] after sorting, ...*/
  • d[2xi] d[2xi] ⁇ s[2xi-256] /*...
  • the process PKey copies the last 128 bytes of the ID of the sequence ID into the sequence P, and copies the sequence P into the sequence S, and arranges the data of each byte in the sequence S in descending order, and the sequence S
  • the sequence number of the byte data after sorting is recorded in the integer sequence R composed of r[0], r[l], r[2], r[3], r[4], r[i], ...
  • r[i] indicates that the integer whose sequence number is i in the sequence S is placed at the position of the sequence r[i] after sorting, . ⁇ */
  • the data encryption sequence ID header data, s[i], d[i], p[i] respectively represent the data of the sequence S, the sequence ID, and the sequence number P in the sequence P, 0 ⁇ i ⁇ 128 ......*/
  • Process PKey copies the sequence S to the sequence P, and arranges the columns in descending order
  • Each byte of data in S, and the sequence number of the byte data in the sequence S is recorded to r[0], r[l], r[2], r[3], r[4], r[i], ... constitutes an integer sequence R,
  • r[i] represents the integer in the sequence S where the original position number is i, after sorting, is placed at the position r[i], ...*/
  • the process PKey shifts the data of the byte ID in the sequence ID to two bits forward, and adds the removed information to the data tail of the previous byte sequence with an odd number, and moves the second byte data out. Information is added at the end of the last byte of data,
  • the data of the sequence ID having the even number of bytes is shifted back by one, and the removed information is added to the header of the data whose last byte number is even, and the information of the second last byte is removed. Add the header of the first byte of data,
  • the number of the first 225566 words of the number of columns in the list of QQ will be copied in order to the number of columns in the IIDD.
  • the process PPKKeeyy generates a sequence of random machine numbers consisting of 551166 word bytes, and will copy the number column 1155.
  • the system is used to count the number of SSs, and uses a certain kind of algorithm to use the random key key RRaannddoomm and the user identity information UUsseerrllDD to distribute one by one.
  • bit position sequence number record is recorded by rr[[00]] ,, rr[[ll]] , rr[[22]] , rr[[33]] , rr[[44] ] , , rr[[ii]] , , ... constitute an integral number of integers in the column RR, calculated by using one cycle loop count,
  • v is the defined variable
  • the information in the last byte of the variable v is encrypted for the information in the sequence ID
  • d[i], p[i], q[i] represent the sequence ID, the sequence P, and the sequence Q, respectively.
  • the data with the byte number i is... */
  • the process PKey generates a random number sequence consisting of 2048 bytes, and copies the sequence into the first 2048 bytes of the sequence Q, and converts the private key KeyText into a string KTs, from the 2048th word of the sequence Q.
  • the section begins to cover forward, copying the string KTs into the first 2048 bytes of the sequence Q, starting from the 2049th byte of the sequence Q, and adding the data in the first 512 bytes of the sequence ID to the end of the Q.
  • the process PKey starts from the first byte of the sequence ID, copies the sequence P to the sequence ID, arranges the data of each byte in the sequence S in descending order, and puts the byte data in the sequence S
  • the sorted position number is recorded in an integer sequence R consisting of r[0], r[l], r[2], r[3], r[4], r[i], ...
  • d[516 + ix5 + l] q[r[i] ⁇ 5 + 1] /*...0 ⁇ i ⁇ 512—
  • d[516 + ix5 + 2] q[r[i] ⁇ 5 + 2] /* ...0 ⁇ i ⁇ 512.
  • d[516 + ix5 + 3] q[r[i] ⁇ 5 + 3] /* ...0 ⁇ i ⁇ 512...
  • d[516 + ix5 + 4] q[r[i] ⁇ 5 + 4] /* ...0 ⁇ i ⁇ 512... /* ... d[i], q[i] respectively represent the sequence ID , the data of the byte number i in the sequence Q, ...
  • the process PKey will connect the random key Random, the user identity information UserlD, and the two together to form a binary sequence RU of length n, which will be the first (n / 4 _ 11 ) word in the sequence ID.
  • the odd-numbered information copy in the section is added to the tail of the series RU.
  • the byte data in the array ID is added to the end of the sequence RU until the length of the sequence RU is 3080x8 bits.
  • u[i] represents the data of the sequence ID and the sequence number of the RU in the RU, n
  • n is the random key Random and user identity information The sum of the number of bits of UserlD, which may cause the encryption calculation to be too large. If so, the above formula can be modified appropriately, ... */
  • the process PKey inserts the length Long of the random key Random, the identification key KeylD of the private key KeyText into the number ID, and then saves the sequence ID as an encrypted backup ReCome of the private key KeyText in the storage disk Disk for Save the relevant storage space of the ciphertext BeMF and end the process.
  • the encryption process is as follows:
  • FKSS determines whether the private key KeyText exists, if it exists, extracts the identification key KeylD of the private key KeyText, and then executes [3]; if not, generates the private key KeyText and its identification key KeylD and saves, and then executes [ 5],
  • FKSS is used to store the ciphertext BeMF related storage space, and find an encrypted backup ReCome with the private key KeyText of the current user private key KeyText that matches the identification key KeylD. If found, execute [4]; If not found, execute [5],
  • FKSS encrypts the plaintext MessFile to get the ciphertext BeMF, and inserts the private key KeyText identification mark KeylD into the ciphertext BeMF, and then ends the process.
  • FKSS adds a process, one of the process and the original process PKey executes [6], and the other process executes [4],
  • the process PKey provides an option to select the encryption strength type on a graphical interactive interface with a command button, provides an edit box for inputting the encryption strength value, and up and down arrows or other controls for adjusting the value in the frame to provide input user identity information.
  • UserlD's edit box prompts the user to enter the encryption strength or does not enter the default encryption strength of FKSS. The user is prompted to enter the user identity information UserlD of the encrypted private key KeyText or not to enter the user identity information of the current user in the system. [7 ⁇ Detect user commands. If the command entered by the user is acknowledgment, execute [8]. If the command entered by the user is quit, the process ends.
  • the process PKey determines whether the user inputs the user identity information UserlD used to encrypt the private key KeyText backup. If input, execute [9], if not, extract the user identity information UserlD from the system, and then execute [10].
  • the process PKey determines whether the user identity information UserlD input by the user is valid, if it is valid, receives the user identity information UserlD input by the user, and then executes [10], and if invalid, sends an error to the graphical interface to be displayed in [6]. Prompt message, and execute [6],
  • Process PKey calculates the random length Long of the random key according to the relationship between the random length of the random key, the encryption strength and the predetermined decryption program speed, and generates a random key Random with a random length of Long.
  • the process PKey uses the user identity information UserlD and the random key Random to derive a code string UR, and uses the sequence number code generated by the sorting to rearrange the positions of the codes in the code string UR, and uses the number of entries and the adjustment power with the encryption process.
  • the stream cipher generated by the polynomial to encrypt the code string The UR generates a password identification information PassID for identifying the user identity information User1D and the random key Random at the time of decryption,
  • Process PKey extracts the private key KeyText, and uses the extracted private key KeyText and the password identification information PassID to derive a code string KP,
  • the process PKey rearranges the positions of the codes in the code string KP by using the sequence number code generated by the sorting, and encrypts the code string KP by using the stream cipher generated by the polynomial of increasing the number of items and the power of the encryption process to generate the private key.
  • KeyText's encrypted backup ReCome
  • Process PKey will random key random random length Long , private key KeyText identification mark KeylD inserted into the encrypted key KeyText's encrypted backup ReCome,
  • Process PKey saves the encrypted backup ReCome of the private key KeyText in the relevant storage space for storing the ciphertext BeMF, and ends the process.
  • the fourth embodiment of the present invention has the following decryption process: [1] The user requests the FKSS to decrypt the ciphertext BeMF in the storage disk.
  • [2] Decrypt the ciphertext BeMF with the current user's private key KeyText to obtain the plaintext MessFile. If the decryption succeeds, the decryption ends; if the decryption fails or the current user's private key KeyText does not exist, then the next step is performed.
  • the pre-Long bit data of TryPass is treated as a non-negative integer by a specific program, and the algorithm of Add 1 is used to update TryPass to list a new random key.
  • This article assumes that the first bit of TryPass is the front end and the low bit is the last high bit.
  • This exhaustive cycle includes [14] To [20] these seven steps.
  • there are many ways to update TryPass such as reducing TryPass by one, etc.*/
  • FKSS encrypts the plaintext MessFile gets the ciphertext BeMF, and inserts the private key KeyText identification mark KeylD into the ciphertext BeMF.
  • FKSS is used to store the ciphertext BeMF related storage space, and finds an encrypted backup ReCome with the private key KeyText of the current user private key KeyText that matches the identification key KeylD, if found, ends; if not found, Then execute [4],
  • the process PKey provides an option to select the encryption strength type on a graphical interactive interface with a command button, provides an edit box for inputting the encryption strength value, and up and down arrows or other controls for adjusting the value in the frame to provide input user identity information.
  • UserlD's edit box prompting the user to enter the encryption strength or not using the default encryption strength of FKSS, prompting the user to enter the user identity information UserlD of the encrypted private key KeyText backup or not entering the user identity information of the current user in the system, [5 ⁇ Detect user commands. If the command entered by the user is acknowledgment, execute [6], and if the command entered by the user is quit, the process ends.
  • FKSS determines whether the user inputs the user identity information used to encrypt the private key KeyText backup UserlD, if input, execute [7]; if there is no input, extract user identity information UserlD from the system, and then execute [8],
  • FKSS determines whether the user identity information UserlD input by the user is valid. If it is valid, it receives the user identity information UserlD input by the user, and then executes [8]. If it is invalid, it sends an error prompt to the graphical interface to be displayed in [4]. Information, and execute [4],
  • FKSS calculates the random length Long of the random key according to the relationship between the random length of the random key, the encryption strength and the predetermined decryption program speed, and generates a random key Random with a random length of Long.
  • FKSS uses user identity information UserlD and random key Random to derive a generation
  • the code string UR encrypts the code string UR by using an algorithm for serial number code encryption generated by the sorting, and encrypts the code string UR by using a stream cipher generated by increasing the number of items and the polynomial of the power of the encryption process to generate for decryption. Identifying the password identification information PassID of the user identity information UserlD and the random key Random,
  • FKSS extracts the private key KeyText, and derives a code string KP from the extracted private key KeyText and the password identification information PassID.
  • the FKSS encrypts the code string KP by using the algorithm of the serial number code encryption generated by the sorting, and encrypts the code string KP by using the stream cipher generated by the polynomial of increasing the number of items and the power of the encryption process to generate the key of the private key KeyText. Encrypted backup ReCome,
  • FKSS will randomize the random length of random Random, private key KeyText identification mark KeylD insert private key KeyText's encrypted backup ReCome,
  • FKSS saves the encrypted backup ReCome of the private key KeyText in the relevant storage space for storing the ciphertext BeMF, and ends.
  • the encryption process is as follows: [1] The user requests the FKSS to encrypt the file in the storage disk.
  • FKSS is used to store the ciphertext BeMF related storage space, and find an encrypted backup ReCome with the private key KeyText of the current user private key KeyText that matches the identification key KeylD. If found, execute [14]; If not found, execute [4],
  • the process PKey provides an option to select the encryption strength type on a graphical interactive interface with a command button, provides an edit box for inputting the encryption strength value, and up and down arrows or other controls for adjusting the value in the frame to provide input user identity information.
  • UserlD's edit box prompting the user to enter the encryption strength or not using the default encryption strength of FKSS, prompting the user to enter the user identity information UserlD of the encrypted private key KeyText backup or not entering the user identity information of the current user in the system, [5 ⁇ Detect user commands. If the command entered by the user is acknowledgment, execute [6]. If the command entered by the user is quit, execute [14].
  • FKSS determines whether the user inputs the user identity information UserlD used to encrypt the private key KeyText backup. If it is input, execute [7]. If there is no input, extract the user identity information UserlD from the system, and then execute [8]. [7] FKSS determines whether the user identity information UserlD input by the user is valid. If it is valid, it receives the user identity information UserlD input by the user, and then executes [8]. If it is invalid, it sends an error prompt to the graphical interface to be displayed in [4]. Information, and execute [4],
  • FKSS calculates the random length Long of the random key according to the relationship between the random length of the random key, the encryption strength and the predetermined decryption program speed, and generates a random key Random with a random length of Long.
  • FKSS uses the user identity information UserlD and the random key Random to derive a code string UR, which uses the algorithm of the sequence number code encryption generated by the order to encrypt the code string UR, and uses the polynomial of increasing the number of items and adjusting the power with the encryption process.
  • Stream cipher to encrypt the code string UR to generate password identification information PassID for identifying the user identity information UserlD and the random key Random at the time of decryption,
  • FKSS extracts the private key KeyText, and uses the extracted private key KeyText and the password identification information PassID to derive a code string KP,
  • the FKSS encrypts the code string KP by using the algorithm of the serial number code encryption generated by the sorting, and encrypts the code string KP by using the stream cipher generated by the polynomial of increasing the number of items and the power of the encryption process to generate the key of the private key KeyText. Encrypted backup ReCome,
  • FKSS will randomize the random length of random Random, private key KeyText identification mark KeylD insert private key KeyText's encrypted backup ReCome,
  • FKSS saves the encrypted backup ReCome of the private key KeyText in the relevant storage space for storing the ciphertext BeMF.
  • FKSS encrypts the plaintext MessFile to get the ciphertext BeMF, and inserts the private key KeyText's identification key KeylD into the ciphertext BeMF, and then ends.
  • the information generated by the encryption method in the present invention in the ReCome does not need to be decrypted under normal circumstances, and only needs to be decrypted when the existing private key KeyText in the FKSS cannot decrypt the BeMF, and is used to save the Encrypted data.
  • the frequency of ReCome's need for full decryption is very low, so we can adjust the random length so that FKSS can multiply the average calculation amount of all decrypted ReComes by the number of times when the user identity information is correct.
  • FKSS can encrypt the speed of the machine when setting the random length.
  • the average decryption time of all ReCome decryption is set to 1 minute, 1 hour, 1 day, 1 week or even longer. Of course, other settings are not excluded.
  • Embodiments of the present invention can be implemented in a variety of ways, including writing on a computer readable recording medium Computer readable code on.
  • the computer readable recording medium can be any type of recording device in which data is stored in a computer readable form.
  • the computer readable recording medium includes, but is not limited to
  • the computer readable recording medium can be distributed over a plurality of computer systems connected to the network such that the computer readable code can be written to and executed therefrom in a distributed fashion.
  • This encryption method can be applied not only to a single computer system, but also to the cloud system of an important plaintext host.
  • functional programs, codes or code segments required to implement the embodiments of the present invention can be construed by one of ordinary skill in the art.
  • the encryption method according to the present invention can adjust the encryption strength automatically or as needed.
  • the encryption method according to the present invention can be used to encrypt a backup of important file information such as a private key, a certificate, and the like to generate a highly secure ciphertext.
  • the ciphertext generated by the encryption method according to the present invention can cope with various high performance cracking machines.

Landscapes

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

Description

需要釆用穷举法解密的随机加密方法 技术领域
本发明涉及一种随机加密方法, 用该加密方法加密生成的密文无论解密 程序如何编写都需要用穷举法进行解密。 背景技术
目前普遍使用的操作系统 Windows XP和 Windows Vista中釆用了先进的 EFS ( Encrypting File System, 力口密文件系统)。 该密码系统中的证书和私钥丟 失后, 无法解密被 EFS加密的文件。 EFS导出的私钥备份的加密强度完全取 决于用户导出私钥过程中所输入的密码。 为了保证证书和私钥备份的安全, 使用 EFS的人们往往将备份保存在移动存储设备中。 当操作系统中的证书和 私钥丟失时, 用户常常需要翻箱倒拒寻找移动存储设备, 找到后将保存在移 动存储设备中备份的证书和私钥导入操作系统, 然后用导入的证书和私钥解 密被 EFS加密的文件。现有的 EFS导出导入证书和私钥的方法不但不易使用, 使许多人不敢使用 EFS , 而且导出导入证书和私钥、 两次取用和两次放置移 动存储设备后所花时间平均在一分钟以上, 还可能因为移动存储设备丟失而 无法恢复证书和私钥, 使许多用户对 EFS敬而远之。 另一方面, 已公知的加 密方法利用用户身份信息对明文加密时, 釆用各种算法生成密码识别信息, 利用该密码识别信息对用户身份信息的验证, 为用户提供了方便, 但也给破 解者提供了捷径, 并且该密码识别信息往往经不起攻击。 还有, 利用用户身 份信息和随机数据共同对同一保护对象加密时, 现有的随机加密方法在生成 密码识别信息时, 虽然将随机数据加密, 但只将用户身份信息锁在密码识别 信息中, 并没有将随机数据锁在密码识别信息中, 解密时只需要对用户身份 信息进行比对, 并不需要对随机数据进行比对。 第四个方面当前云计算高速 发展, 云中的密钥托管服务需要本发明来增加密文的安全性。 发明内容
本发明正是针对以上四方面的问题而产生, 主要用来加密保护证书和私 钥的备份。
根据本发明的一个方面, 提供一种加密方法, 其加密流程如下: 【 I】输入加密强度和用户身份信息 UserlD,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的随机长度 Long, 产生随机长度为 Long的随机密钥 Random,
【 II】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR, 釆用预定算法加密代码串 UR, 以生成用于在解密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID,
【m】利用重要明文 Text与密码识别信息 PassID派生一个代码串 TP,
【IV】釆用预定算法加密代码串 TP,以生成重要明文 Text的密文 ReText。 根据本发明的一个方面, 提供一种加密方法, 其加密流程如下: 【 I】输入加密强度和用户身份信息 UserlD,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的随机长度 Long, 产生随机长度为 Long的随机密钥 Random,
【 II】利用用户身份信息 UserID、 随机密钥 Random和重要明文 Text派 生一个代码串 URT,
【m】釆用预定算法加密代码串 URT, 以生成重要明文 Text的密文
ReText。 根据本发明的一个方面, 提供一种加密方法, 其加密流程如下: 【 I】输入加密强度和用户身份信息 UserlD,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的随机长度 Long, 产生随机长度为 Long的随机密钥 Random,
【 II】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR, 釆用预定算法加密代码串 UR, 以生成用于在解密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID,
【m】釆用预定算法加密重要明文 Text, 以生成重要明文 Text的密文 ReText,
【IV】将密码识别信息 PassID插入密文 ReText中, 其中,
所述将密码识别信息 PassID插入密文 ReText中, 是指将密码识别信息 PassID作为一个单位或拆分为多个单位添加到密文 ReText中某一个或多个位 置构成一个新代码串的动作, 并且插入位置不局限于密文 ReText里的位置, 也可以添加在密文 ReText的首尾两端。 根据本发明的一个方面, 提供一种加密方法, 其加密流程如下:
【 I】输入加密强度和用户身份信息 UserlD,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的随机长度 Long, 产生随机长度为 Long的随机密钥 Random,
【II】釆用预定算法加密重要明文 Text, 以生成重要明文 Text的密文
ReText,
【m】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串
UR, 釆用预定算法加密代码串 UR, 以生成用于在解密时识别用户身份信息
UserlD和随机密钥 Random的密码识别信息 PassID,
【 IV】将密码识别信息 PassID插入密文 ReText中, 其中,
所述将密码识别信息 PassID插入密文 ReText中, 是指将密码识别信息
PassID作为一个单位或拆分为多个单位添加到密文 ReText中某一个或多个位 置构成一个新代码串的动作, 并且插入位置不局限于密文 ReText里的位置, 也可以添加在密文 ReText的首尾两端。
前面四个加密流程中, 其中,
所述随机长度 Long, 是由下列之一或多个构成: 随机密钥中单元的 个数、 随机密钥中每个单元的比特数、 随机密钥中单元的变动范围, 并且随 机长度 Long以明文或密文的形式保存在用于保存密文 ReText的相关存储空 间, 用来给解密程序指定用穷举法探测的随机密钥的随机长度范围, 所述用 于保存密文 Retext的相关存储空间是指以下四者之一: ①保存密文 Retext的 空间, ②保存密文 Retext这个文件属性的空间, ③数据库, ④用于保存随机 长度 Long的文件或空间,
所述密文 Retext, 其特征是任何针对密文 Retext的解密程序都需要 釆用穷举法或釆用穷举法与密码分析技术相结合的方法寻找随机密钥
Random, 不仅需要对解密时输入的用户身份信息与解密过程中释放的用户身 份信息进行比对, 还需要对穷举循环枚举的随机密钥与解密过程中释放的随 机密钥进行比对, 只有在前述两种密钥的比对都一致后, 才能确保正确解密 密文 ReText , 以释放重要明文 Text ,
所述预定算法是指利用用户身份信息 UserlD和随机密钥 Random进 行加密的加密算法, 并且包括下列加密算法中的一种或多种: 替代、 置换、 混淆、 扩散、 迭代、 组合拆分法、 数学关系加密、 变位加密、 逻辑加密、 算 术加密、 分组加密、 流密码加密、 线性加密、 非线性加密、 对称加密算法、 非对称加密算法、 统计数据加密、 伪随机加密、 利用随着加密进程增加项数 和调整幂次的多项式产生的流密码加密的算法、 利用排序所产生的序号代码 加密的算法,
所述加密强度取决于加密用户身份信息 UserlD和随机密钥 Random 后所生成的密码识别信息 PassID,解密时,只有先完成对密码识别信息 PassID 的解密, 才能保证对重要明文 Text的密文 ReText进行正确解密, 以释放重要 明文 Text, 并且解密时, 在确认用户身份信息 UserlD和随机密钥 Random都 正确后, 从重要明文 Text的密文 ReText中解出重要明文 Text的计算量相对 总计算量而言往往非常小。 因此, 所述加密强度也等于对重要明文 Text进行 加密的加密强度并且是下列其中之一: 随机长度、 解密的平均计算量、 解密 的最大计算量、 解密的平均计算量相对加密时计算量的放大倍数、 解密的最 大计算量相对加密时计算量的放大倍数、 解密的平均计算量相对单次解密时 计算量的放大倍数、 解密的最大计算量相对单次解密时计算量的放大倍数、 解密的平均尝试解密次数、 解密的最多尝试解密次数、 在预定速度机器上的 平均解密时间、 在预定速度机器上的最长解密时间,
所述随机密钥是由下列其中一种或多种信息构成: 系统产生的随机 信息、 系统产生的伪随机信息、 利用用户身份信息 UserlD对系统产生的伪随 机数据用某种算法干预后得到的信息、 利用内存或外存中数据对系统产生的 伪随机数据用某种算法干预后得到的信息、 利用时钟数对系统产生的伪随机 数据干预后得到的信息。 根据本发明的一个方面, 提供一种加密方法, 其加密流程如下: 【 I】输入加密强度和用户身份信息 UserlD, 根据随机密钥的长度、 加 密强度和预定解密程序速度三者之间的关系, 计算随机密钥的长度 Long, 产 生长度为 Long的随机密钥 Random ,
【 II】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR, 利用排序所产生的序号代码加密的算法加密代码串 UR, 利用随着加密 进程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用 于在解密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID,
【m】利用私钥 KeyText与密码识别信息 PassID派生一个代码串 KP, 【IV】利用排序所产生的序号代码加密的算法加密代码串 KP, 利用随着 加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以生 成私钥 KeyText的经加密的备份 ReCome ,
【 V】将一个大于或等于随机密钥 Random长度 Long的数据和私钥 KeyText的识别标志 KeylD插入私钥 KeyText的经加密的备份 ReCome中。
上面加密流程中的 【 V】可被修改为: 将一个小于随机密钥 Random长 度 Long的数据和私钥 KeyText的识别标志 KeylD插入私钥 KeyText的经加密 的备份 ReCome中。 本文将大于或小于随机密钥 Random长度 Long且用来标 明随机密钥 Random长度 Long范围的数据,当作随机密钥 Random长度 Long 的一种密文。 根据本发明的一个方面, 提供一种加密方法, 其加密流程如下: 【 A】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志 KeylD插入密文 BeMF中,
【B】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则结束; 若没找到, 则执行【C】,
【C】输入加密强度和用户身份信息 UserlD,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的随机长度 Long, 产生随机长度为 Long的随机密钥 Random,
【D】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR, 利用排序所产生的序号代码加密的算法加密代码串 UR,利用随着加密进程增 加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用于在解 密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID, 【E】利用私钥 KeyText与密码识别信息 PassID派生一个代码串 KP, 【F】利用排序所产生的序号代码加密的算法加密代码串 KP, 利用随着 加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以生 成私钥 KeyText的经加密的备份 ReCome ,
【G】将随机密钥的随机长度 Long和私钥 KeyText的识别标志 KeylD插 入私钥 KeyText的经加密的备份 ReCome中,
【H】将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文
BeMF的相关存储空间中, 结束。 根据本发明的一个方面, 提供一种加密方法, 其加密流程如下:
【 A】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD, 然后执行【B】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 C】,
【B】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥
KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则执行【H】; 若没找到, 则执行【C】,
【C】输入加密强度和用户身份信息 UserlD,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的随机长度 Long , 产生随机长度为 Long的随机密钥 Random,
【 D】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR , 利用排序所产生的序号代码加密的算法加密代码串 UR,利用随着加密进程增 加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用于在解 密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID , 【E】利用私钥 KeyText与密码识别信息 PassID派生一个代码串 KP,
【F】利用排序所产生的序号代码加密的算法加密代码串 KP, 利用随着 加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以生 成私钥 KeyText的经加密的备份 ReCome ,
【G】将随机密钥的随机长度 Long和私钥 KeyText的识别标志 KeylD插 入私钥 KeyText的经加密的备份 ReCome中,
【H】将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文 BeMF的相关存储空间中,
【 I】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志 KeylD插入密文 BeMF中, 结束。 才艮据本发明的一个方面, 提供一种加密方法, 其加密流程如下:
【 1】用户请求对存储盘 Disk中的文件加密,
【2】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD, 然后执行【3】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 5】,
【3】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥
KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则执行【4】; 若没找到, 则执行【5】,
【 4】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志 KeylD插入密文 BeMF中 , 然后结束本进程 ,
【 5】增加一个加密备份私钥 KeyText的进程 PKey,进程 PKey执行【 6】, 原进程执行【4】,
【6】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用默认的加密强度, 提示用户输入加密私钥 KeyText备份的 用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息,
【7】检测用户命令, 如果用户输入的命令是确认, 则执行【8】, 如果 用户输入的命令是退出, 则结束本进程,
【 8】进程 PKey判断用户是否输入用来加密私钥 KeyText备份的用户身 份信息 UserlD, 若输入, 则执行【9】, 若没有输入, 则从系统提取用户身份 信息 UserlD, 然后执行【10】,
【9】进程 PKey判断用户输入的用户身份信息 UserlD是否有效, 若有 效则接收用户输入的用户身份信息 UserlD,然后执行【10】,若无效,则向【6】 中要显示的图形界面发送出错提示信息, 并执行【6】,
【10】进程 PKey将 384字节的随机数据复制到数列 ID的前 384字节上, 进程 PKey产生长度为 384字节的随机数列 P,利用私钥 KeyText产生具有 384 个整数的数列 IS , 将数列 IS按照从小到大的顺序排列, 并将数列 IS中的数 据在排序后的位置序号记录到由 ir[0] , ir[l] , ir[2] , ir[3] , ir[4] , ir[i] , ... 构成的整数数列 IR中。 用一个循环计算
d[i] = d[i]Ap[ir[i]] /* ...
0<i<384 .·· */
/* ...这里对随机数据进行处理, 是为了破坏伪随机的周期性, 以便后面 将这些数据用作随机密钥, 其中 ir[i]表示数列 IS中原位置序号为 i的整数在 排序后, 被放在序号为 ir[i]的位置, d[i]、 p[i]分别表示数列 ID、 数列 P中字 节序号为 i的数据, 本文用 "Λ"、 " / "、 "%"、 分别表示: 异或、 整除、 取 模…… */
【11】从数列 ID中字节位置序号为 383的位置开始, 向前将用户身份信 息 UserlD覆盖到数列 ID中,并将数列 ID的前 128个字节信息作为一个大整 数 X,用一个循环计算 (x/K[i])%256 并将计算结果添加在数列 ID后面, /* ......添加后,数列 ID已有 512字节的数据, K[i]为大于 65536的质数,
0<i<128, 这是因为后面要釆用排序所产生的位置序号代码来加密, 用这种 加密方法处理密码识别信息时, 可能存在错误通过比对的情况, 为了防止这 种情况的出现, 通过计算 (x/K[i])%256并将结果保存在数列 ID后面, 记录 大整数 X的一些特征, 以便在通过对用户身份信息 UserlD和随机密钥
Randomr的验证后, 用大整数 x的一些特征来进一步验证, 以保证密钥验证 的可靠性。 */
根据随机密钥的长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的长度 Long, 在数列 ID中从用户身份信息 UserlD之前的位置 开始, 向前读取 Long位的数据作为随机密钥 Random,
/* ...这里要求用户身份信息 UserlD和随机密钥 Random总长度不超过 384x8比特, 如果超过, 要调整数列 ID的长度 ...*/
【12】进程 PKey从数列 ID中序号为 128的字节开始, 向后复制 128个 字节到数列 P中, 将数列 P复制到数列 S, 按照从大到小的顺序排列数列 S 中各字节数据, 并将数列 S中的字节数据在排序后的位置序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构成的整数数列 R中,
/*...其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序号 为 r[i]的位置, ...*/
用一个循环, 计算 s[i]=p[r[i]]Ar[i]
/*...利用排序产生的序号代码重排代码位置, 并作异或运算
(0<i<128) ...... */
用一个循环, 计算
d[2xi] = d[2 i] Λ s[2 i] /*...0≤i<64 ...
*/
d[2xi+ l]= ((d[2xi+ l] + s[2xi + 1] ) %256 ) /*...0≤i<64 …
*/
/* ......即用数列 S中数据加密数列 ID首部的数据, s[i]、 d[i]、 p[i]分别 表示数列 S、 数列 ID、 数列 P中字节序号为 i的数据, ...... */
【13】进程 PKey将数列 S复制到数列 P,按照从大到小的顺序排列数列 S中各字节数据,并将数列 S中的字节数据在排序后的位置序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构成的整数数列 R中。
/*...其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序号 为 r[i]的位置, .··*/
用一个循环, 计算 s[i]=p[r[i]]Ar[i] /*... (0<i<128) …
*/
用一个循环, 计算
d[2xi] = d[2xi] Λ s[2xi-256] /*...
128<i<192 .··*/
d[2xi+l] = (d[2xi+l] - s[2xi - 255]+256)%256 /* ...128<i<192 ...
*/
/* ......即用数列 S中数据加密数列 ID中后部的数据, s[i]、 d[i]、 p[i]分 别表示数列 S、 数列 ID、 数列 P中字节序号为 i的数据, ...... */
【14】进程 PKey将数列 ID的最后 128个字节信息复制到数列 P中, 将 数列 P复制数列 S, 按照从大到小的顺序排列数列 S中各字节数据, 并将数 列 S中的字节数据在排序后的位置序号记录到由 r[0],r[l],r[2],r[3],r[4], r[i], …构成的整数数列 R中,
/*...其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序号 为 r[i]的位置, .··*/
用一个循环,
计算 s[i]=p[r[i]] [i]
计算 d[i] = d[i] Λ s[i]
/*…即用数列 S中数据加密数列 ID首部数据, s[i]、 d[i]、 p[i]分别表示 数列 S、 数列 ID、 数列 P中字节序号为 i的数据, 0≤i<128 ...... */
【15】进程 PKey将数列 S复制到数列 P,按照从大到小的顺序排列数列
S中各字节数据,并将数列 S中的字节数据在排序后的位置序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构成的整数数列 R中,
/* ......其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序 号为 r[i]的位置, ...*/
用一个循环,
计算 s[i]=p[r[i]]Ar[i] /*... 0≤i<128... 计算 d[i] = d[i] Λ s[i - 128] /* ... 128<i<256 ...
*/
/*…即用数列 S中数据加密数列 ID中前部的数据, s[i]、 d[i]、 p[i]分别 表示数列 S、 数列 ID、 数列 P中字节序号为 i的数据 ... */
【16】进程 PKey将数列 ID中字节序号为奇数的数据都向前移两位, 并 将移出的信息添加到前一个字节序号为奇数的数据尾部, 将第二个字节数据 移出的信息添加在最后一个字节数据的尾部,
将数列 ID中字节序号为偶数的数据都向后移一位,并将移出的信息添加 到后一个字节序号为偶数的数据的首部, 将倒数第二个字节数据移出的信息 添加在第一个字节数据的首部,
/* ... ... 字节序号从 0开始 ... ... */
用一个循环, 计算,
q[4xi + 2] = d[i] /* ... 0≤i<128... */
q[i + (i+1) / 3] = d[ir[i] + 128] Λ ( ir[i]%256 ) /* ...0≤i<384… */
/* 即用步骤【10】中所产生的序号代码数列 IR的数据加密数 列 ID中部及后部的信息, 并将结果保存在数列 Q中, 前述 d[i]、 q[i]分别表 示数列 ID、 数列 Q中字节序号为 i的数据, 数列 ir[i]表示数列 IR中序号为 i 的整数数据, ... */
将数列 Q的前 256字节数据按序复制到数列 ID中字节序号为偶数的字 节上, 将数列 Q中后 256字节数据复制到数列 ID中字节序号为奇数的字节 上,
【17】进程 PKey产生一个由 516个字节构成的随机数列, 并将该数列 复制到数列 S中,釆用某种算法利用随机密钥 Random和用户身份信息 UserlD 派生一个由 516字节构成的数列, 并将该数列复制到数列 P, 按照从大到小 的顺序排列数列 P中各字节数据, 并将数列 P中的字节数据在排序后的位置 序号记录到由 r[0] , r[l] , r[2] , r[3] , r[4] , r[i] , …构成的整数数列 R中, 用一个循环计算,
p[i] = s[r[i]] Λ r[i]
/* ... s[i]、 p[i]分别表示数列 S、 数列 P中字节序号为 i的数据, 0<i<516, 这一步用于破坏伪随机的周期性, 其中 r[i]表示数列 P中原位置序号为 i的数 据在排序后, 被放在序号为 r[i]的位置。 ...... */
【18】进程 PKey将数列 P前 512个字节复制到数列 S,按照从大到小的 顺序排列数列 S中各字节数据, 并将数列 S中的字节数据在排序后的位置序 号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构成的整数数列 R中, /*…其中 r[i]表示数列 S中原位置序号为 i的数据在排序后, 被放在序 号为 r[i]的位置。 */
用一个循环, 将 d[r[i]]复制到 q[i] /*...0<i<512...
*/
将 p[r[i] + 4]复制到 s[i] /*...0≤i<512...
*/
/*··., q[i]、 s[i]、 d[i]、 p[i]分别表示数列 Q、 数歹' J S、 数列 ID、 数歹' J P 中字节序号为 i的数据, …… */
【19】进程 PKey设置 v=0,
用一个循环加密数列 ID:
/ (i+5) , (i+4) , (i+3) v = ((i + 5)(p[i / 2]† 7 + + 4)(p[i / 2+1])、 7 + (i + 3)(p[i / 2+2]†
, (i/2+1) 3 , ;
+ ...... +(i/2+l)(p[i+4])、 y)%(256 ) + v/256 /*...
0<i<512...*/ d[i]= q[i]A(v%256) /*...0≤i<512... */
/* 其中 v为定义的变量,取变量 v最后一个字节中信息给数列 ID 中的信息加密, d[i]、 p[i]、 q[i] 分别表示数列 ID、 数列 P、 数列 Q中字节序 号为 i的数据 ...... */
【20】进程 PKey产生一个由 2048个字节构成的随机数列, 并将该数列 复制到数列 Q前 2048个字节中, 将私钥 KeyText转变为一个字符串 KTs, 从 数列 Q的第 2048字节开始向前覆盖, 将字符串 KTs复制在数列 Q的前 2048 字节内, 从数列 Q的第 2049字节开始, 向后将数列 ID中前 512字节中数据 添加在 Q的尾部,
【21】进程 PKey从数列 ID第一个字节开始, 将数列 P复制到数列 ID 上, 按照从大到小的顺序排列数列 S中各字节数据, 并将数列 S中的字节数 据在排序后的位置序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构 成的整数数列 R中,
/*…其中 r[i]表示数列 S中原位置序号为 i的数据在排序后, 被放在序号 为 r[i]的位置。 …… */
用一个循环计算:
d[516 + ix5] = q[r[i] χ5] /*...0≤i<512— d[516 + ix5 + l] = q[r[i] χ5 + 1] /*...0<i<512. */
d[516 + ix5 + 2] = q[r[i] χ5 +2] /*...0<i<512. d[516 + ix5 + 3] = q[r[i] χ5 +3] /*...0≤i<512...
*
d[516 + ix5 + 4] = q[r[i] χ5 +4] /*...0≤i<512...
*
/*...d[i]、 q[i]分别表示数列 ID、 数列 Q中字节序号为 i的数据, ......
【22】进程 PKey将随机密钥 Random在前、用户身份信息 UserlD在后, 两者连接在一起, 构成一个长为 n位的二进制数列 RU, 将数列 ID中前(n /4 _ 11 ) 字节中的奇数位的信息复制添加到数列 RU的尾部,
从数列 ID第 ( n / 4 - 10 )个字节开始, 将数列 ID中字节数据添加到数 列 RU的尾部, 直到数列 RU的长度为 3080x8位,
设置 v=0
用一个循环加密数列 ID:
/ (i+5) , (i+4) , v = ((i + 5)(u[i / 2]† (i + 4)(u[i / 2+1])、 (i + 3)(u[i /
(i+3) , (i/2+1) ,
2+2]† + ... + (i / 2+l)(u[i+4])、 , + ix(u[i % ((n+7) /
(i % 64) 3
8)])、 >/o(256 )
+ v/256 /*.·· 0<i<3076 ... * /
Figure imgf000015_0001
d[i] 、 u[i]表示数列 ID、 数列 RU中字节序号为 i的数据, n > 8χ8 , n为随机密钥 Random和用户身份信息 UserlD的比特数之和 ,这里可 能导致加密计算量过大, 若如此, 可将上式适当修改, ... ... */
【23】进程 PKey将随机密钥 Random的长度 Long、 私钥 KeyText的识 别标志 KeylD插入数歹 ID中 , 然后将数列 ID作为私钥 KeyText的经加密的 备份 ReCome , 保存在存储盘 Disk中用于保存密文 BeMF的相关存储空间, 结束本进程。
其中, 上面在生成密码识别信息 PassID的过程中, 多次用到了排序所产 生的序号代码来参与运算的方法, 本文将这种方法叫做利用排序所产生的序 号代码加密的算法。 利用排序所产生的序号代码加密的算法既可利用序号代 码重排某个代码串来实现加密, 也可用利用序号代码与某个代码串作其他运 算来实现加密, 这种加密可防止现有的各种密码分析方法, 【19】和【22】在 产生流密码的算法中都釆用了增加多项式中的项数, 增加多项式中的最高幂 次的非线性加密的方法来加密, 这种加密方法可使线性分析、 差分分析法失 效, 又因本发明将随机密钥锁在密码识别信息中, 解密时需要用穷举法来寻 找, 使计算量完全超出破解者的承受能力, 所以唯密文攻击也失效。 在实际 应用中, 产生流密码的方法还可利用项数随着加密进程增加, 幂次随着加密 进程变化的多项式来实现。 即产生流密码多项式中的幂次可根据需要调整。 根据本发明的一个方面, 提供一种加密方法, 其加密流程如下: 【 1】用户请求对存储盘 Disk中的文件加密,
【2】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD , 然后执行【3】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 5】,
【3】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 KeylD插入密文 BeMF中, 然后结束本进程,
【5】增加一个进程, 该进程和原进程两者之中的一个进程 PKey执行 【6】, 另一个进程执行【4】,
【6】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用默认的加密强度, 提示用户输入加密私钥 KeyText备份的 用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息,
【7】检测用户命令。 如果用户输入的命令是确认, 则执行【8】, 如果 用户输入的命令是退出, 则结束本进程,
【 8】进程 PKey判断用户是否输入用来加密私钥 KeyText备份的用户身 份信息 UserlD , 若输入, 则执行【9】, 若没有输入, 则从系统提取用户身份 信息 UserlD, 然后执行【10】,
【9】进程 PKey判断用户输入的用户身份信息 UserlD是否有效, 若有 效则接收用户输入的用户身份信息 UserlD,然后执行【10】,若无效,则向【6】 中要显示的图形界面发送出错提示信息, 并执行【6】,
【10】进程 PKey根据随机密钥的随机长度、 加密强度和预定解密程序 速度三者之间的关系, 计算随机密钥的随机长度 Long, 并产生随机长度为 Long的随机密钥 Random,
【 11】进程 PKey利用用户身份信息 UserlD和随机密钥 Random派生一 个代码串 UR, 利用排序所产生的序号代码加密的算法加密代码串 UR, 利用 随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR, 以生成用于在解密时识别用户身份信息 UserlD和随机密钥 Random的密码识 别信息 PassID,
【12】进程 PKey提取私钥 KeyText , 并利用提取到的私钥 KeyText与密 码识别信息 PassID派生一个代码串 KP,
【 13】进程 PKey利用排序所产生的序号代码加密的算法加密代码串 KP , 利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串
KP, 以生成私钥 KeyText的经加密的备份 ReCome ,
【 14】进程 PKey将随机密钥 Random的随机长度 Long、 私钥 KeyText 的识别标志 KeylD插入私钥 KeyText的经加密的备份 ReCome中, 【15】进程 PKey将私钥 KeyText的经加密的备份 ReCome保存在用于 保存密文 BeMF的相关存储空间, 结束本进程。 根据本发明的一个方面, 提供一种加密方法, 其加密流程如下: 【 1】用户请求对存储盘 Disk中的文件加密,
【 2】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志
KeylD插入密文 BeMF中,
【3】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则结束; 若没找到, 则执行【4】,
【4】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用默认的加密强度, 提示用户输入加密私钥 KeyText备份的 用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息,
【5】检测用户命令。 如果用户输入的命令是确认, 则执行【6】, 如果 用户输入的命令是退出, 则结束,
【6】判断用户是否输入用来加密私钥 KeyText备份的用户身份信息 UserlD,若输入,则执行【7】;若没有输入,则从系统提取用户身份信息 UserlD, 然后执行【8】,
【7】判断用户输入的用户身份信息 UserlD是否有效, 若有效则接收用 户输入的用户身份信息 UserlD, 然后执行【8】, 若无效, 则向【4】中要显示 的图形界面发送出错提示信息, 并执行【4】,
【8】根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之 间的关系, 计算随机密钥的随机长度 Long, 并产生随机长度为 Long的随机 密钥 Random,
【 9】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR , 利用排序所产生的序号代码加密的算法加密代码串 UR,利用随着加密进程增 加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用于在解 密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID, 【10】提取私钥 KeyText, 并将提取到的私钥 KeyText与密码识别信息
PassID派生一个代码串 KP, 【11】利用排序所产生的序号代码加密的算法加密代码串 KP, 利用随 着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 ΚΡ,以 生成私钥 KeyText的经加密的备份 ReCome ,
【12】将随机密钥 Random的随机长度 Long、 私钥 KeyText的识别标志 KeylD插入私钥 KeyText的经加密的备份 ReCome中,
【13】将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文 BeMF的相关存储空间, 结束。 根据本发明的一个方面, 提供一种加密方法, 其加密流程如下: 【 1】用户请求对存储盘 Disk中的文件加密,
【 2】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD, 然后执行【3】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 4】,
【3】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则执行【14】; 若没找到, 则执行【4】,
【4】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用默认的加密强度, 提示用户输入加密私钥 KeyText备份的 用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息,
【5】检测用户命令。 如果用户输入的命令是确认, 则执行【6】, 如果 用户输入的命令是退出, 则执行【14】,
【6】判断用户是否输入用来加密私钥 KeyText备份的用户身份信息 UserlD,若输入,则执行【7】,若没有输入,则从系统提取用户身份信息 UserlD, 然后执行【8】,
【7】判断用户输入的用户身份信息 UserlD是否有效, 若有效则接收用 户输入的用户身份信息 UserlD, 然后执行【8】, 若无效, 则向【4】中要显示 的图形界面发送出错提示信息, 并执行【4】,
【8】根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之 间的关系, 计算随机密钥的随机长度 Long, 并产生随机长度为 Long的随机 密钥 Random, 【 9】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR , 利用排序所产生的序号代码加密的算法加密代码串 UR,利用随着加密进程增 加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用于在解 密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID, 【10】提取私钥 KeyText, 并利用提取到的私钥 KeyText与密码识别信 息 PassID派生一个代码串 KP,
【11】利用排序所产生的序号代码加密的算法加密代码串 KP, 利用随 着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以 生成私钥 KeyText的经加密的备份 ReCome ,
【12】将随机密钥 Random的随机长度 Long, 私钥 KeyText的识别标志
KeylD插入私钥 KeyText的经加密的备份 ReCome中,
【13】将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文 BeMF的相关存储空间,
【 14】加密明文 MessFile , 以得到密文 BeMF , 并将私钥 KeyText的识 别标志 KeylD插入密文 BeMF中 , 然后结束。
本文中从第 4页第 19行到第 6页第 21行和从第 12页第 22行到第 16页 第 15行, 这两部分的文字共说明了六个加密流程, 根据这六个加密流程中的 任何一个所述的加密方法, 其特征是: 其中,
所述备份 ReCome, 其特征是任何针对备份 ReCome的解密程序都 需要釆用穷举法或釆用穷举法与密码分析技术相结合的方法寻找随机密钥, 不仅需要对解密时输入的用户身份信息与解密过程中释放的用户身份信息进 行比对, 还需要对穷举循环枚举的随机密钥与解密过程中释放的随机密钥进 行比对, 只有在前述两种密钥的比对都一致后, 才能保证对私钥 KeyText的 经加密的备份 ReCome进行正确解密 , 以释放私钥 KeyText,
所述加密强度取决于加密用户身份信息 UserlD和随机密钥 Random 后所生成的密码识别信息 PassID,解密时,只有先完成对密码识别信息 PassID 的解密, 才能保证对私钥 KeyText的经加密的备份 ReCome进行正确解密, 以释放私钥 KeyText, 并且解密时, 在确认用户身份信息 UserlD和随机密钥 Random都正确后, 从私钥 KeyText的经加密的备份 ReCome中解出私钥 KeyText的计算量相对总计算量而言往往非常小。 因此,所述加密强度也等于 对私钥 KeyText进行加密的加密强度并且是下列其中之一: 随机长度、 解密 的平均计算量、 解密的最大计算量、 解密的平均计算量相对加密时计算量的 放大倍数、 解密的最大计算量相对加密时计算量的放大倍数、 解密的平均计 算量相对单次解密时计算量的放大倍数、 解密的最大计算量相对单次解密时 计算量的放大倍数、 解密的平均尝试解密次数、 解密的最多尝试解密次数、 在预定速度机器上的平均解密时间、 在预定速度机器上的最长解密时间, 所述随机密钥是由下列其中一种或多种信息构成: 系统产生的随机 信息、 系统产生的伪随机信息、 利用用户身份信息 UserlD对系统产生的伪随 机数据用某种算法干预后得到的信息、 利用内存或外存中数据对系统产生的 伪随机数据用某种算法干预后得到的信息、 利用时钟数对系统产生的伪随机 数据干预后得到的信息, 并且所述系统是指密码系统或操作系统,
所述插入是指将一个代码串作为一个单位或拆分为多个单位添加到 另一个代码串中某一个或多个位置构成一个新代码串的动作, 并且插入位置 不局限于代码串里的位置, 也可以添加在代码串的首尾两端。
本文中从第 4页第 19行到第 6页第 21行和从第 12页第 22行到第 16页 第 15行, 这两部分的文字共说明了六个加密流程, 根据这六个加密流程中的 任何一个所述的加密方法, 其特征是: 其中,
所述利用排序所产生的序号代码加密的算法加密代码串 UR,利用随 着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR,被 修改为: 釆用预定算法加密代码串 UR, 并且所述预定算法由下列加密算法中 的一种或多种构成: 替代、 置换、 混淆、 扩散、 迭代、 组合拆分法、 数学关 系加密、 变位加密、 逻辑加密、 算术加密、 分组加密、 流密码加密、 线性加 密、 非线性加密、 对称加密、 非对称加密、 统计数据加密、 伪随机加密算法、 利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、 利用排序所产生的序号代码加密的算法,
所述利用排序所产生的序号代码加密的算法加密代码串 KP,利用随 着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,被 修改为: 釆用预定算法加密代码串 KP, 并且所述预定算法由下列加密算法中 的一种或多种构成: 替代、 置换、 混淆、 扩散、 迭代、 组合拆分法、 数学关 系加密、 变位加密、 逻辑加密、 算术加密、 分组加密、 流密码加密、 线性加 密、 非线性加密、 对称加密、 非对称加密、 统计数据加密、 伪随机加密算法、 利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、 利用排序所产生的序号代码加密的算法。
本文中从第 5页第 7行到第 6页第 21行和从第 12页第 22行到第 16页 第 15行, 这两部分的文字共说明了五个加密流程, 根据这五个加密流程中的 任何一个所述的加密方法, 其特征是: 其中,
所述将随机长度 Long, 私钥 KeyText的识别标志 KeylD插入私钥
KeyText的经加密的备份 ReCome中, 被修改为: 将随机长度 Long保存在用 于保存备份 ReCome的相关存储空间, 将私钥 KeyText的识别标志 KeylD备 份在用于保存备份 ReCome的相关存储空间,并且所述将随机长度 Long保存 在用于保存备份 ReCome的相关存储空间,是指将随机长度 Long保存在以下 五者之一: ①保存备份 ReCome的空间, ②保存备份 ReCome这个文件属性 的空间, ③数据库, ④用于保存随机长度 Long的文件或空间, ⑤用于保存随 机长度 Long和识别标志 KeylD这两者的文件或空间; 所述将私钥 KeyText 的识别标志 KeylD备份在用于保存备份 ReCome的相关存储空间, 是指将私 钥 KeyText的识别标志 KeylD备份在以下五者之一: ①保存备份 ReCome的 空间, ②保存备份 ReCome这个文件属性的空间, ③数据库, ④用于保存识 别标志 KeylD的文件或空间, ⑤用于保存随机长度 Long和识别标志 KeylD 这两者的文件或空间,
所述将私钥 KeyText的识别标志 KeylD插入密文 BeMF中 , 被修改 为: 将私钥 KeyText的识别标志 KeylD备份在用于保存密文 BeMF的相关存 储空间, 并且所述将私钥 KeyText的识别标志 KeylD备份在用于保存密文 BeMF的相关存储空间, 是指将私钥 KeyText的识别标志 KeylD备份在以下 四者之一: ①保存密文 BeMF的空间, ②保存密文 BeMF文件属性的空间, ③数据库, ④用于保存识别标志 KeylD的文件或空间,
所述将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文 BeMF的相关存储空间, 是指将私钥 KeyText的经加密的备份 ReCome保存 在以下四者之一: ①保存密文 BeMF的空间, ②保存密文 BeMF文件属性的 空间, ③数据库, ④用于保存备份 ReCome的文件或空间,
考虑到复杂的用户环境, 上面的所述的加密方法, 还可具有两个特征: ①在加密过程中验证用户的合法性, 只有通过验证的用户才能完成对私钥 KeyText的加密。所述验证用户的合法性是指要求用户输入验证信息,并对输 入的验证信息进行验证, 所述验证信息是指保存在系统中的当前用户的用户 身份信息如登陆密码等, ②用户在带命令按钮的图形交互界面上, 输入用户 身份信息 UserlD和加密强度。
本发明中的加密方法即使利用相同的用户身份信息,对同样的信息加密, 加密强度也是可变的, 本发明中的加密方法可以通过调整随机密钥的随机长 度而使该加密方法的加密强度随着加密机器速度的提高而提高或者使用者需 求而变化。 因此, 本发明中的加密方法可以应对将来破解设备的发展, 有效 地保证被本发明中的加密方法加密的信息安全。
附图说明
图 1为本发明第一个实施例的加密流程图,
图 2为本发明第二个实施例的加密流程图,
图 3为本发明第三、 第四个实施例的加密流程图,
图 4 - A和图 4 - B为本发明第四个实施例的解密流程图,
图 5为本发明第五个实施例的加密流程图,
图 6为本发明第六个实施例的加密流程图。
具体实施方式
为与普通文件和信息区别, 本文将用本发明中的加密方法来加密保护的 私钥、 证书、 重要文件等信息称为重要明文。 本发明利用用户身份信息和随 机密钥共同加密, 将随机密钥和用户身份信息锁在密码识别信息中, 并且在 生成密码识别信息时釆用反密码分析方法的措施。 根据本发明加密的密文, 无论破解者怎样编写解密程序, 除了使用穷举法或釆用穷举法与密码分析技 术相结合的方法外, 无法有效利用其它密码分析方法对密文进行破解, 即使 在提供的用户身份信息正确的情况下, 任何针对本发明的解密程序仍需要釆 用穷举法或釆用穷举法与密码分析技术相结合的方法寻找随机密钥, 才能保 证成功的将密文解密。 本发明中的加密方法对同样的信息, 使用相同的用户 身份信息, 所获得的加密强度是可变的, 本发明中的加密方法可以通过调整 随机密钥的随机长度而使该加密方法的加密强度随着加密机器速度的提高而 提高或者使用者需求而变化。 因此, 本发明中的加密方法可以应对将来破解 设备的发展, 有效地保证被本发明中的加密方法加密的信息安全。 根据本发明的加密方法的基本特征是: 输入用户身份信息和加密强度, 根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的随机长度, 并产生该随机长度的随机密钥, 这是一个不能根 据任何明文、 用户身份信息算出的随机密钥; 利用用户身份信息和随机密钥 共同加密重要明文; 并在加密过程中将随机密钥和用户身份信息锁在密码识 别信息中。 即使在提供的用户身份信息正确的情况下, 任何针对本发明的解 密程序仍需要釆用穷举法或釆用穷举法与密码分析技术相结合的方法寻找随 机密钥, 才能保证成功的将密文解密。 本文中所述随机长度是由下列参数中 的一个或多个构成: 随机密钥中单元的个数、 随机密钥中每个单元的比特数、 随机密钥中单元的变动范围。
针对本发明的解密程序, 使用穷举法来解密并不指只用穷举法来解密, 也可釆用其它的先进的密码分析技术来排除部分不可能的随机密钥, 以加快 穷举法寻找随机密钥的速度。 前句所述的穷举法是指在输入用户身份信息的 前提下, 且在随机密钥变动范围内, 解密程序用某种算法逐个列出尚未被排 除的随机密钥, 并用某种算法将当前列出的随机密钥、 用户身份信息与密码 识别信息进行比对以验证当前列出的随机密钥。 直至正确的随机密钥被找到 或已尝试所有可能的随机密钥。
本发明这种密码系统在加密、解密时都需要用户或系统提供被加密信息的 用户身份信息。本文中所说的用户身份信息是指能够由用户完全掌握的密钥, 加密和解密时都可由用户输入, 包括用户名、 用户密码、 用户指紋、 DNA、 兴趣爱好、 社会关系、 特殊经历、 身份证号码、 软件序列号等各种由用户、 软件设定用于识别用户身份并参与加密、 解密的信息。 当本发明应用到云系 统中的重要明文托管服务时, 用户身份信息不仅包括终端用户或终端系统输 入的终端用户身份信息, 还包括重要明文托管服务商的云给终端用户分配的 托管方密钥。 托管方密钥是重要明文托管服务商所提供的服务端用户身份信 息。 本发明所产生的密码系统在加密过程中必须使用随机信息参与加密, 为 便于表述, 本文将在加密系统中产生用来加密信息的随机信息分为两种。 第 一种随机信息属于密码识别对象中的成员, 在解密时不能确保利用用户身份 信息和其他信息一次性解算出该随机信息, 而必须用穷举法才能找到该随机 信息, 本文将这种随机信息称为随机密钥。 第二种随机信息并非密码识别对 象中的成员, 在解密时能够利用用户身份信息、 随机密钥和密文一次性解算 出该随机信息, 本文将这种随机信息简称为随机数。
为便于表述, 下面首先在所有密码分析方法都失效的条件下进行说明。 为便于控制解密的平均计算量, 本发明中的随机密钥釆用对称密钥。 这里假 设加密时, 用户输入的用户身份信息为含有 X个字符的用户密码, 并且用户 密码中每个字符为含有 U个元素集合中的任意一个元素。 加密所用的时间为 T, 解密时需要用穷举法寻找的随机密钥由 y个单元组成, 每个单元为含有 R 个元素集合中的任意一个元素, 且 4艮设加密、 解密过程都在速度相等的计算 机上完成。 在用户身份信息正确时, 计算机解密被加密的信息所需的时间为 t= kxTxS (式中 k为修正系数且 k>0, S为用穷举法尝试的次数)。 通常随 着 S的增大, k会逐渐接近某一常数, 因此下面可将 k作为一个常数来考虑。 在前述情况下,合法用户解密所需的最长时间为 kxTxRY ,平均解密时间 tl = 0.5xkxTx (RY + 1 ), 破解者因不知道用户身份信息, 所以对用户身份信 息和随机密钥都要进行试探, 因此其平均成功破解时间:
Figure imgf000024_0001
破解者在 h时间内成功破解的概率为:
P = h÷ ( k T UX RY )
=h (RY + 1 ) ÷(2χ0.5χ kxTx (RY + 1 ) UX RY )
=h ( 1 + 1 ÷RY ) ÷(2xtl UX )
~h÷(2xtl UX ) ② 据此, 我们可推出在平均解密时间 tl为 1分钟, 在用户密码长度 X为 8, 且密码中字符仅为数字与大小英文字母的情况下, 此时 U为 62, 破解者在一
-9
年之内成功破解的概率为 1.20445119x10 ,即使破解计算机的速度为加密计 算机速度的 10000倍, 破解者在一年之内成功破解的概率也只有
1.20445119χ10_5, 这个概率对绝大多数用户来说仍足够安全, 况且在实际应 用中通过用户输入多种信息使用户身份信息的长度 X很容易大于 8, 构成用 户身份信息的元素个数 U还可增大, 需要用穷举法寻找的随机密钥长度 y可 进一步增加, 即很容易进一步降低破解者成功破解的概率。 本发明加密的信 息因需要用穷举法寻找随机密钥, 增加了平均解密计算量, 从而引起平均解 密时间增大, 大大降低了单位时间内成功破解的概率, 而且平均解密时间可 以控制在合法用户能够接受的范围之内, 但对破解者而言因没有掌握正确的 用户身份信息, 这个时间被用户身份信息进一步增大到 ux 倍, 使破解时间 超出破解者的承受能力, 迫使破解者放弃强行破解, 从而达到保证信息安全 的目的。
本发明中加密强度取决于加密用户身份信息和随机密钥后所生成的密码 识别信息, 解密时, 只有先完成对密码识别信息的解密, 才能保证对其他密 文进行正确解密, 以释放重要明文, 并且解密时, 在确认用户身份信息和随 机密钥都正确后, 从密文中解出重要明文的计算量相对总计算量而言往往非 常小。 因此, 所述加密强度也可被认为就等于对重要明文进行加密的加密强 度。 用户或系统通过调节随机长度来实现设置加密强度。 应用本发明的软件 或机器可由用户或系统直接输入随机长度来设置加密强度。输入随机长度时, 可输入下列参数之一或多个: 随机密钥中单元的个数、 随机密钥中每个单元 的比特数、 随机密钥中单元的变动范围、例如, 只设置随机密钥中比特数(以 比特为单元)、既设置随机密钥中单元的个数又设置随机密钥中单元的变动范 围、 只设置随机密钥中单元的变动范围等。 实际应用中, 也可通过输入以下 参数来设置加密强度: 解密的平均计算量、 最大计算量、 解密的平均计算量 或最大计算量相对加密时计算量的放大倍数、 解密的平均计算或最大计算量 相对单次解密时计算量的放大倍数、 解密的平均尝试解密次数、 解密的最多 尝试解密次数, 在预定速度机器上解密时的平均解密时间或最长解密时间, 然后由程序根据设置的参数, 计算随机长度。
可在解密程序中插入计数器统计得到: 解密程序枚举一个可能的随机密 钥, 并用该随机密钥完成一次尝试解密的计算量函数 f ( x , y , z ), 式中 x为 用户身份信息的长度, y为随机密钥的长度 ,ζ为密文的长度, 随机密钥长度 以比特为单位。 在不考虑密码分析威胁的条件下,
当用户或系统输入的加密强度为:解密的平均计算量 j时,可通过对方程:
Figure imgf000025_0001
求解, 算出加密时应使用的随机密钥的长度 y, 需要注意的是为了简化随 机长度的计算, 从公式③到公式⑩中随机密钥都以比特为单元, 并且每个比 特的值为 0或 1 , 随机密钥的长度可根据需要调整, 在这情况下随机长度完 全取决于随机密钥的长度即比特数。 当然对于其他类型的随机长度计算公式, 使用者可根据本发明的基本原理推出, 例如, 以两比特为一个单元, 每个单 元的取值范围为 00、 01、 10这三个值,此时公式③应为: j x2 = f( x , y , z ) x3y 其中 y表示随机密钥的单元个数。
当用户或系统输入的加密强度为: 预定速度为 V的计算机上解密的平均 解密时间 tl时, 可通过对方程: vxtl x2 = f ( x , y , z ) χ2Υ ④ 求解, 算出加密时应使用的随机密钥的长度 y 。
可在加密程序中插入计数器统计得到: 加密程序加密的计算量函数 g ( X : ,2 ),其中 为用户身份信息的长度, y为随机密钥的长度 , z为密文的长度, 随机密钥长度以比特为单位。 在不考虑密码分析威胁的条件下,
当用户或系统输入的加密强度为: 解密的平均计算量相对加密时计算量 的放大倍数 w时, 可通过对方程:
g ( X , y , z ) w 2 = f ( x , y , z ) 2Υ ⑤ 求解, 算出加密时应使用的随机密钥的长度 y 。
以上都是利用计算量列方程, 当用户或系统输入的加密强度为其它类型 参数时也可通过与上面相似的方式, 从方程中算出加密时应使用的随机密钥 的长度 y。
上面的方程都是在密码分析方法失效的条件下得到的, 当加密时生成用 于识别用户身份信息和随机密钥的密码识别信息的加密算法, 能被破解者釆 用密码分析方法进行分析时, 为防止非法用户破解, 本发明在加密之前计算 随机密钥长度时, 根据密码系统运行的用于计算加速能力的子程序, 得到系 统中掌握的最新密码分析方法对解密进程的加速能力, 适当加长随机密钥的 长度达到阻止利用该密码分析方法破解本发明的效果, 这样能确保本发明总 能跟上密码分析方法的发展, 并且釆用本发明编写的加密程序, 可以做到不 更新加密方法, 只要及时更新用于计算加速能力的子程序即可, 有时该子程 序可能也不需要更新, 只需要更新与加速能力相关的参数, 该子程序或参数 更新后, 加密程序就可自动提高加密强度, 自动使当前最新破解技术立即失 效。 下文计算时, 加速能力用旧破解方法针对某长度密文解密时的平均计算 量与用新破解方法针对同样长度密文解密时的平均计算量比值来表示, 当然 也可其它形式来表示, 当然在实际应用中, 可用上述比值减 1来表示, 也可 用上述比值的倒数来表示, 还用 1减这个倒数来表示, 为了在自动提高加密 强度后, 用户对密文的平均解密时间在可以接受的范围之内, 本发明的实施 者应及时将当前最快的密码分析方法应用到针对本发明的解密程序中, 尽量 减少穷举程序的循环次数, 即要在充分利用密码分析的基础上, 使用穷举循 环进行解密, 为合法用户提供便捷。
假设依据本发明所产生的加密方法, 釆用某种算法对用户身份信息和随 机密钥加密, 以生成用于识别用户身份信息和随机密钥的密码识别信息, 这 个生成密码识别信息的算法在公布之前, 除了用穷举法破解外, 没有其它的 有效破解方法, 这个生成密码识别信息的算法公布后, 出现了新的密码分析 方法, 能加速对该算法产生的密文的破解, 经过统计或计算, 新的密码分析 方法对解密进程的加速能力可表示为函数: m (x , y , z), 其中 X为已知的用 户身份信息的长度, y为随机密钥的长度 ,ζ为密文的长度, 随机密钥长度以 比特为单位, 函数 m (x,y,z)表示用旧破解方法针对某长度密文解密时 的平均计算量与用新破解方法针对同样长度密文解密时的平均计算量比值。 本发明的实施者, 在知晓该破解方法后, 立即将该破解方法应用到合法用户 的解密方法中, 以提高合法用户解密程序的工作效率, 并同时将包含该方法 的加速能力函数 m (x,y,z)计算功能的子程序提交给加密程序。 此时: 当用户或系统输入的加密强度为: 预定速度为 V的计算机上解密的平均 解密时间 tl时, 合法用户已知用户身份信息, 可得合法用户解密时的有关方 程:
vxtl x2x m (x,y,z) = f ( x , y , z ) 2Υ ⑥ 求解, 算出加密时应使用的随机密钥的长度 。 当用户或系统输入的加密 强度为其它类型参数时, 加密前计算应使用的随机密钥的长度 y的过程中也 要将加速能力 m ( X , y , z )考虑进去。
当破解者没有掌握用户身份信息时, 可得破解密时的有关方程: v t2 2 m(0 ,xLog2U + y ,z) =f(x,y ,ζ)χ2Υ UX ⑦ 其中 x为用户身份信息的长度, y为随机密钥的长度 ,ζ为密文的长度, 随机密钥长度以比特为单位。 由方程⑥、 ⑦得到: v t2 2 m ( 0 , y +xLog2U, z ) =v tl 2 m (x,y ,z) x U ⑧ 由方程⑧得到破解时间 t2为: t2 = tl UX m(x,y,z) ÷m(0 ,y +xLog2U , z ) ⑨ 由于加速能力函数: m(x,y,z)中的 x为已知的用户身份信息的长度, y 是未知的随机密钥长度 , Z为密文的长度, 在被分析的加密算法为现有的非 线性加密算法条件下, 当 z不变、 X变小、 y变大时, 加速能力 m ( x , y , z ) 减小, 据此, 可知, 当 X > 0时, m ( X , y , z ) > m ( 0 , m ( 0 , y +xLog2U , z ) , z ),
又因 m ( x , y , ζ ) > 0 所以 m ( x , y , z ) ÷ m ( 0 , m ( 0 , y +xLog2U , z ) , z ) > 1 所以, 可由⑨得到:
t2 > tl UX ® 比较①式与⑩就会发现, 当釆用非线性加密算法依据本发明来加密保护 密码识别信息时, 在更新计算新密码分析方法加速能力的子程序、 并利用新 密码分析方法更新解密程序后, 在合法用户的平均解密时间不变的情况下, 破解者的平均破解时间将更长, 单位时间内破解成功的概率将更低, 也就是 本发明所产生的加密方法将使被加密的密码识别信息变得更加安全,当然也 使重要明文加密后所生成的密文也更安全。 因此, 本发明主张用非线性加密 方法对用户身份信息和随机密钥加密, 以生成密码识别信息, 但不排除在加 密过程中使用线性加密方法。
若本发明中的方法加密用户身份信息和随机密钥的算法已有密码分析方 法, 编写解密程序时, 可将密码分析方法和穷举法相结合, 以求在用户设置 的时间内, 用穷举法处理更长的随机密钥。 为了保证本发明中所釆用的随机 密钥具有高度的随机性, 随机密钥是由下列其中一种或多种信息构成: 系统 产生的随机信息、 系统产生的伪随机信息、 利用用户身份信息对系统产生的 伪随机数据用某种算法干预后得到的信息、 利用内存或外存中数据对系统产 生的伪随机数据用某种算法干预后得到的信息、 利用时钟数对系统产生的伪 随机数据用某种算法干预后得到的信息, 并且所述系统是指密码系统或操作 系统。
本发明在对信息的加密运算中可釆用异或、 非、 与、 或等逻辑运算来加 密; 也可釆用加、 减、 乘、 除、 乘方、 开方、 取模及函数等算术运算来加密; 还可釆用数学关系运算来加密。 前句所说的"数学关系"有: 大小关系、 集合 关系等, 其中大小关系包括大于、 大于或等于、 等于、 小于或等于、 小于、 不等于, 集合关系包括元素与集合之间的关系 (属于、 不属于)、 集合与集合 之间的包含、 映射关系等, 釆用数学关系运算加密是指依据数学关系所建立 的加密算法, 例如根据加密对象的代码与某一数据的大小关系来选择密码或 加密算法等、 根据元素 (本文中指加密对象或由加密对象等生成的代码)与 某集合的关系来选择密码或加密算法等、 根据映射关系 (一一映射或非一一 映射)建立的密码表加密等。 为简便起见, 本文将用逻辑运算来实现的加密 简称为逻辑加密, 将用算术运算来实现的加密简称为算术加密, 将釆用数学 关系运算来实现的加密简称为数学关系加密。 本发明在对信息的加密中既可 釆用向前移动信息代码位置 (后面被移空的位置既可用前面或后面移出的代 码填充,也可用随机码或非随机码填充 ) ,又可釆用向后移动信息代码位置(前 面被移空的位置既可用前面或后面移出的代码填充, 也可用随机码或非随机 码填充), 也可釆用交换信息代码位置, 还可釆用按某一规则重新排列信息代 码位置, 还可釆用向信息代码中插入非随机代码, 甚至釆用向信息代码中插 入随机代码(该随机代码在解密时可能不需要用穷举法寻找, 也可能需要用 穷举法寻找)等引起信息代码位置变化的方式加密信息, 本文将这种能引起 信息代码位置变化的加密算法叫做变位加密。 本发明可利用排序所产生的序 号代码加密的算法, 所谓利用排序所产生的序号代码加密的算法是指根据排 序所产生的序号代码重新排列其他信息(明文、 密文、 用户身份信息、 密钥、 随机数及其衍生信息等) 的代码位置, 以实现加密的方法, 或指利用排序所 产生的序号代码直接与其他信息 (明文、 密文、 用户身份信息、 密钥、 随机 数及其衍生信息等) 的代码进行异或、 加、 乘、 除等各种数学运算, 以实现 加密的方法。 本发明既可釆用流密码加密、 线性加密算法、 对称加密算法, 又可釆用分组加密算法、 非线性加密算法、 不对称加密算法, 还可利用替代、 混淆、 扩散、 迭代、 统计数据加密, 甚至使用伪随机加密和本发明之外的随 机加密算法。 本发明加密重要明文时, 还必须对用户身份信息和随机密钥加 密, 并且在对重要密文、 用户身份信息和随机密钥这三者加密过程中, 要将 多个(含两个)代码串以连接或相互插入的方式组合为一个或多个(含两个) 代码串, 甚至将某个代码串以某种方式拆分为多个(含两个)代码串, 如果 对代码串的组合与拆分利用较好, 也可增加加密强度, 因此本文将对代码串 的组合与拆分也作为一种加密算法, 并将这种加密算法称为组合拆分法。 用 组合拆分法产生的多个(含两个)代码串可以分别用不同的加密算法加密, 也可用相同的加密算法加密。 用组合拆分法将多个(含两个)代码串合并为 一个新代码串后, 应再对新代码串进行加密, 当然如果被合并的代码串已被 加密且加密强度足够, 可以不再对新代码串进行加密。 本发明对重要密文、 用户身份信息和随机密钥这三者加密过程中, 并不要求必须先对谁加密后对 谁力口密。
本发明应用于加密重要明文时的通用流程如下:
【 I】输入用户身份信息 UserlD和加密强度,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机长度 Long, 产生随 机长度为 Long的随机密钥 Random,
【 II】釆用预定算法, 利用用户身份信息 UserlD和随机密钥 Random, 加密要保密的重要明文 Text以得到密文 ReText, 其中,
所述随机长度 Long是由下列之一或多个构成: 随机密钥中单元的个数、 随机密钥中每个单元的比特数、 随机密钥中单元的变动范围, 并且在加密完 成后, 随机长度 Long以密文或明文的形式保存在用于保存密文 Retext的相 关存储空间, 并且所述用于保存密文 Retext的相关存储空间是指以下五者之 一: ①保存密文 Retext的空间, ②保存密文 Retext这个文件属性的空间, ③ 数据库,④用于保存随机长度 Long的文件或空间,⑤用于保存随机长度 Long 和识别标志 TextID这两者的文件或空间,
所述随机密钥 Random既是对重要明文 Text加密的密钥的一部分, 又是 对密文 Retext解密的密钥的一部分,并且是由下列其中一种或多种信息构成: 系统产生的随机信息、 系统产生的伪随机信息、 利用用户身份信息 UserlD对 系统产生的伪随机数据用某种算法干预后得到的信息、 利用内存或外存中数 据对系统产生的伪随机数据用某种算法干预后得到的信息、 利用时钟数对系 统产生的伪随机数据用某种算法干预后得到的信息, 并且所述系统是指密码 系统或操作系统,
所述预定算法由下列加密算法中的一种或多种构成: 替代、 置换、 混淆、 扩散、 迭代、 组合拆分法、 数学关系加密、 变位加密、 逻辑加密、 算术加密、 分组加密、 流密码加密、 线性加密、 非线性加密、 对称加密、 非对称加密、 统计数据加密、 伪随机加密算法、 利用随着加密进程增加项数和调整幂次的 多项式产生的流密码加密的算法、 利用排序所产生的序号代码加密的算法, 所述利用用户身份信息 UserlD和随机密钥 Random, 是指除了利用包含 用户身份信息 UserlD和随机密钥 Random这两者本身外, 还包括利用下列信 息中的一种或多种:由用户身份信息 UserlD衍生的信息、由随机密钥 Random 衍生的信息、 随机数、 由随机数衍生的信息、重要明文 Text、 由重要明文 Text 衍生的信息、 由用户身份信息 UserID、 随机密钥 Random, 随机数和重要明 文 Text这四者之中两者共同衍生的信息、 由用户身份信息 UserID、 随机密钥 Random,随机数和重要明文 Text这四者之中三者共同衍生的信息, 由用户身 份信息 UserlD、 随机密钥 Random, 随机数和重要明文 Text这四者共同衍生 的信息,
所述重要明文 Text是指下列信息中的一种或多种: 私钥、 证书、 个人隐 私、 商业机密、 企事业单位机密、 计算机安全信息, 所述加密要保密的重要 明文 Text以得到密文 Retext, 就是对重要明文 Text、用户身份信息 UserlD和 随机密钥 Random这三者加密的过程, 并且该过程多种多样, 下面列出了其 中十四种: (1)对重要明文 Text、 用户身份信息 UserlD和随机密钥 Random分 别进行加密, 以得到这三者对应的密文 Re 1、 密文 Re2、 密文 Re3 , 然后将密 文 Rel、 密文 Re2、 密文 Re3组合为一个密文 Retext, (2)对重要明文 Text、 用 户身份信息 UserlD和随机密钥 Random分别进行加密, 以得到这三者对应的 密文 Rel、 密文 Re2、 密文 Re3 , 将密文 Rel、 密文 Re2和密文 Re3这三者之 中的两者组合为一个代码串 S, 并对代码串 S加密, 以得到密文 Re4, 之后 将密文 Rel、 密文 Re2和密文 Re3这三者之中没有参与构成代码串 S的这个 密文和密文 Re4组合为一个密文 Retext, (3)对重要明文 Text、 用户身份信息 UserlD和随机密钥 Random分别进行加密 , 以得到这三者对应的密文 Rel、 密文 Re2、 密文 Re3 , 将密文 Rel、 密文 Re2和密文 Re3这三者之中的两者 组合为一个代码串 S,并对代码串 S加密,以得到密文 Re4,之后将密文 Rel、 密文 Re2和密文 Re3这三者之中没有参与构成代码串 S的这个密文和密文 Re4组合为一个代码串 ReS, 接着再对代码串 ReS加密, 以得到密文 Retext, (4)对重要明文 Text、用户身份信息 UserlD和随机密钥 Random分别进行加密, 以得到这三者对应的密文 Rel、 密文 Re2、 密文 Re3 , 然后将密文 Rel、 密文 Re2、密文 Re3组合为一个代码串 S,并对代码串 S加密, 以得到密文 Retext, (5)对重要明文 Text、 用户身份信息 UserlD和随机密钥 Random这三者之一进 行加密, 以得到密文 Rel , 并将前述三者不参与生成密文 Rel的另外两者组 合为一个代码串 S, 对代码串 S加密, 以得到密文 Re2, 然后将密文 Rel、 密 文 Re2组合为一个密文, 以得到密文 Retext, (6)对重要明文 Text、 用户身份 信息 UserlD和随机密钥 Random这三者之一进行加密, 以得到密文 Rel , 并 将前述三者不参与生成密文 Rel的另外两者组合为一个代码串 S,对代码串 S 加密, 以得到密文 Re2, 然后将密文 Rel、 密文 Re2组合为一个代码串 ReS, 再对代码串 ReS加密, 以得到密文 Retext, (7)对重要明文 Text、 用户身份信 息 UserlD和随机密钥 Random这三者之一进行加密, 以得到密文 Rel , 并将 前述三者之中尚没被加密的另外两者之一和密文 Rel组合为一个代码串 S, 对代码串 S加密, 以得到密文 Re2, 然后将密文 Re2与前述三者(即重要明 文 Text、 用户身份信息 UserlD和随机密钥 Random这三者)之中尚未被加密 的这一者组合为一个代码串 ReS, 再对代码串 ReS加密, 以得到密文 Retext, (8)对重要明文 Text、 用户身份信息 UserlD和随机密钥 Random这三者之一进 行加密, 以得到密文 Rel , 将前述三者之中不参与生成密文 Rel的另外两者 之一和密文 Rel组合为一个代码串 S , 对代码串 S加密, 以得到密文 Re2, 并将前述三者(即重要明文 Text, 用户身份信息 UserlD和随机密钥 Random 这三者)之中不参与生成密文 Re2的这一者加密, 以得到密文 Re3 , 将密文 Re2、 密文 Re3组合为密文 Retext , (9)对重要明文 Text、用户身份信息 UserlD 和随机密钥 Random这三者之一进行加密, 以得到密文 Rel , 将前述三者之 中不参与生成密文 Rel的另外两者之一和密文 Rel组合为一个代码串 S, 对 代码串 S加密, 以得到密文 Re2, 并将前述三者 (即重要明文 Text、 用户身 份信息 UserlD和随机密钥 Random这三者 )之中不参与生成密文 Re2的这一 者加密, 以得到密文 Re3 , 将密文 Re2、 密文 Re3组合为代码串 ReS , 再对 代码串 ReS加密,以得到密文 Retext, 00)对重要明文 Text、用户身份信息 UserlD 和随机密钥 Random这三者之一进行加密, 以得到密文 Rel , 并将前述三者 之中尚没被加密的另外两者和密文 Rel组合为一个代码串 S, 对代码串 S加 密, 以得到密文 Retext, (Π)先将重要明文 Text、 用户身份信息 UserlD和随机 密钥 Random这三者之中两者组合为一个代码串 S , 接着对代码串 S加密以 生成密文 Rel ,将前述三者之中没有参与构成代码串 S的这个数据和密文 Rel 组合为一个代码串 ReS , 再对代码串 ReS加密, 以得到密文 Retext, (12)先将 重要明文 Text、 用户身份信息 UserlD和随机密钥 Random这三者组合为一个 代码串 S, 然后对代码串 S加密, 以得到密文 Retext, (13)对重要明文 Text、 用户身份信息 UserlD和随机密钥 Random这三者之中的两者分别进行加密, 以得到这三者对应的密文 Rel、 密文 Re2, 将前述三者之中尚没被加密的另 外一者和密文 Rel、 密文 Re2组合为一个代码串 S , 对代码串 S加密, 以得 到密文 Retext, (14)将重要明文 Text、用户身份信息 UserlD和随机密钥 Random 这三者中的代码相互插入, 并分割为多个(含两个)新的代码串 Sl、 代码串
S2 , 分别用不同的加密算法加密代码串 Sl、 代码串 S2 , 以得到 密文 Rel、 密文 Re2 , 将密文 Rel、 密文 Re2 组合为一个代码串
SS, 再对代码串 SS加密, 以得到密文 Retext。
所述密文 Retext, 不仅包含对重要明文 Text加密后生成的信息, 也包含 对用户身份信息 UserlD和随机密钥 Random加密后生成的信息即密码识别信 息 PassID , 并且无论如何编写解密程序, 解密时在输入用户身份信息 UserlD 的条件下, 都需要用穷举法或釆用密码分析和穷举攻击相结合的方法寻找随 机密钥 Random, 才能确保正确解密密文 ReText, 以释放重要明文 Text, 所述加密强度取决于加密用户身份信息 UserlD和随机密钥 Random后所 生成的密码识别信息 PassID, 解密时, 只有先完成对密码识别信息 PassID的 解密, 才能保证对密文 Retext进行正确解密, 以释放重要明文 Text, 并且解 密时, 在确认用户身份信息 UserlD和随机密钥 Random都正确后, 从密文 Retext中解出重要明文 Text的计算量相对总计算量而言往往非常小。 因此, 所述加密强度也等于对重要明文 Text进行加密的加密强度并且是下列其中之 一: 随机长度、 解密的平均计算量、 解密的最大计算量、 解密的平均计算量 相对加密时计算量的放大倍数、 解密的最大计算量相对加密时计算量的放大 倍数、 解密的平均计算量相对单次解密时计算量的放大倍数、 解密的最大计 算量相对单次解密时计算量的放大倍数、 解密的平均尝试解密次数、 解密的 最多尝试解密次数、 在预定速度机器上的平均解密时间、 在预定速度机器上 的最长解密时间,
所述输入用户身份信息 UserlD和加密强度,是指按照以下八种顺序之一 输入: ①先输入用户身份信息 UserlD, 后输入加密强度, ②先输入加密强度, 并在产生随机密钥 Random之前, 输入用户身份信息 UserlD , ③先输入加密 强度, 并在产生随机密钥 Random之后, 输入用户身份信息 UserlD, ④在输 入用户身份信息 UserlD的过程中,输入加密强度,并在产生随机密钥 Random 之前, 完成输入用户身份信息 UserlD,⑤在输入用户身份信息 UserlD的过程 中, 输入加密强度, 并在产生随机密钥 Random之后, 完成输入用户身份信 息 UserlD,⑥由用户决定用户身份信息 UserlD和加密强度这两者的先后输入 顺序, ⑦用两个进程输入用户身份信息 UserlD, 并用其中一个进程输入加密 强度, ⑧用两个线程输入用户身份信息 UserlD, 并用其中一个线程输入加密 强度,
为了标明密文 Retext的所有者等必要属性, 密码系统往往给重要明文 Text赋予一个识别标志 TextID, 密码系统在生成密文 Retext的过程中, 将识 别标志 TextID备份在用于保存密文 Retext的相关存储空间,并且其中所述识 别标志 TextID是由下列信息中的一种或多种构成: 随机数据、 版本号、 重要 明文 Text的建立和修改时间, 所述用于保存密文 Retext的相关存储空间是是 指以下五者之一: ①保存密文 Retext的空间, ②保存密文 Retext这个文件属 性的空间, ③数据库, ④用于保存识别标志 TextID的文件或空间, ⑤用于保 存随机长度 Long和识别标志 TextID这两者的文件或空间,
当本发明应用于云中的重要明文托管服务时, 上面所述用户身份信息 UserlD,不仅包括终端用户或终端系统输入的终端用户身份信息 End-UserlD, 还包括重要明文托管服务商的云给终端用户分配的托管方密钥, 并且, 加密 重要明文 Text的过程中, 重要明文托管服务商的云产生一个托管方密钥, 使 用终端用户的公钥加密托管方密钥后, 将这个已加密的托管方密钥发送给终 端用户计算机, 终端用户计算机利用私钥对收到的密文解密, 以得到托管方 密钥, 然后使用托管方密钥参与对重要明文 Text及其密文的加密, 加密完成 后,终端用户计算机将密文 Retext发送给重要明文托管服务商的云进行保存, 解密密文 Retext时, 终端用户输入终端用户身份信息 End-UserlD后, 终端用 户计算机利用重要明文托管服务商的云公钥加密终端用户身份信息
End-UserlD , 并将已加密的终端用户身份信息 End-UserlD发送给重要明文托 管服务商的云, 并发出请求解密密文 Retext的信息, 云验证请求信息后, 利 用私钥对收到的密文解密, 以得到终端用户身份信息 End-UserlD, 云提取并 解密已加密的托管方密钥, 以得到托管方密钥, 然后, 云利用托管方密钥和 终端用户身份信息 End-UserlD, 釆用穷举法解密密文 Retext, 以得到重要明 文 Text, 云利用终端用户的公钥加密重要明文 Text, 并将已加密的重要明文 Text发送给终端用户, 终端用户用私钥对已加密的重要明文 Text解密, 以得 到重要明文 Text, 当然解密密文 Retext时, 也可在重要明文托管服务商的云 验证终端用户提交的请求发送密文 Retext信息正确后, 云将密文 Retext和托 管方密钥发送给终端用户计算机, 由终端用户在自己的计算机上输入终端用 户身份信息 End-UserlD,利用终端用户身份信息 End-UserlD和托管方密钥对 密文 Retext解密, 以得到重要明文 Text。 另外, 解密密文 Retext时, 还可由 终端用户选择在第三方计算机上完成解密。 在终端用户将密文 Retext发送给 重要明文托管服务商的云时,可以用云公钥再次对密文 Retext加密然后发送, 也可不用云公钥加密直接发送, 在重要明文托管服务商的云将密文 Retext发 送给终端用户时, 可以用终端用户公钥再次对密文 Retext加密然后发送, 也 可不用终端用户公钥加密直接发送。
本发明还可具有一些其他的特征如: ①用户在带命令按钮的图形交互界 面上, 输入用户身份信息 UserlD和加密强度, ②验证用户的合法性, 只有通 过险证的用户才能完成对重要明文 Text的加密。
为便于说明, 下面将釆用本发明来备份关键密码、 证书的文件保密系统 (包括加密系统和解密系统)简称为 FKSS; 釆用本发明来备份和恢复的私钥 KeyText就是利用本发明中加密方法来保护的重要明文;将私钥 KeyText用本 发明中的加密方法加密后生成私钥 KeyText的经加密的备份称为 ReCome(在 生成 ReCome后, FKSS中仍保留私钥 KeyText ); 将除私钥 KeyText以外的 等待 FKSS加密的文件或信息称为明文 MessFile; 将明文 MessFile被 FKSS 加密后生成的密文称为 BeMF。 FKSS加密明文 MessFile时,若釆用对称加密 算法, 则用私钥 KeyText加密明文 MessFile, 若釆用非对称加密算法, 用与 私钥 KeyText配对的公钥加密明文 MessFile, 由于对明文 MessFile力 P密并非 本发明的重点, 因此后面的实施例中在涉及 "FKSS加密明文 MessFile得到 密文 BeMF" 这步时, 不提用何种密钥加密。 为了快速识别, FKSS给私钥 KeyText产生一个识别标志 KeylD, 备份私钥 KeyText生成 ReCome时 FKSS 将 KeylD备份到用于保存密文的相关空间作为 ReCome的识别标志, 加密明 文 MessFile时 FKSS从即将用于保存密文的相关空间读取备份的 KeylD, 并 根据该 KeylD与当前用户的 KeylD是否一致,来判断当前用户的私钥 KeyText 是否已有备份 ReCome。 通常, FKSS备份 KeylD时釆用复制的方式进行, 当 然也可釆用某种算法保存 KeylD的加密副本。 本文推荐 KeylD由 FKSS的版 本号、 私钥 KeyText的修改时间和随机数据这三者共同组成, 当然不排除 KeylD由其他数据构成。
参见图 1 , 本发明第一个实施例, 其加密流程如下:
【 A】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志 KeylD插入密文 BeMF中,
【Β】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则结束; 若没找到, 则执行【C】,
【C】输入加密强度和用户身份信息 UserlD,根据随机密钥的长度、 加密 强度和预定解密程序速度三者之间的关系, 计算随机密钥的长度 Long , 产生 长度为 Long的随机密钥 Random,
【 D】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR , 利用排序产生的序号代码重排代码串 UR中各代码的位置, 利用随着加密进 程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用于 在解密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID,
【E】利用私钥 KeyText与密码识别信息 PassID派生一个代码串 KP, 【F】利用排序产生的序号代码重排代码串 KP中各代码的位置, 利用随 着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以 生成私钥 KeyText的经加密的备份 ReCome ,
【G】将随机密钥的长度 Long和私钥 KeyText的识别标志 KeylD插入私 钥 KeyText的经加密的备份 ReCome中,
【H】将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文 BeMF的相关存储空间中, 结束。 参见图 2 , 本发明第二个实施例, 其加密流程如下:
【 A】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD, 然后执行【B】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 C】,
【B】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥
KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则执行【H】; 若没找到, 则执行【C】,
【C】输入加密强度和用户身份信息 UserlD,根据随机密钥的长度、 加密 强度和预定解密程序速度三者之间的关系, 计算随机密钥的长度 Long , 产生 长度为 Long的随机密钥 Random,
【 D】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR , 利用排序产生的序号代码重排代码串 UR中各代码的位置, 利用随着加密进 程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用于 在解密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID,
【E】利用私钥 KeyText与密码识别信息 PassID派生一个代码串 KP,
【F】利用排序产生的序号代码重排代码串 KP中各代码的位置, 利用随 着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以 生成私钥 KeyText的经加密的备份 ReCome ,
【G】将随机密钥的长度 Long和私钥 KeyText的识别标志 KeylD插入私 钥 KeyText的经加密的备份 ReCome中,
【H】将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文 BeMF的相关存储空间中,
【 I】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志 KeylD插入密文 BeMF中, 结束。 参见图 3 , 本发明第三个实施例, 其加密流程如下:
【 1】用户请求对存储盘 Disk中的文件加密,
【2】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD, 然后执行【3】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 5】,
【3】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥
KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则执行【4】; 若没找到, 则执行【5】,
【 4】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志 KeylD插入密文 BeMF中 , 然后结束本进程 ,
【5】增加一个加密备份私钥 KeyText的进程 PKey,进程 PKey执行【 6】, 原进程执行【4】,
【6】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用默认的加密强度, 提示用户输入加密私钥 KeyText备份的 用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息, 【7】检测用户命令, 如果用户输入的命令是确认, 则执行【8】, 如果 用户输入的命令是退出, 则结束本进程,
【 8】进程 PKey判断用户是否输入用来加密私钥 KeyText备份的用户身 份信息 UserlD, 若输入, 则执行【9】, 若没有输入, 则从系统提取用户身份 信息 UserlD, 然后执行【10】,
【9】进程 PKey判断用户输入的用户身份信息 UserlD是否有效, 若有 效则接收用户输入的用户身份信息 UserlD,然后执行【10】,若无效,则向【6】 中要显示的图形界面发送出错提示信息, 并执行【6】,
【10】进程 PKey将 384字节的随机数据复制到数列 ID的前 384字节上, 进程 PKey产生长度为 384字节的随机数列 P,利用私钥 KeyText产生具有 384 个整数的数列 IS , 将数列 IS按照从小到大的顺序排列, 并将数列 IS中的数 据在排序后的位置序号记录到由 ir[0] , ir[l] , ir[2] , ir[3] , ir[4] , ir[i] , ... 构成的整数数列 IR中。 用一个循环计算
d[i] = d[i]Ap[ir[i]] /* .
0<i<384 .·· */
/* ...这里对随机数据进行处理, 是为了破坏伪随机的周期性, 以便后面 将这些数据用作随机密钥, 其中 ir[i]表示数列 IS中原位置序号为 i的整数在 排序后, 被放在序号为 ir[i]的位置, d[i]、 p[i]分别表示数列 ID、 数列 P中字 节序号为 i的数据, 本文用 "Λ"、 " / "、 "%"、 分别表示: 异或、 整除、 取 模…… */
【11】从数列 ID中字节位置序号为 383的位置开始, 向前将用户身份信 息 UserlD覆盖到数列 ID中,并将数列 ID的前 128个字节信息作为一个大整 数 X,用一个循环计算 (x / K[i])%256 并将计算结果添加在数列 ID后面, /* ... ...添加后,数列 ID已有 512字节的数据, K[i]为大于 65536的质数, 0<i < 128 , 这是因为后面要釆用排序所产生的位置序号代码来加密, 用这种 加密方法处理密码识别信息时, 可能存在错误通过比对的情况, 为了防止这 种情况的出现, 通过计算 (x / K[i])%256并将结果保存在数列 ID后面, 记录 大整数 X的一些特征, 以便在通过对用户身份信息 UserlD和随机密钥
Randomr的验证后, 用大整数 x的一些特征来进一步验证, 以保证密钥验证 的可靠性。 */
根据随机密钥的长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的长度 Long, 在数列 ID中从用户身份信息 UserlD之前的位置 开始, 向前读取 Long位的数据作为随机密钥 Random,
/* ...这里要求用户身份信息 UserlD和随机密钥 Random总长度不超过 384x8比特, 如果超过, 要调整数列 ID的长度 ...*/
【12】进程 PKey从数列 ID中序号为 128的字节开始, 向后复制 128个 字节到数列 P中, 将数列 P复制到数列 S, 按照从大到小的顺序排列数列 S 中各字节数据, 并将数列 S中的字节数据在排序后的位置序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构成的整数数列 R中,
/*...其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序号 为 r[i]的位置, ...*/
用一个循环, 计算 s[i]=p[r[i]]Ar[i]
/*...利用排序产生的序号代码重排代码位置, 并作异或运算
(0<i<128) ...... */
用一个循环, 计算
d[2xi] = d[2 i] Λ s[2 i] /*...0≤i<64 …
*/
d[2xi+ l]= ((d[2xi+ l] + s[2xi + 1] ) %256 ) /*...0≤i<64 …
*/
/* ......即用数列 S中数据加密数列 ID首部的数据, s[i]、 d[i]、 p[i]分别 表示数列 S、 数列 ID、 数列 P中字节序号为 i的数据, ...... */
【13】进程 PKey将数列 S复制到数列 P,按照从大到小的顺序排列数列 S中各字节数据,并将数列 S中的字节数据在排序后的位置序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构成的整数数列 R中。
/*...其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序号 为 r[i]的位置, ...*/
用一个循环, 计算 s[i]=p[r[i]]Ar[i] /*... (0<i<128) …
*/
用一个循环, 计算
d[2xi] = d[2xi] Λ s[2xi-256] /*...
128<i<192 ...*/
d[2xi+l] = (d[2xi+l] - s[2xi - 255]+256)%256 /* ...128<i<192 ... /* ......即用数列 S中数据加密数列 ID中后部的数据, s[i]、 d[i]、 p[i]分 别表示数列 S、 数列 ID、 数列 P中字节序号为 i的数据, ...... */
【14】进程 PKey将数列 ID的最后 128个字节信息复制到数列 P中, 将 数列 P复制数列 S, 按照从大到小的顺序排列数列 S中各字节数据, 并将数 列 S中的字节数据在排序后的位置序号记录到由 r[0],r[l],r[2],r[3],r[4], r[i], …构成的整数数列 R中,
/*...其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序号 为 r[i]的位置, .··*/
用一个循环,
计算 s[i]=p[r[i]] [i]
计算 d[i] = d[i] Λ s[i]
/*…即用数列 S中数据加密数列 ID首部数据, s[i]、 d[i]、 p[i]分别表示 数列 S、 数列 ID、 数列 P中字节序号为 i的数据, 0≤i<128 ...... */
【15】进程 PKey将数列 S复制到数列 P,按照从大到小的顺序排列数列
S中各字节数据,并将数列 S中的字节数据在排序后的位置序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构成的整数数列 R中,
/* ......其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序 号为 r[i]的位置, ...*/
用一个循环,
计算 s[i]=p[r[i]]Ar[i] /*... 0≤i<128...
*/
计算 d[i] = d[i] Λ s[i - 128] /* ...128<i<256 ...
*/
/*…即用数列 S中数据加密数列 ID中前部的数据, s[i]、 d[i]、 p[i]分别 表示数列 S、 数列 ID、 数列 P中字节序号为 i的数据 ...*/
【16】进程 PKey将数列 ID中字节序号为奇数的数据都向前移两位, 并 将移出的信息添加到前一个字节序号为奇数的数据尾部, 将第二个字节数据 移出的信息添加在最后一个字节数据的尾部,
将数列 ID中字节序号为偶数的数据都向后移一位,并将移出的信息添加 到后一个字节序号为偶数的数据的首部, 将倒数第二个字节数据移出的信息 添加在第一个字节数据的首部,
/* ... ... 字节序号从 0开始 ... ... */
用一个循环, 计算,
Figure imgf000041_0001
q[i + (i+1) / 3] = d[ir[i] + 128] Λ ( ir[i]%256 ) /* ...0≤i<384… */ /* 即用步骤【10】中所产生的序号代码数列 IR的数据加密数 列列 IIDD中中部部及及后后部部的的信信息息,, 并并将将结结果果保保存存在在数数列列 QQ中中,, 前前述述 dd[[ii]]、、 qq[[ii]]分分别别表表 示示数数列列 IIDD、、 数数列列 QQ中中字字节节序序号号为为 ii的的数数据据,, 数数列列 iirr[[ii]]表表示示数数列列 IIRR中中序序号号为为 ii 1100 的的整整数数数数据据,, ...... **//
将将数数列列 QQ的的前前 225566字字节节数数据据按按序序复复制制到到数数列列 IIDD中中字字节节序序号号为为偶偶数数的的字字 节节上上,, 将将数数列列 QQ中中后后 225566字字节节数数据据复复制制到到数数列列 IIDD中中字字节节序序号号为为奇奇数数的的字字节节 上上,,
【【1177】】进进程程 PPKKeeyy产产生生一一个个由由 551166个个字字节节构构成成的的随随机机数数列列,, 并并将将该该数数列列 1155 复复制制到到数数列列 SS中中,,釆釆用用某某种种算算法法利利用用随随机机密密钥钥 RRaannddoomm和和用用户户身身份份信信息息 UUsseerrllDD 派派生生一一个个由由 551166字字节节构构成成的的数数列列,, 并并将将该该数数列列复复制制到到数数列列 PP,, 按按照照从从大大到到小小 的的顺顺序序排排列列数数列列 PP中中各各字字节节数数据据,, 并并将将数数列列 PP中中的的字字节节数数据据在在排排序序后后的的位位置置 序序号号记记录录到到由由 rr[[00]] ,, rr[[ll]] ,, rr[[22]] ,, rr[[33]] ,, rr[[44]] ,, rr[[ii]] ,, ……构构成成的的整整数数数数列列 RR中中,, 用用一一个个循循环环计计算算,,
2200 pp[[ii]] == ss[[rr[[ii]]]] ΛΛ rr[[ii]]
//** ...... ss[[ii]]、、 pp[[ii]]分分别别表表示示数数列列 SS、、 数数列列 PP中中字字节节序序号号为为 ii的的数数据据,, 00<<ii<<551166,, 这这一一步步用用于于破破坏坏伪伪随随机机的的周周期期性性,, 其其中中 rr[[ii]]表表示示数数列列 PP中中原原位位置置序序号号为为 ii的的数数 据据在在排排序序后后,, 被被放放在在序序号号为为 rr[[ii]]的的位位置置。。 ...... ...... **//
【【1188】】进进程程 PPKKeeyy将将数数列列 PP前前 551122个个字字节节复复制制到到数数列列 SS,,按按照照从从大大到到小小的的 2255 顺顺序序排排列列数数列列 SS中中各各字字节节数数据据,, 并并将将数数列列 SS中中的的字字节节数数据据在在排排序序后后的的位位置置序序 号号记记录录到到由由 rr[[00]] ,, rr[[ll]] ,, rr[[22]] ,, rr[[33]] ,, rr[[44]] ,, rr[[ii]] ,, ……构构成成的的整整数数数数列列 RR中中,, //**……其其中中 rr[[ii]]表表示示数数列列 SS中中原原位位置置序序号号为为 ii的的数数据据在在排排序序后后,, 被被放放在在序序 号号为为 rr[[ii]]的的位位置置。。 **//
Figure imgf000041_0002
//** ......00<<11<<551122 --....
30 */
/* ...0<1<512 -.. */
/*··., q[i]、 s[i]、 d[i]、 p[i]分别表示数列 Q、 数歹' J S、 数列 ID、 数歹' J P 中字节序号为 i的数据, …… */
【19】进程 PKey设置 v=0,
用一个循环加密数列 ID:
/ (i+5) , (i+4) , (i+3) v = ((i + 5)(p[i / 2]† 7 + + 4)(p[i / 2+1])、 7 + (i + 3)(p[i / 2+2]†
, (i/2+1) 3 , ;
+ ...... +(i/2+l)(p[i+4])、 y)%(256 ) + v/256 /*...
0<i<512...*/ d[i]= q[i]A(v%256) /*...0≤i<512... */
/* 其中 v为定义的变量,取变量 v最后一个字节中信息给数列 ID 中的信息加密, d[i]、 p[i]、 q[i] 分别表示数列 ID、 数列 P、 数列 Q中字节序 号为 i的数据 ...... */
【20】进程 PKey产生一个由 2048个字节构成的随机数列, 并将该数列 复制到数列 Q前 2048个字节中, 将私钥 KeyText转变为一个字符串 KTs, 从 数列 Q的第 2048字节开始向前覆盖, 将字符串 KTs复制在数列 Q的前 2048 字节内, 从数列 Q的第 2049字节开始, 向后将数列 ID中前 512字节中数据 添加在 Q的尾部,
【21】进程 PKey从数列 ID第一个字节开始, 将数列 P复制到数列 ID 上, 按照从大到小的顺序排列数列 S中各字节数据, 并将数列 S中的字节数 据在排序后的位置序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构 成的整数数列 R中,
/*…其中 r[i]表示数列 S中原位置序号为 i的数据在排序后, 被放在序号 为 r[i]的位置。 …… */
用一个循环计算:
d[516 + ix5] = q[r[i] χ5] /*...0≤i<512—
*/
d[516 + ix5 + l] = q[r[i] χ5 + 1] /*...0≤i<512— d[516 + ix5 + 2] = q[r[i] χ5 + 2] /* ...0<i<512.
*
d[516 + ix5 + 3] = q[r[i] χ5 + 3] /* ...0≤i<512...
*
d[516 + ix5 + 4] = q[r[i] χ5 + 4] /* ...0≤i<512... /* ... d[i]、 q[i]分别表示数列 ID、 数列 Q中字节序号为 i的数据, ... ...
【22】进程 PKey将随机密钥 Random在前、用户身份信息 UserlD在后, 两者连接在一起, 构成一个长为 n位的二进制数列 RU, 将数列 ID中前(n / 4 _ 11 ) 字节中的奇数位的信息复制添加到数列 RU的尾部,
从数列 ID第 ( n / 4 - 10 )个字节开始, 将数列 ID中字节数据添加到数 列 RU的尾部, 直到数列 RU的长度为 3080x8位,
设置 v=0
用一个循环加密数列 ID:
/ (i+5) , (i+4) , v = ((i + 5)(u[i / 2]† (i + 4)(u[i / 2+1])、 (i + 3)(u[i /
(i+3) , (i/2+1) ,
2+2]† + ... + (i / 2+l)(u[i+4])、 , + ix(u[i % ((n+7) /
(i % 64) 3
8)] )、 >/o(256 )
+ v / 256 /* .·· 0<i<3076... */ d[i]= d[i]A(v % 256) / * ...0<i<3076...
*/
/* d[i] 、 u[i]表示数列 ID、 数列 RU中字节序号为 i的数据, n
> 8χ8 , n为随机密钥 Random和用户身份信息 UserlD的比特数之和,这里可 能导致加密计算量过大, 若如此, 可将上式适当修改, ... ... */
【23】进程 PKey将随机密钥 Random的长度 Long、 私钥 KeyText的识 别标志 KeylD插入数歹 ID中 , 然后将数列 ID作为私钥 KeyText的经加密的 备份 ReCome , 保存在存储盘 Disk中用于保存密文 BeMF的相关存储空间, 结束本进程。 参见图 3 , 本发明第四个实施例, 其加密流程如下:
【 1】用户向 FKSS请求对存储盘 Disk中的文件加密,
【2】 FKSS判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText 的识别标志 KeylD, 然后执行【3】; 若不存在, 则产生私钥 KeyText及其识 别标志 KeylD并保存, 然后执行【5】,
【 3】 FKSS在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私 钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则执行【4】; 若没找到, 则执行【5】,
【 4】 FKSS加密明文 MessFile得到密文 BeMF , 并将私钥 KeyText的识 别标志 KeylD插入密文 BeMF中 , 然后结束本进程 ,
【5】 FKSS增加一个进程, 该进程和原进程两者之中的一个进程 PKey 执行【6】, 另一个进程执行【4】,
【6】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用 FKSS默认的加密强度, 提示用户输入加密私钥 KeyText 备份的用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息, 【7】检测用户命令。 如果用户输入的命令是确认, 则执行【8】, 如果 用户输入的命令是退出, 则结束本进程,
【8】进程 PKey判断用户是否输入用来加密私钥 KeyText备份的用户身 份信息 UserlD , 若输入, 则执行【9】, 若没有输入, 则从系统提取用户身份 信息 UserlD, 然后执行【10】,
【9】进程 PKey判断用户输入的用户身份信息 UserlD是否有效, 若有 效则接收用户输入的用户身份信息 UserlD,然后执行【10】,若无效,则向【6】 中要显示的图形界面发送出错提示信息, 并执行【6】,
【10】进程 PKey根据随机密钥的随机长度、 加密强度和预定解密程序 速度三者之间的关系, 计算随机密钥的随机长度 Long, 并产生随机长度为 Long的随机密钥 Random,
【 11】进程 PKey利用用户身份信息 UserlD和随机密钥 Random派生一 个代码串 UR, 利用排序产生的序号代码重排代码串 UR中各代码的位置, 利 用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR生成用于在解密时识别用户身份信息 UserlD和随机密钥 Random的密码 识别信息 PassID,
【12】进程 PKey提取私钥 KeyText, 并利用提取到的私钥 KeyText与密 码识别信息 PassID派生一个代码串 KP,
【 13】进程 PKey利用排序产生的序号代码重排代码串 KP中各代码的 位置, 利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密 代码串 KP , 以生成私钥 KeyText的经加密的备份 ReCome ,
【14】进程 PKey将随机密钥 Random的随机长度 Long , 私钥 KeyText 的识别标志 KeylD插入私钥 KeyText的经加密的备份 ReCome中,
【15】进程 PKey将私钥 KeyText的经加密的备份 ReCome保存在用于 保存密文 BeMF的相关存储空间, 结束本进程。
参见图 4 - A和图 4 - B , 本发明第四个实施例, 其解密流程如下: 【 1】用户向 FKSS请求对存储盘 Disk中的密文 BeMF解密,
【2】用当前用户的私钥 KeyText解密密文 BeMF ,以得到明文 MessFile , 若解密成功, 则解密结束; 若解密失败或当前用户的私钥 KeyText不存在, 则执行下一步,
【3】在电脑各存储盘中, 寻找与密文 BeMF具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则执行【7】; 若没 找到, 则执行【4】,
/* ... ...识别标志 KeylD中的版本号可以不相同 */
【4】显示一个带命令按钮的图形交互界面, 在该界面上提示电脑中找 不到解密密文 BeMF的私钥 KeyText及其备份, 提示选择退出解密或将私钥 备份移动盘连接到电脑继续解密,
【5】检测移动盘变更情况和用户命令, 如果检测到有刚连接的移动盘, 则执行【6】, 如果系统检测到用户输入退出命令, 则结束,
【6】在刚连接的移动盘中, 寻找与密文 BeMF具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则执行【7】; 若没 找到, 则执行【4】,
【7】依据私钥 KeyText的经加密的备份 ReCome中的识别标志 KeylD 中的版本号, 判断 FKSS能否给私钥 KeyText的经加密的备份 ReCome解密, 若能, 则执行【8】, 若不能, 则提示用户 FKSS版本陈旧不能解密, 并启动 更新程序或结束,
【8】调用相应的解密私钥 KeyText的经加密的备份 ReCome的程序(下 面的步骤参见图 4 - B , 针对本实施例加密中所产生的私钥 KeyText的经加密 的备份 ReCome的解密程序步骤如下),
【9】定义随机密钥变量 TryPass, 从备份密文 ReCome中, 提取随机密 钥 Random的随机长度 Long
【10】显示一个带命令按钮的图形交互界面, 提供输入用户身份信息的 编辑框,提示用户输入用户身份信息;
【11】检测用户命令, 如果用户输入确认, 则执行【12】, 如果用户输 入退出, 则结束,
【 12】判断用户是否输入用来解密私钥 KeyText的经加密的备份 ReCome 的用户身份信息, 若输入, 则将输入的用户身份信息存放在字符串 ID中, 然 后执行【13】,若没输入,则 FKSS则从系统中提取当前用户的用户身份信息, 并将该信息存放在字符串 ID中, 然后执行【13】,
【13】将 TryPass归 0 (即将 TryPass占用空间的内容都设为 0 ),
【 14】利用随着解密进程增加项数和调整幂次的多项式产生的流密码来 解密私钥 KeyText的经加密的备份 ReCome , 以释放代码串 KP, 利用排序产 生的序号代码, 将代码串 KP中各代码的位置复原,
【15】从代码串 KP提取密码识别信息 PassID,
【16】利用随着解密进程增加项数和调整幂次的多项式产生的流密码来 解密密码识别信息 PassID, 以释放代码串 UR, 利用排序产生的序号代码, 将代码串 UR中各代码的位置复原,
【 17】从代码串 UR提取用户身份信息 UserlD和随机密钥 Random,
【18】将从代码串 UR提取的用户身份信息 UserlD与字符串 ID进行比 对, 将从代码串 UR提取的随机密钥 Random与程序枚举的随机密钥 TryPass 进行比对, 若用户身份信息的比对和随机密钥的比对都一致, 则执行【21】, 否则执行【19】。
【19】将 TryPass力口 1 ,
/* ... ...这里通过特定的程序将 TryPass的前 Long位数据看作一个非负整 数, 并用加 1这种算法使 TryPass更新, 从而列出一个新的随机密钥。 本文假 设 TryPass的第一位为前端, 且低位在前高位在后。 这个穷举循环包括【14】 至【 20】这七步。 当然使 TryPass更新的方法多种多样的, 例如将 TryPass减 1等等 */
【20】判断 TryPass的第 Long+1位是否为 1 , 若是, 则向 【10】 中要显 示的图形界面发送用户身份信息错误的消息, 并执行【10】; 若不是, 则执行 【14】,
【21】从代码串 KP提取私钥 KeyText, 并用该私钥 KeyText解密密文 BeMF, 以得到明文 MessFile , 解密结束。 参见图 5 , 本发明第五个实施例, 其加密流程如下:
【 1】用户向 FKSS请求对存储盘 Disk中的文件加密,
【 2】 FKSS加密明文 MessFile得到密文 BeMF , 并将私钥 KeyText的识 别标志 KeylD插入密文 BeMF中,
【 3】 FKSS在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私 钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则结束; 若没找到, 则执行【4】,
【4】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用 FKSS默认的加密强度, 提示用户输入加密私钥 KeyText 备份的用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息, 【5】检测用户命令。 如果用户输入的命令是确认, 则执行【6】, 如果 用户输入的命令是退出, 则结束,
【6】 FKSS判断用户是否输入用来加密私钥 KeyText备份的用户身份信 息 UserlD, 若输入, 则执行【7】; 若没有输入, 则从系统提取用户身份信息 UserlD, 然后执行【8】,
【7】 FKSS判断用户输入的用户身份信息 UserlD是否有效, 若有效则 接收用户输入的用户身份信息 UserlD , 然后执行【8】, 若无效, 则向【4】中 要显示的图形界面发送出错提示信息, 并执行【4】,
【8】 FKSS根据随机密钥的随机长度、 加密强度和预定解密程序速度三 者之间的关系, 计算随机密钥的随机长度 Long, 并产生随机长度为 Long的 随机密钥 Random,
【9】 FKSS利用用户身份信息 UserlD和随机密钥 Random派生一个代 码串 UR, 利用排序所产生的序号代码加密的算法加密代码串 UR, 利用随着 加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生 成用于在解密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信 息 PassID,
【 10】 FKSS提取私钥 KeyText, 并将提取到的私钥 KeyText与密码识别 信息 PassID派生一个代码串 KP,
【11】 FKSS利用排序所产生的序号代码加密的算法加密代码串 KP, 利 用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP, 以生成私钥 KeyText的经加密的备份 ReCome ,
【12】 FKSS将随机密钥 Random的随机长度 Long、 私钥 KeyText的识 别标志 KeylD插入私钥 KeyText的经加密的备份 ReCome中,
【13】 FKSS将私钥 KeyText的经加密的备份 ReCome保存在用于保存 密文 BeMF的相关存储空间, 结束。
参见图 6 , 本发明第六个实施例, 其加密流程如下: 【 1】用户向 FKSS请求对存储盘 Disk中的文件加密,
【2】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD, 然后执行【3】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 4】,
【 3】 FKSS在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私 钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则执行【14】; 若没找到, 则执行【4】,
【4】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用 FKSS默认的加密强度, 提示用户输入加密私钥 KeyText 备份的用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息, 【5】检测用户命令。 如果用户输入的命令是确认, 则执行【6】, 如果 用户输入的命令是退出, 则执行【14】,
【6】 FKSS判断用户是否输入用来加密私钥 KeyText备份的用户身份信 息 UserlD, 若输入, 则执行【7】, 若没有输入, 则从系统提取用户身份信息 UserlD, 然后执行【8】, 【7】 FKSS判断用户输入的用户身份信息 UserlD是否有效, 若有效则 接收用户输入的用户身份信息 UserlD, 然后执行【8】, 若无效, 则向【4】中 要显示的图形界面发送出错提示信息, 并执行【4】,
【8】 FKSS根据随机密钥的随机长度、 加密强度和预定解密程序速度三 者之间的关系, 计算随机密钥的随机长度 Long, 并产生随机长度为 Long的 随机密钥 Random,
【9】 FKSS利用用户身份信息 UserlD和随机密钥 Random派生一个代 码串 UR, 利用排序所产生的序号代码加密的算法加密代码串 UR, 利用随着 加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生 成用于在解密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信 息 PassID,
【10】 FKSS提取私钥 KeyText, 并利用提取到的私钥 KeyText与密码识 别信息 PassID派生一个代码串 KP,
【11】 FKSS利用排序所产生的序号代码加密的算法加密代码串 KP, 利 用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP, 以生成私钥 KeyText的经加密的备份 ReCome ,
【12】 FKSS将随机密钥 Random的随机长度 Long、 私钥 KeyText的识 别标志 KeylD插入私钥 KeyText的经加密的备份 ReCome中,
【13】 FKSS将私钥 KeyText的经加密的备份 ReCome保存在用于保存 密文 BeMF的相关存储空间,
【14】 FKSS加密明文 MessFile, 以得到密文 BeMF, 并将私钥 KeyText 的识别标志 KeylD插入密文 BeMF中 , 然后结束。
在上述各实施例中 ReCome里被本发明中的加密方法加密生成的信息, 在正常情况下不需要解密, 只有在 FKSS中现有的私钥 KeyText不能解密 BeMF时才需要解密, 用于挽救被加密的数据。 实际上 ReCome需要全部解 密使用的频率很低, 因此我们可以通过调整随机长度, 使 FKSS在用户身份 信息正确的情况下, 将 ReCome全部解密的平均计算量相对加密时的计算量 放大很多倍。 当然 FKSS在设置随机长度时, 可以加密机器的速度为依据, 在用户身份信息正确的情况下, 将 ReCome全部解密的平均解密时间设为 1 分钟、 1小时、 1天、 1周甚至更长, 当然不排除使用其他设置方式。
可以以多种方法来实现本发明的实施例, 包括写在计算机可读记录介质 上的计算机可读代码。 计算机可读记录介质可以是任意类型的记录设备, 在 其中数据以计算机可读形式存储。 计算机可读记录介质包括、 但不局限于
ROM, RAM, CD-ROM、 磁带、 软盘、 硬盘、 移动存储盘、 光数据存储、 和 载波(例如, 通过因特网的数据传输)。 计算机可读记录介质可以分布在多个 连接到网络的计算机系统上, 以使得计算机可读代码能够以分布方式写到其 上以及从其上执行。 这种加密方法不仅可应用于单个计算机系统中, 也可应 用到重要明文托管服务商的云系统中。 另外, 实现本发明的实施例所需要的 功能程序、 代码或代码段可以被本领域的普通技术人员解释。
尽管已经参照本发明的给定优选实施例示出并描述了本发明, 但是本领 域的技术人员应当理解, 在不脱离如所附权利要求所限定的本发明的精神和 范围的条件下, 可以在这里进行形式和细节上的各种变化。 产业上的可利用性
根据本发明的加密方法可以自动或根据需要调整加密强度。 根据本发明 的加密方法可用于加密私钥、 证书等重要文件信息的备份生成高度安全的密 文。 根据本发明的加密方法生成的密文可以对付各种高性能的破解机器。

Claims

权利要求书 1、 一种加密方法, 其加密流程如下: 【 I】输入用户身份信息 UserlD和加密强度,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机长度 Long, 产生随 机长度为 Long的随机密钥 Random, 【 II】釆用预定算法, 利用用户身份信息 UserlD和随机密钥 Random, 加密要保密的重要明文 Text以得到密文 ReText, 其中, 所述随机长度 Long是由下列之一或多个构成: 随机密钥中单元的个数、 随机密钥中每个单元的比特数、 随机密钥中单元的变动范围, 所述随机密钥 Random既是对重要明文 Text加密的密钥的一部分, 又是 对密文 Retext解密的密钥的一部分, 所述预定算法由下列加密算法中的一种或多种构成: 替代、 置换、 混淆、 扩散、 迭代、 组合拆分法、 数学关系加密、 变位加密、 逻辑加密、 算术加密、 分组加密、 流密码加密、 线性加密、 非线性加密、 对称加密、 非对称加密、 统计数据加密、 伪随机加密算法、 利用随着加密进程增加项数和调整幂次的 多项式产生的流密码加密的算法、 利用排序所产生的序号代码加密的算法, 所述利用用户身份信息 UserlD和随机密钥 Random, 是指除了利用包含 用户身份信息 UserlD和随机密钥 Random这两者本身外, 还包括利用下列信 息中的一种或多种:由用户身份信息 UserlD衍生的信息、由随机密钥 Random 衍生的信息、 随机数、 由随机数衍生的信息、重要明文 Text、 由重要明文 Text 衍生的信息、 由用户身份信息 UserID、 随机密钥 Random, 随机数和重要明 文 Text这四者之中两者共同衍生的信息、 由用户身份信息 UserID、 随机密钥 Random,随机数和重要明文 Text这四者之中三者共同衍生的信息, 由用户身 份信息 UserlD、 随机密钥 Random, 随机数和重要明文 Text这四者共同衍生 的信息, 所述重要明文 Text是指下列信息中的一种或多种: 私钥、 证书、 个人隐 私、 商业机密、 企事业单位机密、 计算机安全信息, 所述加密要保密的重要明文 Text以得到密文 Retext , 就是对重要明文 Text, 用户身份信息 UserlD和随机密钥 Random这三者加密的过程, 所述密文 Retext, 不仅包含对重要明文 Text加密后生成的信息, 也包含 对用户身份信息 UserlD和随机密钥 Random加密后生成的信息即密码识别信 息 PassID , 并且无论如何编写解密程序, 解密时在输入用户身份信息 UserlD 的条件下, 都需要用穷举法或釆用密码分析和穷举攻击相结合的方法寻找随 机密钥 Random, 才能确保正确解密密文 ReText, 以释放重要明文 Text, 所述加密强度取决于加密用户身份信息 UserlD和随机密钥 Random后所 生成的密码识别信息 PassID, 解密时, 只有先完成对密码识别信息 PassID的 解密, 才能保证对密文 Retext进行正确解密, 以释放重要明文 Text, 并且解 密时, 在确认用户身份信息 UserlD和随机密钥 Random都正确后, 从密文 Retext中解出重要明文 Text的计算量相对总计算量而言往往非常小。 因此, 所述加密强度也等于对重要明文 Text进行加密的加密强度并且是下列其中之 一: 随机长度、 解密的平均计算量、 解密的最大计算量、 解密的平均计算量 相对加密时计算量的放大倍数、 解密的最大计算量相对加密时计算量的放大 倍数、 解密的平均计算量相对单次解密时计算量的放大倍数、 解密的最大计 算量相对单次解密时计算量的放大倍数、 解密的平均尝试解密次数、 解密的 最多尝试解密次数、 在预定速度机器上的平均解密时间、 在预定速度机器上 的最长解密时间。 2. 根据权利要求 1所述加密方法, 其中, 所述输入用户身份信息 UserlD和加密强度,是指按照以下八种顺序之一 输入: ①先输入用户身份信息 UserlD, 后输入加密强度, ②先输入加密强度, 并在产生随机密钥 Random之前, 输入用户身份信息 UserlD , ③先输入加密 强度, 并在产生随机密钥 Random之后, 输入用户身份信息 UserlD, ④在输 入用户身份信息 UserlD的过程中,输入加密强度,并在产生随机密钥 Random 之前, 完成输入用户身份信息 UserlD ,⑤在输入用户身份信息 UserlD的过程 中, 输入加密强度, 并在产生随机密钥 Random之后, 完成输入用户身份信 息 UserlD,⑥由用户决定用户身份信息 UserlD和加密强度这两者的先后输入 顺序, ⑦用两个进程输入用户身份信息 UserlD, 并用其中一个进程输入加密 强度, ⑧用两个线程输入用户身份信息 UserlD, 并用其中一个线程输入加密 强度, 所述随机长度 Long,以密文或明文的形式保存在用于保存密文 Retext的 相关存储空间, 并且所述用于保存密文 Retext的相关存储空间是指以下五者 之一: ①保存密文 Retext的空间, ②保存密文 Retext这个文件属性的空间, ③数据库, ④用于保存随机长度 Long的文件或空间, ⑤用于保存随机长度 Long和识别标志 TextID这两者的文件或空间, 所述随机密钥 Random是由下列其中一种或多种信息构成: 系统产生的 随机信息、 系统产生的伪随机信息、 利用用户身份信息 UserlD对系统产生的 伪随机数据用某种算法干预后得到的信息、 利用内存或外存中数据对系统产 生的伪随机数据用某种算法干预后得到的信息、 利用时钟数对系统产生的伪 随机数据用某种算法干预后得到的信息, 并且所述系统是指密码系统或操作 系统, 所述对重要明文 Text、 用户身份信息 UserlD和随机密钥 Random这三者 加密的过程, 是指下列 14种过程之一: (1)对重要明文 Text、 用户身份信息 UserlD和随机密钥 Random分别进行加密 , 以得到这三者对应的密文 Rel、 密文 Re2、 密文 Re3 , 然后将密文 Rel、 密文 Re2、 密文 Re3组合为一个密文 Retext, (2)对重要明文 Text、 用户身份信息 UserlD和随机密钥 Random分别 进行加密, 以得到这三者对应的密文 Rel、 密文 Re2、 密文 Re3 , 将密文 Rel、 密文 Re2和密文 Re3这三者之中的两者组合为一个代码串 S, 并对代码串 S 加密, 以得到密文 Re4, 之后将密文 Rel、 密文 Re2和密文 Re3这三者之中 没有参与构成代码串 S的这个密文和密文 Re4组合为一个密文 Retext , (3)对 重要明文 Text、 用户身份信息 UserlD和随机密钥 Random分别进行加密, 以 得到这三者对应的密文 Rel、 密文 Re2、 密文 Re3 , 将密文 Rel、 密文 Re2和 密文 Re3这三者之中的两者组合为一个代码串 S, 并对代码串 S加密, 以得 到密文 Re4, 之后将密文 Rel、 密文 Re2和密文 Re3这三者之中没有参与构 成代码串 S的这个密文和密文 Re4组合为一个代码串 ReS , 接着再对代码串 ReS加密, 以得到密文 Retext, (4)对重要明文 Text、 用户身份信息 UserlD和 随机密钥 Random分别进行加密, 以得到这三者对应的密文 Rel、 密文 Re2、 密文 Re3 , 然后将密文 Rel、 密文 Re2、 密文 Re3组合为一个代码串 S, 并对 代码串 S加密,以得到密文 Retext, (5)对重要明文 Text、用户身份信息 UserlD 和随机密钥 Random这三者之一进行加密, 以得到密文 Rel , 并将前述三者 不参与生成密文 Rel的另外两者组合为一个代码串 S, 对代码串 S加密, 以 得到密文 Re2,然后将密文 Rel、密文 Re2组合为一个密文,以得到密文 Retext, (6)对重要明文 Text、 用户身份信息 UserlD和随机密钥 Random这三者之一进 行加密, 以得到密文 Rel , 并将前述三者不参与生成密文 Rel的另外两者组 合为一个代码串 S, 对代码串 S加密, 以得到密文 Re2, 然后将密文 Rel、 密 文 Re2组合为一个代码串 ReS , 再对代码串 ReS加密, 以得到密文 Retext , (7)对重要明文 Text、 用户身份信息 UserlD和随机密钥 Random这三者之一进 行加密, 以得到密文 Rel , 并将前述三者之中尚没被加密的另外两者之一和 密文 Rel组合为一个代码串 S , 对代码串 S加密, 以得到密文 Re2, 然后将 密文 Re2与前述三者 (即重要明文 Text、 用户身份信息 UserlD和随机密钥 Random这三者)之中尚未被加密的这一者组合为一个代码串 ReS , 再对代码 串 ReS加密, 以得到密文 Retext, (8)对重要明文 Text、 用户身份信息 UserlD 和随机密钥 Random这三者之一进行加密, 以得到密文 Rel , 将前述三者之 中不参与生成密文 Rel的另外两者之一和密文 Rel组合为一个代码串 S, 对 代码串 S加密, 以得到密文 Re2, 并将前述三者 (即重要明文 Text、 用户身 份信息 UserlD和随机密钥 Random这三者 )之中不参与生成密文 Re2的这一 者加密, 以得到密文 Re3 , 将密文 Re2、 密文 Re3组合为密文 Retext, (9)对重 要明文 Text、用户身份信息 UserlD和随机密钥 Random这三者之一进行加密, 以得到密文 Rel , 将前述三者之中不参与生成密文 Rel的另外两者之一和密 文 Rel组合为一个代码串 S, 对代码串 S加密, 以得到密文 Re2, 并将前述 三者(即重要明文 Text, 用户身份信息 UserlD和随机密钥 Random这三者 ) 之中不参与生成密文 Re2的这一者加密, 以得到密文 Re3 , 将密文 Re2、 密 文 Re3组合为代码串 ReS , 再对代码串 ReS加密, 以得到密文 Retext , 00)对 重要明文 Text、 用户身份信息 UserlD和随机密钥 Random这三者之一进行加 密, 以得到密文 Rel , 并将前述三者之中尚没被加密的另外两者和密文 Rel 组合为一个代码串 S, 对代码串 S加密, 以得到密文 Retext, (Π)先将重要明 文 Text、 用户身份信息 UserlD和随机密钥 Random这三者之中两者组合为一 个代码串 S , 接着对代码串 S加密以生成密文 Rel , 将前述三者之中没有参 与构成代码串 S的这个数据和密文 Rel组合为一个代码串 ReS , 再对代码串 ReS加密, 以得到密文 Retext, (12)先将重要明文 Text、 用户身份信息 UserlD 和随机密钥 Random这三者组合为一个代码串 S, 然后对代码串 S加密, 以 得到密文 Retext, (13)对重要明文 Text、 用户身份信息 UserlD和随机密钥Random这三者之中的两者分别进行加密, 以得到这三者对应的密文 Rel、 密 文 Re2, 将前述三者之中尚没被加密的另外一者和密文 Rel、 密文 Re2组合 为一个代码串 S , 对代码串 S加密, 以得到密文 Retext, (14)将重要明文 Text、 用户身份信息 UserlD和随机密钥 Random这三者中的代码相互插入, 并分割 为多个(含两个)新的代码串 Sl、 代码串 S2 , 分别用不同的加密算法 加密代码串 Sl、 代码串 S2 , 以得到密文 Rel、 密文 Re2 , 将密 文 Rel、 密文 Re2 组合为一个代码串 SS, 再对代码串 SS加密, 以得到 密文 Retext。 3. 根据权利要求 2所述加密方法,其特征是:所述用户身份信息 UserlD, 不仅包括终端用户或终端系统输入的终端用户身份信息 End-UserlD, 还包括 在完成对重要明文 Text加密之前, 重要明文托管服务商的云产生一个托 管方密钥, 使用终端用户的公钥加密托管方密钥后, 将这个已加密的托管方 密钥发送给终端用户计算机, 终端用户计算机利用私钥对收到的密文解密, 以得到托管方密钥, 然后使用托管方密钥参与对重要明文 Text及其密文的加 密, 加密完成后, 终端用户计算机将密文 Retext发送给重要明文托管服务商 的云进行保存。 4. 根据权利要求 3所述加密方法, 其特征是: 在终端用户计算机对重要 明文 Text加密生成密文 Retext后, 再利用重要明文托管服务商的云公钥加密 密文 Retext, 然后将已被云公钥加密的密文 Retext发送给重要明文托管服务 商的云。 5. 根据权利要求 1或 2或 3或 4所述加密方法, 其特征是: 将重要明文 Text的识别标志 TextlD备份在用于保存密文 Retext的相关存储空间中,并且 所述将重要明文 Text的识别标志 TextlD备份在用于保存密文 Retext的相关存 储空间, 是指将重要明文 Text的识别标志 TextlD备份在以下五者之一: ①保 存密文 Retext的空间, ②保存密文 Retext这个文件属性的空间, ③数据库,④用于保存识别标志 TextlD的文件或空间, ⑤用于保存随机长度 Long和识 别标志 TextlD这两者的文件或空间 所述识别标志 TextlD是由下列信息中的一种或多种构成: 随机数据、 版 本号、 重要明文 Text的建立和爹改时间 , 6. 根据权利要求 1或 2或 3或 4或 5所述加密方法, 其特征是: 验证用 户的合法性, 只有通过险证的用户才能完成对重要明文 Text的加密。 7、 一种加密方法, 其加密流程如下:
【 1】用户请求对存储盘 Disk中的文件加密,
【2】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD, 然后执行【3】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 5】,
【3】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份
ReCome, 若找到, 则执行【4】; 若没找到, 则执行【5】,
【 4】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志 KeylD插入密文 BeMF中, 然后结束本进程,
【 5】增加一个加密备份私钥 KeyText的进程 PKey,进程 PKey执行【 6】, 原进程执行【4】,
【6】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用默认的加密强度, 提示用户输入加密私钥 KeyText备份的 用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息,
【7】检测用户命令, 如果用户输入的命令是确认, 则执行【8】, 如果 用户输入的命令是退出, 则结束本进程,
【8】进程 PKey判断用户是否输入用来加密私钥 KeyText备份的用户身 份信息 UserlD, 若输入, 则执行【9】, 若没有输入, 则从系统提取用户身份 信息 UserlD, 然后执行【10】,
【9】进程 PKey判断用户输入的用户身份信息 UserlD是否有效, 若有 效则接收用户输入的用户身份信息 UserlD,然后执行【10】,若无效,则向【6】 中要显示的图形界面发送出错提示信息, 并执行【6】,
【10】进程 PKey将 384字节的随机数据复制到数列 ID的前 384字节上, 进程 PKey产生长度为 384字节的随机数列 P,利用私钥 KeyText产生具有 384 个整数的数列 IS, 将数列 IS按照从小到大的顺序排列, 并将数列 IS中的数 据在排序后的位置序号记录到由 ir[0] , ir[l] , ir[2] , ir[3] , ir[4] , ir[i] , ... 构成的整数数列 IR中。 用一个循环计算
d[i] = d[i]Ap[ir[i]] /* . 0<i<384 .·· */
/* ...这里对随机数据进行处理, 是为了破坏伪随机的周期性, 以便后面 将这些数据用作随机密钥, 其中 ir[i]表示数列 IS中原位置序号为 i的整数在 排序后, 被放在序号为 ir[i]的位置, d[i]、 p[i]分别表示数列 ID、 数列 P中字 节序号为 i的数据, 本文用 "Λ"、 " / "、 "%"、 分别表示: 异或、 整除、 取 模…… */
【11】从数列 ID中字节位置序号为 383的位置开始, 向前将用户身份信 息 UserlD覆盖到数列 ID中,并将数列 ID的前 128个字节信息作为一个大整 数 X,用一个循环计算 (x / K[i])%256 并将计算结果添加在数列 ID后面, /* ... ...添加后,数列 ID已有 512字节的数据, K[i]为大于 65536的质数,
0<i < 128 , 这是因为后面要釆用排序所产生的位置序号代码来加密, 用这种 加密方法处理密码识别信息时, 可能存在错误通过比对的情况, 为了防止这 种情况的出现, 通过计算 (x / K[i])%256并将结果保存在数列 ID后面, 记录 大整数 X的一些特征, 以便在通过对用户身份信息 UserlD和随机密钥
Randomr的验证后, 用大整数 x的一些特征来进一步验证, 以保证密钥验证 的可靠性。 */
根据随机密钥的长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的长度 Long, 在数列 ID中从用户身份信息 UserlD之前的位置 开始, 向前读取 Long位的数据作为随机密钥 Random,
/*…这里要求用户身份信息 UserlD和随机密钥 Random总长度不超过
384x8比特, 如果超过, 要调整数列 ID的长度 ... */
【12】进程 PKey从数列 ID中序号为 128的字节开始, 向后复制 128个 字节到数列 P中, 将数列 P复制到数列 S, 按照从大到小的顺序排列数列 S 中各字节数据, 并将数列 S中的字节数据在排序后的位置序号记录到由 r[0] , r[l] , r[2] , r[3] , r[4] , r[i] , …构成的整数数列 R中,
/* ...其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序号 为 r[i]的位置, .·· */
用一个循环, 计算 s[i]= p[r[i]]Ar[i]
/* ...利用排序产生的序号代码重排代码位置, 并作异或运算
(0<i<128) …… */
用一个循环, 计算 d[2xi] = d[2 x i] Λ s[2 χ i] /* ...0≤i<64 …
*/
d[2xi+l]= ((d[2xi+l] + s[2xi + 1] ) %256 ) /*...0≤i<64 …
*/
/* ......即用数列 S中数据加密数列 ID首部的数据, s[i]、 d[i]、 p[i]分别 表示数列 S、 数列 ID、 数列 P中字节序号为 i的数据, ...... */
【13】进程 PKey将数列 S复制到数列 P,按照从大到小的顺序排列数列 S中各字节数据,并将数列 S中的字节数据在排序后的位置序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构成的整数数列 R中。
/*…其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序号 为 r[i]的位置, .··*/
用一个循环, 计算 s[i]=p[r[i]]Ar[i] /*... (0<i<128) …
*/
用一个循环, 计算
d[2xi] = d[2xi] Λ s[2xi-256] /*...
128<i<192 .··*/
d[2xi+l] = (d[2xi+l] - s[2xi - 255]+256)%256 /* ...128<i<192 ...
*/
/* ......即用数列 S中数据加密数列 ID中后部的数据, s[i]、 d[i]、 p[i]分 别表示数列 S、 数列 ID、 数列 P中字节序号为 i的数据, ...... */
【14】进程 PKey将数列 ID的最后 128个字节信息复制到数列 P中, 将 数列 P复制数列 S, 按照从大到小的顺序排列数列 S中各字节数据, 并将数 列 S中的字节数据在排序后的位置序号记录到由 r[0],r[l],r[2],r[3],r[4], r[i], …构成的整数数列 R中,
/*…其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序号 为 r[i]的位置, .··*/
用一个循环,
计算 s[i]=p[r[i]] [i]
计算 d[i] = d[i] Λ s[i]
/*…即用数列 S中数据加密数列 ID首部数据, s[i]、 d[i]、 p[i]分别表示 数列 S、 数列 ID、 数列 P中字节序号为 i的数据, 0≤i<128 ...... */
【15】进程 PKey将数列 S复制到数列 P,按照从大到小的顺序排列数列 S中各字节数据,并将数列 S中的字节数据在排序后的位置序号记录到由 r[0] , r[l] , r[2] , r[3] , r[4] , r[i] , …构成的整数数列 R中,
/* ... ...其中 r[i]表示数列 S中原位置序号为 i的整数在排序后, 被放在序 号为 r[i]的位置, ... */
用一个循环,
计算 s[i]= p[r[i]]Ar[i] /* ... 0≤i<128...
*/
计算 d[i] = d[i] Λ s[i - 128] /* ... 128<i<256 ... */
/*…即用数列 S中数据加密数列 ID中前部的数据, s[i]、 d[i]、 p[i]分别 表示数列 S、 数列 ID、 数列 P中字节序号为 i的数据 ... */
【16】进程 PKey将数列 ID中字节序号为奇数的数据都向前移两位, 并 将移出的信息添加到前一个字节序号为奇数的数据尾部, 将第二个字节数据 移出的信息添加在最后一个字节数据的尾部,
将数列 ID中字节序号为偶数的数据都向后移一位,并将移出的信息添加 到后一个字节序号为偶数的数据的首部, 将倒数第二个字节数据移出的信息 添加在第一个字节数据的首部,
/* ... ... 字节序号从 0开始 ... ... */
用一个循环, 计算,
q[4xi + 2] = d[i] /* ... 0≤i<128...
*/
q[i + (i+1) / 3] = d[ir[i] + 128] Λ ( ir[i]%256 ) /* ...0≤i<384… */
/* 即用步骤【10】中所产生的序号代码数列 IR的数据加密数 列 ID中部及后部的信息, 并将结果保存在数列 Q中, 前述 d[i]、 q[i]分别表 示数列 ID、 数列 Q中字节序号为 i的数据, 数列 ir[i]表示数列 IR中序号为 i 的整数数据, ... */
将数列 Q的前 256字节数据按序复制到数列 ID中字节序号为偶数的字 节上, 将数列 Q中后 256字节数据复制到数列 ID中字节序号为奇数的字节 上,
【17】进程 PKey产生一个由 516个字节构成的随机数列, 并将该数列 复制到数列 S中,釆用某种算法利用随机密钥 Random和用户身份信息 UserlD 派生一个由 516字节构成的数列, 并将该数列复制到数列 P, 按照从大到小 的顺序排列数列 P中各字节数据, 并将数列 P中的字节数据在排序后的位置 序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构成的整数数列 R中, 用一个循环计算,
P[i] = s[r[i]] Λ r[i]
/*...s[i]、 p[i]分别表示数列 S、 数列 P中字节序号为 i的数据, 0<i<516, 这一步用于破坏伪随机的周期性, 其中 r[i]表示数列 P中原位置序号为 i的数 据在排序后, 被放在序号为 r[i]的位置。 ...... */
【18】进程 PKey将数列 P前 512个字节复制到数列 S,按照从大到小的 顺序排列数列 S中各字节数据, 并将数列 S中的字节数据在排序后的位置序 号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构成的整数数列 R中, /*…其中 r[i]表示数列 S中原位置序号为 i的数据在排序后, 被放在序 号为 r[i]的位置。 */
用一个循环, 将 d[r[i]]复制到 q[i] /*...0≤i<512...
*/
将 p[r[i] + 4]复制到 s[i] /*...0≤i<512...
*/
/*··., q[i]、 s[i]、 d[i]、 p[i]分别表示数列 Q、 数歹' J S、 数列 ID、 数歹' J P 中字节序号为 i的数据, ...... */
【19】进程 PKey设置 v=0,
用一个循环加密数列 ID:
/ (i+5) , (i+4) , (i+3) v = ((i + 5)(p[i / 2]† 7 + + 4)(p[i / 2+1])、 7 + (i + 3)(p[i / 2+2]†
, (i/2+1) 3 , ;
+ ...... +(i/2+l)(p[i+4])、 y)%(256 ) + v/256 /*... 0<i<512...*/ d[i]= q[i]A(v%256) /*...0≤i<512...
*/
/* 其中 v为定义的变量,取变量 v最后一个字节中信息给数列 ID 中的信息加密, d[i]、 p[i]、 q[i] 分别表示数列 ID、 数列 P、 数列 Q中字节序 号为 i的数据 ...... */
【20】进程 PKey产生一个由 2048个字节构成的随机数列, 并将该数列 复制到数列 Q前 2048个字节中, 将私钥 KeyText转变为一个字符串 KTs, 从 数列 Q的第 2048字节开始向前覆盖, 将字符串 KTs复制在数列 Q的前 2048 字节内, 从数列 Q的第 2049字节开始, 向后将数列 ID中前 512字节中数据 添加在 Q的尾部,
【21】进程 PKey从数列 ID第一个字节开始, 将数列 P复制到数列 ID 上, 按照从大到小的顺序排列数列 S中各字节数据, 并将数列 S中的字节数 据在排序后的位置序号记录到由 r[0], r[l], r[2], r[3], r[4], r[i], …构 成的整数数列 R中,
/*…其中 r[i]表示数列 S中原位置序号为 i的数据在排序后, 被放在序号 为 r[i]的位置。 …… */
用一个循环计算:
d[516 + ix5] = q[r[i] χ5] *...0<i<512... */
d[516 + ix5 + l] = q[r[i] χ5 + 1] /*...0<i<512. d[516 + ix5 + 2] = q[r[i] 5 +2] /*...0≤i<512... d[516 + ix5 + 3] = q[r[i] χ5 +3] /*...0≤i<512... d[516 + ix5 + 4] = q[r[i] χ5 +4] /*...0≤i<512... /*...d[i]、 q[i]分别表示数列 ID、 数列 Q中字节序号为 i的数据, ...... */
【22】进程 PKey将随机密钥 Random在前、用户身份信息 UserlD在后, 两者连接在一起, 构成一个长为 n位的二进制数列 RU, 将数列 ID中前(n /4 _ 11 ) 字节中的奇数位的信息复制添加到数列 RU的尾部,
从数列 ID第 ( n / 4 - 10 )个字节开始, 将数列 ID中字节数据添加到数 列 RU的尾部, 直到数列 RU的长度为 3080x8位,
设置 v=0 用一个循环加密数列 ID:
(1+5) (i+4)
v = ((i + 5)(u[i / 2]) (i + 4)(u[i / 2+l]) (i + 3)(u[i /
Figure imgf000062_0001
+ v / 256
0<i<3076... */
Figure imgf000062_0002
d[i] 、 u[i]表示数列 ID、 数列 RU中字节序号为 i的数据, n > 8χ8 , n为随机密钥 Random和用户身份信息 UserlD的比特数之和 ,这里可 能导致加密计算量过大, 若如此, 可将上式适当修改, ... ... */
【23】进程 PKey将随机密钥 Random的长度 Long、 私钥 KeyText的识 别标志 KeylD插入数歹 ID中 , 然后将数列 ID作为私钥 KeyText的经加密的 备份 ReCome , 保存在存储盘 Disk中用于保存密文 BeMF的相关存储空间, 结束本进程。
8、 一种加密方法, 其加密流程如下:
【 I】输入加密强度和用户身份信息 UserlD,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的随机长度 Long , 产生随机长度为 Long的随机密钥 Random,
【 II】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串
UR, 利用排序所产生的序号代码加密的算法加密代码串 UR, 利用随着加密 进程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用 于在解密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID,
【m】利用私钥 KeyText与密码识别信息 PassID派生一个代码串 KP,
【IV】利用排序所产生的序号代码加密的算法加密代码串 KP, 利用随着 加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以生 成私钥 KeyText的经加密的备份 ReCome ,
【 V】将随机长度 Long , 私钥 KeyText的识别标志 KeylD插入私钥 Key Text的经加密的备份 ReCome中。
9、 一种加密方法, 其加密流程如下:
【 A】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志 KeylD插入密文 BeMF中,
【B】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥
KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份
ReCome, 若找到, 则结束; 若没找到, 则执行【C】,
【C】输入加密强度和用户身份信息 UserlD,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的随机长度 Long, 产生随机长度为 Long的随机密钥 Random,
【 D】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR , 利用排序所产生的序号代码加密的算法加密代码串 UR,利用随着加密进程增 加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用于在解 密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID, 【E】利用私钥 KeyText与密码识别信息 PassID派生一个代码串 KP,
【F】利用排序所产生的序号代码加密的算法加密代码串 KP, 利用随着 加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以生 成私钥 KeyText的经加密的备份 ReCome ,
【 G】将随机长度 Long、私钥 KeyText的识别标志 KeylD插入私钥 KeyText 的经加密的备份 ReCome中,
【H】将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文 BeMF的相关存储空间, 结束。
10、 一种加密方法, 其加密流程如下:
【 A】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD, 然后执行【B】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 C】,
【B】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份
ReCome, 若找到, 则执行【I】; 若没找到, 则执行【C】,
【C】输入加密强度和用户身份信息 UserlD,根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之间的关系, 计算随机密钥的随机长度 Long, 产生随机长度为 Long的随机密钥 Random,
【 D】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR , 利用排序所产生的序号代码加密的算法加密代码串 UR,利用随着加密进程增 加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用于在解 密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID, 【E】利用私钥 KeyText与密码识别信息 PassID派生一个代码串 KP, 【F】利用排序所产生的序号代码加密的算法加密代码串 KP, 利用随着 加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以生 成私钥 KeyText的经加密的备份 ReCome ,
【 G】将随机长度 Long、私钥 KeyText的识别标志 KeylD插入私钥 KeyText 的经加密的备份 ReCome中,
【H】将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文 BeMF的相关存储空间,
【 I】加密明文 MessFile以得到密文 BeMF ,并将私钥 KeyText的识别标 志 KeylD插入密文 BeMF中, 结束。
11、 根据权利要求 7所述的加密方法, 其特征是: 其中,
所述进程 PKey将随机密钥 Random的长度 Long、 私钥 KeyText的识别 标志 KeylD插入数列 ID中, 被修改为: 将随机长度 Long保存在用于保存备 份 ReCome的相关存储空间, 将私钥 KeyText的识别标志 KeylD备份在用于 保存备份 ReCome的相关存储空间, 并且, 所述将随机长度 Long保存在用于 保存备份 ReCome的相关存储空间,是指将随机长度 Long保存在以下五者之 一: ①保存备份 ReCome的空间, ②保存备份 ReCome这个文件属性的空间, ③数据库, ④用于保存随机长度 Long的文件或空间, ⑤用于保存随机长度 Long和识别标志 TextID这两者的文件或空间;所述将私钥 KeyText的识别标 志 KeylD备份在用于保存备份 ReCome的相关存储空间,是指将私钥 KeyText 的识别标志 KeylD备份在以下五者之一: ①保存备份 ReCome的空间, ②保 存备份 ReCome这个文件属性的空间,③数据库,④用于保存识别标志 KeylD 的文件或空间, ⑤用于保存随机长度 Long和识别标志 KeylD这两者的文件 或空间,
所述加密明文 MessFile得到密文 BeMF , 并将私钥 KeyText的识别标志
KeylD插入密文 BeMF中, 被修改为: 加密明文 MessFile得到密文 BeMF, 并将私钥 KeyText的识别标志 KeylD备份在用于保存密文 BeMF的相关存储 空间, 并且, 所述用于保存密文 BeMF的相关存储空间, 是指以下四者之一: ①保存密文 BeMF的空间, ②保存密文 BeMF文件属性的空间, ③数据库, ④用于保存识别标志 KeylD的文件或空间,
12、 一种加密方法, 其加密流程如下:
【 1】用户请求对存储盘 Disk中的文件加密,
【2】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD, 然后执行【3】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 5】,
【3】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥
KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份
ReCome, 若找到, 则执行【4】; 若没找到, 则执行【5】,
【 4】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志 KeylD插入密文 BeMF中 , 然后结束本进程 ,
【5】增加一个进程, 该进程和原进程两者之中的一个进程 PKey执行
【6】, 另一个进程执行【4】,
【6】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用默认的加密强度, 提示用户输入加密私钥 KeyText备份的 用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息,
【7】检测用户命令。 如果用户输入的命令是确认, 则执行【8】, 如果 用户输入的命令是退出, 则结束本进程,
【 8】进程 PKey判断用户是否输入用来加密私钥 KeyText备份的用户身 份信息 UserlD, 若输入, 则执行【9】, 若没有输入, 则从系统提取用户身份 信息 UserlD, 然后执行【10】,
【9】进程 PKey判断用户输入的用户身份信息 UserlD是否有效, 若有 效则接收用户输入的用户身份信息 UserlD,然后执行【10】,若无效,则向【6】 中要显示的图形界面发送出错提示信息, 并执行【6】,
【10】进程 PKey根据随机密钥的随机长度、 加密强度和预定解密程序 速度三者之间的关系, 计算随机密钥的随机长度 Long, 并产生随机长度为 Long的随机密钥 Random,
【 11】进程 PKey利用用户身份信息 UserlD和随机密钥 Random派生一 个代码串 UR, 利用排序所产生的序号代码加密的算法加密代码串 UR, 利用 随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR, 以生成用于在解密时识别用户身份信息 UserlD和随机密钥 Random的密码识 别信息 PassID,
【12】进程 PKey提取私钥 KeyText, 并利用提取到的私钥 KeyText与密 码识别信息 PassID派生一个代码串 KP,
【 13】进程 PKey利用排序所产生的序号代码加密的算法加密代码串 KP , 利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP, 以生成私钥 KeyText的经加密的备份 ReCome ,
【14】进程 PKey将随机长度 Long , 私钥 KeyText的识别标志 KeylD插 入私钥 KeyText的经加密的备份 ReCome中,
【15】进程 PKey将私钥 KeyText的经加密的备份 ReCome保存在用于 保存密文 BeMF的相关存储空间, 结束本进程。
13、 一种加密方法, 其加密流程如下:
【 1】用户请求对存储盘 Disk中的文件加密,
【 2】加密明文 MessFile得到密文 BeMF ,并将私钥 KeyText的识别标志 KeylD插入密文 BeMF中,
【3】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥
KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则结束; 若没找到, 则执行【4】,
【4】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用默认的加密强度, 提示用户输入加密私钥 KeyText备份的 用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息,
【5】检测用户命令。 如果用户输入的命令是确认, 则执行【6】, 如果 用户输入的命令是退出, 则结束,
【6】判断用户是否输入用来加密私钥 KeyText备份的用户身份信息
UserlD,若输入,则执行【7】;若没有输入,则从系统提取用户身份信息 UserlD, 然后执行【8】,
【7】判断用户输入的用户身份信息 UserlD是否有效, 若有效则接收用 户输入的用户身份信息 UserlD , 然后执行【8】, 若无效, 则向【4】中要显示 的图形界面发送出错提示信息, 并执行【4】,
【8】根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之 间的关系, 计算随机密钥的随机长度 Long , 并产生随机长度为 Long的随机 密钥 Random,
【 9】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR , 利用排序所产生的序号代码加密的算法加密代码串 UR,利用随着加密进程增 加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用于在解 密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID , 【10】提取私钥 KeyText, 并将提取到的私钥 KeyText与密码识别信息 PassID派生一个代码串 KP,
【11】利用排序所产生的序号代码加密的算法加密代码串 KP, 利用随 着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以 生成私钥 KeyText的经加密的备份 ReCome ,
【12】将随机长度 Long , 私钥 KeyText的识别标志 KeylD插入私钥 KeyText的经加密的备份 ReCome中,
【13】将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文 BeMF的相关存储空间, 结束。
14、 一种加密方法, 其加密流程如下:
【 1】用户请求对存储盘 Disk中的文件加密,
【2】判断私钥 KeyText是否存在, 若存在, 则提取私钥 KeyText的识别 标志 KeylD, 然后执行【3】; 若不存在, 则产生私钥 KeyText及其识别标志 KeylD并保存, 然后执行【 4】,
【3】在用于保存密文 BeMF的相关存储空间, 寻找与当前用户私钥 KeyText具有相互吻合识别标志 KeylD的私钥 KeyText的经加密的备份 ReCome, 若找到, 则执行【14】; 若没找到, 则执行【4】,
【4】进程 PKey在一个带命令按钮的图形交互界面上, 提供选择加密强 度类型的选项, 提供输入加密强度数值的编辑框及调整该框内数值的上下箭 头或其它控件, 提供输入用户身份信息 UserlD的编辑框, 提示用户输入加密 强度或不输入釆用默认的加密强度, 提示用户输入加密私钥 KeyText备份的 用户身份信息 UserlD或不输入釆用系统中当前用户的用户身份信息,
【5】检测用户命令。 如果用户输入的命令是确认, 则执行【6】, 如果 用户输入的命令是退出, 则执行【14】,
【6】判断用户是否输入用来加密私钥 KeyText备份的用户身份信息
UserlD,若输入,则执行【7】,若没有输入,则从系统提取用户身份信息 UserlD, 然后执行【8】,
【7】判断用户输入的用户身份信息 UserlD是否有效, 若有效则接收用 户输入的用户身份信息 UserlD, 然后执行【8】, 若无效, 则向【4】中要显示 的图形界面发送出错提示信息, 并执行【4】,
【8】根据随机密钥的随机长度、 加密强度和预定解密程序速度三者之 间的关系, 计算随机密钥的随机长度 Long, 并产生随机长度为 Long的随机 密钥 Random,
【 9】利用用户身份信息 UserlD和随机密钥 Random派生一个代码串 UR , 利用排序所产生的序号代码加密的算法加密代码串 UR,利用随着加密进程增 加项数和调整幂次的多项式产生的流密码来加密代码串 UR,以生成用于在解 密时识别用户身份信息 UserlD和随机密钥 Random的密码识别信息 PassID, 【10】提取私钥 KeyText, 并利用提取到的私钥 KeyText与密码识别信 息 PassID派生一个代码串 KP,
【11】利用排序所产生的序号代码加密的算法加密代码串 KP, 利用随 着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,以 生成私钥 KeyText的经加密的备份 ReCome ,
【12】将随机长度 Long, 私钥 KeyText的识别标志 KeylD插入私钥 KeyText的经加密的备份 ReCome中,
【13】将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文
BeMF的相关存储空间,
【 14】加密明文 MessFile , 以得到密文 BeMF , 并将私钥 KeyText的识 别标志 KeylD插入密文 BeMF中 , 然后结束。
15、根据权利要求 8或 9或 10或 12或 13或 14所述的加密方法,其中, 所述备份 ReCome, 其特征是任何针对备份 ReCome的解密程序都需要 釆用穷举法或釆用穷举法与密码分析技术相结合的方法寻找随机密钥, 不仅 需要对解密时输入的用户身份信息与解密过程中释放的用户身份信息进行比 对, 还需要对穷举循环枚举的随机密钥与解密过程中释放的随机密钥进行比 对, 只有在前述两种密钥的比对都一致后, 才能保证对私钥 KeyText的经加 密的备份 ReCome进行正确解密, 以释放私钥 KeyText,
所述加密强度取决于加密用户身份信息 UserlD和随机密钥 Random后所 生成的密码识别信息 PassID, 解密时, 只有先完成对密码识别信息 PassID的 解密, 才能保证对私钥 KeyText的经加密的备份 ReCome进行正确解密, 以 释放私钥 KeyText, 并且解密时, 在确认用户身份信息 UserlD和随机密钥 Random都正确后, 从私钥 KeyText的经加密的备份 ReCome中解出私钥 KeyText的计算量相对总计算量而言往往非常小。 因此,所述加密强度也等于 对私钥 KeyText进行加密的加密强度并且是下列其中之一: 随机长度、 解密 的平均计算量、 解密的最大计算量、 解密的平均计算量相对加密时计算量的 放大倍数、 解密的最大计算量相对加密时计算量的放大倍数、 解密的平均计 算量相对单次解密时计算量的放大倍数、 解密的最大计算量相对单次解密时 计算量的放大倍数、 解密的平均尝试解密次数、 解密的最多尝试解密次数、 在预定速度机器上的平均解密时间、 在预定速度机器上的最长解密时间, 所述随机密钥是由下列其中一种或多种信息构成: 系统产生的随机信息、 系统产生的伪随机信息、利用用户身份信息 UserlD对系统产生的伪随机数据 用某种算法干预后得到的信息、 利用内存或外存中数据对系统产生的伪随机 数据用某种算法干预后得到的信息、 利用时钟数对系统产生的伪随机数据用 某种算法干预后得到的信息, 并且所述系统是指密码系统或操作系统。
所述插入是指将一个代码串作为一个单位或拆分为多个单位添加到另一 个代码串中某一个或多个位置构成一个新代码串的动作, 并且插入位置不局 限于代码串里的位置, 也可以添加在代码串的首尾两端。
16. 根据权利要求 9或 10或 12或 13或 14所述的加密方法, 其特征是: 其中,
所述利用排序所产生的序号代码加密的算法加密代码串 UR,利用随着加 密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR,被修改 为: 釆用预定算法加密代码串 UR, 并且所述预定算法由下列加密算法中的一 种或多种构成: 替代、 置换、 混淆、 扩散、 迭代、 组合拆分法、 数学关系加 密、 变位加密、 逻辑加密、 算术加密、 分组加密、 流密码加密、 线性加密、 非线性加密、 对称加密、 非对称加密、 统计数据加密、 伪随机加密算法、 利 用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、 利 用排序所产生的序号代码加密的算法,
所述利用排序所产生的序号代码加密的算法加密代码串 KP,利用随着加 密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,被修改 为: 釆用预定算法加密代码串 KP, 并且所述预定算法由下列加密算法中的一 种或多种构成: 替代、 置换、 混淆、 扩散、 迭代、 组合拆分法、 数学关系加 密、 变位加密、 逻辑加密、 算术加密、 分组加密、 流密码加密、 线性加密、 非线性加密、 对称加密、 非对称加密、 统计数据加密、 伪随机加密算法、 利 用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、 利 用排序所产生的序号代码加密的算法,
所述将私钥 KeyText的识别标志 KeylD插入密文 BeMF中 , 被修改为: 将私钥 KeyText的识别标志 KeylD备份在用于保存密文 BeMF的相关存储空 间, 并且所述将私钥 KeyText的识别标志 KeylD备份在用于保存密文 BeMF 的相关存储空间, 是指将私钥 KeyText的识别标志 KeylD备份在以下四者之 一: ①保存密文 BeMF的空间, ②保存密文 BeMF文件属性的空间, ③数据 库, ④用于保存识别标志 KeylD的文件或空间,
所述将私钥 KeyText的经加密的备份 ReCome保存在用于保存密文 BeMF 的相关存储空间, 是指将私钥 KeyText的经加密的备份 ReCome保存在以下 四者之一: ①保存密文 BeMF的空间, ②保存密文 BeMF文件属性的空间, ③数据库, ④用于保存备份 ReCome的文件或空间,
所述将随机长度 Long、私钥 KeyText的识别标志 KeylD插入私钥 KeyText 的经加密的备份 ReCome中, 被修改为: 将随机长度 Long保存在用于保存备 份 ReCome的相关存储空间, 将私钥 KeyText的识别标志 KeylD备份在用于 保存备份 ReCome的相关存储空间,并且所述将随机长度 Long保存在用于保 存备份 ReCome的相关存储空间,是指将随机长度 Long保存在以下五者之一: ①保存备份 ReCome的空间, ②保存备份 ReCome这个文件属性的空间, ③ 数据库,④用于保存随机长度 Long的文件或空间,⑤用于保存随机长度 Long 和识别标志 KeylD这两者的文件或空间; 所述将私钥 KeyText的识别标志 KeylD备份在用于保存备份 ReCome的相关存储空间, 是指将私钥 KeyText 的识别标志 KeylD备份在以下五者之一: ①保存备份 ReCome的空间, ②保 存备份 ReCome这个文件属性的空间,③数据库,④用于保存识别标志 KeylD 的文件或空间, ⑤用于保存随机长度 Long和识别标志 KeylD这两者的文件 或空间,
所述备份 ReCome, 其特征是任何针对备份 ReCome的解密程序都需要 釆用穷举法或釆用穷举法与密码分析技术相结合的方法寻找随机密钥, 不仅 需要对解密时输入的用户身份信息与解密过程中释放的用户身份信息进行比 对, 还需要对穷举循环枚举的随机密钥与解密过程中释放的随机密钥进行比 对, 只有在前述两种密钥的比对都一致后, 才能保证对私钥 KeyText的经加 密的备份 ReCome进行正确解密, 以释放私钥 KeyText,
所述加密强度取决于加密用户身份信息 UserlD和随机密钥 Random后所 生成的密码识别信息 PassID, 解密时, 只有先完成对密码识别信息 PassID的 解密, 才能保证对私钥 KeyText的经加密的备份 ReCome进行正确解密, 以 释放私钥 KeyText, 并且解密时, 在确认用户身份信息 UserlD和随机密钥 Random都正确后, 从私钥 KeyText的经加密的备份 ReCome中解出私钥 KeyText的计算量相对总计算量而言往往非常小。 因此,所述加密强度也等于 对私钥 KeyText进行加密的加密强度并且是下列其中之一: 随机长度、 解密 的平均计算量、 解密的最大计算量、 解密的平均计算量相对加密时计算量的 放大倍数、 解密的最大计算量相对加密时计算量的放大倍数、 解密的平均计 算量相对单次解密时计算量的放大倍数、 解密的最大计算量相对单次解密时 计算量的放大倍数、 解密的平均尝试解密次数、 解密的最多尝试解密次数、 在预定速度机器上的平均解密时间、 在预定速度机器上的最长解密时间, 所述随机密钥是由下列其中一种或多种信息构成: 系统产生的随机信息、 系统产生的伪随机信息、利用用户身份信息 UserlD对系统产生的伪随机数据 用某种算法干预后得到的信息、 利用内存或外存中数据对系统产生的伪随机 数据用某种算法干预后得到的信息、 利用时钟数对系统产生的伪随机数据用 某种算法干预后得到的信息, 并且所述系统是指密码系统或操作系统。
17. 根据权利要求 8所述的加密方法, 其特征是: 其中,
所述利用排序所产生的序号代码加密的算法加密代码串 UR,利用随着加 密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 UR,被修改 为: 釆用预定算法加密代码串 UR, 并且所述预定算法由下列加密算法中的一 种或多种构成: 替代、 置换、 混淆、 扩散、 迭代、 组合拆分法、 数学关系加 密、 变位加密、 逻辑加密、 算术加密、 分组加密、 流密码加密、 线性加密、 非线性加密、 对称加密、 非对称加密、 统计数据加密、 伪随机加密算法、 利 用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、 利 用排序所产生的序号代码加密的算法,
所述利用排序所产生的序号代码加密的算法加密代码串 KP,利用随着加 密进程增加项数和调整幂次的多项式产生的流密码来加密代码串 KP,被修改 为: 釆用预定算法加密代码串 KP, 并且所述预定算法由下列加密算法中的一 种或多种构成: 替代、 置换、 混淆、 扩散、 迭代、 组合拆分法、 数学关系加 密、 变位加密、 逻辑加密、 算术加密、 分组加密、 流密码加密、 线性加密、 非线性加密、 对称加密、 非对称加密、 统计数据加密、 伪随机加密算法、 利 用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、 利 用排序所产生的序号代码加密的算法,
所述将随机长度 Long、私钥 KeyText的识别标志 KeylD插入私钥 KeyText 的经加密的备份 ReCome中, 被修改为: 将随机长度 Long保存在用于保存备 份 ReCome的相关存储空间, 将私钥 KeyText的识别标志 KeylD备份在用于 保存备份 ReCome的相关存储空间,并且所述将随机长度 Long保存在用于保 存备份 ReCome的相关存储空间,是指将随机长度 Long保存在以下五者之一: ①保存备份 ReCome的空间, ②保存备份 ReCome这个文件属性的空间, ③ 数据库,④用于保存随机长度 Long的文件或空间,⑤用于保存随机长度 Long 和识别标志 KeylD这两者的文件或空间; 所述将私钥 KeyText的识别标志 KeylD备份在用于保存备份 ReCome的相关存储空间, 是指将私钥 KeyText 的识别标志 KeylD备份在以下五者之一: ①保存备份 ReCome的空间, ②保 存备份 ReCome这个文件属性的空间,③数据库,④用于保存识别标志 KeylD 的文件或空间, ⑤用于保存随机长度 Long和识别标志 KeylD这两者的文件 或空间,
所述备份 ReCome, 其特征是任何针对备份 ReCome的解密程序都需要 釆用穷举法或釆用穷举法与密码分析技术相结合的方法寻找随机密钥, 不仅 需要对解密时输入的用户身份信息与解密过程中释放的用户身份信息进行比 对, 还需要对穷举循环枚举的随机密钥与解密过程中释放的随机密钥进行比 对, 只有在前述两种密钥的比对都一致后, 才能保证对私钥 KeyText的经加 密的备份 ReCome进行正确解密, 以释放私钥 KeyText, 所述加密强度取决于加密用户身份信息 UserlD和随机密钥 Random后所 生成的密码识别信息 PassID, 解密时, 只有先完成对密码识别信息 PassID的 解密, 才能保证对私钥 KeyText的经加密的备份 ReCome进行正确解密, 以 释放私钥 KeyText, 并且解密时, 在确认用户身份信息 UserlD和随机密钥 Random都正确后, 从私钥 KeyText的经加密的备份 ReCome中解出私钥 KeyText的计算量相对总计算量而言往往非常小。 因此,所述加密强度也等于 对私钥 KeyText进行加密的加密强度并且是下列其中之一: 随机长度、 解密 的平均计算量、 解密的最大计算量、 解密的平均计算量相对加密时计算量的 放大倍数、 解密的最大计算量相对加密时计算量的放大倍数、 解密的平均计 算量相对单次解密时计算量的放大倍数、 解密的最大计算量相对单次解密时 计算量的放大倍数、 解密的平均尝试解密次数、 解密的最多尝试解密次数、 在预定速度机器上的平均解密时间、 在预定速度机器上的最长解密时间, 所述随机密钥是由下列其中一种或多种信息构成: 系统产生的随机信息、 系统产生的伪随机信息、利用用户身份信息 UserlD对系统产生的伪随机数据 用某种算法干预后得到的信息、 利用内存或外存中数据对系统产生的伪随机 数据用某种算法干预后得到的信息、 利用时钟数对系统产生的伪随机数据用 某种算法干预后得到的信息, 并且所述系统是指密码系统或操作系统。
18. 根据权利要求 11或 15或 16或 17所述加密方法, 其特征是: 验证 用户的合法性, 只有通过验证的用户才能完成对私钥 KeyText的加密。
19. 根据权利要求 1或 2或 3或 4或 5或 6或 8或 9或 10或 17所述加 密方法, 其特征是: 用户在带命令按钮的图形交互界面上, 输入用户身份信 息 UserlD和加密强度。
PCT/CN2009/072947 2009-02-12 2009-07-28 需要采用穷举法解密的随机加密方法 WO2010091565A1 (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CNPCT/CN2009/070406 2009-02-12
CN200910004217.9 2009-02-12
CN2009100042179A CN101488858B (zh) 2008-02-13 2009-02-12 需要采用穷举法解密的随机加密方法
PCT/CN2009/070406 WO2009100679A1 (zh) 2008-02-13 2009-02-12 加密/解密方法
CN 200910140802 CN102013980A (zh) 2009-05-06 2009-05-06 需要采用穷举法解密的随机加密方法
CN200910140802.1 2009-05-06

Publications (1)

Publication Number Publication Date
WO2010091565A1 true WO2010091565A1 (zh) 2010-08-19

Family

ID=42561379

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/072947 WO2010091565A1 (zh) 2009-02-12 2009-07-28 需要采用穷举法解密的随机加密方法

Country Status (2)

Country Link
CN (1) CN102013980A (zh)
WO (1) WO2010091565A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667599A (zh) * 2018-05-21 2018-10-16 平安科技(深圳)有限公司 加密方法、装置、计算机设备和存储介质
CN108776583A (zh) * 2018-06-07 2018-11-09 福建江夏学院 π小数点后面位数的随机数表建立方法
CN109218295A (zh) * 2018-08-22 2019-01-15 平安科技(深圳)有限公司 文件保护方法、装置、计算机设备及存储介质
CN110135176A (zh) * 2019-04-26 2019-08-16 深圳市金城保密技术有限公司 一种打印数据传输的加密方法
CN111866864A (zh) * 2020-07-17 2020-10-30 上海市共进通信技术有限公司 基于无线ap实现针对云平台证书的加密存储及安全使用管理的方法、装置及存储介质
US11216586B2 (en) 2018-12-03 2022-01-04 At&T Intellectual Property I, L.P. Multi-dimensional progressive security for personal profiles
CN115296799A (zh) * 2022-07-21 2022-11-04 杭州跃马森创信息科技有限公司 一种微服务用户身份认证的快速人脸识别方法
CN115996120A (zh) * 2023-03-22 2023-04-21 江西经济管理干部学院 一种基于移动存储设备的计算机数据加解密方法及系统
CN116980232A (zh) * 2023-09-21 2023-10-31 深圳市能数科技有限公司 一种数据处理方法、装置、计算机设备和可读存储介质
CN117479151A (zh) * 2023-12-27 2024-01-30 阳光凯讯(北京)科技股份有限公司 一种数据加密传输方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158759B (zh) * 2011-04-22 2013-11-06 深圳创维数字技术股份有限公司 节目录制方法、录制节目的回放方法及机顶盒
CN103095452A (zh) * 2011-11-01 2013-05-08 刘海云 需要采用穷举法解密的随机加密方法
CN104217487B (zh) * 2013-05-30 2019-03-01 佛山市大迈信息科技有限公司 可验证的计算机排位方法
CN104486756B (zh) * 2014-12-05 2018-11-16 深圳职业技术学院 一种密笺短信的加解密方法及系统
US10454676B2 (en) * 2015-02-13 2019-10-22 International Business Machines Corporation Automatic key management using enterprise user identity management
US10348727B2 (en) 2015-02-13 2019-07-09 International Business Machines Corporation Automatic key management using enterprise user identity management
CN105024821B (zh) * 2015-07-13 2018-10-30 广东恒睿科技有限公司 格上可撤销的基于身份的加密方法
CN105024822B (zh) * 2015-07-13 2018-11-13 上海星地通讯工程研究所 来自多线性映射的基于身份加密方法
CN105049211B (zh) * 2015-07-13 2018-11-27 深圳康元智能科技有限公司 格上基于累积器的可撤销的基于身份的加密方法
CN107317679B (zh) * 2017-06-05 2020-01-31 国政通科技股份有限公司 一种身份证丢失后防诈骗的方法和系统
CN107172436B (zh) * 2017-06-09 2019-11-26 国政通科技股份有限公司 一种身份证信息传输保护的方法和系统
CN108664234A (zh) * 2018-01-17 2018-10-16 北京智芯微电子科技有限公司 真随机数发生器
CN110391899B (zh) * 2018-04-20 2022-04-29 武汉真元生物数据有限公司 一种基于生物标识的口令生成方法及系统
CN111465008B (zh) * 2019-01-21 2024-05-24 苹果公司 在无线通信中执行加密和认证时的初始化向量生成
CN110912891A (zh) * 2019-11-24 2020-03-24 苏州浪潮智能科技有限公司 一种网络传输的加密方法、装置、设备及介质
CN111062047B (zh) * 2019-12-25 2022-07-08 中国联合网络通信集团有限公司 数据存储方法、系统、设备及存储介质
CN113014380B (zh) * 2021-02-08 2022-12-27 深圳市亿图软件有限公司 文件数据的密码管理方法、装置、计算机设备及存储介质
CN113992394B (zh) * 2021-10-26 2024-04-16 释空(上海)展示制作有限公司 一种基于大数据的信息加密系统
CN116232592B (zh) * 2023-05-08 2023-08-01 浙江校联信息技术有限公司 一种用于在线招标的加解密方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101268652A (zh) * 2005-09-19 2008-09-17 国际商业机器公司 可更新的背叛者跟踪
CN101488858A (zh) * 2008-02-13 2009-07-22 刘海云 需要采用穷举法解密的随机加密方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101268652A (zh) * 2005-09-19 2008-09-17 国际商业机器公司 可更新的背叛者跟踪
CN101488858A (zh) * 2008-02-13 2009-07-22 刘海云 需要采用穷举法解密的随机加密方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019223170A1 (zh) * 2018-05-21 2019-11-28 平安科技(深圳)有限公司 加密方法、装置、计算机设备和存储介质
CN108667599A (zh) * 2018-05-21 2018-10-16 平安科技(深圳)有限公司 加密方法、装置、计算机设备和存储介质
CN108776583A (zh) * 2018-06-07 2018-11-09 福建江夏学院 π小数点后面位数的随机数表建立方法
CN108776583B (zh) * 2018-06-07 2022-10-18 福建江夏学院 π小数点后面位数的随机数表建立方法
CN109218295A (zh) * 2018-08-22 2019-01-15 平安科技(深圳)有限公司 文件保护方法、装置、计算机设备及存储介质
US11216586B2 (en) 2018-12-03 2022-01-04 At&T Intellectual Property I, L.P. Multi-dimensional progressive security for personal profiles
CN110135176A (zh) * 2019-04-26 2019-08-16 深圳市金城保密技术有限公司 一种打印数据传输的加密方法
CN111866864B (zh) * 2020-07-17 2022-11-11 上海市共进通信技术有限公司 基于无线ap实现针对云平台证书的加密存储及安全使用管理的方法、装置及存储介质
CN111866864A (zh) * 2020-07-17 2020-10-30 上海市共进通信技术有限公司 基于无线ap实现针对云平台证书的加密存储及安全使用管理的方法、装置及存储介质
CN115296799A (zh) * 2022-07-21 2022-11-04 杭州跃马森创信息科技有限公司 一种微服务用户身份认证的快速人脸识别方法
CN115996120A (zh) * 2023-03-22 2023-04-21 江西经济管理干部学院 一种基于移动存储设备的计算机数据加解密方法及系统
CN115996120B (zh) * 2023-03-22 2023-09-29 江西经济管理干部学院 一种基于移动存储设备的计算机数据加解密方法及系统
CN116980232A (zh) * 2023-09-21 2023-10-31 深圳市能数科技有限公司 一种数据处理方法、装置、计算机设备和可读存储介质
CN116980232B (zh) * 2023-09-21 2024-01-12 深圳市能数科技有限公司 一种数据处理方法、装置、计算机设备和可读存储介质
CN117479151A (zh) * 2023-12-27 2024-01-30 阳光凯讯(北京)科技股份有限公司 一种数据加密传输方法
CN117479151B (zh) * 2023-12-27 2024-03-12 阳光凯讯(北京)科技股份有限公司 一种数据加密传输方法

Also Published As

Publication number Publication date
CN102013980A (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
WO2010091565A1 (zh) 需要采用穷举法解密的随机加密方法
CN110300112B (zh) 区块链密钥分层管理方法
CN110213042B (zh) 一种基于无证书代理重加密的云数据去重方法
US9977918B2 (en) Method and system for verifiable searchable symmetric encryption
US9740849B2 (en) Registration and authentication of computing devices using a digital skeleton key
US9009484B2 (en) Method and system for securing communication
CN100432889C (zh) 提供断开鉴别的系统和方法
WO2009100679A1 (zh) 加密/解密方法
US8369521B2 (en) Smart card based encryption key and password generation and management
DK2361462T3 (en) METHOD FOR GENERATING an encryption / decryption
KR102555164B1 (ko) 데이터에 대한 액세스 인에이블링
CN103095452A (zh) 需要采用穷举法解密的随机加密方法
JP3871996B2 (ja) データ分割管理方法及びプログラム
CN110336673B (zh) 一种基于隐私保护的区块链设计方法
Alkandari et al. Cryptographic hash function: A high level view
CN113711564A (zh) 用于加密数据的计算机实现的方法和系统
CN111739200B (zh) 一种指纹电子锁的加密、解密认证方法和指纹电子锁
Huang et al. Efficiently secure data privacy on hybrid cloud
WO2010091566A1 (zh) 加密/解密方法
Abo-Alian et al. Auditing-as-a-service for cloud storage
JPWO2020065633A5 (zh)
KR20220137024A (ko) 대칭 비동기 생성 암호화 방법
CN112019335A (zh) 一种基于sm2算法的多方协同加解密方法及装置、系统、介质
US10439810B2 (en) Device and method for administering a digital escrow server
Yue et al. A Face-Authentication Based Searchable Encryption Scheme For Mobile Device

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: 09839888

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09839888

Country of ref document: EP

Kind code of ref document: A1