Encrypt and decrypt information

Through the topological structure identification and permutation operation of the recurrent artificial neural network, the security and decryption difficulty of existing encryption methods in third-party intercept communications are solved, the secure transmission and decryption of information is realized, and the confidentiality of encrypted communications is enhanced.

CN113841160BActive Publication Date: 2025-08-05INAIT SA
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080036778.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-03-18
Filing Date
2020-03-12
Publication Date
2025-08-05
Estimated Expiration
2040-03-12

AI Technical Summary

Technical Problem

When existing encryption methods face communication intercepting third parties, it is difficult to ensure the security and difficulty of decryption of information. Especially in symmetric key and public key encryption, the security and decryption difficulty of key exchange become challenges.

Method used

The recurrent artificial neural network is used for encryption and decryption. By identifying the topological structure in the network and implementing single-episode and full-episode permutation operations, neural topological codes are generated and parsed, and information encoding and decoding is used for the topological characteristics of the neural network.

Benefits of technology

It realizes secure transmission and decryption of information under third-party interception, improves the security and difficulty of encrypted communication, and enhances the confidentiality of information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113841160B_ABST
    Figure CN113841160B_ABST
Patent Text Reader

Abstract

Methods, systems, and apparatus for encrypting and decrypting data. In one implementation, an encryption method includes: inputting plaintext into a recurrent artificial neural network; identifying a topological structure in a pattern of activity in the recurrent artificial neural network, wherein the pattern of activity is responsive to the plaintext input; representing the identified topological structure as a binary sequence of length (L); and applying a permutation of the set of all binary codewords of length (L). The permutation applied is a function from the set of binary codewords of length (L) to itself, the function being injective and surjective.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Cryptographic encryption provides secure communications between parties, even if a third party (often referred to as an "adversary") intercepts the communications. Encrypted communications are encoded so that only authorized recipients can access them. The communications themselves are often referred to as "plaintext," a term that encompasses both text messages and other information. The algorithm that encrypts the communications is often called a "cipher," and the encrypted communications are referred to as "ciphertext." While ciphertext may be intercepted or otherwise accessible to an adversary, decrypting the ciphertext to access the encrypted communications is typically very difficult.

[0002] Generally, encryption can be categorized as either "symmetric key" or "public key." In symmetric key encryption, the same key is used to encrypt plaintext and decrypt ciphertext. Since both the sender and receiver must have access to the same symmetric key, the symmetric key must be exchanged over a secure channel to ensure privacy. In public key encryption, the encryption key can be made public and used by multiple parties to encrypt plaintext. However, only the intended recipient will have access to the decryption key, which enables the ciphertext to be decrypted.

[0003] In any case, improved cryptographic encryption would be beneficial in many scenarios, including data storage, communications, digital signatures, authentication, and e-commerce. Summary of the Invention

[0004] This document relates to encrypting and decrypting information, and to systems and techniques for encrypting and decrypting information. For example, in one implementation, a method of encryption includes: inputting plaintext into a recurrent artificial neural network; identifying a topological structure in a pattern of activity in the recurrent artificial neural network, wherein the pattern of activity is responsive to the plaintext input; and representing the identified topological structure as a binary sequence of length L; and performing a permutation of the set of all binary codewords of length L. The permutation performed is a function from the set of binary codewords of length L to itself, the function being injective and surjective. The method can be implemented in hardware, software, or a combination thereof.

[0005] This encryption method may include one or more of the following features. The method may include customizing the response of the network to input by, for example, creating or removing nodes or links in the network or by changing one or more properties of nodes or links in the network. The method may also include receiving data that characterizes a characteristic of customizing the input of the plaintext into the network; and customizing the input of the plaintext into the network based on the data. The data may characterize the synapses and nodes into which bits of the plaintext are to be injected, or the order in which bits of the plaintext are to be injected. Implementing the permutation may include inputting one or more codewords and the binary sequence along the same cycle into a recurrent artificial neural network, for example, where the recurrent artificial neural network is the same recurrent artificial neural network into which the plaintext is input. Identifying the topology in the pattern of activity may include identifying a simplex pattern of activity in the network, for example, where the simplex pattern is a directed simplex or where the simplex pattern encloses a cavity. Identifying the topology in the pattern of activities may include: determining a specific timing of an activity having a complexity distinguishable from other activities in response to the input; and identifying the topology based on the specific timing of the activity having the distinguishable complexity. The method may include encrypting a second plaintext using the plaintext as a cryptographic key.

[0006] In another implementation, a decryption method may include: receiving ciphertext, the ciphertext comprising a sequence representing a pattern of activity in a recurrent artificial neural network in response to a corresponding plaintext input into the network; repeatedly applying a permutation of a set of all binary codewords of length L, wherein the permutation applied is a function from the set of binary codewords of length L to itself, the function being injective and surjective, and applying the permutation generates a plurality of codewords along a cycle; comparing each of the plurality of codewords to the ciphertext to identify a match of the plurality of codewords; and designating a codeword along the cycle preceding the match of the plurality of codewords as the plaintext corresponding to the ciphertext. The method may be implemented in hardware, software, or a combination thereof.

[0007] This decryption method may include one or more of the following features. The method may include: decrypting a second ciphertext using the previous codeword as a key. The ciphertext may include a binary sequence. The digits of the binary sequence may represent a simplex pattern of activity in the network. For example, the simplex pattern may be a directed simplex. As another example, the simplex pattern may enclose a cavity. Implementing the permutation may include: inputting the codeword and the ciphertext along the cycle into a recurrent artificial neural network; identifying a topology in the pattern of activity in the recurrent artificial neural network, wherein the pattern of activity is responsive to the input; and representing the identified topology. The method may include: customizing the response of the network to the input prior to the input, for example, by creating or removing nodes or links in the network or by changing one or more properties of nodes or links in the network. Identifying the topology in the pattern of activity may include: determining a specific time of activity having a complexity distinguishable from other activities responsive to the input; and identifying the topology based on the specific time of the activity having the distinguishable complexity. The method may include receiving data characterizing characteristics of the ciphertext and the codeword input, and customizing the input of the ciphertext and the codeword into the network based on the data. The data may characterize the synapses and nodes into which the plaintext bits are to be injected, or the order in which the plaintext bits are to be injected.

[0008] In some cases, a non-transitory computer-readable storage medium may have instructions stored thereon that, when executed by one or more processors, cause the one or more processors to perform any of the encryption and decryption described above.

[0009] In some cases, an encryption device can be configured to perform any of the encryption methods described above. In some cases, a decryption device can be configured to perform any of the decryption methods described above.

[0010] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1 is a schematic representation of the process for cryptographic encryption that relies on permutation.

[0012] Figure 2 is a flowchart illustrating the permutation decryption process.

[0013] Figure 3is a schematic representation of the process for cryptographic encryption that relies on permutation.

[0014] Figure 4 and Figure 5 It is a representation of patterns of activity that can be recognized and read in recurrent artificial neural networks.

[0015] Figure 6 It is a schematic representation of a specific time determination of an activity pattern with a distinguishable complexity. DETAILED DESCRIPTION

[0016] Permutation ciphers appear to have been practiced for thousands of years. For example, Julius Caesar is said to have invented a bit-shifting algorithm to encode messages. Regardless of the truth of this claim, the bit-shifting algorithm is still known as the "Caesar code." Even more advanced forms of permutation ciphers are easily cracked with modern computing.

[0017] Figure 1 is a schematic representation of a process 100 for cryptographic encryption that relies on permutations. The process 100 relies on decomposing permutations into products of cycles to allow encryption and decryption of messages.

[0018] In more detail, in process 100, plaintext 105 is input into a recurrent artificial neural network 110. Artificial neural networks are devices inspired by the structure and functionality of biological neural networks but implemented in hardware, software, or a combination thereof. Specifically, artificial neural networks use a system of interconnected structures called nodes to emulate the information encoding and other processing capabilities of biological neural networks. The arrangement and strength of the connections between nodes in an artificial neural network determine the results of information processing or storage by the artificial neural network.

[0019] Neural networks can be trained to produce a desired signal flow within the network and achieve a desired information processing or information storage result. Typically, training a neural network will change the arrangement and / or strength of connections between nodes during a learning phase. A neural network is considered trained when it achieves sufficiently appropriate processing results for a given set of inputs.

[0020] Artificial neural networks can be used in a variety of different devices to perform nonlinear data processing and analysis.Nonlinear data processing does not satisfy the superposition principle, that is, the variable to be determined cannot be written as a linear sum of independent components.

[0021] In a recurrent artificial neural network, connections between nodes form a directed graph along a time sequence, and the network exhibits temporal dynamic behavior.

[0022] Plaintext 105 can be input into recurrent artificial neural network 110 in a variety of different ways. In general, a user may be able to uniquely specify how plaintext is injected into a particular network to provide a degree of security against unwanted access. For example, recurrent artificial neural network 110 need not be constrained to receive input at a well-defined input layer. Instead, in some implementations, a user may specify that plaintext is to be injected into specific nodes or links distributed throughout network 110. As another example, recurrent artificial neural network 110 need not be constrained to receive input in a known, previously defined manner (e.g., always inject the first bit of the binary plaintext into the first node, the second bit into the second node, etc.). Instead, a user may specify that certain bits in the plaintext are to be injected into synapses rather than neurons, that the order of injection need not follow the order in which the bits appear in the binary plaintext, or a combination of these and other parameters.

[0023] In some implementations, plaintext 105 can be input into a recurrent artificial neural network 110 that has been customized using one or more settings 107 that customize the response of the network 110 to the input. These settings can, for example, create or remove nodes or links within the network 110 and / or change the properties of various nodes or links within the network 110. For example, the settings can change the strength and / or directionality of the links within the network 110. As another example, the settings can change the signal accumulation or firing threshold in a node that operates according to an integrate-and-fire model. The nature of these changes can be sufficient to customize the responsiveness of the network 110 to the input in a manner that is hidden from other parties that may have access to the network 110 but not the settings 107, for example. In this way, the settings 107 can be considered a "private key" that - together with the unchanged properties of the network 110 - determines the encoding of the plaintext 105. For didactic purposes, the settings 107 are described in detail in the following sections. Figure 1 Schematically represented as a key.

[0024] In response to the input of plaintext 105, the recurrent artificial neural network 110 responds with a pattern of activity. The topological pattern that emerges in this activity can be "read" as a neural topology code 115. In more detail, the neural topology code 115 can represent topological features corresponding to the pattern of activity that emerges in the neural network when the neural network is provided with a given input. In other words, a neural network can be represented as a graph. A graph is a set of nodes and a set of edges between these nodes. A node can correspond to, for example, an artificial neuron in a neural network. An edge can correspond to some kind of relationship between nodes. Examples of relationships include, for example, structural connections or activity along the connection. In the context of a neural network, artificial neurons can be connected by structural connections between neurons or by the transmission of information along the structural connections. Therefore, an edge can characterize a relatively short-lived "activity" that occurs within a defined time frame.

[0025] The neural topology code 115 can use a series of binary bits to represent the presence or absence of a topological feature in the activity. The feature whose presence or absence is indicated by a bit in the neural encoding plaintext 105 can be, for example, activity in a node, a group of nodes, a set of multiple groups of nodes, a set of edges, a set of multiple groups of edges, and / or additional hierarchically more complex features (e.g., a set of multiple sets of multiple groups of nodes). The bits in the neural encoding plaintext 105 typically represent the presence or absence of features at different hierarchical levels. For example, the first bit can represent the presence or absence of activity at a group of five nodes, while the second bit can represent the presence or absence of activity at a group of eight nodes. In some implementations, the bits can represent the presence or absence of a multidimensional simplex pattern of activity in a graph representing the activity.

[0026] In some implementations, bits in neural encoded plaintext 105 can represent information about features in the graph, beyond just the presence or absence of those features. For example, a bit can represent not only the presence of a feature, but also that a feature has a certain characteristic at a threshold level. For example, a bit can represent not only the presence of a simplex pattern of activity in a set of edges, but also that this activity is above or below a threshold level of activity.

[0027] In a reductive sense, the input to the neural network 110 is the plaintext 105, and the responsive neural topology code 115 "encodes" the plaintext 105. Furthermore, for each implementation of the process 100, the neural topology code 115 is constrained to have a defined length L—regardless of the size of the plaintext 105. In other words, for each encryption and decryption in the process 100, the length of the neural topology code 115 remains L. However, different implementations of the process 100 (i.e., different encryptions / decryptions of the same or other data) do not need to maintain the same length L constant.

[0028] In turn, the neural topology code 115 is input into a permutation encryption device 120. The permutation encryption device 120 can be implemented in hardware, software, or a combination thereof. The permutation encryption device 120 applies a permutation of the set of all binary codewords of a fixed length L, i.e., a function from the set of binary codewords of length L to itself that is injective (has no collisions) and therefore surjective. Each permutation decomposes into a product of cycles. Thus, the permutation encryption device 120 transforms the neural topology code 115 into another binary codeword that is in the same cycle as the neural topology code 115. Typically, the permutation encryption device 120 will be configured so that most cycles have a length greater than some fraction of L (e.g., 50%, 75%, or 90% of L).

[0029] In some implementations, the permutation encryption device 120 is also a recurrent artificial neural network from which topological patterns in activity in response to input from the neural topology code 115 can be "read." In such cases, the output of the permutation encryption device 120 is yet another neural topology code, namely, one that responds to the input from the neural topology code 115. In some implementations, the permutation encryption device 120 can be implemented by the same recurrent artificial neural network 110 that generated the neural topology code 115. Indeed, in some implementations, the network forming the permutation encryption device 120 can be customized using the same settings 107 that customized the responses of the network 110. Furthermore, even when using the same recurrent artificial neural network 110, the plaintext 105 and the neural topology code 115 need not be input into the same neurons or synapses.

[0030] Because the output of permutation encryption device 120 is not necessarily another neural topological code, the output of permutation encryption device 120 is designated as ciphertext 125. Ciphertext 125 may be securely transmitted, stored, or otherwise processed at 130. Without knowledge of the permutation performed by permutation encryption device 120 and the encoding reflected in neural topological code 115, plaintext 105 is secure, even if ciphertext 125 is intercepted or otherwise obtainable by an adversary.

[0031] The process 100 uses a permutation decryption device 135 to reconstruct the neural topology code 115. The permutation decryption device 135 relies on decomposing the permutation into a product of cycles to allow the message to be decrypted.

[0032] Figure 2 is a flow chart illustrating a permutation decryption process 200. The permutation decryption process 200 may be performed, for example, in a permutation decryption device 135 ( Figure 1 ) is executed at the place. As discussed further below, the permutation decryption process 200 may also be performed at the permutation decryption device 135 ( Figure 3) was executed.

[0033] The system performing process 200 receives ciphertext at 205. The ciphertext is generated at least in part by a permutation encryption process. In some implementations, the ciphertext is a neural topology code representing a topological pattern of activity occurring in a recurrent artificial neural network in response to a given input.

[0034] The system performing process 200 selects at least a portion of the ciphertext as an input sequence at 210. In some cases, the selected portion is the entire ciphertext, although this is not necessarily the case.

[0035] When applied to an input sequence, the system performing process 200 generates a binary codeword at 215 that is in the same loop as the input sequence. The permutation is a permutation of the set of all binary codewords of a fixed length L, i.e., a function from the set of binary codewords of length L to itself that is injective (has no collisions) and therefore surjective. Each time the process flow passes through 215, the process advances one step in the loop.

[0036] The system performing process 200 compares the binary codeword generated at 215 with the relevant portion of the ciphertext at 220. As discussed above, permutations inherently decompose into cyclic products. Since permutations are conflict-free (i.e., two different input sequences will never produce the same output sequence), iterative application of the permutation to the input sequence will eventually recreate the input sequence. The comparison at 220 determines whether the ciphertext has been recreated for each given iteration of the permutation.

[0037] The system performing process 200 determines at 225 whether the binary codeword generated at 215 matches the ciphertext.

[0038] In response to determining that the binary codeword generated at 215 does not match the ciphertext, the system performing process 200 sets the binary codeword generated at 215 as a new input sequence at 230 and returns to advance another step in the loop again at 215 .

[0039] This process of repeatedly applying permutations, thereby stepping along a loop, continues until the system determines at 225 that the binary codeword generated at 215 matches the ciphertext. In response to this determination, a codeword preceding the binary codeword generated at the last execution of 215 by a predetermined number of steps is output. The "distance" between the output sequence and the matching sequence is the number of steps separating them along the loop implemented by the permutation encryption device 120. This number can be selected by the user and then implemented in the encryption and decryption devices. Furthermore, it can be communicated from the encryption device to the decryption device in a variety of different ways. For example, the distance can be communicated to the encryption and decryption devices independently of the ciphertext, e.g., in a previous communication and / or in a communication over a different communication channel. In some instances, the distance can be set as a default value, e.g., for all communications of a certain type or for all communications between a particular pair of encryption and decryption devices.

[0040] Figure 3 is a schematic representation of a process 300 for permutation-dependent cryptographic encryption.

[0041] In process 300, encryption process 315 encrypts plaintext 310 using neural topology key 305 to generate ciphertext 320. Encryption process 315 can be any of a variety of different processes, including those currently in use. Key 305 can be a neural topology code, such as neural topology code 115 ( Figure 1 ). In other words, the key 305 can represent a topological pattern in activity that occurs in a recurrent artificial neural network in response to an input. The topological pattern is expressed as a sequence of binary bits. Furthermore, in some implementations, the topological pattern can be customized by means of settings applied to the network.

[0042] In process 300, the neural topology key 305 is input into the permutation encryption device 120. Figure 1 The permutation encryption device 120 in the embodiment may also be a recurrent artificial neural network from which a topological pattern in activity in response to an input of the neural topological code 115 may be “read” and output as a ciphertext 125 of the key 305.

[0043] Both the neural-topology key 305 and the plaintext 310 may be encrypted—albeit by different cryptographic processes 120, 315—for secure transmission, storage, or other processing at 130. Without knowledge of the permutation performed by the permutation encryption device 120 and the encoding reflected in the neural-topology code 305, the plaintext 310 is secure even if the key ciphertext 125 and the ciphertext 320 are intercepted or otherwise obtainable by an adversary.

[0044] The key ciphertext 125 may be decrypted using a permutation decryption device 135 to reconstruct the neural topology key 305. The permutation decryption device 135 relies on decomposing the permutation into a product of cycles to allow the message to be decrypted. The permutation decryption device 135 may perform process 200 ( Figure 2 ).

[0045] In turn, the neural topology key 305 may be used to decrypt the ciphertext 320 and reconstruct the plaintext 310 in a decryption process 325 .

[0046] Figure 4 is a representation of a pattern 400 of activity that can be recognized and "read," for example, as a representation from a neural network 110 or a permutation decryption device 135 ( Figure 1 ) of the neural topology code 115, as a result of the permutation encryption device 120 ( Figure 1 ) of the ciphertext 125, as the ciphertext from the permutation encryption device 120 ( Figure 2 ) of the key ciphertext 125, or as a key from a permutation decryption device 135 ( Figure 2 )’s neural topology key 305.

[0047] Pattern 400 is a representation of activity in a recurrent artificial neural network. To read pattern 400, consider a functional graph as a topological space with nodes as points. Activity in nodes and links that correspond to pattern 400 can be identified as ordered, regardless of the identity of the specific nodes and / or links participating in the activity. In the illustrated implementation, patterns 400 are all directed cliques or directed simplexes. In such a pattern, activity originates from a source node that transmits a signal to every other node in the pattern. In pattern 400, such a source node is designated as point 0, while the other nodes are designated as points 1, 2, ... . Furthermore, in a directed clique or simplex, one of the nodes acts as a sink and receives signals transmitted from every other node in the pattern. In pattern 400, such a sink node is designated as the highest-numbered point in the pattern. For example, in pattern 405, the sink node is designated as point 2. In pattern 410, the sink node is designated as point 3. In pattern 415, the sink node is designated as point 3, and so on. Thus, the activities represented by pattern 400 are ordered in a distinguishable manner.

[0048] Each of the patterns 400 has a different number of points and reflects ordered activity in a different number of nodes. For example, pattern 405 is a two-dimensional simplex and reflects activity in three nodes, pattern 410 is a three-dimensional simplex and reflects activity in four nodes, and so on. As the number of points in the pattern increases, the degree of ordering and complexity of the activity also increases. For example, for a large collection of nodes with a certain degree of random activity within the window, some of the activity may, by chance, match pattern 405. However, the random activity will gradually become less and less likely to match the corresponding pattern in patterns 410, 415, 420... The presence of activity matching pattern 430 therefore indicates a relatively higher degree of ordering and complexity in the activity than the presence of activity matching pattern 405.

[0049] Different duration windows may be defined for different determinations of the complexity of an activity. For example, when an activity is to be identified that matches pattern 430, a longer duration window may be used than when an activity is to be identified that matches pattern 405.

