US20190288848A1 - Cryptographic hash generation system - Google Patents

Cryptographic hash generation system Download PDF

Info

Publication number
US20190288848A1
US20190288848A1 US16/419,488 US201916419488A US2019288848A1 US 20190288848 A1 US20190288848 A1 US 20190288848A1 US 201916419488 A US201916419488 A US 201916419488A US 2019288848 A1 US2019288848 A1 US 2019288848A1
Authority
US
United States
Prior art keywords
function
monoid
module
elements
hash
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US16/419,488
Inventor
Iris Anshel
Dorian Goldfeld
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Veridify Security Inc
Original Assignee
SecureRF Corp
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 SecureRF Corp filed Critical SecureRF Corp
Priority to US16/419,488 priority Critical patent/US20190288848A1/en
Publication of US20190288848A1 publication Critical patent/US20190288848A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/602Providing cryptographic facilities or services
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Definitions

  • a cryptographic hash function may be used to transform a large block of a string of data into a smaller block of hash data.
  • the hash data may then be used as an identifier for the string or for a processor in communication with the string.
  • the transformation may be such that recreating the string may be impractical, difficult, or infeasible. In some situations, it may also be difficult or infeasible to find two strings that may be transformed to the same hash.
  • the device may comprise a memory.
  • the memory may be effective to include a first function, a first list of first monoid elements, and an initial monoid element.
  • the device may further include a first module effective to receive the string and divide the string into a sequence of blocks.
  • the device may further include a second module in communication with the first module and the memory, the second module effective to associate blocks in the sequence of blocks with respective monoid elements in the first list of first monoid elements to produce a second list of second monoid elements.
  • the device may further include a third module in communication with the second module and with the memory.
  • the third module may be effective to receive a first one of the second monoid elements, receive the initial monoid element, receive the first function, apply the first function to the initial monoid element and the first one of the second monoid elements to produce a first calculated monoid element, and evaluate an action of the initial monoid element on the first function to produce a second function.
  • the device may further include a fourth module in communication with the second module and the third module. The fourth module may be effective to receive a second one of the second monoid elements, receive the first calculated monoid element, receive the second function, and apply the second function to the first calculated monoid element and to the second one of the second monoid elements to produce a second calculated monoid element.
  • Another embodiment of the invention includes a method for generating a hash of a string.
  • the method may include receiving the string by first module.
  • the method may include dividing the string by the first module into a sequence of blocks and receiving, by a second module, the sequence of blocks.
  • the method may include associating, by the second module, blocks in the sequence of blocks with respective monoid elements in a first list of monoid elements to produce a second list of second monoid elements.
  • the method may include receiving, by a third module a first one of the second monoid elements.
  • the method may include receiving, by the third module, an initial monoid element; receiving, by the third module, a first function; applying, by the third module, the first function to the initial monoid element and the first one of the second monoid elements to produce a first calculated monoid element; and evaluating, by the third module, an action of the initial monoid element on the first function to produce a second function.
  • the method may include receiving, by a fourth module, a second one of the second monoid elements; receiving, by the fourth module, the first calculated monoid element; receiving, by the fourth module, the second function; and applying, by the fourth module, the second function to the first calculated monoid element and to the second one of the second monoid elements to produce a second calculated monoid element.
  • the system may include a first device and a second device in communication with the first device over a network.
  • the first device may include a first memory.
  • the first memory may include a first function, a first list of first monoid elements, and an initial monoid element.
  • the first device may further include a first module effective to receive the string and divide the string into a sequence of blocks.
  • the first device may further include a second module in communication with the first module and the first memory, the second module effective to associate blocks in the sequence of blocks with respective monoid elements in the first list of monoid elements to produce a second list of second monoid elements.
  • the first device may further include a third module in communication with the second module and with the first memory, the third module effective to receive a first one of the second monoid elements, receive the initial monoid element, receive the first function, apply the first function to the initial monoid element and the first one of the second monoid elements to produce a first calculated monoid element, and evaluate an action of the initial monoid element on the first function to produce a second function.
  • a third module in communication with the second module and with the first memory, the third module effective to receive a first one of the second monoid elements, receive the initial monoid element, receive the first function, apply the first function to the initial monoid element and the first one of the second monoid elements to produce a first calculated monoid element, and evaluate an action of the initial monoid element on the first function to produce a second function.
  • the first device may further include a fourth module in communication with the second module and the third module, the fourth module effective to receive a second one of the second monoid elements, receive the first calculated monoid element, receive the second function, and apply the second function to the first calculated monoid element and to the second one of the second monoid elements to produce a second calculated monoid element.
  • the fourth module may further be effective to receive the first function, and evaluate the action of the first calculated monoid element on the first function to produce a third function.
  • the first device may further include a fifth module in communication with the second module and the fourth module.
  • the fifth module effective to receive the third function, receive a third one of the second monoid elements, receive the second calculated monoid element, and apply the third function to the second calculated monoid element and the third one of the second monoid elements to produce the hash of the string.
  • the second device effective to receive the hash; and compare the hash with data stored in a second memory in communication with the second device to produce an identification of the first device.
  • FIG. 1 is a system drawing of a cryptographic hash generation system in accordance with an embodiment of the invention.
  • FIG. 2 is a flow diagram illustrating a process which could be performed in accordance with an embodiment of the invention.
  • a cryptographic hash generation system 100 which may be used in accordance with an embodiment of the invention.
  • a user 102 may input a string 104 into a hash function generator device 106 .
  • user 102 may use a processor 118 to input string 104 .
  • hash function generator 106 may be effective to transform string 104 into a hash of string H(S) 108 .
  • hash function generator device 106 and/or processor 118 may further send hash 108 and hash function 132 over a network 110 .
  • Network 110 may include, for example, a wireless network, a wired network, the Internet, a cellular network, a near field communication (NFC) network, a radio frequency identification (RF-ID) network, a cloud computing environment, etc.
  • NFC near field communication
  • RFID radio frequency identification
  • a processor 112 in communication with network 110 , may receive hash 108 and hash function 132 .
  • Processor 112 may compare hash 108 using hash function 132 with data stored in a memory 116 . Based on the comparison by processor 112 , processor 112 may generate an identifier 114 for user 102 and/or processor 118 .
  • processor 112 may be a reader and processor 118 may be a tag in an RF-ID environment.
  • Hash 108 could be a transformation of a public key used in public key encryption communication between tag/processor 118 and reader/processor 112 .
  • Reader/processor 112 may compare hash 108 with data in memory 116 to determine which public key/identifier 114 will be used by tag 118 .
  • Hash function generator device 106 may include a string to block decomposition module 120 , a block sequence to monoid list module 124 , and two or more function evaluation/generation modules 126 . At least some of these modules may be in communication with a memory 144 and/or a processor 146 .
  • Processor 146 could have a relatively small processing power such as with a 5 MHz clock cycle.
  • Memory 144 could have a relatively small size and have, for example, 1 kb of memory.
  • Modules could be implemented as software such as with a processor and/or in hardware or firmware.
  • String 104 may be a sequence of bits with a number of bits that is a multiple of a variable ⁇ .
  • Hash function generator device 106 may send string 104 as an input to a string to block module 120 .
  • String to block module 120 may be effective to divide string 104 into a sequence of blocks 122 (B 1 , B 2 , . . . B l ), each with a length of ⁇ bits.
  • string 104 is divided into l blocks, where each block is of a length of ⁇ bits.
  • string to block module 120 may add padding bits to produce a modified string with a number of bits that is equally divisible by ⁇ .
  • String to block module 120 may send sequence of blocks 122 to a block sequence to monoid list module 124 .
  • Block sequence to monoid list module 124 may also receive a first list of monoid elements 130 .
  • List of monoid elements 130 may be stored in a memory 144 .
  • Monoid elements may be, for example, matrices with entries in a finite field.
  • Each block B in sequence of blocks 122 includes bits in a binary format that may represent a number with a value v between 0 and 2 ⁇ ⁇ 1. The value may be denoted by v(B i ).
  • Block sequence to monoid list module 124 may transform sequence of blocks 122 into a corresponding sequence of numbers v(B 1 ), . . . v(B l ). Block sequence to monoid list module 124 may then associate each value v(B i ), and hence each block B i , with a monoid element c v(B i ) in list of monoid elements 130 to produce a second list of monoid elements 128 c v(B 1 ) . . .
  • Monoid elements 128 may be sent to respective function evaluation/generation modules 126 .
  • c v(B 1 ) may be sent to function evaluation/generation module 126 1
  • c v(B i ) may be sent to function evaluation/generation module 126 i , etc.
  • Each function evaluation/generation module 126 i receives a respective monoid element c v(B i ) from second list of monoid elements 128 , a function i ⁇ 1 , and a monoid element n i ⁇ 1 . Each function evaluation/generation module 126 acts on these inputs to produce an output.
  • function evaluation/generation module 126 1 receives monoid element c v(B 1 ) , initial function o 134 and initial monoid element n o 136 .
  • Initial function o may be a one-way function as discussed below and may be stored in memory 144 .
  • Monoid element n o could be, example, a matrix with mod p entries, and may be stored in memory 144 .
  • Function evaluation/generation module 126 1 may apply function o to n o and to c v(B 1 ) to produce monoid element n 1 .
  • n 1 o ( n o , c v(B 1 ) )
  • Function evaluation/generation module 126 1 may also evaluate the action of n o on initial function o to produce a new function 1 .
  • Function evaluation/generation module 126 1 may send n 1 , initial function o , and new function 1 to function evaluation/generation module 126 2 .
  • Function evaluation/generation module 126 2 receives monoid element c v(B 2 ) , initial function o , function 1 and monoid element n 1 . Function evaluation/generation module 126 2 may apply function 1 to n 1 and to c v(B 2 ) to produce monoid element n 2 .
  • n 2 1 ( n 1 , c v(B 2 ) )
  • Function evaluation/generation module 126 2 may evaluate the action of n 1 on initial function o to produce a new way function 2 .
  • Function evaluation/generation module 126 2 may forward n 2 , initial function o , and new function 2 to function evaluation/generation module 126 3 .
  • function evaluation/generation module 126 3 receives monoid element c v(B 3 ) , initial function o , function 2 and monoid element 2 .
  • Function evaluation/generation module 126 3 may apply function 2 to 2 and to c v(B 3 ) to produce monoid element 3 .
  • Function evaluation/generation module 126 3 may evaluate the action of 2 on initial function o to produce a new function 3 .
  • the last monoid element c v(B l ) in list of monoid elements 128 produced by block sequence to monoid list module 124 is sent to function evaluation/generation module 126 l ⁇ 1 .
  • Function evaluation/generation module 126 l ⁇ 1 receives monoid element c v(B l ) , function l ⁇ 1 and monoid element l ⁇ 1 .
  • Function evaluation/generation module 126 l ⁇ 1 may produce Hash (S) 108 .
  • Hash ( S ) l ⁇ 1 ( l ⁇ 1 , c v(B l ) )
  • Hash(S) 108 may be sent from processor 118 to processor 112 over network 110 .
  • Processor 118 may also send hash function 132 which may include initial function 0 , list of monoid elements 130 , and initial monoid element o .
  • Processor 118 may receive hash 108 and compare hash 108 with a list of hash values in memory 116 .
  • processor 118 may receive hash function 132 , apply hash function 132 to values in memory 116 (using hash function generator device 106 ) and determine which resultant hash matches hash 108 .
  • passwords may be maintained in memory 116 .
  • Processor 112 may apply hash function 132 to each password and identify which password corresponds to hash 108 .
  • An Algebraic Eraser may include a specified 6-tuple (M S, N, ⁇ , E, A, B) where
  • S is a group that acts on M (on the left),
  • a and B denote submonoids of M S, and
  • denotes a monoid homomorphism from M to N.
  • the E-function, also called E-multiplication, is defined by
  • the structure of the one-way function F enables the following definition of a new one-way function via a left action.
  • the one-way ⁇ (n 0 ,s 0 ) ⁇ ⁇ is defined by
  • ⁇ ( n 0 ,s 0 ) ⁇ ⁇ (( n 1 , s 1 ), ( m 2 , s 2 ) ⁇ ( m 3 , s 3 )) ⁇ ( n 0 , s 0 ) ⁇ F ⁇ ( ⁇ ( n 0 , s 0 ) ⁇ F ⁇ (( n 1 , s 1 ), ( m 2 , s 2 )), ( m 3 , s 3 )),
  • the sequence of one-way functions that appear in FIG. 1 may take the form:
  • Another instance of a function that may be used is a function where monoids M and N are chosen to be a group G. Defining relators of G may allow for an effective rewriting or cloaking of group elements, and a conjugacy equation in G may be relatively difficult to solve. This insures that the function :G ⁇ G ⁇ G defined by the equation,
  • x, g ⁇ G is a one-way function.
  • x 0 ⁇ G Given a group element, x 0 ⁇ G, define the left action of x 0 on the one-way function by
  • ⁇ x 0 ⁇ ⁇ ( x, g ) g ⁇ 1 x 0 ⁇ 1 x x 0 g.
  • ⁇ x 0 ⁇ ⁇ ( x, g 1 g 2 ) ⁇ x 0 ⁇ ⁇ ( ⁇ x 0 ⁇ ⁇ ( x, g 1 )), g 2 ).
  • a system in accordance with this disclosure may enable a processor to relatively quickly compute the hash of each block of a message, and, thereby, quickly compute the hash of the entire message itself.
  • Long messages may be transformed into a shortened message due to, at least in part, the ability to break the message into smaller pieces.
  • a hash of the message may then be generated, by first hashing the first block using, the output of which is then used to hash the second block, and then proceeding iteratively until the hash of the final block is obtained using.
  • a signature may then be applied to the hash of the message.
  • Functions used in producing the hash may be derived from previously used functions based on actions of monoid elements.
  • each iterative step may use a relatively quick to process function
  • the entire hash generation process may be relatively fast.
  • each function is mutated in subsequent steps, it would be very difficult, perhaps infeasible, to guess all of the functions used in generating the hash. Changing values of monoid elements and/or the initial monoid element may produce new hash functions.
  • FIG. 2 there is shown a process which could be performed in accordance with an embodiment of the invention.
  • the process could be performed using, for example, system 100 discussed above and may be used to generate a hash of a string.
  • a first module may receive a string to be hashed.
  • the first module may divide the string into a sequence of blocks. For example, the first module may divide the string into blocks of bits with an equal length.
  • a second module may receive the sequence of blocks.
  • the second module may associate the blocks with respective monoid elements in a first list of first monoid elements to produce a second list of second monoid elements.
  • a third module may receive a first one of the second monoid elements, an initial monoid element and a first function.
  • the third module may apply the function to the initial monoid element and to a first one of the second monoid elements to produce a first calculated monoid element.
  • the third module may evaluate an action of the initial monoid element on the first function to produce a second function.
  • a fourth module may receive a second one of the second monoid elements, the first calculated monoid element and the second function.
  • the fourth module may apply the second function to the first calculated monoid element and to the second one of the second monoid elements to produce a second calculated monoid element.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A first module divides a string into a number of blocks. A second module associates the blocks with monoid elements in a list of first monoid elements to produce second monoid elements. A third module applies a first function to an initial monoid element and a first of the second monoid elements producing a first calculated monoid element and evaluates an action of the initial monoid element on the first function producing a second function. A fourth module applies the second function to the first calculated monoid element and to a second of the second monoid elements producing a second calculated monoid element and evaluates the action of the first calculated monoid element on the first function producing a third function. Further modules iteratively, corresponding to the number of blocks, apply the produced function to calculated monoid elements and the second monoid elements to produce a hash of the string

