[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2018047120A1 - A system and method for data block modification detection and authentication codes - Google Patents

A system and method for data block modification detection and authentication codes Download PDF

Info

Publication number
WO2018047120A1
WO2018047120A1 PCT/IB2017/055444 IB2017055444W WO2018047120A1 WO 2018047120 A1 WO2018047120 A1 WO 2018047120A1 IB 2017055444 W IB2017055444 W IB 2017055444W WO 2018047120 A1 WO2018047120 A1 WO 2018047120A1
Authority
WO
WIPO (PCT)
Prior art keywords
keyset
data block
random string
transformation
bits
Prior art date
Application number
PCT/IB2017/055444
Other languages
French (fr)
Inventor
Prahlad P. SINGANAMALA
Original Assignee
Singanamala Prahlad P
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Singanamala Prahlad P filed Critical Singanamala Prahlad P
Publication of WO2018047120A1 publication Critical patent/WO2018047120A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys

Definitions

  • the invention relates to a cryptographic computational transformation system and method, particularly related to a hash or a modification detection code generation and message authentication code generation for a data block.
  • Secure Hash Algorithm e.g. SHA-1, SHA-2
  • SHA Secure Hash Algorithm
  • hash values help to ensure the integrity of a given piece of data because they are virtually guaranteed to be unique, infeasible to predict and yet easy to compute.
  • SHA- 1 has been exploited by attackers for generating and installing fake certificates because of availability of sufficient computing resource.
  • SHA-l' s predecessor, MD5 was in use well beyond the point that attacks on it were cheap and easy.
  • MAC message authentication code
  • MAC message authentication code
  • keyed (cryptographic) hash function accepts as input a secret key and an arbitrary-length message to be authenticated, and outputs a MAC (sometimes known as a tag).
  • the MAC value protects both a message's data integrity as well as its authenticity, by allowing verifiers (who also possess the secret key) to detect any changes to the message content.
  • MAC functions similarly as cryptographic hash functions, they possess different security requirements. To be considered secure, a MAC function must resist existential forgery under chosen-plaintext attacks.
  • the ciphered text is obtained by performing some arithmetic or logical operations on the input 'n' bits of input data and the secret key (password or ⁇ ). Therefore, the ciphered text data always possess traces of the input data and the secret password or key, and could be broken with crypto analysis and sufficient computing resources. To prevent electronic eavesdroppers and to have control over forgery of electronic signatures, the ciphered text should not have any trace or clue of the input data or the secret key, and brute-force will be the only way to break ciphered text.
  • the invention transforms the input data block (M) to ciphered data block ( ⁇ ') starting with a current keyset (Ki) by either the forward or reverse transformation -
  • the transformation of M starting with Ki and obtaining the cipher M' and the first transformed keyset K 2 is explained in more detail in later part of the specification.
  • the invention then discloses generating a random string or number R which is then transformed into Y using a forward transformation function F starting with the first transformed keyset K 2 .
  • the R is transformed into Z using a reverse transformation function F "1 starting with the first transformed keyset K 2 as shown below:
  • the invention then discloses associating the pair having a combination of Y and Z as a modification detection code (MDC) or a hash code of M against the input data M.
  • the data block M or M' is stored in the memory with the pair having a combination of Y and Z, for example, recorded in a hash table against M or M'.
  • the pair Y and Z does not provide any trace or clue to the input data since they are derived from a random string or a random number.
  • the pair having a combination of Y and Z function as authentication codes for the same data block when a first transformation of a user defined password of any length and format is performed using a default keyset and in the process converting the default keyset to a password specific keyset and using the password specific keyset as the current keyset for transforming the first 'n' bits of data block.
  • the invention discloses transforming M into M' using the current keyset Ki:
  • the invention then discloses transforming Y into a random number Ri using a reverse transformation function F "1 with the first transformed keyset K 2 and transforming Z into a random number R 2 using a forward transformation function F using the first transformed keyset 2 as shown below:
  • the invention discloses a method for a hash or a modification detection code for a data block.
  • the method comprising: transforming first 'n' bits of the data block to another arrangement of 'n' bits using a current keyset; transforming the current keyset to a next keyset for transforming the next 'n' bits of the data block, wherein a first transformed keyset is obtained after completely transforming each of 'n' bits forming the data block into a transformed data block; transforming a random string using the first transformed keyset for a first random string and a second random string, wherein the first and second random strings are obtained by performing forward and reverse transformations of the random string using the first transformed keyset; and associating a pair selected from a combination between the random string, the first random string and the second random string as the modification detection code or the hash code for the data block.
  • the invention in another embodiment, discloses a system for a hash or a modification detection code for a data block.
  • the transformation module of the system comprises instructions to: transform first 'n' bits of the data block to another arrangement of 'n' bits using a current keyset; transform the current keyset to a next keyset for transforming the next 'n' bits of the data block, wherein a first transformed keyset is obtained after completely transforming each of 'n' bits forming the data block into a transformed data block; transform a random string using the first transformed keyset for a first random string and a second random string, wherein the first and second random strings are obtained by performing forward and reverse transformations of the random string using the first transformed keyset; and associate a pair selected from a combination between the random string, the first random string and the second random string as the modification detection code or the hash code for the data block.
  • the invention in one more embodiment, discloses a non- transitory computer-readable storage medium having instructions that, when executed by a computing device, cause the computing device for a hash or a modification detection code for a data block.
  • the instructions relate to: transforming first 'n' bits of the data block to another arrangement of 'n' bits using a current keyset; transforming the current keyset to a next keyset for transforming the next 'n' bits of the data block, wherein a first transformed keyset is obtained after completely transforming each of 'n' bits forming the data block into a transformed data block; transforming a random string using the first transformed keyset for a first random string and a second random string, wherein the first and second random strings are obtained by performing forward and reverse transformations of the random string using the first transformed keyset; and associating a pair selected from a combination between the random string, the first random string and the second random string as the modification detection code or the hash code for the data block.
  • the invention in one more embodiment, discloses an electromagnetic signal carrying computer-readable instructions for performing a method for a hash or a modification detection code for a data block.
  • the method comprising: transforming first 'n' bits of the data block to another arrangement of 'n' bits using a current keyset; transforming the current keyset to a next keyset for transforming the next 'n' bits of the data block, wherein a first transformed keyset is obtained after completely transforming each of 'n' bits forming the data block into a transformed data block; transforming a random string using the first transformed keyset for a first random string and a second random string, wherein the first and second random strings are obtained by performing forward and reverse transformations of the random string using the first transformed keyset; and associating a pair selected from a combination between the random string, the first random string and the second random string as the modification detection code or the hash code for the data block.
  • FIG. 1 illustrates a keyset, in accordance to one or more embodiments of the invention.
  • FIG. 2 Illustrates a transformation process of a keyset when transforming 'n' bits of a data block, in accordance to one or more embodiments of the invention.
  • FIG. 3 illustrates a transformation process of a keyset when transforming 'n' bits in another transformation process, in accordance to one or more embodiments of the invention.
  • FIG. 4. illustrates a method for a hash or a modification detection code for a data block, in accordance to one or more embodiments of the invention.
  • FIG. 5 illustrates a method for verifying modification detection from modification detection or hash code for a data block, in accordance to one or more embodiments of the invention.
  • FIG. 6 illustrates a block diagram of a system, in accordance to one or more embodiments of the invention.
  • FIG. 7 illustrates a block diagram of a stand-alone system, in accordance to one or more embodiments of the invention.
  • FIG. 8 illustrates modification detection or hash code generation and verification, in accordance to one or more embodiments of the present invention.
  • FIG. 9 illustrates message authentication code (MAC) generation and verification, in accordance to one or more embodiments of the present invention.
  • FIG. 10 illustrates use of message authentication codes (MAC) for authentication in a stand-alone system, in accordance to one or more embodiments of the present invention.
  • MAC message authentication codes
  • the present invention discloses a system and method for providing enhanced security when the data transmitted over a communication channel or at rest, i.e., storage.
  • the method or system of the invention uses a symmetric state based transformation process, i.e., forward transformation/encryption and reverse transformation/decryption using a keyset.
  • a symmetric state based transformation process i.e., forward transformation/encryption and reverse transformation/decryption using a keyset.
  • One such process of symmetric state based transformation is disclosed and described in US 8180048 B2 by the same inventor applicant, and the same is incorporated in this application by this reference.
  • the invention utilizes an 'n' bit block transformation method, where 'n' is number of bits that can be transformed at each stage and can be at least of a length, one bit.
  • the ideal size for 'n' for making eavesdropping difficult with current computing resources is at least 8 bits.
  • the keyset that is utilized in the symmetric state based transformation process is present both in the forward transformation/first computer terminal that transmits transformed data and in the reverse transformation/second computer terminal that receives transformed data for reverse transformation.
  • the system or method uses a function F for encryption/forward transformation and F "1 for decryption/reverse transformation in the following description. However, both F and F "1 can be used interchangeably for encryption/forward transformation or decryption/reverse transformation.
  • FIG. 1 illustrates a keyset (100) in accordance to one or more embodiment of the present invention.
  • the keyset is a two-dimensional array with two columns and the number of rows is equal to 2 n where 'n' represents number of bits selected for transforming an input-data/data block.
  • the design of the keyset is based on the size of 'n' bit block selected for transforming/encrypting the input-data.
  • the row numbers of the two-dimensional array start from 0 to (2 n - l). For example, as shown in FIG. 1, to encrypt input-data in a block of 3 bits wise, there would be 2 3 rows i.e. 8 rows.
  • the first column (101) of the two-dimensional array will comprise of unique 'n' bit numbers and is referred to as the Reference column 1.
  • the first column can be arranged to have numbers from zero to seven in any order.
  • the second column (102) of the two-dimensional array comprises random numbers and is referred to as the Energy-Value column ("E-Val").
  • the random numbers can be of any predetermined size of V bits, where V represents the size of the E-Val column in bits.
  • This structure represents one embodiment of the structure of the keyset.
  • FIG. 2 illustrates a transformation process (200) of a keyset when transforming 'n' bits in one transformation process, in accordance to one or more embodiments of the invention.
  • the first column represented as X is the row numbers of the keyset array structure.
  • the second column is the Reference column represented as Y and the third column (E-val column) is represented as E.
  • Ki is a keyset designed and present in the computer terminal used for encryption
  • 'x' is the input data to be encrypted
  • 'y' is the ciphered text.
  • Ki is known only to sender and receiver since the transformation is a symmetric state transformation process.
  • the transformation process illustrated in FIG. 2 is a forward transformation process, in accordance to one or more embodiment of the present invention, and is described as follows.
  • the transformation function upon receiving the input data 'x' to be encrypted, creates a binary equivalent of the input data 'x'.
  • a primary keyset is then designed based on the size of the 'n' bit blocks (for example, '3' bit keyset as shown in FIG. 1).
  • the first '3' bit block of input data i.e., 100
  • a decimal equivalent of it is determined, i.e., 4.
  • the row number, i.e., 4, equivalent to the decimal equivalent is then identified by traversing through the keyset.
  • the value present in the first column (Y) corresponding to the row number of the keyset is 001.
  • the 'n' bit of input data ' 100' is replaced with 'n' bit of output data '001'.
  • the default keyset or the primary keyset (Ki) is transformed to a secondary keyset (K 2 ).
  • the generation of a secondary keyset in one embodiment, is based on the value of first 'n' bit of input data 'x' and first 'n' bit of output data y.
  • the process of generating the secondary keyset and shuffling is as follows.
  • the value of the first 'n' bit of input data 'x' is 4(100) and first 'n' bit of output data 'y' is 1(001).
  • the method traverses through the row no. 4 (binary equivalent of input data 'x' and changes the random value present in the second column (E) using '4' (100) and ' ⁇ (001).
  • the method may change the value present in the second column (E) using x and y (e.g. x+y or x XOR y).
  • new random value 'Ei' is calculated by using the below function:
  • the value 'zi' is calculated by using the value of first 'n' bit of input data 'x' i.e. '4' and the first 'm' bit of output data 'y' i.e. T .
  • the value of zi (x+y) i.e. 5.
  • Ei in the right-hand side of the equation represents the current random value i.e. '42'.
  • J represents the value ⁇ ' to '7' . Since, it is the start of new random number generation, the value J is assigned to ⁇ '.
  • n refers to the size of the random value column (E).
  • the value of ⁇ 4 ' is calculated as T.
  • the new random value for E5, E 6 , E 7 , Eo, Ei, E 2 and E3 are also calculated.
  • the values in the first column (Y) are arranged based on the order of the random values in the second column (E).
  • the second column (E) is then sorted in any predetermined order such as ascending or descending to form the secondary keyset (K 2 ).
  • the method uses the secondary keyset K2 as the primary keyset for the next '3' bit of input data ⁇ 0 ⁇ of 'x' to be encrypted. For this purpose, the corresponding decimal equivalent of ⁇ 0 is calculated as 5.
  • the method then traverses through the row number '5' of the secondary keyset, and the value present in the corresponding first column (Y) of the secondary keyset is '011' .
  • the 'n' bit of input data ⁇ 0 is replaced with 'n' bit of output data ⁇ 1 .
  • This process (forward transformation) is repeated until the last 'n' bits of input data are transformed to form the output data y (in this case, 100101 is transformed to 001011), and resultant keyset after complete transformation of input data is a first transformed keyset.
  • the transformed/encrypted data may be stored or transmitted over the communication channel. Since the ciphered data y is only either stored or transmitted through the communication channel, it is difficult for the eavesdropper or any third party to obtain the input data without the keyset Ki.
  • FIG. 3 illustrates a transformation process (300) of a keyset when transforming 'n' bits in another transformation process, in accordance to one or more embodiments of the invention.
  • the transformation process used is a reverse transformation, represented as F "1 , with the same keyset.
  • F ⁇ y, Ki x, K 2
  • Ki is the same keyset that was used in the forward transformation from which y was obtained.
  • the reverse transformation function F "1 takes 'y' as input and replaces 'y' with 'x' using the default primary keyset 'Ki' .
  • the first ' 3 ' bits of input data to be transformed/decrypted are ⁇ 0 .
  • the method identifies the value '00 in row 4 of the first column (Y) in the keyset (Ki).
  • the binary equivalent of 4, i.e., ⁇ ' is then replaced in the output data i.e. ⁇ with ' 100' .
  • the secondary keyset generation process is same as the keyset transformation process described in context of forward transformation.
  • the next '3 ' bits '01 ⁇ is then transformed to ⁇ 0 and is repeated till all 'n' bits are transformed using F "1 .
  • the resultant keyset after fully transforming the input data using F "1 is also a first transformed keyset.
  • F "1 function can be used for encryption/forward transformation and F can be used for decryption/reverse transformation process.
  • the transformation process of keyset 'Ki' to ' ⁇ 2 ' and any other intermediate keysets is always an irreversible process irrespective of the function F and F "1 used for transformation/encryption of the input data.
  • the steps of or logic for transforming a keyset to a first transformed keyset is same in encryption/forward transformation as well as decryption/reverse transformation processes.
  • FIG. 4 illustrates a method (400) for a hash or a modification detection code for a data block, in accordance to one or more embodiments of the invention.
  • the first 'n' bits of input data (M) is converted to 'n' cipher bits with the current keyset (Ki) and, for example, using forward transformation process (F).
  • the current keyset Ki is transformed to a next keyset Ki for transforming the next 'n' bits of input data, and after completely transforming the input data, a first transformed keyset K 2 is obtained along with the cipher text ( ⁇ ').
  • K 2 is the first transformed keyset.
  • a set of random bits or a random number R are transformed with the first transformed keyset K 2 to obtain a first random string Ri and a second random string R 2 .
  • the random bits are user defined.
  • the random string comprises at least one of pre-determined number of bits from the first transformed keyset, random number, constant (such as 100 bits, 128 bits, 228 bits, 256 bits, or 512 bits) or a string of bits from a predetermined file.
  • the first and second random strings (Ri, R 2 ) are obtained by performing forward and reverse transformations, respectively, of the random string using the first transformed keyset.
  • the first random string Ri and a second random string R 2 are the non-linear and dynamic complementary values, and they are obtained from transformation using the first transformed keyset K 2 obtained from an irreversible process.
  • a pair selected from a combination between the random string (R), the first random string (Ri) and the second random string (R 2 ) is associated as the modification detection code or the hash code for the data block.
  • the combination is a predetermined arrangement of the random strings (R, Ri, R 2 ) as a pair.
  • the data block M or M' is stored in the memory with the pair Ri and R 2 , for example, recorded in a hash table against M or M'.
  • the random string R is a pre-determined number of bits from the first transformation keyset, associating only the first random string (Y) or the second random string (Z) as the modification detection code or the hash code for the data block.
  • a first transformation of a user defined password of any length and format is performed using a default keyset (Ko) and in the process converting the default keyset to a password specific keyset.
  • Ko a default keyset
  • the non-linear and dynamic complementary values obtained in such resultant transformation process function as the message authentication codes for the input data block.
  • FIG. 5 illustrates a method (500) for verifying modification detection from modification detection or hash code for a data block, in accordance to one or more embodiments of the invention.
  • This verification of modification detection is applicable in both cases where the data block with the modification detection or hash code is stored in a memory storage such as a hard disk or a long-term memory or where the data block is communicated with the modification detection or hash code.
  • data block (M or M') with hash or authentication codes (Y, Z) are received for modification detection.
  • the data block M or the transformed data block M' can be used to verify corruption of the data block M.
  • the data block (M or M') is completely transformed starting with current keyset (Ki) and in the process obtain a second transformation keyset (K 2 ).
  • the second transformation keyset during the verification process and the first transformation keyset should be the same in successful verification scenarios.
  • the hash or authentication codes (Y, Z) are transformed using the second transformation keyset (K 2 ) to obtain corresponding two random strings (RI, R2).
  • the they can be transformed using F or F "1 .
  • the following process describes the process of detection and/or verification where it is known that M or M' is received with a combination of Y and Z, in according to one or more embodiments of the invention.
  • the following process describes the process of detection and/or verification when there is no knowledge on whether data block is transformed data block or just the data block, i.e., M or M' is received with a combination of Y and Z, in according to one or more embodiments of the invention.
  • the following process describes the process of detection and/or verification when a combination of (R and (Y or Z)) is received with M or M', where R is the random number or string or constant used for obtaining Y or Z.
  • the following process in an alternative embodiment, describes the process of detection and/or verification when only (Y or Z) is received with M or M' , where Y or Z is obtained by transforming the random number having a predetermined number of bits from the first transformation keyset at the transmitting end or first transformation process.
  • M' is authentic and not tampered
  • the above transformation processes for detecting corruption of the data block is applicable for data block at rest, i.e., in storage, or in transit and received at another location.
  • the transformation processes can be executed by processor when relevant instructions for such transformations are provided to it.
  • FIG. 6 illustrates a block diagram of a system, in accordance to one or more embodiments of the invention.
  • the system (600) of the present invention comprises a communication channel (602), a first computer terminal (601) and a second computer terminal (603), communicatively coupled to the first computer terminal (601) via the communication channel (602).
  • the communication channel (602) may include, for example, a wide area network such as the internet, a cloud, a telephone network, a local area network or a wireless network.
  • the computer terminals (601, 603) may comprise at least one of a personal computer (PC), a laptop, a mobile device, tablet, a personal digital assistant (PDA) etc. known in the art or future-developed for transmitting data over the communication channel (602).
  • PC personal computer
  • PDA personal digital assistant
  • the transformed data (M or M', (Y, Z) or (Y or Z)) is transmitted from computer terminal (601) to computer terminal computer terminal (603) over the communication channel (602).
  • the output data (M or M', (Y, Z) or (Y or Z)) is sent by the computer terminal (601) in an encrypted form to the computer terminal (603) to prevent eavesdroppers or other third parties from getting access to the original data.
  • the second computer terminal (603) in one embodiment, performs reverse transformation F "1 to retrieve the original input data.
  • the system (600) uses a symmetric state transformation process the same keyset has to be present at both the first computer (601) and second computer terminal (603) for forward transformation/encryption and reverse transformation/decryption purpose. Further, the information on transformations performed to obtain keysets such as Ki and K 2 exists in both the computers. Both the computers can execute the methods disclosed and described with relation FIG.'s 4 and 5 when the equivalent instructions are executed by the processor in the computer terminals (601, 603).
  • the first computer terminal (601) transforms M into M' using the keyset Ki and in the process also obtains a first transformed keyset K 2 .
  • the computer terminal (601) then generates a random string.
  • the first computer terminal (601) then transforms R into Y using a forward transformation function F.
  • the first computer terminal (601) then transforms R into Z using a reverse transformation function F "1 as shown below:
  • the first computer terminal (601) then stores the input data M, Y and Z or transmits M or M', (Y, Z) or (Y or Z) to the second computer terminal (603) over the communication channel say (602).
  • the combination of Y and Z pair is modification detection code (MDC) or Hash code for the message M.
  • the second computer terminal (603) upon receiving the input data M and the random numbers Y, Z, detects modification of the message according to the description in relation to FIG. 5.
  • FIG. 7 illustrates a block diagram of a stand-alone system, in accordance to one or more embodiments of the invention.
  • the stand-alone computer terminals (601, 603) of the present invention comprises at least a short-term memory such as a random-access memory (RAM) (701a), a processor (701b), a long-term memory (701e), and a transceiver (701d).
  • the long-term memory is based on a dual memory model and may be used for storing data for a longer period of time.
  • the transceiver (701d) is used to transmit and receive data from one computer terminal to another computer terminal using the communication channel (602).
  • the data block can be anything, for example, a message, a password, or a file created by any application such as MS Word or an excel sheet is stored in the form of bits in the computer terminal (601, 603), etc.
  • the long-term memory (701e) further comprises a transformation module (701c) for transformation of input data, i.e., encryption as well as decryption purposes.
  • the transformation module (701c) is responsible for converting input data into output data by forward transformation F or F "1 or by reverse transformation F or F "1 .
  • the output data is a form of input data that has been encrypted by performing the forward transformation onto the input data.
  • the encrypted data may be further stored in the computer terminal (601, 603) itself.
  • the forward or reverse transformation functions of the present invention may be used to transform data with no trace of the input data.
  • These properties of the forward transformation function F and F 1 is used for generating modification detection code (MDC/Hash) and message authentication code (MAC) according the embodiments of the invention. Any finite state based methods such as F or F "1 which satisfy the below condition are suitable to be implemented in generating modification detection code (MDC/Hash) and message authentication code (MAC).
  • FIG. 8 illustrates modification detection or hash code generation and verification at a receiving end, in accordance to one or more embodiments of the present invention.
  • the computer terminal 601 transforms the message (M) to M' using keyset Ki as shown below:
  • the computer terminal (601) generates a set of bits or random number R.
  • the computer terminal then transforms 'R' into 'Y' and 'R' into 'Z' using a forward transformation function F and a reverse transformation function F "1 , respectively, as shown below:
  • the computer terminal (601) then transmits the message M or transformed message M' along with the newly generated message authentication code Y and Z to the computer terminal (603).
  • the computer terminal (603) then transforms the received message M into M' or M' to M to obtain keyset K 2 as shown below:
  • the second computer terminal (603) then transforms Y into a random number Ri using a reverse transformation function F "1 .
  • the second computer terminal (603) transforms Z into a random number R 2 using a forward transformation function f () as shown below:
  • the second computer terminal (603) then checks whether the newly generated numbers Ri and R 2 are equal and then accepts the message. This process may be used for checking any modification of the message transmitted. The same is applicable to storage, i.e., M is stored along with its hash code (Y and Z) recorded in a hash table. Thus, the protocol of the present invention identifies the loss/change of information of message in transmission or at rest. [0062] Thus, the first computer terminal (601) does generate modification detection code (Y and Z) and the second computer terminal (603) does verification of code (Y and Z) and both devices use the transformation functions F and F 1 . Since it is a symmetric encryption process, the same keyset (Ki) should be present in both the first computer terminal (601) and the second computer terminal (603).
  • FIG. 9 illustrates message authentication code (MAC) generation and verification, in accordance to one or more embodiments of the present invention.
  • the computer terminal (601) transforms the password (P) into P' using a keyset Ki as shown below:
  • the computer terminal (601) then transforms the message (M) to M' using keyset K 2 as shown below:
  • the computer terminal (601) generates a set of bits or random number R.
  • the computer terminal then transforms 'R' into ⁇ and 'R' into 'Z' using a forward transformation function F and a reverse transformation function F 1 , respectively, as shown below:
  • the computer terminal (601) then transmits the message M or transformed message M' along with the newly generated message authentication code Y and Z to the server (603).
  • the server (603) upon receiving the message retrieves a password corresponding to the identifier of the computer terminal/user (601).
  • the server (603) then transforms the retrieved password P to P' using the default keyset Ki.
  • the server (603) then transforms the received message M into M' as shown below:
  • the server (603) then performs a reverse transformation function F "1 on Y to generate an output Ri using the keyset K 2 .
  • the server (603) uses a forward transformation function F on Z to generate another output R 2 using the keyset K 2 as shown below:
  • the server (603) then checks whether Ri and R 2 are equal and then accepts the message 'M' or M', else rejects.
  • the first computer terminal (101) only transmits the message M or M' and the message authentication code (MAC) Y and Z.
  • the server (603) transforms the stored password P into P' using keyset Ki, and M to M' using keyset K 2 .
  • the derived keyset 3 is only used to transform Y into Ri using reverse transformation function F "1 , and Z into R 2 using forward transformation function F.
  • the server (603) thus the checks the integrity of the message transmitted over the communication channel (602) and then only accepts the message 'M' as authentic.
  • the described method and system may be used for online and offline purposes (storage).
  • FIG. 10 illustrates use (1000) of message authentication codes (MAC) for authentication in a stand-alone system, in accordance to one or more embodiments of the present invention.
  • the computing resource (601) for example, can be a digital safe locker or electronic safe locker, a personal computer, laptop, computing screen, mobile phone, tablet etc.
  • the method illustrated in FIG. 10 allows a user (604) to enter/set user ID or an associated secret (P) (for example, password/PIN) and access the computing resource (601).
  • P associated secret
  • the device (601) then verifies the entered secret (P) is true or false using the message authentication codes (Y, Z) that are created at the time of registration and stored in device (601).
  • the device (601) concatenates the received secret (P) and its associated ID, if any, and generates a new keyset (K 2 ) by forward transforming (F) the (PUD) with the current keyset (Ki) (may be private or public) as shown here:
  • the user login process typically compares user entered password by computing hash(Password) with that of the stored Hash(Password) (i.e. created at the time of registration).
  • the security offered in the present invention demonstrates that the Password (user secret (P)) is not stored as in the case of existing systems, but transformed random (or non- random) number R in Y and Z form is stored in the device (601). Therefore, it is highly secure than existing systems.
  • the present invention illustrated in FIG. 10 uses function F, F "1 , Ki & P and then generates Y and Z. And it stores only Y and Z along with User identity (ID) and initial keyset Ki. All other intermediary data like password, keyset data (K 2 ) is deleted permanently.
  • the scope of the invention includes instructions, stored in non- transitory computer-readable storage medium, when executed by a computing device, cause the computing device to execute one or more embodiments for a hash or a modification detection code or authentication code for a data block. Further, the instructions, when executed by a computing device, can cause the computing device to encode one or more embodiments for a hash or a modification detection code or authentication code for a data block in an electromagnetic signal.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

The invention relates to a computational transformation process, which has applications in cryptography, particularly in a hash or a modification detection code generation and message authentication code generation. Since the process of forward transformation or reverse transformation used in the invention is a symmetric state transformation process, the same keyset needs to be present to encrypt/decrypt the message using the forward or reverse transformation. The 'n' bit input data is transformed into another arrangement of 'n' bit block of output data using a keyset, and in the same process, the keyset is transformed into a first transformed keyset based on a nonlinear and one-way transformation. A random string or bits (R) are forward and reverse transformed using the first transformed keyset to generate non-linear and dynamic complementary pair of values, i.e., a first random string (Y) and a second random string (Z). A pair of values selected from a combination between (R), (Y) and (Z) operate as modification detection or message authentication codes for the input data or the output data.

Description

A SYSTEM AND METHOD FOR DATA BLOCK MODIFICATION DETECTION AND AUTHENTICATION CODES
TECHNICAL FIELD OF THE INVENTION
[0001] The invention relates to a cryptographic computational transformation system and method, particularly related to a hash or a modification detection code generation and message authentication code generation for a data block.
BACKGROUND OF THE INVENTION
[0002] The advent of computer technology and networking methods in information technology made information available within no time across the globe. However, the information is susceptible to be monitored by electronic eavesdroppers.
[0003] The SHA family of hashing algorithms was developed by the U.S National Institute of Standards and Technology (NIST) and are widely used by Certificate Authorities (CA's). Secure Hash Algorithm (e.g. SHA-1, SHA-2) is a type of cryptographic hash function that ensures data has not been modified. SHA accomplishes this by computing a cryptographic hash value for a given piece of data that is unique to the data. Hash values help to ensure the integrity of a given piece of data because they are virtually guaranteed to be unique, infeasible to predict and yet easy to compute. However, SHA- 1 has been exploited by attackers for generating and installing fake certificates because of availability of sufficient computing resource. For example, SHA-l' s predecessor, MD5, was in use well beyond the point that attacks on it were cheap and easy.
[0004] Another cryptographic technique a message authentication code (MAC) algorithm, sometimes called a keyed (cryptographic) hash function, accepts as input a secret key and an arbitrary-length message to be authenticated, and outputs a MAC (sometimes known as a tag). The MAC value protects both a message's data integrity as well as its authenticity, by allowing verifiers (who also possess the secret key) to detect any changes to the message content. While MAC functions similarly as cryptographic hash functions, they possess different security requirements. To be considered secure, a MAC function must resist existential forgery under chosen-plaintext attacks. This means that even if an attacker has access to an oracle which possesses the secret key and generates MACs for messages of the attacker's choosing, the attacker cannot guess the MAC for other messages (which were not used to query the oracle) without performing infeasible amounts of computation.
[0005] However, in most of the existing cryptographic systems, the ciphered text is obtained by performing some arithmetic or logical operations on the input 'n' bits of input data and the secret key (password or ΡΓΝ). Therefore, the ciphered text data always possess traces of the input data and the secret password or key, and could be broken with crypto analysis and sufficient computing resources. To prevent electronic eavesdroppers and to have control over forgery of electronic signatures, the ciphered text should not have any trace or clue of the input data or the secret key, and brute-force will be the only way to break ciphered text.
SUMMARY OF THE INVENTION
[0006] It is the object of this invention to generate hash or modification detection and/or authentication codes that does not contain any trace of input data. Any super symmetric transformation functions exhibit the property - F_1(F(X, K), K) = F (F_1(X, K), K) = X, and the invention disclosed herein exploits the same property to generate non-linear and dynamic complementary pair of values, which could function as hash and authentication codes for a data block and does not contain any trace of input data. The non-linear and dynamic complementary values Y = F (X, K) and Z = F (X, K) satisfies the property - F (Y, K) = F (Z, K) = X, where X is input data; K is a current keyset state; F is forward transformation of input data X using the current keyset state K; F"1 is reverse transformation of input data X using the current keyset state K; Y and Z are the non-linear and dynamic complementary pair of values for the given input data X and current keyset state K.
[0007] The invention transforms the input data block (M) to ciphered data block (Μ') starting with a current keyset (Ki) by either the forward or reverse transformation -
F(M, Ki) ^M', K2
The transformation of M starting with Ki and obtaining the cipher M' and the first transformed keyset K2 is explained in more detail in later part of the specification. [0008] The invention then discloses generating a random string or number R which is then transformed into Y using a forward transformation function F starting with the first transformed keyset K2. Similarly, the R is transformed into Z using a reverse transformation function F"1 starting with the first transformed keyset K2 as shown below:
F(R, K2) = Y, K3;
F ^R, K2) =Z, 4;
The forward or reverse transformations with a keyset is explained in more detail in later part of the specification.
[0009] The invention then discloses associating the pair having a combination of Y and Z as a modification detection code (MDC) or a hash code of M against the input data M. The data block M or M' is stored in the memory with the pair having a combination of Y and Z, for example, recorded in a hash table against M or M'. The pair Y and Z does not provide any trace or clue to the input data since they are derived from a random string or a random number. The pair having a combination of Y and Z function as authentication codes for the same data block when a first transformation of a user defined password of any length and format is performed using a default keyset and in the process converting the default keyset to a password specific keyset and using the password specific keyset as the current keyset for transforming the first 'n' bits of data block.
[0010] To verify corruption of the data block M, for example, in a memory storage, with the hash or modification detection code (Y, Z), the invention discloses transforming M into M' using the current keyset Ki:
F(M, Ki) = M', K2
[0011] The invention then discloses transforming Y into a random number Ri using a reverse transformation function F"1 with the first transformed keyset K2 and transforming Z into a random number R2 using a forward transformation function F using the first transformed keyset 2 as shown below:
F (Y, K2) = Ri, K3
F (Z, K2) = R2, K4 [0012] The invention then checks whether the newly generated numbers Ri and R2 are equal. In case where Ri = R2, the non-modification of the data block (M) is verified, i.e., there is no corruption of the data block. Else, the data block is corrupted. The invention is also applicable at a receiving end when M or M' is communicated with hash code pair Y and Z from a transmitting end. At the receiving end, the transformed data block M' or data block M is reverse or forward transformed using F1 or F starting with the current keyset Ki. After completely transforming M' or M, the first transformed keyset K2 is obtained. The process described in the aforementioned paragraphs is then followed for transforming Y and Z with the first transformed keyset K2 to detect modification of the transmitted data block. The invention, therefore, also enables identification of loss/change of information in data transmission too.
[0013] Accordingly, in one embodiment, the invention discloses a method for a hash or a modification detection code for a data block. The method comprising: transforming first 'n' bits of the data block to another arrangement of 'n' bits using a current keyset; transforming the current keyset to a next keyset for transforming the next 'n' bits of the data block, wherein a first transformed keyset is obtained after completely transforming each of 'n' bits forming the data block into a transformed data block; transforming a random string using the first transformed keyset for a first random string and a second random string, wherein the first and second random strings are obtained by performing forward and reverse transformations of the random string using the first transformed keyset; and associating a pair selected from a combination between the random string, the first random string and the second random string as the modification detection code or the hash code for the data block.
[0014] Further, the invention, in another embodiment, discloses a system for a hash or a modification detection code for a data block. The transformation module of the system comprises instructions to: transform first 'n' bits of the data block to another arrangement of 'n' bits using a current keyset; transform the current keyset to a next keyset for transforming the next 'n' bits of the data block, wherein a first transformed keyset is obtained after completely transforming each of 'n' bits forming the data block into a transformed data block; transform a random string using the first transformed keyset for a first random string and a second random string, wherein the first and second random strings are obtained by performing forward and reverse transformations of the random string using the first transformed keyset; and associate a pair selected from a combination between the random string, the first random string and the second random string as the modification detection code or the hash code for the data block.
[0015] Furthermore, the invention, in one more embodiment, discloses a non- transitory computer-readable storage medium having instructions that, when executed by a computing device, cause the computing device for a hash or a modification detection code for a data block. The instructions relate to: transforming first 'n' bits of the data block to another arrangement of 'n' bits using a current keyset; transforming the current keyset to a next keyset for transforming the next 'n' bits of the data block, wherein a first transformed keyset is obtained after completely transforming each of 'n' bits forming the data block into a transformed data block; transforming a random string using the first transformed keyset for a first random string and a second random string, wherein the first and second random strings are obtained by performing forward and reverse transformations of the random string using the first transformed keyset; and associating a pair selected from a combination between the random string, the first random string and the second random string as the modification detection code or the hash code for the data block.
[0016] In addition, the invention, in one more embodiment, discloses an electromagnetic signal carrying computer-readable instructions for performing a method for a hash or a modification detection code for a data block. The method comprising: transforming first 'n' bits of the data block to another arrangement of 'n' bits using a current keyset; transforming the current keyset to a next keyset for transforming the next 'n' bits of the data block, wherein a first transformed keyset is obtained after completely transforming each of 'n' bits forming the data block into a transformed data block; transforming a random string using the first transformed keyset for a first random string and a second random string, wherein the first and second random strings are obtained by performing forward and reverse transformations of the random string using the first transformed keyset; and associating a pair selected from a combination between the random string, the first random string and the second random string as the modification detection code or the hash code for the data block. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The foregoing and other features of embodiments will become more apparent from the following detailed description of embodiments when read in conjunction with the accompanying drawings. [0018] FIG. 1 illustrates a keyset, in accordance to one or more embodiments of the invention.
[0019] FIG. 2 Illustrates a transformation process of a keyset when transforming 'n' bits of a data block, in accordance to one or more embodiments of the invention.
[0020] FIG. 3 illustrates a transformation process of a keyset when transforming 'n' bits in another transformation process, in accordance to one or more embodiments of the invention.
[0021] FIG. 4. illustrates a method for a hash or a modification detection code for a data block, in accordance to one or more embodiments of the invention.
[0022] FIG. 5 illustrates a method for verifying modification detection from modification detection or hash code for a data block, in accordance to one or more embodiments of the invention.
[0023] FIG. 6 illustrates a block diagram of a system, in accordance to one or more embodiments of the invention.
[0024] FIG. 7 illustrates a block diagram of a stand-alone system, in accordance to one or more embodiments of the invention. [0025] FIG. 8 illustrates modification detection or hash code generation and verification, in accordance to one or more embodiments of the present invention.
[0026] FIG. 9 illustrates message authentication code (MAC) generation and verification, in accordance to one or more embodiments of the present invention.
[0027] FIG. 10 illustrates use of message authentication codes (MAC) for authentication in a stand-alone system, in accordance to one or more embodiments of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0028] Reference will now be made in detail to the description of the present subject matter, one or more examples of which are shown in figures. Each example is provided to explain the subject matter and not a limitation. Various changes and modifications obvious to one skilled in the art to which the invention pertains are deemed to be within the spirit, scope and contemplation of the invention.
[0029] The present invention discloses a system and method for providing enhanced security when the data transmitted over a communication channel or at rest, i.e., storage. The method or system of the invention uses a symmetric state based transformation process, i.e., forward transformation/encryption and reverse transformation/decryption using a keyset. One such process of symmetric state based transformation is disclosed and described in US 8180048 B2 by the same inventor applicant, and the same is incorporated in this application by this reference. Further, the invention utilizes an 'n' bit block transformation method, where 'n' is number of bits that can be transformed at each stage and can be at least of a length, one bit. As the size 'n' increases, the computing resources such as memory and processor speed that would be required would be more slows down the transformation process. The ideal size for 'n' for making eavesdropping difficult with current computing resources is at least 8 bits. The keyset that is utilized in the symmetric state based transformation process is present both in the forward transformation/first computer terminal that transmits transformed data and in the reverse transformation/second computer terminal that receives transformed data for reverse transformation. The system or method uses a function F for encryption/forward transformation and F"1 for decryption/reverse transformation in the following description. However, both F and F"1 can be used interchangeably for encryption/forward transformation or decryption/reverse transformation.
[0030] FIG. 1 illustrates a keyset (100) in accordance to one or more embodiment of the present invention. In one embodiment, the keyset is a two-dimensional array with two columns and the number of rows is equal to 2n where 'n' represents number of bits selected for transforming an input-data/data block. The design of the keyset is based on the size of 'n' bit block selected for transforming/encrypting the input-data. As shown in the FIG. 1, the row numbers of the two-dimensional array start from 0 to (2n- l). For example, as shown in FIG. 1, to encrypt input-data in a block of 3 bits wise, there would be 23 rows i.e. 8 rows. The first column (101) of the two-dimensional array will comprise of unique 'n' bit numbers and is referred to as the Reference column 1. The first column can be arranged to have numbers from zero to seven in any order. The second column (102) of the two-dimensional array comprises random numbers and is referred to as the Energy-Value column ("E-Val"). The random numbers can be of any predetermined size of V bits, where V represents the size of the E-Val column in bits. For example, the size of the second column (102) of the keyset shown in the FIG. 1 can be 8-bit size. In the default state (keyset), these random numbers contain numbers range from zero to 2V. That is, the largest number the E-Val column can contain is 2V i.e. 28 = 256, where v=8 bits. This structure represents one embodiment of the structure of the keyset.
[0031] FIG. 2 illustrates a transformation process (200) of a keyset when transforming 'n' bits in one transformation process, in accordance to one or more embodiments of the invention. The first column represented as X is the row numbers of the keyset array structure. The second column is the Reference column represented as Y and the third column (E-val column) is represented as E.
[0032] The transformation function is based on a principle such that given an input value 'χ', it is easy to transform 'x' to 'y' using the function as below: F(x, Ki) = y, K2.
Here, Ki is a keyset designed and present in the computer terminal used for encryption, 'x' is the input data to be encrypted and 'y' is the ciphered text. Ki is known only to sender and receiver since the transformation is a symmetric state transformation process.
[0033] The transformation process illustrated in FIG. 2 is a forward transformation process, in accordance to one or more embodiment of the present invention, and is described as follows. The transformation function upon receiving the input data 'x' to be encrypted, creates a binary equivalent of the input data 'x'. A primary keyset is then designed based on the size of the 'n' bit blocks (for example, '3' bit keyset as shown in FIG. 1). As an example, when input data such as 100101 is received for transformation/encryption, the first '3' bit block of input data, i.e., 100, is fetched and a decimal equivalent of it is determined, i.e., 4. The row number, i.e., 4, equivalent to the decimal equivalent is then identified by traversing through the keyset. The value present in the first column (Y) corresponding to the row number of the keyset is 001. The 'n' bit of input data ' 100' is replaced with 'n' bit of output data '001'. [0034] To encrypt the next 'n' bits of input data block, the default keyset or the primary keyset (Ki) is transformed to a secondary keyset (K2). The generation of a secondary keyset, in one embodiment, is based on the value of first 'n' bit of input data 'x' and first 'n' bit of output data y. The process of generating the secondary keyset and shuffling is as follows. For instance, the value of the first 'n' bit of input data 'x' is 4(100) and first 'n' bit of output data 'y' is 1(001). The method traverses through the row no. 4 (binary equivalent of input data 'x' and changes the random value present in the second column (E) using '4' (100) and ' Γ (001). The method may change the value present in the second column (E) using x and y (e.g. x+y or x XOR y). For illustrative purpose, consider that new random value 'Ei' is calculated by using the below function:
Ei = ((zi + Ei) + (zi * Ei) + J) mod 256
[0035] Here, the value 'zi' is calculated by using the value of first 'n' bit of input data 'x' i.e. '4' and the first 'm' bit of output data 'y' i.e. T . Thus, the value of zi = (x+y) i.e. 5. Similarly, Ei in the right-hand side of the equation represents the current random value i.e. '42'. Similarly, J represents the value Ό' to '7' . Since, it is the start of new random number generation, the value J is assigned to Ό'. Here, n refers to the size of the random value column (E). Thus, the new random value for the row number '4' is calculated as shown below:
E4 = ((5 + 42) + (5*42) + 0) mod 256
[0036] Using the above function, the value of Έ4' is calculated as T. Similarly, the new random value for E5, E6, E7, Eo, Ei, E2 and E3 are also calculated. The values in the first column (Y) are arranged based on the order of the random values in the second column (E). The second column (E) is then sorted in any predetermined order such as ascending or descending to form the secondary keyset (K2). [0037] The method then uses the secondary keyset K2 as the primary keyset for the next '3' bit of input data Ί0Γ of 'x' to be encrypted. For this purpose, the corresponding decimal equivalent of Ί0 is calculated as 5. The method then traverses through the row number '5' of the secondary keyset, and the value present in the corresponding first column (Y) of the secondary keyset is '011' . The 'n' bit of input data Ί0 is replaced with 'n' bit of output data Ό1 . This process (forward transformation) is repeated until the last 'n' bits of input data are transformed to form the output data y (in this case, 100101 is transformed to 001011), and resultant keyset after complete transformation of input data is a first transformed keyset. The transformed/encrypted data may be stored or transmitted over the communication channel. Since the ciphered data y is only either stored or transmitted through the communication channel, it is difficult for the eavesdropper or any third party to obtain the input data without the keyset Ki.
[0038] FIG. 3 illustrates a transformation process (300) of a keyset when transforming 'n' bits in another transformation process, in accordance to one or more embodiments of the invention. The transformation process used is a reverse transformation, represented as F"1, with the same keyset. For example, the receiving computer upon receiving the value 'y', uses the following function for reverse transformation/decryption: F^y, Ki) = x, K2
Here, Ki is the same keyset that was used in the forward transformation from which y was obtained. The reverse transformation function F"1 takes 'y' as input and replaces 'y' with 'x' using the default primary keyset 'Ki' .
[0039] In accordance with the present invention, the first ' 3 ' bits of input data to be transformed/decrypted are Ό0 . The method identifies the value '00 in row 4 of the first column (Y) in the keyset (Ki). The binary equivalent of 4, i.e., ΊΟΟ' , is then replaced in the output data i.e. ΌΟ with ' 100' . The secondary keyset generation process is same as the keyset transformation process described in context of forward transformation. The next '3 ' bits '01 Γ is then transformed to Ί0 and is repeated till all 'n' bits are transformed using F"1. The resultant keyset after fully transforming the input data using F"1 is also a first transformed keyset. [0040] Alternatively, in one embodiment of the present invention, F"1 function can be used for encryption/forward transformation and F can be used for decryption/reverse transformation process. Also, the transformation process of keyset 'Ki' to 'Κ2' and any other intermediate keysets is always an irreversible process irrespective of the function F and F"1 used for transformation/encryption of the input data. In addition, the steps of or logic for transforming a keyset to a first transformed keyset is same in encryption/forward transformation as well as decryption/reverse transformation processes.
[0041] Since the transformation processes/functions F/F"1 exhibit super symmetric property - F_1(F(X, K), K) = F (F (X, K), K) = X, the invention disclosed herein exploits the same property to generate non-linear and dynamic complementary pair of values, which could function as modification detection or hash code and authentication codes for a data block. The non-linear and dynamic complementary values Y = F (X, K) and Z = F (X, K) satisfies the property - F (Y, K) = F (Z, K) = X and are obtained from an irreversible transformation process of keyset, where X is input data; K is a current keyset state; F is forward transformation of input data X using the current keyset state K; F"1 is reverse transformation of input data X using the current keyset state K; Y and Z are the non-linear and dynamic complementary pair of values for the given input data X and current keyset state K. Because of the irreversibility in the keyset transformation process, the combination of values Y and Z can be used as message authentication code or hash or modification detection code. Further, because of the substitution process involved in the transformation process, the complementary pair of values does not contain any trace of input data.
[0042] FIG. 4 illustrates a method (400) for a hash or a modification detection code for a data block, in accordance to one or more embodiments of the invention. As shown in FIG. 4, at step 401, the first 'n' bits of input data (M) is converted to 'n' cipher bits with the current keyset (Ki) and, for example, using forward transformation process (F). At step 402, the current keyset Ki is transformed to a next keyset Ki for transforming the next 'n' bits of input data, and after completely transforming the input data, a first transformed keyset K2 is obtained along with the cipher text (Μ').
F(M, Ki) - M\ K2
Here, K2 is the first transformed keyset.
[0043] At step 403, a set of random bits or a random number R are transformed with the first transformed keyset K2 to obtain a first random string Ri and a second random string R2. In one embodiment, the random bits are user defined. In another embodiment, the random string comprises at least one of pre-determined number of bits from the first transformed keyset, random number, constant (such as 100 bits, 128 bits, 228 bits, 256 bits, or 512 bits) or a string of bits from a predetermined file. In one embodiment, the first and second random strings (Ri, R2) are obtained by performing forward and reverse transformations, respectively, of the random string using the first transformed keyset. The first random string Ri and a second random string R2 are the non-linear and dynamic complementary values, and they are obtained from transformation using the first transformed keyset K2 obtained from an irreversible process.
[0044] At step 404, a pair selected from a combination between the random string (R), the first random string (Ri) and the second random string (R2) is associated as the modification detection code or the hash code for the data block. In one embodiment, the combination is a predetermined arrangement of the random strings (R, Ri, R2) as a pair. The data block M or M' is stored in the memory with the pair Ri and R2, for example, recorded in a hash table against M or M'. Alternatively, in one embodiment, in case the random string R is a pre-determined number of bits from the first transformation keyset, associating only the first random string (Y) or the second random string (Z) as the modification detection code or the hash code for the data block.
[0045] In one embodiment, a first transformation of a user defined password of any length and format is performed using a default keyset (Ko) and in the process converting the default keyset to a password specific keyset. When the password specific keyset is used as the current keyset (Ki) for transforming input data block M, in such embodiments, the non-linear and dynamic complementary values obtained in such resultant transformation process function as the message authentication codes for the input data block.
F (P, Ko) = P', Ki;
[0046] FIG. 5 illustrates a method (500) for verifying modification detection from modification detection or hash code for a data block, in accordance to one or more embodiments of the invention. This verification of modification detection is applicable in both cases where the data block with the modification detection or hash code is stored in a memory storage such as a hard disk or a long-term memory or where the data block is communicated with the modification detection or hash code. At step 501, data block (M or M') with hash or authentication codes (Y, Z) are received for modification detection. In one embodiment, the data block M or the transformed data block M' can be used to verify corruption of the data block M. At step 502, the data block (M or M') is completely transformed starting with current keyset (Ki) and in the process obtain a second transformation keyset (K2). Theoretically, the second transformation keyset during the verification process and the first transformation keyset should be the same in successful verification scenarios. At step 503, the hash or authentication codes (Y, Z) are transformed using the second transformation keyset (K2) to obtain corresponding two random strings (RI, R2). In one embodiment, the they can be transformed using F or F"1. However, in one of the transformation, if it results RI = R2, then the data block is not corrupted. Else, the data block is corrupted. [0047] In one embodiment, the following process describes the process of detection and/or verification where it is known that M or M' is received with a combination of Y and Z, in according to one or more embodiments of the invention.
F-1(Y, K2) = Ri, K3;
F(Z, K2) - R2, K4;
If Ri = R2 then M or M' is authentic and not tampered;
Else
F(Y, 2) - R3, K3;
F 1(Z, K2) = R4, K4';
If, Ri≠ R2, and then R3 = R4 then M or M' is authentic and not tampered;
[0048] In another embodiment, the following process describes the process of detection and/or verification when there is no knowledge on whether data block is transformed data block or just the data block, i.e., M or M' is received with a combination of Y and Z, in according to one or more embodiments of the invention.
F(M, Ki) = Mi, K2;
Else
F1(M', Ki) = Mi', K2';
F_1(Y, K2) = Ri, K3;
F(Z, K2) = R2, K4;
If Ri = R2 then M is authentic and not tampered;
Else
F(Y, K2) = R3, K3;
F1(Z, K2) = R4, K4';
If Ri≠ R2, and then R3 = R4 then M is authentic and not tampered; This would mean the data block that is transmitted is original message or data block itself.
Else F_1(Y, Κ2') = Ri', Κ3';
F(Z, K2') = R2', K4';
If Ri' = R2' then Mi' is authentic and not tampered;
Else
F(Y, K2') = R3\ K3";
F1(Z, K2') = R4', K4";
If Ri ≠ R2 , and then R3" = R4" then Mi' is authentic and not tampered; This would mean the data block that is transmitted is the transformed data block and Mi' is the original data block or the message.
[0049] In yet another embodiment, the following process describes the process of detection and/or verification when a combination of (R and (Y or Z)) is received with M or M', where R is the random number or string or constant used for obtaining Y or Z.
F(Y, K2) = Ri, K3;
F (Y, K2) = R2, 4';
If Ri or R2 = R, then the received M or M' is authentic and not tampered; F (Z, K2) = R3, K3;
F(Z, K2) = R4, K4;
If Ri or R2≠ R, and then R3 or R4 = R, then the received M or M' is authentic and not tampered;
[0050] The following process, in an alternative embodiment, describes the process of detection and/or verification when only (Y or Z) is received with M or M' , where Y or Z is obtained by transforming the random number having a predetermined number of bits from the first transformation keyset at the transmitting end or first transformation process.
F(Y, K2) = Ri, K3;
F_1(Y, K2) = R2, 4';
If Ri or R2 = pre-determined number of bits of K2, then the received M or
M' is authentic and not tampered;
[0051] The above transformation processes for detecting corruption of the data block is applicable for data block at rest, i.e., in storage, or in transit and received at another location. The transformation processes can be executed by processor when relevant instructions for such transformations are provided to it.
[0052] FIG. 6 illustrates a block diagram of a system, in accordance to one or more embodiments of the invention. As shown, the system (600) of the present invention comprises a communication channel (602), a first computer terminal (601) and a second computer terminal (603), communicatively coupled to the first computer terminal (601) via the communication channel (602). The communication channel (602) may include, for example, a wide area network such as the internet, a cloud, a telephone network, a local area network or a wireless network. The computer terminals (601, 603) may comprise at least one of a personal computer (PC), a laptop, a mobile device, tablet, a personal digital assistant (PDA) etc. known in the art or future-developed for transmitting data over the communication channel (602).
[0053] In accordance to the present invention, the transformed data (M or M', (Y, Z) or (Y or Z)) is transmitted from computer terminal (601) to computer terminal computer terminal (603) over the communication channel (602). The output data (M or M', (Y, Z) or (Y or Z)) is sent by the computer terminal (601) in an encrypted form to the computer terminal (603) to prevent eavesdroppers or other third parties from getting access to the original data. The second computer terminal (603), in one embodiment, performs reverse transformation F"1 to retrieve the original input data. Since, the system (600) uses a symmetric state transformation process the same keyset has to be present at both the first computer (601) and second computer terminal (603) for forward transformation/encryption and reverse transformation/decryption purpose. Further, the information on transformations performed to obtain keysets such as Ki and K2 exists in both the computers. Both the computers can execute the methods disclosed and described with relation FIG.'s 4 and 5 when the equivalent instructions are executed by the processor in the computer terminals (601, 603).
[0054] The first computer terminal (601) transforms M into M' using the keyset Ki and in the process also obtains a first transformed keyset K2. The computer terminal (601) then generates a random string. The first computer terminal (601) then transforms R into Y using a forward transformation function F. Similarly, the first computer terminal (601) then transforms R into Z using a reverse transformation function F"1 as shown below:
F(R, K2) - Y, K3;
F (R, K2) =Z, K4;
[0055] The first computer terminal (601) then stores the input data M, Y and Z or transmits M or M', (Y, Z) or (Y or Z) to the second computer terminal (603) over the communication channel say (602). The combination of Y and Z pair is modification detection code (MDC) or Hash code for the message M. The second computer terminal (603) upon receiving the input data M and the random numbers Y, Z, detects modification of the message according to the description in relation to FIG. 5. [0056] FIG. 7 illustrates a block diagram of a stand-alone system, in accordance to one or more embodiments of the invention. The stand-alone computer terminals (601, 603) of the present invention comprises at least a short-term memory such as a random-access memory (RAM) (701a), a processor (701b), a long-term memory (701e), and a transceiver (701d). The long-term memory is based on a dual memory model and may be used for storing data for a longer period of time. The transceiver (701d) is used to transmit and receive data from one computer terminal to another computer terminal using the communication channel (602). The data block can be anything, for example, a message, a password, or a file created by any application such as MS Word or an excel sheet is stored in the form of bits in the computer terminal (601, 603), etc. The long-term memory (701e) further comprises a transformation module (701c) for transformation of input data, i.e., encryption as well as decryption purposes. The transformation module (701c) is responsible for converting input data into output data by forward transformation F or F"1 or by reverse transformation F or F"1. The output data is a form of input data that has been encrypted by performing the forward transformation onto the input data. The encrypted data may be further stored in the computer terminal (601, 603) itself. [0057] Thus, the forward or reverse transformation functions of the present invention may be used to transform data with no trace of the input data. These properties of the forward transformation function F and F1 is used for generating modification detection code (MDC/Hash) and message authentication code (MAC) according the embodiments of the invention. Any finite state based methods such as F or F"1 which satisfy the below condition are suitable to be implemented in generating modification detection code (MDC/Hash) and message authentication code (MAC).
F-^X, K), K) = F (F-^X, K), K) = X
[0058] FIG. 8 illustrates modification detection or hash code generation and verification at a receiving end, in accordance to one or more embodiments of the present invention. As show in the figure, the computer terminal (601) transforms the message (M) to M' using keyset Ki as shown below:
F (M, Ki) - M', K2;
The computer terminal (601) generates a set of bits or random number R. The computer terminal then transforms 'R' into 'Y' and 'R' into 'Z' using a forward transformation function F and a reverse transformation function F"1, respectively, as shown below:
F (R, K2) = Y, K3;
F1(R, K2) = Z, K4
[0059] The computer terminal (601) then transmits the message M or transformed message M' along with the newly generated message authentication code Y and Z to the computer terminal (603). The computer terminal (603) then transforms the received message M into M' or M' to M to obtain keyset K2 as shown below:
F (M, Ki) = M', K2;
F1 (M\ Ki) = M, K2; [0060] The second computer terminal (603) then transforms Y into a random number Ri using a reverse transformation function F"1. Similarly, the second computer terminal (603) transforms Z into a random number R2 using a forward transformation function f () as shown below:
F (Y, K2) = Ri, K3; F (Z, K2) = R2, K4
[0061] The second computer terminal (603) then checks whether the newly generated numbers Ri and R2 are equal and then accepts the message. This process may be used for checking any modification of the message transmitted. The same is applicable to storage, i.e., M is stored along with its hash code (Y and Z) recorded in a hash table. Thus, the protocol of the present invention identifies the loss/change of information of message in transmission or at rest. [0062] Thus, the first computer terminal (601) does generate modification detection code (Y and Z) and the second computer terminal (603) does verification of code (Y and Z) and both devices use the transformation functions F and F1. Since it is a symmetric encryption process, the same keyset (Ki) should be present in both the first computer terminal (601) and the second computer terminal (603).
[0063] FIG. 9 illustrates message authentication code (MAC) generation and verification, in accordance to one or more embodiments of the present invention. As shown in FIG. 9, the computer terminal (601) transforms the password (P) into P' using a keyset Ki as shown below:
F (P, Ki) = P\ K2;
[0064] The computer terminal (601) then transforms the message (M) to M' using keyset K2 as shown below:
F (M, K2) - M', K3;
[0065] The computer terminal (601) generates a set of bits or random number R. The computer terminal then transforms 'R' into Ύ and 'R' into 'Z' using a forward transformation function F and a reverse transformation function F1, respectively, as shown below:
F (R, K3) = Y, K4;
F (R, K3) = Z, K5 [0066] The computer terminal (601) then transmits the message M or transformed message M' along with the newly generated message authentication code Y and Z to the server (603). The server (603) upon receiving the message retrieves a password corresponding to the identifier of the computer terminal/user (601). The server (603) then transforms the retrieved password P to P' using the default keyset Ki. The server (603) then transforms the received message M into M' as shown below:
F (P, Ki) = P\ K2;
F (M, K2) = M', K3;
[0067] The server (603) then performs a reverse transformation function F"1 on Y to generate an output Ri using the keyset K2. Similarly, the server (603) uses a forward transformation function F on Z to generate another output R2 using the keyset K2 as shown below:
F^Y, K3) = Ri, K4;
F (Z, K3) = R2, K5;
[0068] The server (603) then checks whether Ri and R2 are equal and then accepts the message 'M' or M', else rejects. Here the first computer terminal (101) only transmits the message M or M' and the message authentication code (MAC) Y and Z. However, the server (603) transforms the stored password P into P' using keyset Ki, and M to M' using keyset K2. Further, the derived keyset 3 is only used to transform Y into Ri using reverse transformation function F"1, and Z into R2 using forward transformation function F. The server (603) thus the checks the integrity of the message transmitted over the communication channel (602) and then only accepts the message 'M' as authentic. The described method and system may be used for online and offline purposes (storage).
[0069] It is evident from the above explained process pertaining to the FIG. 9 illustration that the password or pre-shared key is not transmitted from the computer terminal (601) to a server (603). Also, the transmitted authentication codes Y & Z are not obtained directly from the password (P). Hence the message authentication code (MAC) using the forward transformation F and reverse transformation F of present invention is highly secure in comparison with the existing methods.
[0070] FIG. 10 illustrates use (1000) of message authentication codes (MAC) for authentication in a stand-alone system, in accordance to one or more embodiments of the present invention. The computing resource (601), for example, can be a digital safe locker or electronic safe locker, a personal computer, laptop, computing screen, mobile phone, tablet etc. The method illustrated in FIG. 10 allows a user (604) to enter/set user ID or an associated secret (P) (for example, password/PIN) and access the computing resource (601).
[0071] The device (601) then verifies the entered secret (P) is true or false using the message authentication codes (Y, Z) that are created at the time of registration and stored in device (601). In one embodiment, The device (601) concatenates the received secret (P) and its associated ID, if any, and generates a new keyset (K2) by forward transforming (F) the (PUD) with the current keyset (Ki) (may be private or public) as shown here:
F((PIID), Ki) - P\ K2;
If F!(Y, K2) = F(Z, K2) Then
User Authenticated and Access granted;
Else Reject;
P - User entered Password / PIN;
ID - User Identity / Name;
Ki - Default state present in device (601);
Y & Z- Authentication codes stored in the device (601);
[0072] In the existing prior art systems, the user login process typically compares user entered password by computing hash(Password) with that of the stored Hash(Password) (i.e. created at the time of registration). However, the security offered in the present invention demonstrates that the Password (user secret (P)) is not stored as in the case of existing systems, but transformed random (or non- random) number R in Y and Z form is stored in the device (601). Therefore, it is highly secure than existing systems. [0073] At the time of Password (P) setting/changing/registration phase, the present invention illustrated in FIG. 10 uses function F, F"1, Ki & P and then generates Y and Z. And it stores only Y and Z along with User identity (ID) and initial keyset Ki. All other intermediary data like password, keyset data (K2) is deleted permanently.
[0074] The scope of the invention includes instructions, stored in non- transitory computer-readable storage medium, when executed by a computing device, cause the computing device to execute one or more embodiments for a hash or a modification detection code or authentication code for a data block. Further, the instructions, when executed by a computing device, can cause the computing device to encode one or more embodiments for a hash or a modification detection code or authentication code for a data block in an electromagnetic signal.
[0075] While at least one exemplary embodiment has been presented in the foregoing detailed description, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or exemplary embodiments are only examples, and are not intended to limit the scope, applicability, or configuration in any way.

Claims

WE/I CLAIM:
1. A method (400) for a hash or a modification detection code for a data block, the method comprising:
transforming (401), by a processor, first 'n' bits of the data block to another arrangement of 'n' bits using a current keyset (100);
transforming (402), by the processor, the current keyset to a next keyset (201, 301) for transforming the next 'n' bits of the data block, wherein a first transformed keyset is obtained after completely transforming each of 'n' bits forming the data block into a transformed data block;
transforming (403), by the processor, a random string (R) using the first transformed keyset for a first random string (Y) and a second random string (Z), wherein the first and second random strings (Y, Z) are obtained by performing forward and reverse transformations of the random string using the first transformed keyset; and
associating (404), by the processor, a pair selected from a combination between the random string (R), the first random string (Y) and the second random string (Z) as the modification detection code or the hash code for the data block.
2. The method of claim 1, wherein performing the forward transformation of 'n' bits comprises:
a. traversing the first column of the first transformed keyset to a row number equal to a decimal equivalent of first 'n' bits of the random string, b. reading the 'n' bits stored at the row of the first column, and c. replacing the 'n' bits with the 'n' bits read at the row, and wherein performing the reverse transformation of 'n' bits comprises:
a. searching the first column of the first transformed keyset for the 'n' bits; b. locating the 'n' bits at a row in the first column of the first transformed keyset;
c. reading the row number and representing the row number in 'n' bits; and
d. replacing the 'n' bits with the 'n' bits representing the row number.
The method of claim 2, wherein the steps performed for forward transformation and reverse transformation can be worked interchangeably.
The method of claim 1, wherein, in case the pair comprises the first random string and the second random string, transforming both the first and the second random strings with the first transformation keyset and detecting modification of the data block or the transformed data block based on verification of the results of transformation of the random strings.
The method of claim 1, wherein the processor implemented method can be used to send the transformed data block or the data block with the pair selected from a combination between the random string, the first random string and the second random string from a transmitting end.
The method of claim 5, wherein the transformed data block being transformed back at a receiving end to retrieve back the data block, and wherein the receiving end being equipped with the same current keyset, and wherein the receiving end performs the same transformations in the same order starting from the current keyset as at the transmitting end and obtain a second transformation keyset.
The method of claim 6, wherein, in case the pair comprises a combination of the first random string and the second random string, transforming both the first and second random strings with the second transformation keyset obtained at the receiving end and detecting modification of the
transformed data block based on verification of the results of
transformation of the random strings.
The method of claim 6, wherein, in case the pair comprises a combination of the random string with the first or the second random string, transforming only the first or the second random string with the second transformation keyset obtained at the receiving end and detecting modification of the transformed data block based on verification of the results of transformation of the random string.
9. The method of claim 1, wherein the keyset comprises a two-dimensional array type data structure having 2n rows and at least two columns, wherein n is the number of bits in the 'n' bits, and wherein a first column of the two-dimensional array comprises unique combination of the 'n' bits in each of the rows, and wherein a second column comprises random numbers in each of the rows.
10. The method of claim 9, wherein a first predetermined operation is
performed for changing each random number in the second column of current keyset, and wherein a second predetermined operation is performed for arranging the changed random numbers and the first column in current keyset to generate the next keyset.
11. The method of claim 1, wherein the association of the pair selected from a combination between the random string, the first random string and the second random string for the data block is recorded in a hash table.
12. The method of claim 1, wherein a size of the random string is user defined.
13. The method of claim 1, wherein the random string comprises at least one of pre-determined number of bits from the first transformation keyset, a random number, a constant or a string of bytes from a predetermined file.
14. The method of claim 1, wherein, in case the random string R is a predetermined number of bits from the first transformation keyset, associating, by the processor, only the first random string (Y) or the second random string (Z) as the modification detection code or the hash code for the data block.
15. The method of claim 14, wherein transforming only the first or the second random string associated with the first transformation keyset and detecting modification of the data block based on verification of the results of transformation of the only first or second random string.
16. The method of claim 1, wherein a first transformation of a user defined password of any length and format is performed using a default keyset and in the process converting the default keyset to a password specific keyset and using the password specific keyset as the current keyset.
17. The method of claim 1, wherein the data block is a user defined password of any length and format.
18. The method of claim 17, wherein, in case the pair comprises the first random string and the second random string, transforming both the first and second random strings with the first transformation keyset and authenticating access to a computing based resource with the data block only.
19. A system (600, 700) for a hash or a modification detection code for a data block, the system comprising:
memory (60 le) for storing instructions associated with a transformation module (601c); and
a processor (601b) for executing the instructions associated with transformation module (601c) to:
transform first 'n' bits of the data block to another arrangement of 'n' bits using a current keyset (100);
transform the current keyset to a next keyset (201, 301) for transforming the next 'n' bits of the data block, wherein a first transformed keyset is obtained after completely transforming each of 'n' bits forming the data block into a transformed data block; transform a random string using the first transformed keyset for a first random string and a second random string, wherein the first and second random strings are obtained by performing forward and reverse transformations of the random string using the first transformed keyset; and
associate a pair selected from a combination between the random string, the first random string and the second random string as the modification detection code or the hash code for the data block.
20. The system of claim 19, wherein the data block is a user defined password of any length and format.
21. The system of claim 20, wherein, in case the pair comprises the first random string and the second random string, transforming the first and second random strings with the first transformed keyset and authenticating access to a computing based resource with the data block only.
22. A non-transitory computer-readable storage medium having instructions that, when executed by a computing device, cause the computing device for a hash or a modification detection code for a data block as in claim 1.
PCT/IB2017/055444 2016-09-10 2017-09-09 A system and method for data block modification detection and authentication codes WO2018047120A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201641030958 2016-09-10
IN201641030958 2016-09-10

Publications (1)

Publication Number Publication Date
WO2018047120A1 true WO2018047120A1 (en) 2018-03-15

Family

ID=61561362

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/IB2017/055444 WO2018047120A1 (en) 2016-09-10 2017-09-09 A system and method for data block modification detection and authentication codes
PCT/IB2017/055469 WO2018047132A1 (en) 2016-09-10 2017-09-11 A system and method for authentication and secure communication

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/IB2017/055469 WO2018047132A1 (en) 2016-09-10 2017-09-11 A system and method for authentication and secure communication

Country Status (1)

Country Link
WO (2) WO2018047120A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108599926A (en) * 2018-03-20 2018-09-28 如般量子科技有限公司 A kind of HTTP-Digest modified AKA identity authorization systems and method based on pool of symmetric keys
CN108616350A (en) * 2018-03-20 2018-10-02 如般量子科技有限公司 A kind of HTTP-Digest class AKA identity authorization systems and method based on pool of symmetric keys
CN110351077A (en) * 2019-05-30 2019-10-18 平安科技(深圳)有限公司 Method, apparatus, computer equipment and the storage medium of data encryption

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8180048B2 (en) * 2004-09-14 2012-05-15 Prahlad P. Singanamala Method and system for computational transformation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7046802B2 (en) * 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8180048B2 (en) * 2004-09-14 2012-05-15 Prahlad P. Singanamala Method and system for computational transformation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108599926A (en) * 2018-03-20 2018-09-28 如般量子科技有限公司 A kind of HTTP-Digest modified AKA identity authorization systems and method based on pool of symmetric keys
CN108616350A (en) * 2018-03-20 2018-10-02 如般量子科技有限公司 A kind of HTTP-Digest class AKA identity authorization systems and method based on pool of symmetric keys
CN108616350B (en) * 2018-03-20 2021-08-10 如般量子科技有限公司 HTTP-Digest class AKA identity authentication system and method based on symmetric key pool
CN110351077A (en) * 2019-05-30 2019-10-18 平安科技(深圳)有限公司 Method, apparatus, computer equipment and the storage medium of data encryption

Also Published As

Publication number Publication date
WO2018047132A1 (en) 2018-03-15

Similar Documents

Publication Publication Date Title
CN110493197B (en) Login processing method and related equipment
US11356280B2 (en) Personal device security using cryptocurrency wallets
CN107196763B (en) SM2 algorithm collaborative signature and decryption method, device and system
US9698993B2 (en) Hashing prefix-free values in a signature scheme
US8989385B2 (en) Data encryption method, data verification method and electronic apparatus
JP5447510B2 (en) Tag generation device, tag verification device, communication system, tag generation method, tag verification method, and recording medium
US10103888B2 (en) Method of performing keyed-hash message authentication code (HMAC) using multi-party computation without Boolean gates
CN110096901B (en) Electronic contract data encryption storage method and signing client
Debnath et al. Brief review on journey of secured hash algorithms
US8744078B2 (en) System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths
US9531540B2 (en) Secure token-based signature schemes using look-up tables
Alam et al. Digital image authentication and encryption using digital signature
CN109104271B (en) Digital signature method, device and system
CN107566360B (en) A kind of generation method of data authentication code
CN109951276B (en) Embedded equipment remote identity authentication method based on TPM
KR101253683B1 (en) Digital Signing System and Method Using Chained Hash
CN117675285A (en) Identity verification method, chip and equipment
WO2018047120A1 (en) A system and method for data block modification detection and authentication codes
CN110889695A (en) Method and device for saving and recovering private data based on secure multi-party computing
Yevseiev et al. The development of the method of multifactor authentication based on hybrid cryptocode constructions on defective codes
JP6037450B2 (en) Terminal authentication system and terminal authentication method
US20210119776A1 (en) Proof-of-work based on block cipher
Yap et al. Security analysis of GCM for communication
Bodapati et al. Observations on the Theory of Digital Signatures and Cryptographic Hash Functions
CN116455584B (en) Downloading method and system based on software integrity

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

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

Country of ref document: EP

Kind code of ref document: A1