[0050] Figure 5 is a representation of a pattern 500 of activity that can be recognized and "read," for example, as information from a neural network 110 or a permutation decryption device 135 ( Figure 1 ) of the neural topology code 115, as a result of the permutation encryption device 120 ( Figure 1 ) of the ciphertext 125, as the ciphertext from the permutation encryption device 120 ( Figure 2 ) of the key ciphertext 125, or as a key from a permutation decryption device 135 ( Figure 2 )’s neural topology key 305.

[0051] Pattern 500 is a group of directed cliques or directed simplices of the same dimension (ie, having the same number of points) that defines a pattern involving more points than a single clique or simplex and encloses a cavity within the group of directed simplices.

[0052] By way of example, pattern 505 includes six different three-point, two-dimensional patterns 405 that together define a homology class of level 2, while pattern 510 includes eight different three-point, two-dimensional patterns 405 that together define a second homology class of level 2. Each of the three-point, two-dimensional patterns 405 in patterns 505, 510 can be considered to enclose a corresponding cavity. The nth Betti number associated with a directed graph provides a count of such homology classes in a topological representation.

[0053] The activity represented by a pattern such as pattern 500 represents a relatively high degree of ordering of activity in a network that is unlikely to occur by random chance. Pattern 500 can be used to characterize the complexity of the activity.

[0054] In some implementations, only some patterns of activity are identified and / or some portion of the identified patterns of activity are discarded or otherwise ignored during identification at a decision moment. Figure 4 , activities commensurate with the five-point, four-dimensional simplex pattern 415 inherently include activities commensurate with the four-point, three-dimensional and three-point, two-dimensional simplex patterns 410, 405. For example, Figure 4 Points 0, 2, 3, 4 and points 1, 2, 3, 4 in the four-dimensional simplex pattern 415 are all commensurate with the three-dimensional simplex pattern 410. In some implementations, patterns containing fewer points—and therefore having lower dimensions—can be discarded or otherwise ignored during identification at a decision moment.

[0055] As another example, only some patterns of activity need to be recognized. For example, in some implementations, only patterns with an odd number of points (3, 5, 7, ...) or an even number of dimensions (2, 4, 6, ...) are recognized.

[0056] Figure 6 It is a schematic representation of a specific time determination of an activity pattern with a distinguishable complexity. Figure 6 The determination represented in can be performed as part of the recognition or "reading" of the pattern of activity. For example, the determination can be, for example, from the neural network 110 or the permutation decryption device 135 ( Figure 1 ) of the neural topology code 115, from the permutation encryption device 120 ( Figure 1 ) ciphertext 125, from the permutation encryption device 120 ( Figure 2 ) of the key ciphertext 125, or from the permutation decryption device 135 ( Figure 2 ) is a portion of the output of the neural topology key 305.

[0057] Figure 6 The diagram includes graphs 605 and 610. Graph 605 shows the occurrence of a pattern as a function of time along the x-axis. In particular, each occurrence is schematically represented as vertical lines 606, 607, 608, and 609. Each row of occurrences may be instances of an activity matching a corresponding pattern or class of patterns. For example, the top row of occurrences may be instances of an activity matching pattern 405 ( Figure 4 ), the occurrence of the second row may be an activity matching pattern 410 ( Figure 4 ), the occurrence of the third line may be an activity matching pattern 415 ( Figure 4 ), and so on.

[0058] Graph 605 also includes dashed rectangles 615, 620, 625 that schematically depict different time windows when activity patterns have distinguishable complexity. As shown, during the windows depicted by dashed rectangles 615, 620, 625, the likelihood that activity in the recurrent artificial neural network matches a pattern indicative of complexity is higher than outside those windows.

[0059] Graph 610 shows the complexity associated with these occurrences as a function of time along the x-axis. Graph 610 includes a first peak 630 of complexity that coincides with the window depicted by dashed rectangle 615, and a second peak 635 of complexity that coincides with the windows depicted by dashed rectangles 620, 625. As shown, the complexity represented by peaks 630, 625 is distinguishable from the complexity of what can be considered a baseline level 640 of complexity.

[0060] In some implementations, the output of the recurrent artificial neural network is read at a time that coincides with the occurrence of an activity pattern of distinguishable complexity. For example, Figure 6 In the illustrative scenario of , the output of the recurrent artificial neural network may be read at peaks 630 , 625 , ie, during the windows depicted by dashed rectangles 615 , 620 , 625 .

[0061] In some implementations, activity patterns with distinguishable complexity can be used to identify not only the specific timing of the output of a recurrent artificial neural network, but also the content of the output of the recurrent artificial neural network. Specifically, the identity and activity of nodes participating in activities commensurate with the activity pattern can be considered as the output of the recurrent artificial neural network. Thus, the identified activity pattern can represent the result of processing by the neural network, as well as the specific time at which this decision was read.

[0062] The content of a decision can be expressed in a variety of different forms. For example, in some implementations, the content of a decision can be expressed as a binary vector of 1s and 0s, where each digit indicates whether the corresponding mode is active or inactive for a predefined group of nodes. In such an implementation, the content of the decision is expressed in binary and is compatible with traditional digital data processing infrastructure.

[0063] The operations and embodiments of the subject matter described in this specification may be implemented in digital electronic circuits, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in a combination of one or more of them. The embodiments of the subject matter described in this specification may be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, which are encoded on a computer storage medium for execution by a data processing device or for controlling the operation of a data processing device. Alternatively or in addition, program instructions may be encoded on an artificially generated propagation signal (e.g., a machine-generated electrical signal, optical signal, or electromagnetic signal), which is generated to encode information for transmission to a suitable receiver device for execution by a data processing device. A computer storage medium may be a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them or included therein. Furthermore, although a computer storage medium is not a propagation signal, a computer storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagation signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (eg, multiple CDs, disks, or other storage devices).

[0064] The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0065] The term "data processing apparatus" encompasses all kinds of apparatus, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, a system on a chip, or a plurality or combination of the foregoing. The apparatus may include dedicated logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of these. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as network services, distributed computing, and grid computing infrastructures.

[0066] A computer program (also referred to as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program may be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.

[0067] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can be implemented as, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

[0068] Processors suitable for executing computer programs include, by way of example, both general-purpose and special-purpose microprocessors, as well as any one or more processors of any type of digital computer. Typically, a processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or be operatively coupled to receive data from one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or to transfer data to one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or both. However, a computer need not have such devices. In addition, a computer can be embedded in another device (e.g., a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game controller, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name a few). Devices suitable for storing computer program instructions and data include all forms of nonvolatile memory, media, and storage devices, including, by way of example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0069] To provide for interaction with a user, embodiments of the subject matter described herein may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other kinds of devices may also be used to provide for interaction with the user; for example, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, voice, or tactile input. Additionally, a computer may interact with a user by sending documents to and receiving documents from a device used by the user; for example, by sending a web page to a web browser on a user's client device in response to a request received from the web browser.

[0070] Although this specification includes many specific implementation details, these details should not be interpreted as limiting the scope of any invention or the content that may be claimed, but should be understood as a description of the features of the specific embodiments of specific inventions. Certain features described in the scene of a separate embodiment in this specification may also be implemented in combination in a single embodiment. Conversely, a plurality of features described in the scene of a single embodiment may also be implemented individually or in any suitable sub-combination in a plurality of embodiments. In addition, although features may be described above as working in certain combinations and even initially claimed, one or more features from the claimed combination may be deleted from the combination in some cases, and the claimed combination may point to a variant of a sub-combination or a sub-combination.

[0071] Similarly, although operations are described in a particular order in the accompanying drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in a continuous order, or that all illustrated operations be performed to obtain the desired result. In some cases, multitasking and parallel processing may be advantageous. In addition, the separation of the various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

[0072] Thus, specific implementations of the subject matter have been described. Other implementations are within the scope of the appended claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve the desired results. Additionally, the processes depicted in the accompanying figures do not necessarily require the specific order shown or sequential order to achieve the desired results. In some implementations, multitasking and parallel processing may be advantageous.

[0073] Several implementations have been described. However, various modifications may be made. For example, during permutation decryption, multiple steps may be taken along the loop before any comparison of the binary codeword generated at 215 with the ciphertext. This may reduce data processing activity, for example, when the loop is known to be of large length, since the initial permutation will not match the ciphertext.

[0074] Accordingly, other implementations are within the scope of the following claims.

Claims

1. An encryption method implemented in hardware, software, or a combination thereof, comprising: Performing a first encryption process to encrypt the first plaintext to obtain a key ciphertext, wherein performing the first encryption process includes: Input the first plaintext into the recurrent artificial neural network; identifying a topological structure in a pattern of activity in the recurrent artificial neural network, wherein the pattern of activity is responsive to the input of the first plaintext; and Representing the identified topological structure as a binary sequence having a length L; and Generating the key ciphertext comprises: performing a permutation of a set of all binary code words of length L, wherein the permutation performed is a function from the set of binary code words of length L to itself, the function being injective and surjective, thereby transforming the binary sequence into another binary code word in the same cycle as the binary sequence; and A second encryption process is performed using the binary sequence having a length L to encrypt a second plaintext to obtain a ciphertext, wherein the second plaintext is different from the first plaintext.

2. The method according to claim 1, further comprising: The response of the network to input is customized by changing one or more properties of nodes or links in the network.

3. The method according to claim 1, wherein: The method further includes: receiving data characterizing a custom input of the first plaintext into the network; and Input of the first plaintext into the network is customized according to the data.

4. The method of claim 3, wherein the data: The first plaintext bits will be injected into the synapses and nodes characterizing, or Characterize the order in which the bits of the first plaintext will be injected.

5. The method of claim 1 , wherein performing the replacement comprises: One or more code words and the binary sequence along the same cycle are input into a recurrent artificial neural network.

6. The method of claim 1 , wherein identifying the topology in the pattern of activity comprises: Simplex patterns of activity in the network are identified. The method of claim 6 , wherein the simplex pattern encloses a cavity or is a directed simplex.

8. The method of claim 1 , wherein identifying the topology in the pattern of activity comprises: determining a time for an activity having a complexity distinguishable from other activities responsive to the input; as well as The topology is identified based on the timing of activities having the distinguishable complexity.

9. The method of claim 1, wherein the first encryption process and the second encryption process are different encryption processes.

10. A decryption method implemented in hardware, software, or a combination thereof, the method comprising: receiving a key ciphertext comprising a sequence representing a pattern of activity in a recurrent artificial neural network in response to a corresponding first plaintext input into the network; repeatedly performing a permutation of the set of all binary codewords of length L, wherein the permutation performed is a function from the set of binary codewords of length L to itself, the function being injective and surjective, and performing the permutation generates a plurality of codewords along a cycle; comparing each of the plurality of codewords to the key ciphertext to identify a match of the plurality of codewords; as well as designating a codeword preceding a match of the plurality of codewords along the loop to recover a neural topology key; receiving a ciphertext of a second plaintext, wherein the second plaintext is different from the first plaintext; as well as A decryption process is performed using the neural topology key to recover the second plaintext.

11. The method according to claim 10, wherein: The key ciphertext comprises a binary sequence; and The binary sequence of digits represents a simplex pattern of activity in the network. The method of claim 11 , wherein the simplex pattern encloses a cavity.

13. The method of claim 10, wherein performing the replacement comprises: inputting the codeword and the key ciphertext along the cycle into a recurrent artificial neural network; identifying a topological structure in a pattern of activity in the recurrent artificial neural network, wherein the pattern of activity is responsive to the input; as well as Represents the identified topology.

14. The method according to claim 13, further comprising: The response of the network to an input is customized prior to the input by changing one or more properties of nodes or links in the network.

15. The method of claim 13, wherein identifying the topology in the pattern of activity comprises: determining a time for an activity having a complexity distinguishable from other activities responsive to the input; as well as The topology is identified based on the timing of activities having the distinguishable complexity.

16. The method of claim 13, wherein: The method further includes: receiving data characterizing characteristics of a custom input key ciphertext and the codeword; and Input of the key ciphertext and the codeword into the network is customized according to the data.

17. The method of claim 16, wherein the data: The first plaintext bits will be injected into the synapses and nodes characterizing, or Characterize the order in which the bits of the first plaintext will be injected.

18. A cryptographic device configured to perform a cryptographic operation comprising the method according to any one of claims 1 to 9.

19. A decryption device configured to perform a decryption operation comprising the method according to any one of claims 10 to 17.

Citation Information

Patent Citations

  • Thin database indexing

    US20150058352A1