Description

    BACKGROUND OF THE INVENTION
  • A cryptographic hash function may be used to transform a large block of a string of data into a smaller block of hash data. In some examples, the hash data may then be used as an identifier for the string or for a processor in communication with the string. The transformation may be such that recreating the string may be impractical, difficult, or infeasible. In some situations, it may also be difficult or infeasible to find two strings that may be transformed to the same hash.
  • SUMMARY OF THE INVENTION
  • One embodiment of the invention is a device effective to generate a hash of a string. The device may comprise a memory. The memory may be effective to include a first function, a first list of first monoid elements, and an initial monoid element. The device may further include a first module effective to receive the string and divide the string into a sequence of blocks. The device may further include a second module in communication with the first module and the memory, the second module effective to associate blocks in the sequence of blocks with respective monoid elements in the first list of first monoid elements to produce a second list of second monoid elements. The device may further include a third module in communication with the second module and with the memory. The third module may be effective to receive a first one of the second monoid elements, receive the initial monoid element, receive the first function, apply the first function to the initial monoid element and the first one of the second monoid elements to produce a first calculated monoid element, and evaluate an action of the initial monoid element on the first function to produce a second function. The device may further include a fourth module in communication with the second module and the third module. The fourth module may be effective to receive a second one of the second monoid elements, receive the first calculated monoid element, receive the second function, and apply the second function to the first calculated monoid element and to the second one of the second monoid elements to produce a second calculated monoid element.
  • Another embodiment of the invention includes a method for generating a hash of a string. The method may include receiving the string by first module. The method may include dividing the string by the first module into a sequence of blocks and receiving, by a second module, the sequence of blocks. The method may include associating, by the second module, blocks in the sequence of blocks with respective monoid elements in a first list of monoid elements to produce a second list of second monoid elements. The method may include receiving, by a third module a first one of the second monoid elements. The method may include receiving, by the third module, an initial monoid element; receiving, by the third module, a first function; applying, by the third module, the first function to the initial monoid element and the first one of the second monoid elements to produce a first calculated monoid element; and evaluating, by the third module, an action of the initial monoid element on the first function to produce a second function. The method may include receiving, by a fourth module, a second one of the second monoid elements; receiving, by the fourth module, the first calculated monoid element; receiving, by the fourth module, the second function; and applying, by the fourth module, the second function to the first calculated monoid element and to the second one of the second monoid elements to produce a second calculated monoid element.
  • Another embodiment of the invention is a system effective to communicate a hash of a string. The system may include a first device and a second device in communication with the first device over a network. The first device may include a first memory. The first memory may include a first function, a first list of first monoid elements, and an initial monoid element. The first device may further include a first module effective to receive the string and divide the string into a sequence of blocks. The first device may further include a second module in communication with the first module and the first memory, the second module effective to associate blocks in the sequence of blocks with respective monoid elements in the first list of monoid elements to produce a second list of second monoid elements. The first device may further include a third module in communication with the second module and with the first memory, the third module effective to receive a first one of the second monoid elements, receive the initial monoid element, receive the first function, apply the first function to the initial monoid element and the first one of the second monoid elements to produce a first calculated monoid element, and evaluate an action of the initial monoid element on the first function to produce a second function. The first device may further include a fourth module in communication with the second module and the third module, the fourth module effective to receive a second one of the second monoid elements, receive the first calculated monoid element, receive the second function, and apply the second function to the first calculated monoid element and to the second one of the second monoid elements to produce a second calculated monoid element. The fourth module may further be effective to receive the first function, and evaluate the action of the first calculated monoid element on the first function to produce a third function. The first device may further include a fifth module in communication with the second module and the fourth module. The fifth module effective to receive the third function, receive a third one of the second monoid elements, receive the second calculated monoid element, and apply the third function to the second calculated monoid element and the third one of the second monoid elements to produce the hash of the string. The second device effective to receive the hash; and compare the hash with data stored in a second memory in communication with the second device to produce an identification of the first device.
  • BRIEF DESCRIPTION OF THE FIGURES
  • The foregoing and other features of this disclosure will become more fully apparent from the following description and appended claims taken in conjunction with the accompanying drawings. Understanding that these drawings depict only some embodiments in accordance with the disclosure and are therefore not to be considered limiting of its scope, the disclosure will be described with additional specificity and detail by reference to the accompanying drawings in which:
  • FIG. 1 is a system drawing of a cryptographic hash generation system in accordance with an embodiment of the invention.
  • FIG. 2 is a flow diagram illustrating a process which could be performed in accordance with an embodiment of the invention.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)
  • In the following detailed description, reference is made to the accompanying drawings which form a part thereof. In the drawings, similar symbols typically identify similar components unless context indicates otherwise. The illustrative embodiments described in the detailed description, drawings and claims are not meant to be limiting. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure as generally described herein and as illustrated in the accompanying figures can be arranged, substituted, combined, separated and/or designed in a wide variety of different configurations all of which are explicitly contemplated herein.
  • Referring to FIG. 1, there is shown a cryptographic hash generation system 100 which may be used in accordance with an embodiment of the invention. In system 100, a user 102 may input a string 104 into a hash function generator device 106. For example, user 102 may use a processor 118 to input string 104. As discussed in more detail below, hash function generator 106 may be effective to transform string 104 into a hash of string H(S) 108. In some examples, hash function generator device 106 and/or processor 118 may further send hash 108 and hash function 132 over a network 110. Network 110 may include, for example, a wireless network, a wired network, the Internet, a cellular network, a near field communication (NFC) network, a radio frequency identification (RF-ID) network, a cloud computing environment, etc.
  • A processor 112, in communication with network 110, may receive hash 108 and hash function 132. Processor 112 may compare hash 108 using hash function 132 with data stored in a memory 116. Based on the comparison by processor 112, processor 112 may generate an identifier 114 for user 102 and/or processor 118. For example, processor 112 may be a reader and processor 118 may be a tag in an RF-ID environment. Hash 108 could be a transformation of a public key used in public key encryption communication between tag/processor 118 and reader/processor 112. Reader/processor 112 may compare hash 108 with data in memory 116 to determine which public key/identifier 114 will be used by tag 118.
  • Hash function generator device 106 may include a string to block decomposition module 120, a block sequence to monoid list module 124, and two or more function evaluation/generation modules 126. At least some of these modules may be in communication with a memory 144 and/or a processor 146. Processor 146 could have a relatively small processing power such as with a 5 MHz clock cycle. Memory 144 could have a relatively small size and have, for example, 1 kb of memory. Modules could be implemented as software such as with a processor and/or in hardware or firmware.
  • String 104 may be a sequence of bits with a number of bits that is a multiple of a variable λ. Hash function generator device 106 may send string 104 as an input to a string to block module 120. String to block module 120 may be effective to divide string 104 into a sequence of blocks 122 (B1, B2, . . . Bl), each with a length of λ bits. In the example, string 104 is divided into l blocks, where each block is of a length of λ bits. In situations where string 104 includes a number of bits that is not equally divisible by λ, string to block module 120 may add padding bits to produce a modified string with a number of bits that is equally divisible by λ.
  • String to block module 120 may send sequence of blocks 122 to a block sequence to monoid list module 124. Block sequence to monoid list module 124 may also receive a first list of monoid elements 130. List of monoid elements 130 may be stored in a memory 144. Monoid elements may be, for example, matrices with entries in a finite field.
  • Each block B in sequence of blocks 122 includes bits in a binary format that may represent a number with a value v between 0 and 2λ−1. The value may be denoted by v(Bi). Block sequence to monoid list module 124 may transform sequence of blocks 122 into a corresponding sequence of numbers v(B1), . . . v(Bl). Block sequence to monoid list module 124 may then associate each value v(Bi), and hence each block Bi, with a monoid element cv(B i ) in list of monoid elements 130 to produce a second list of monoid elements 128 cv(B 1 ) . . . , cv(B 2 ), . . . , cv(B l ). Monoid elements 128 may be sent to respective function evaluation/generation modules 126. For example, cv(B 1 ) may be sent to function evaluation/generation module 126 1, cv(B i ) may be sent to function evaluation/generation module 126 i, etc.
  • Each function evaluation/generation module 126 i receives a respective monoid element cv(B i ) from second list of monoid elements 128, a function
    Figure US20190288848A1-20190919-P00001
    i−1, and a monoid element ni−1. Each function evaluation/generation module 126 acts on these inputs to produce an output. For example, function evaluation/generation module 126 1 receives monoid element cv(B 1 ), initial function
    Figure US20190288848A1-20190919-P00001
    o 134 and initial monoid element n o 136. Initial function
    Figure US20190288848A1-20190919-P00001
    o may be a one-way function as discussed below and may be stored in memory 144. Monoid element no could be, example, a matrix with mod p entries, and may be stored in memory 144. Function evaluation/generation module 126 1 may apply function
    Figure US20190288848A1-20190919-P00001
    o to no and to cv(B 1 ) to produce monoid element n1.

  • n 1=
    Figure US20190288848A1-20190919-P00001
    o(n o , c v(B 1 ))
  • Function evaluation/generation module 126 1 may also evaluate the action of no on initial function
    Figure US20190288848A1-20190919-P00001
    o to produce a new function
    Figure US20190288848A1-20190919-P00001
    1.

  • Figure US20190288848A1-20190919-P00001
    1 =n 0
    Figure US20190288848A1-20190919-P00001
    o
  • Function evaluation/generation module 126 1 may send n1, initial function
    Figure US20190288848A1-20190919-P00001
    o, and new function
    Figure US20190288848A1-20190919-P00001
    1 to function evaluation/generation module 126 2.
  • Function evaluation/generation module 126 2 receives monoid element cv(B 2 ), initial function
    Figure US20190288848A1-20190919-P00001
    o, function
    Figure US20190288848A1-20190919-P00001
    1 and monoid element n1. Function evaluation/generation module 126 2 may apply function
    Figure US20190288848A1-20190919-P00001
    1 to n1 and to cv(B 2 ) to produce monoid element n2.

  • n 2=
    Figure US20190288848A1-20190919-P00001
    1(n 1 , c v(B 2 ))
  • Function evaluation/generation module 126 2 may evaluate the action of n1 on initial function
    Figure US20190288848A1-20190919-P00001
    o to produce a new way function
    Figure US20190288848A1-20190919-P00001
    2.

  • Figure US20190288848A1-20190919-P00001
    2 =n 1·
    Figure US20190288848A1-20190919-P00001
    o
  • Function evaluation/generation module 126 2 may forward n2, initial function
    Figure US20190288848A1-20190919-P00001
    o, and new function
    Figure US20190288848A1-20190919-P00001
    2 to function evaluation/generation module 126 3.
  • This iterative process of generating monoid elements
    Figure US20190288848A1-20190919-P00002
    i and new functions
    Figure US20190288848A1-20190919-P00001
    i continues for each block in sequence of blocks 128. For example, function evaluation/generation module 126 3 receives monoid element cv(B 3 ), initial function
    Figure US20190288848A1-20190919-P00001
    o, function
    Figure US20190288848A1-20190919-P00001
    2 and monoid element
    Figure US20190288848A1-20190919-P00002
    2. Function evaluation/generation module 126 3 may apply function
    Figure US20190288848A1-20190919-P00001
    2 to
    Figure US20190288848A1-20190919-P00002
    2 and to cv(B 3 ) to produce monoid element
    Figure US20190288848A1-20190919-P00002
    3.

  • Figure US20190288848A1-20190919-P00002
    3=
    Figure US20190288848A1-20190919-P00001
    2(
    Figure US20190288848A1-20190919-P00002
    2 , c v(B 3 ))
  • Function evaluation/generation module 126 3 may evaluate the action of
    Figure US20190288848A1-20190919-P00002
    2 on initial function
    Figure US20190288848A1-20190919-P00001
    o to produce a new function
    Figure US20190288848A1-20190919-P00001
    3.

  • Figure US20190288848A1-20190919-P00001
    3=
    Figure US20190288848A1-20190919-P00002
    2·
    Figure US20190288848A1-20190919-P00001
    o
  • The last monoid element cv(B l ) in list of monoid elements 128 produced by block sequence to monoid list module 124 is sent to function evaluation/generation module 126 l−1.
  • Function evaluation/generation module 126 l−1 receives monoid element cv(B l ), function
    Figure US20190288848A1-20190919-P00001
    l−1 and monoid element
    Figure US20190288848A1-20190919-P00002
    l−1. Function evaluation/generation module 126 l−1 may produce Hash (S) 108.

  • Hash (S)=
    Figure US20190288848A1-20190919-P00001
    l−1(
    Figure US20190288848A1-20190919-P00002
    l−1 , c v(B l ))
  • Hash(S) 108 may be sent from processor 118 to processor 112 over network 110. Processor 118 may also send hash function 132 which may include initial function
    Figure US20190288848A1-20190919-P00001
    0, list of monoid elements 130, and initial monoid element
    Figure US20190288848A1-20190919-P00002
    o. Processor 118 may receive hash 108 and compare hash 108 with a list of hash values in memory 116. In another example, processor 118 may receive hash function 132, apply hash function 132 to values in memory 116 (using hash function generator device 106) and determine which resultant hash matches hash 108. For example, passwords may be maintained in memory 116. Processor 112 may apply hash function 132 to each password and identify which password corresponds to hash 108.
  • Function
    Figure US20190288848A1-20190919-P00001
    may be a one-way function that is computable but difficult, perhaps infeasible, to reverse. In an example, an instance of a one-way function based symmetric encryption protocol utilizes an Algebraic Eraser. An Algebraic Eraser may include a specified 6-tuple (M
    Figure US20190288848A1-20190919-P00003
    S, N, Π, E, A, B) where
  • M and N are monoids,
  • S is a group that acts on M (on the left),
  • M
    Figure US20190288848A1-20190919-P00003
    S denotes the semi-direct product,
  • A and B denote submonoids of M
    Figure US20190288848A1-20190919-P00003
    S, and
  • Π denotes a monoid homomorphism from M to N. The E-function, also called E-multiplication, is defined by

  • E:(N×S)×(M
    Figure US20190288848A1-20190919-P00003
    S)→(N×S)

  • E((n, s), (m 1 , s 1))=(n Π(s m 1), s s 1).
  • It is observed that the E-function satisfies the following identity:

  • E((n, s), ((m 1 , s 1)·(m 2 , s 2)))=E(E((n, s), (m 1 , s 1)), (m 2 , s 2)).
  • Function
    Figure US20190288848A1-20190919-P00001
    may be an Algebraic Eraser (M
    Figure US20190288848A1-20190919-P00003
    S, N, Π, E, A, B). Letting M=M
    Figure US20190288848A1-20190919-P00003
    S, N=N
    Figure US20190288848A1-20190919-P00003
    S, function
    Figure US20190288848A1-20190919-P00004
    is defined as follows: given (n0, s0) ∈ N
    Figure US20190288848A1-20190919-P00003
    S and (m, s1) ∈ M
    Figure US20190288848A1-20190919-P00003
    S let
    Figure US20190288848A1-20190919-P00004
    : N×M→N denote the function:

  • Figure US20190288848A1-20190919-P00004
    ((n 1 , s 1), (m, s 2))=E((n 1 , s 1), (m, s 12))=((n 1 Π(s 1 m), s 1 s 2).
  • The structure of the one-way function F enables the following definition of a new one-way function via a left action. Given an arbitrary element (n0,s0) ∈ N, and
    Figure US20190288848A1-20190919-P00001
    as specified above, the one-way {(n0,s0)∘
    Figure US20190288848A1-20190919-P00001
    } is defined by

  • {(n 0 , s 0
    Figure US20190288848A1-20190919-P00004
    }((n 1 , s 1), (m 2 , s 2))=((n 1 Π(s 0 s 1 m 2), s 1 s 2)
  • where (n1, s1) ∈ N
    Figure US20190288848A1-20190919-P00003
    S and (m2, s2) ∈ M
    Figure US20190288848A1-20190919-P00003
    S. A feature of these specified actions is that the property

  • {(n 0 ,s 0)∘
    Figure US20190288848A1-20190919-P00001
    }((n 1 , s 1), (m 2 , s 2)·(m 3 , s 3))={(n 0 , s 0F}({(n 0 , s 0F}((n 1 , s 1), (m 2 , s 2)), (m 3 , s 3)),
  • for all (n1, s1) ∈ N
    Figure US20190288848A1-20190919-P00003
    S and (m2, s2), (m3, s3) ∈ M×S. An application of this feature is that the one-way function (n0, s0)∘
    Figure US20190288848A1-20190919-P00004
    can be evaluated incrementally, and thus efficiently.
  • Given a one-way function
    Figure US20190288848A1-20190919-P00004
    0, the collection of one-way functions

  • {(n0, s0)·F|(n 0 , s 0) ∈ N
    Figure US20190288848A1-20190919-P00003
    S}
  • satisfies the requirements for the class of one-way functions described above for initial function
    Figure US20190288848A1-20190919-P00004
    0. The sequence of one-way functions that appear in FIG. 1 may take the form:

  • Figure US20190288848A1-20190919-P00004
    0, {(n0, s0
    Figure US20190288848A1-20190919-P00004
    0}, {(n1, s1
    Figure US20190288848A1-20190919-P00004
    0}, {(n2, s2
    Figure US20190288848A1-20190919-P00004
    0}, . . .
  • Another instance of a function that may be used is a function where monoids M and N are chosen to be a group G. Defining relators of G may allow for an effective rewriting or cloaking of group elements, and a conjugacy equation in G may be relatively difficult to solve. This insures that the function
    Figure US20190288848A1-20190919-P00004
    :G×G→G defined by the equation,

  • Figure US20190288848A1-20190919-P00004
    (x, g)=g −1 ×g
  • where x, g ∈ G, is a one-way function. Given a group element, x0 ∈ G, define the left action of x0 on the one-way function
    Figure US20190288848A1-20190919-P00004
    by

  • {x 0·
    Figure US20190288848A1-20190919-P00004
    }(x, g)=g −1 x 0 −1 x x 0 g.
  • As with the previous example,

  • {x 0·
    Figure US20190288848A1-20190919-P00004
    }(x, g 1 g 2)={x 0·
    Figure US20190288848A1-20190919-P00004
    }({x 0·
    Figure US20190288848A1-20190919-P00004
    }(x, g 1)), g 2).
  • The collection of one-way functions,

  • {{x0·
    Figure US20190288848A1-20190919-P00004
    }|x0 ∈ G},
  • satisfies the requirements for the class of one-way functions described above for initial function
    Figure US20190288848A1-20190919-P00004
    0.
  • Among other benefits, a system in accordance with this disclosure may enable a processor to relatively quickly compute the hash of each block of a message, and, thereby, quickly compute the hash of the entire message itself. Long messages may be transformed into a shortened message due to, at least in part, the ability to break the message into smaller pieces. A hash of the message may then be generated, by first hashing the first block using, the output of which is then used to hash the second block, and then proceeding iteratively until the hash of the final block is obtained using. A signature may then be applied to the hash of the message. Functions used in producing the hash may be derived from previously used functions based on actions of monoid elements. As each iterative step may use a relatively quick to process function, the entire hash generation process may be relatively fast. As each function is mutated in subsequent steps, it would be very difficult, perhaps infeasible, to guess all of the functions used in generating the hash. Changing values of monoid elements and/or the initial monoid element may produce new hash functions.
  • Referring to FIG. 2, there is shown a process which could be performed in accordance with an embodiment of the invention. The process could be performed using, for example, system 100 discussed above and may be used to generate a hash of a string.
  • As shown, at step S2, a first module may receive a string to be hashed. At step S4, the first module may divide the string into a sequence of blocks. For example, the first module may divide the string into blocks of bits with an equal length.
  • At step S6, a second module may receive the sequence of blocks. At step S8, the second module may associate the blocks with respective monoid elements in a first list of first monoid elements to produce a second list of second monoid elements.
  • At step S10, a third module may receive a first one of the second monoid elements, an initial monoid element and a first function. At step S12, the third module may apply the function to the initial monoid element and to a first one of the second monoid elements to produce a first calculated monoid element.
  • At step S14, the third module may evaluate an action of the initial monoid element on the first function to produce a second function. At step S16, a fourth module may receive a second one of the second monoid elements, the first calculated monoid element and the second function. At step S18, the fourth module may apply the second function to the first calculated monoid element and to the second one of the second monoid elements to produce a second calculated monoid element.
  • While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.

Claims (1)

What is claimed is:
1. A device effective to generate a hash of a string, the device comprising:
a memory, wherein the memory is effective to include
a first function,
a first list of first monoid elements, and
an initial monoid element;
a first module effective to receive the string and divide the string into a sequence of blocks;
a second module in communication with the first module and the memory, the second module effective to associate blocks in the sequence of blocks with respective monoid elements in the first list of first monoid elements to produce a second list of second monoid elements;
a third module in communication with the second module and with the memory, the third module effective to
receive a first one of the second monoid elements,
receive the initial monoid element,
receive the first function,
apply the first function to the initial monoid element and the first one of the second monoid elements to produce a first calculated monoid element, and
evaluate an action of the initial monoid element on the first function to produce a second function;
a fourth module in communication with the second module and the third module, the fourth module effective to
receive a second one of the second monoid elements,
receive the first calculated monoid element,
receive the second function, and
apply the second function to the first calculated monoid element and to the second one of the second monoid elements to produce a second calculated monoid element.
US16/419,488 2012-07-13 2019-05-22 Cryptographic hash generation system Abandoned US20190288848A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/419,488 US20190288848A1 (en) 2012-07-13 2019-05-22 Cryptographic hash generation system

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US13/548,325 US8972715B2 (en) 2012-07-13 2012-07-13 Cryptographic hash function
US14/605,105 US20150131795A1 (en) 2012-07-13 2015-01-26 Cryptographic hash generation system
US15/008,023 US20160149706A1 (en) 2012-07-13 2016-01-27 Cryptographic hash generation system
US15/178,069 US20160294547A1 (en) 2012-07-13 2016-06-09 Cryptographic hash generation system
US15/292,968 US20170033929A1 (en) 2012-07-13 2016-10-13 Cryptographic hash generation system
US15/599,965 US20170257218A1 (en) 2012-07-13 2017-05-19 Cryptographic hash generation system
US15/810,720 US20180069705A1 (en) 2012-07-13 2017-11-13 Cryptographic hash generation system
US15/963,195 US20180241566A1 (en) 2012-07-13 2018-04-26 Cryptographic hash generation system
US16/419,488 US20190288848A1 (en) 2012-07-13 2019-05-22 Cryptographic hash generation system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US15/963,195 Continuation US20180241566A1 (en) 2012-07-13 2018-04-26 Cryptographic hash generation system

Publications (1)

Publication Number Publication Date
US20190288848A1 true US20190288848A1 (en) 2019-09-19

Family

ID=49915028

Family Applications (9)

Application Number Title Priority Date Filing Date
US13/548,325 Active 2033-01-01 US8972715B2 (en) 2012-07-13 2012-07-13 Cryptographic hash function
US14/605,105 Abandoned US20150131795A1 (en) 2012-07-13 2015-01-26 Cryptographic hash generation system
US15/008,023 Abandoned US20160149706A1 (en) 2012-07-13 2016-01-27 Cryptographic hash generation system
US15/178,069 Abandoned US20160294547A1 (en) 2012-07-13 2016-06-09 Cryptographic hash generation system
US15/292,968 Abandoned US20170033929A1 (en) 2012-07-13 2016-10-13 Cryptographic hash generation system
US15/599,965 Abandoned US20170257218A1 (en) 2012-07-13 2017-05-19 Cryptographic hash generation system
US15/810,720 Abandoned US20180069705A1 (en) 2012-07-13 2017-11-13 Cryptographic hash generation system
US15/963,195 Abandoned US20180241566A1 (en) 2012-07-13 2018-04-26 Cryptographic hash generation system
US16/419,488 Abandoned US20190288848A1 (en) 2012-07-13 2019-05-22 Cryptographic hash generation system

Family Applications Before (8)

Application Number Title Priority Date Filing Date
US13/548,325 Active 2033-01-01 US8972715B2 (en) 2012-07-13 2012-07-13 Cryptographic hash function
US14/605,105 Abandoned US20150131795A1 (en) 2012-07-13 2015-01-26 Cryptographic hash generation system
US15/008,023 Abandoned US20160149706A1 (en) 2012-07-13 2016-01-27 Cryptographic hash generation system
US15/178,069 Abandoned US20160294547A1 (en) 2012-07-13 2016-06-09 Cryptographic hash generation system
US15/292,968 Abandoned US20170033929A1 (en) 2012-07-13 2016-10-13 Cryptographic hash generation system
US15/599,965 Abandoned US20170257218A1 (en) 2012-07-13 2017-05-19 Cryptographic hash generation system
US15/810,720 Abandoned US20180069705A1 (en) 2012-07-13 2017-11-13 Cryptographic hash generation system
US15/963,195 Abandoned US20180241566A1 (en) 2012-07-13 2018-04-26 Cryptographic hash generation system

Country Status (1)

Country Link
US (9) US8972715B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9071408B2 (en) * 2012-02-09 2015-06-30 Securerf Corporation Communication system
JP2015065495A (en) * 2013-09-24 2015-04-09 ルネサスエレクトロニクス株式会社 Encryption key supply method, semiconductor integrated circuit and encryption key management device
US10740732B2 (en) 2015-05-20 2020-08-11 Ripple Luxembourg S.A. Resource transfer system
US11481771B2 (en) * 2015-05-20 2022-10-25 Ripple Luxembourg S.A. One way functions in a resource transfer system
US11392944B2 (en) 2015-05-20 2022-07-19 Ripple Luxembourg S.A. Transfer costs in a resource transfer system
US10523440B2 (en) * 2015-09-22 2019-12-31 Securerf Corporation Signature generation and verification system

Citations (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020046335A1 (en) * 1998-08-24 2002-04-18 Birgit Baum-Waidner System and method for providing commitment security among users in a computer network
US20030009666A1 (en) * 2001-04-16 2003-01-09 Jakobsson Bjorn Markus Methods and apparatus for efficient computation of one-way chains in cryptographic applications
US20030145308A1 (en) * 2002-01-30 2003-07-31 Geisinger Nile Josiah Method and system for creating programs using code having coupled syntactic and semantic relationships
US20050066169A1 (en) * 2003-09-18 2005-03-24 Perry Kiehtreiber Method and apparatus for incremental code signing
US20050091545A1 (en) * 2002-03-04 2005-04-28 Andrea Soppera Lightweight authentication of information
US20050175176A1 (en) * 2004-02-09 2005-08-11 Microsoft Corporation Primitives for fast secure hash functions and stream ciphers
US20050182946A1 (en) * 2004-02-13 2005-08-18 Will Shatford Fast hashing function for pseudo-random generator
US20050195975A1 (en) * 2003-01-21 2005-09-08 Kevin Kawakita Digital media distribution cryptography using media ticket smart cards
US7000110B1 (en) * 1999-08-31 2006-02-14 Fuji Xerox Co., Ltd. One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device
US20060036861A1 (en) * 2004-07-04 2006-02-16 Leon Chernyak Method and apparatus for algebro-geometric key establishment protocols based on matrices over topological monoids
US7136484B1 (en) * 2001-10-01 2006-11-14 Silicon Image, Inc. Cryptosystems using commuting pairs in a monoid
US7194618B1 (en) * 2001-03-05 2007-03-20 Suominen Edwin A Encryption and authentication systems and methods
US20070198838A1 (en) * 2004-04-02 2007-08-23 Masao Nonaka Unauthorized Contents Detection System
US20080086758A1 (en) * 2006-10-10 2008-04-10 Honeywell International Inc. Decentralized access control framework
US20090080646A1 (en) * 2007-09-21 2009-03-26 Chih-Hsu Yen Method And Architecture For Parallel Calculating Ghash Of Galois Counter Mode
US20090092245A1 (en) * 2006-03-31 2009-04-09 Axalto Sa Protection Against Side Channel Attacks
US20090144229A1 (en) * 2007-11-30 2009-06-04 Microsoft Corporation Static query optimization for linq
US20090279692A1 (en) * 2008-05-12 2009-11-12 Sun Microsystems, Inc. Fast computation of one-way hash sequences
US20100050235A1 (en) * 2008-06-19 2010-02-25 Qualcomm Incorporated Methods and apparatus for reducing the effectiveness of chosen location attacks in a peer-to-peer overlay network
US20100088522A1 (en) * 2008-10-02 2010-04-08 John Barrus Method and Apparatus for Tamper Proof Camera Logs
US7720807B1 (en) * 2007-01-17 2010-05-18 Square Zero, Inc. Representing finite node-labeled trees using a one bit encoding
US20100246809A1 (en) * 2006-03-14 2010-09-30 Nec Corporation Information Processing System, Information Processing Method, and Information Processing Program
US20110022596A1 (en) * 2009-07-23 2011-01-27 Alibaba Group Holding Limited Method and system for document indexing and data querying
US20110083015A1 (en) * 2009-10-05 2011-04-07 Eidgenossiche Technische Hochschule Zurich System and method for an electronic signature for quick and efficient data authentication
US20110211697A1 (en) * 2008-08-01 2011-09-01 Volkovs Nikolajs System and method for the calculation of a polynomial-based hash function and the erindale-plus hashing algorithm
US20120255030A1 (en) * 2011-03-31 2012-10-04 Panasonic Corporation Secret sharing apparatus, sharing apparatus and secret sharing method
US20130263255A1 (en) * 2012-03-27 2013-10-03 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes
US8677135B2 (en) * 2010-12-17 2014-03-18 Microsoft Corporation Digital signatures with error polynomials
US20150237502A1 (en) * 2009-03-06 2015-08-20 Interdigital Patent Holdings, Inc. Platform Validation and Management of Wireless Devices

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493449B2 (en) * 1998-02-26 2002-12-10 Arithmetica, Inc. Method and apparatus for cryptographically secure algebraic key establishment protocols based on monoids
US7649999B2 (en) * 2005-06-08 2010-01-19 Iris Anshel Method and apparatus for establishing a key agreement protocol

Patent Citations (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020046335A1 (en) * 1998-08-24 2002-04-18 Birgit Baum-Waidner System and method for providing commitment security among users in a computer network
US7000110B1 (en) * 1999-08-31 2006-02-14 Fuji Xerox Co., Ltd. One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device
US7194618B1 (en) * 2001-03-05 2007-03-20 Suominen Edwin A Encryption and authentication systems and methods
US20030009666A1 (en) * 2001-04-16 2003-01-09 Jakobsson Bjorn Markus Methods and apparatus for efficient computation of one-way chains in cryptographic applications
US7136484B1 (en) * 2001-10-01 2006-11-14 Silicon Image, Inc. Cryptosystems using commuting pairs in a monoid
US20030145308A1 (en) * 2002-01-30 2003-07-31 Geisinger Nile Josiah Method and system for creating programs using code having coupled syntactic and semantic relationships
US20050091545A1 (en) * 2002-03-04 2005-04-28 Andrea Soppera Lightweight authentication of information
US20050195975A1 (en) * 2003-01-21 2005-09-08 Kevin Kawakita Digital media distribution cryptography using media ticket smart cards
US20050066169A1 (en) * 2003-09-18 2005-03-24 Perry Kiehtreiber Method and apparatus for incremental code signing
US20050175176A1 (en) * 2004-02-09 2005-08-11 Microsoft Corporation Primitives for fast secure hash functions and stream ciphers
US20050182946A1 (en) * 2004-02-13 2005-08-18 Will Shatford Fast hashing function for pseudo-random generator
US20070198838A1 (en) * 2004-04-02 2007-08-23 Masao Nonaka Unauthorized Contents Detection System
US20060036861A1 (en) * 2004-07-04 2006-02-16 Leon Chernyak Method and apparatus for algebro-geometric key establishment protocols based on matrices over topological monoids
US20100246809A1 (en) * 2006-03-14 2010-09-30 Nec Corporation Information Processing System, Information Processing Method, and Information Processing Program
US20090092245A1 (en) * 2006-03-31 2009-04-09 Axalto Sa Protection Against Side Channel Attacks
US20080086758A1 (en) * 2006-10-10 2008-04-10 Honeywell International Inc. Decentralized access control framework
US7720807B1 (en) * 2007-01-17 2010-05-18 Square Zero, Inc. Representing finite node-labeled trees using a one bit encoding
US20090080646A1 (en) * 2007-09-21 2009-03-26 Chih-Hsu Yen Method And Architecture For Parallel Calculating Ghash Of Galois Counter Mode
US20090144229A1 (en) * 2007-11-30 2009-06-04 Microsoft Corporation Static query optimization for linq
US20090279692A1 (en) * 2008-05-12 2009-11-12 Sun Microsystems, Inc. Fast computation of one-way hash sequences
US20100050235A1 (en) * 2008-06-19 2010-02-25 Qualcomm Incorporated Methods and apparatus for reducing the effectiveness of chosen location attacks in a peer-to-peer overlay network
US20110211697A1 (en) * 2008-08-01 2011-09-01 Volkovs Nikolajs System and method for the calculation of a polynomial-based hash function and the erindale-plus hashing algorithm
US20100088522A1 (en) * 2008-10-02 2010-04-08 John Barrus Method and Apparatus for Tamper Proof Camera Logs
US20150237502A1 (en) * 2009-03-06 2015-08-20 Interdigital Patent Holdings, Inc. Platform Validation and Management of Wireless Devices
US20110022596A1 (en) * 2009-07-23 2011-01-27 Alibaba Group Holding Limited Method and system for document indexing and data querying
US20110083015A1 (en) * 2009-10-05 2011-04-07 Eidgenossiche Technische Hochschule Zurich System and method for an electronic signature for quick and efficient data authentication
US8677135B2 (en) * 2010-12-17 2014-03-18 Microsoft Corporation Digital signatures with error polynomials
US20120255030A1 (en) * 2011-03-31 2012-10-04 Panasonic Corporation Secret sharing apparatus, sharing apparatus and secret sharing method
US20130263255A1 (en) * 2012-03-27 2013-10-03 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes

Also Published As

Publication number Publication date
US20180241566A1 (en) 2018-08-23
US20170257218A1 (en) 2017-09-07
US20150131795A1 (en) 2015-05-14
US20140019747A1 (en) 2014-01-16
US20170033929A1 (en) 2017-02-02
US8972715B2 (en) 2015-03-03
US20160149706A1 (en) 2016-05-26
US20180069705A1 (en) 2018-03-08
US20160294547A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
US20190288848A1 (en) Cryptographic hash generation system
US20200382274A1 (en) Secure Analytics Using an Encrypted Analytics Matrix
KR101575030B1 (en) Method of multi-signature generation for shared data in the cloud
US10367640B2 (en) Shared secret data production system
US11368312B2 (en) Signature generation and verification system
US10505722B2 (en) Shared secret communication system with use of cloaking elements
US20180302220A1 (en) User attribute matching method and terminal
US20190169810A1 (en) Communication system
US20230224285A1 (en) Affine masking for secure encryption schemes
CN104113420A (en) Identity based aggregate signcryption method
US20230224281A1 (en) Methods and systems for compressed encryption
CN103973439A (en) Multivariable public key encryption method
US11101981B2 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
US9509511B2 (en) Identity based encryption
Zhang et al. Fully Constant‐Size CP‐ABE with Privacy‐Preserving Outsourced Decryption for Lightweight Devices in Cloud‐Assisted IoT
US10700870B2 (en) Signature generation and verification system
CN113630250B (en) Model training method and system based on data encryption
US10459690B1 (en) Side channel attack prevention
Ullah et al. IMAC: Implicit message authentication code for IoT devices
US11228589B2 (en) System and method for efficient and secure communications between devices
Khan et al. Lightweight Substitution Box Using Elliptic Curve Cryptography for Image Encryption Applications

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION