WO2010128172A1 - Método de verificación de procesos de descifrado - Google Patents

Método de verificación de procesos de descifrado Download PDF

Info

Publication number
WO2010128172A1
WO2010128172A1 PCT/ES2009/000568 ES2009000568W WO2010128172A1 WO 2010128172 A1 WO2010128172 A1 WO 2010128172A1 ES 2009000568 W ES2009000568 W ES 2009000568W WO 2010128172 A1 WO2010128172 A1 WO 2010128172A1
Authority
WO
WIPO (PCT)
Prior art keywords
messages
incoming
encrypted
integrity
integrity test
Prior art date
Application number
PCT/ES2009/000568
Other languages
English (en)
French (fr)
Inventor
Jorge PUIGGALÍ ALLEPUZ
Sandra GUASCH CASTELLÓ
Francesc SEBÉ FEIXAS
Josep M. Miret Biosca
Original Assignee
Scytl Secure Electronic Voting, S.A.
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 Scytl Secure Electronic Voting, S.A. filed Critical Scytl Secure Electronic Voting, S.A.
Priority to EP09844302.1A priority Critical patent/EP2429115B1/en
Priority to US13/319,164 priority patent/US9077540B2/en
Publication of WO2010128172A1 publication Critical patent/WO2010128172A1/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • 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
    • 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/42Anonymization, e.g. involving pseudonyms
    • 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/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Definitions

  • the present invention is suitable for applications where it is required to verify the integrity of the messages that have been subjected to a decryption process. Specifically, it is of special relevance in decryption processes in which the anonymity of the senders of the encrypted messages must be preserved, such as that performed by a mixnet. The method is likely to be used in remote electronic voting environments.
  • a mixnet is a network of permutations that is composed of one or more servers or nodes that perform permutation processes and decryption of the information.
  • the objective is that the order of the encrypted information that is entered in the mixnet does not correspond to that of the decrypted information that is obtained after being processed by the mixnet.
  • the first node receives incoming messages from different transmitters that have previously been encrypted and applies a transformation function, which generally consists of swapping, encrypting and / or decrypting them (depending on the type of mixnet ). If there are more nodes, the transformed messages are forwarded to the next node.
  • the same permutation and encryption or decryption operation is repeated on each node and the transformed messages sent to the next until the transformed messages are received by an end node.
  • the transformed messages obtained by this last node are the original messages before they have been encrypted by the senders.
  • the purpose of the mixnets is to create an anonymous communication channel in order to preserve the privacy of the participants in a communication.
  • the origin of the mixnets goes back to the concept created by Chaum [Ch81], which was originally proposed to achieve anonymity in sending email.
  • This proposal uses nested RSA encryption with random padding (also known as padding).
  • Each node of the mixnet has a public key pk ⁇ and its corresponding private key sk ⁇ .
  • the messages that will be sent through the mixnet are prepared at the origin by the transmitters. This preparation consists of the encryption nested by the sender of his message m a number of times equal to the number of nodes that form the mixnet. Encryption It is carried out using the public keys of the nodes in the reverse order of the path in which the message will be processed in the mixnet.
  • M Pk 1 ( JJk 2 ... ⁇ pkn.i ⁇ pk n (m, r n ), r n -i) , r n . 2 ) ..., n)
  • the message m is repeatedly encrypted using different public keys and random fill r ⁇ .
  • the first node uses its private key Sk 1 to decipher the corresponding part of the received messages, eliminates the random filling r- ⁇ and then performs the permutation function and forwards the messages to the next node. This operation is repeated until the original messages are retrieved on the last node.
  • the encryption cryptosystem means that in which it is fulfilled that, given a public key P, its corresponding private key S, and an encrypted message C obtained from the encryption of a message m with the key P, if we encrypt Again, the encrypted message C with the same key P, we will obtain a new encrypted text C which, when decrypted only once with the key S, will result in the same original message m:
  • An example of an encryption scheme with re-encryption properties is EIGamal or Paillier.
  • the first node receives the encrypted messages, exchanges them, re-encrypts them with the same public key P and partially decrypts them with a node's own key.
  • Re-encryption at the nodes is carried out using random values that are obtained algebraically by combining them with the random value used in the previous encryption:
  • the permutation test is based on the following null knowledge test: Suppose that ⁇ r ⁇ and ⁇ are the permutation and random values used by a node /. Then the node generates another transformation ⁇ and random value t ⁇ , and performs the re-encryption and permutation according to these new parameters generating a second permuted output.
  • the verifier challenges the node to reveal, either ( ⁇ , f ⁇ ), which proves that the second transformation was successful, or the difference between the first and the second transformation ( ⁇ ⁇ 1 , (r - f))), which allows the verifier to verify how the output of the original transformation can be obtained by swapping and re-encrypting the outputs of the second transformation. With a probability of 50% it is possible to verify the correct operation of a node in the mixnet.
  • the verifier makes the challenge of the second transformation, then all the nodes reveal the values of their second transformation simultaneously. On the other hand, if the verifier makes the challenge for the difference between the first and the second transformation, the nodes sequentially compute the difference and reveal in turn. In any case, the verifier only needs to verify a single secondary transformation, or the difference between a primary and secondary transformation. Decryption can also be verified independently of the number of nodes, since the nodes cooperate to generate the joint decryption factor. They also produce a Chaum-Pedersen chained knowledge test that verifies that the decryption factor was generated correctly.
  • JJR02 Jakobsson et al. [JJR02] presented a verification technique called RPC (Randomized Partial Checking). This technique can be applied to any mixnet regardless of the encryption and permutation mechanisms they use.
  • RPC Randomized Partial Checking
  • each node must randomly reveal the input-output ratio of half of the messages (ie, the permutation and an encryption / decryption test applied to half of the messages). In this way, a node can corrupt n messages covertly with a probability of non-detection of 2 ' ".
  • the corruption of any subset of messages has a higher probability of being detected than not (except in the case that a message is modified, in which the probability would be the same.)
  • the privacy of the messages is protected based on a probability, which is reduced the larger the number of nodes, or, through a careful selection of messages to be audited.
  • selecting the messages to be audited it should be considered that the complete trajectory of a message can be discovered through the mixnet, which would violate privacy. This can be resolved by grouping the consecutive nodes in pairs, that is, node 1 with node 2, node 3 with node 4, etc.
  • the detection of the manipulation of two votes is 75% and therefore will not be detectable in 25% of cases. Being independent of the number of votes, if the modification is made on a set of 8 votes or 800 votes, it does not influence the probability of detection. Therefore, in the case of 8 votes it means that a manipulation of 25% of the votes would not be detected in 25% of the cases.
  • EP1633077A2 also described in [NeO1] a universally verifiable mixnet is proposed.
  • the verification of the correct operation of a mixnet with EIGamal encryption through interactive tests of null knowledge is described.
  • the permutations of the messages are based on the property of invariability of polynomials regardless of the permutation of their roots.
  • This method of verification improves the previous proposals based on CPR in the aspect of the privacy of the voter, since it is not based on the revelation of the trajectories of a certain number of messages in each node, but in the mathematical relations between the messages of input and output.
  • the probability of detecting a fraudulently modified message increases considerably, this scheme being the safest of those presented so far.
  • This scheme also improves the CPR systems regarding the preservation of the privacy of the voter, since it is not necessary to reveal any permutation or other information about the encrypted messages to carry out the verification process.
  • the probability of detection of modified messages may be better in some cases than in RPC systems, or worse in others. Since the verification is based on the verification that the result of the multiplication of the messages at the entrance and exit of a node is constant, an attacker could modify two messages so that this modification is canceled by means of the multiplication (for example multiplying a message by a factor and dividing another by it). Thus, in the case where a certain number of messages are modified following this pattern, this manipulation is not detected. On the other hand, if the manipulations in the messages are not canceled when the whole set is multiplied, they are detected.
  • the present invention is based on the implementation of a verifiable anonymous decryption method, that solves the efficiency problems of verifiable mixnets that use null knowledge tests maintaining a high probability of detection, and that does not depend on the number of nodes to guarantee the anonymity of the issuers.
  • the present invention describes a verification method that allows to confirm that the decryption process has been carried out honestly by the entity that has carried out this process (i.e., that the decrypted data corresponds exactly to the encrypted data).
  • This verification method is applicable in decryption processes in which you want to maintain the anonymity of the entity (s) that have performed the data encryption, as in a mixnet.
  • the method described in this invention is characterized in that the verification of
  • the correction of the decryption of a set of encrypted messages is based on the proof that the result of operating blocks of the messages encrypted with an operation ⁇ is equal to the encryption of the result of operating blocks of the messages decrypted with an operation ⁇ .
  • the method comprises the following stages: a. Individual encryption of each message in the message set by one to several transmitters by means of a public key of an asymmetric cryptographic algorithm with homomorphic properties, which complies with the property that by operating encrypted messages with a first operation ⁇ the encryption of the messages operated with a second operation ⁇ ; b. Generation of a first test of incoming integrity of the set of encrypted messages based on the operation ⁇ performed on blocks of the set of incoming encrypted messages; C. Decryption of encrypted messages using a private key related to the public encryption key; d. Generation of an outgoing integrity test based on the direct operation of blocks of the messages deciphered with the operation ⁇ ; and. Generation of a second incoming integrity test that relates the first incoming integrity test of the blocks of the set of messages encrypted in stage a), with the outgoing integrity test of the blocks of the messages decrypted in
  • the method uses cryptographic algorithms with additive or multiplicative homomorphic properties, such as EIGamal, EIGamal with message exponentiation, Paillier or systems based on Elliptic Curves.
  • EIGamal EIGamal with message exponentiation
  • Paillier systems based on Elliptic Curves.
  • the operation ⁇ is the product of the components resulting from the encryption algorithm and the operation ⁇ is an arithmetic sum.
  • the operation ⁇ is the sum of points of the elliptic curve and the operation ⁇ is an arithmetic sum.
  • operation ⁇ is the product of the components resulting from the encryption algorithm and operation ⁇ is also a product.
  • the use of codes is considered to represent the content of the messages that allow its subsequent individual extraction from the result of the operation ⁇ of the messages through factoring processes.
  • the method contemplates as alternative of implementation the generation of a message integrity test, and the encryption of the message with the concatenation of said test.
  • encryption alternatives it is proposed that it be performed on the concatenation of the message and its integrity test, or that both be encrypted separately and subsequently concatenated.
  • the integrity test can be obtained from a cryptographic hash function (e.g., SHA1) or a compaction function (e.g., ZIP).
  • the method also contemplates as an alternative that the decryption process used be based on one that preserves the anonymity of the issuer, such as a decryption, re-encryption or re-encryption mixnet with partial decryption.
  • the method contemplates an extension of the verification of the decryption process based on the generation of intermediate integrity tests of the groups of transformed output messages generated by the node of the mixnet and that will be used as input in the next node of the mixnet. These intermediate integrity tests are generated on the message blocks transformed in the node that receives these messages, in the node that sends these messages, or in both nodes.
  • This extension of the verification consists in being able to implement the same verification processes on the outgoing integrity tests that are performed using the incoming integrity tests but with the intermediate integrity tests instead of the incoming ones.
  • the possibility of verifying the intermediate integrity tests that a node receives and generates is also contemplated.
  • This verification process is contemplated for online verifications (ie, to verify the correct functioning of one or more nodes while the decryption with mixnet is running and not yet finished) or offline (ie, a posteriori to be able to detect if which node from the mixnet to acted dishonestly if Ia verification of the incoming and outgoing integrity tests of this node fails).
  • the method also provides that the verification process of integrity tests is carried out in a distributed manner.
  • Figure 1a identifies the components of the decryption process verification method: o 118: original messages. or 119: encrypted messages. or 120: decryption system. or 121: decrypted messages. or 122: first incoming integrity test. or 123: outgoing integrity test. or 124: second incoming integrity test.
  • Figure 1b shows the general process that forms the invention presented. It visually details the operation of the process in which the original messages 118 are transformed into the decrypted messages 120, in a verifiable process of encryption and decryption.
  • the processes involved in this Figure 1b are: o
  • the original messages 118 are encrypted 210, so that encrypted messages 119 are available at the input of the decryption system 120.
  • Once encrypted 119 the first test of incoming integrity 122 upon operation of the encrypted input messages 119.
  • Encrypted messages 119 are entered into the decryption system 120, where the decryption of messages 212 is performed.
  • the outgoing integrity test 123 is calculated.
  • the first incoming integrity test 122 is decrypted 214 before, during or after the decryption process of the messages 212. o Comparing 215 the decryption result of the first incoming integrity test (second incoming integrity test) 124 with the outgoing integrity test 123 it is verified, in case of coincidence, that the decrypted messages 121 at the exit of the decryption system 120 coincide with the original messages 118 a The input of the decryption system 120.
  • Figure 1c shows a preferred implementation of the invention where a mixnet formed by several consecutive nodes is used to preserve the anonymity of the senders of the messages.
  • the components of the implementation are: o 110: nodes of the mixnet. or 119: encrypted messages. or 121: decrypted messages. or 122: first incoming integrity test. or 123: outgoing integrity test. or 125: intermediate integrity tests.
  • the intermediate integrity tests are obtained from the calculation of the messages encrypted to the output / input connected to a later or previous node.
  • Figures 2a, 2b and 2c show the operation of the algorithms proposed to carry out the comparisons of the intermediate integrity tests in order to identify malicious nodes in a preferred implementation where the decryption process maintains the anonymity of the issuers of the messages by using a mixnet.
  • the first phase of the binary search algorithm is described, consisting of the identification of the first malicious node of the mixnet.
  • the processes involved in this Figure 2a are: o
  • the comparison of the incoming integrity test 101 is compared with the intermediate integrity test of the node n / 2 105. o If no manipulation is detected in In the previous step, the following comparison 202 is made between node n / 2 105 and the node with identifier (n + n / 2) / 2 107.
  • Step 202 and 203 are repeated until the integrity tests necessary to detect the malicious node have been compared.
  • Figure 2b describes the second phase of the binary search algorithm, in which other malicious nodes existing in the mixnet are identified apart from the one initially found.
  • the processes involved in the figure are: o Once the malicious node 111 has been identified, the possible existence of others is checked by comparing 204 the integrity test 103 thereof with that of the last node 117, 109. o In case the tests are different, the steps described in Figure 2a are repeated with this integrity test 103 as a reference, in order to detect other fraudulent nodes.
  • Figure 2c describes the comprehensive comparison algorithm, in which the nature of its behavior is verified node by node. The processes described are: o In a sequential way 206 the incoming integrity test is compared
  • Figure 3 describes a recommended practical implementation of the method in a Mixnet environment.
  • the components of the implementation are: o 110: node of the mixnet. or 119: encrypted messages. or 122: first test of incoming integrity (or intermediate incoming). or 123: outgoing integrity test (or intermediate outgoing). or 124: second test of incoming integrity (or intermediate incoming). or 126: message blocks. or 127: transformed messages.
  • each block 126 from the location of the set of transformed messages 127 that correspond to the encrypted messages 119 of said block 126, using the location information contained in the second incoming integrity test 124 of said block 127, and operating the transformed messages 127 of said block
  • the present invention describes a verification method that allows to confirm that the decryption process has been carried out honestly by the entity that has carried out this process (i.e., that the decrypted data corresponds exactly to the encrypted data).
  • This verification method is applicable in decryption processes in which you want to maintain the anonymity of the entity (s) that have performed the encryption of the data, as in a mixnet.
  • the decryption verification method described in the present invention allows validating the integrity of the messages operated by the decryption process through the generation and verification of an integrity test of the encrypted messages before and after being transformed by this process.
  • the method is applied directly to the incoming and outgoing messages of the decryption process, so it is independent of the decryption mechanism used, either a direct decryption or a mechanism that allows to preserve the anonymity of the entities that have encrypted the messages (eg , a mixnet).
  • this method allows to verify if the transformation and permutation of the encrypted messages has been carried out correctly in each of the nodes, allowing by means of one or several integrity tests to verify that the content of the incoming messages It has not been modified during the permutation and transformation operations executed by the mixnet.
  • the verification method described in the present invention comprises the following steps:
  • the encryption stage consists in encrypting the messages in order to preserve their privacy.
  • public key cryptosystems with homomorphic properties are used.
  • the encryption will be done with the public component of the encryption algorithm P.
  • the messages will be constructed so that the encrypted messages can be operated between them, obtaining as a result the encrypted operation of the message contents.
  • the encryption will be done so that:
  • an integrity test of the Hm message will be generated and combined with the message before being encrypted.
  • This integrity test may be the result of applying a summary function, such as a hash cryptographic function (eg, SHA1), or compaction, such as a data compression function (eg, ZIP) to the message.
  • a summary function such as a hash cryptographic function (eg, SHA1)
  • compaction such as a data compression function (eg, ZIP)
  • the integrity of the encrypted message, concatenated with its integrity test or not, could be protected by a digital signature with a secret key Se .:
  • This key could be different for each sender or be common for a set or all encrypted messages.
  • cryptographic algorithms with additive homomorphic properties will be used, in which the operation ⁇ will be equivalent to a sum operation.
  • the method uses cryptographic algorithms with multiplicative homomorphic properties, where the operation ⁇ is the product of the encrypted messages and the operation ⁇ on the clear messages is also a product.
  • the use of prime numbers to represent messages is considered as an implementation example.
  • its subsequent individual extraction is allowed from the result of the operation ⁇ of the messages through factoring processes.
  • prime numbers the integrity of the message can be guaranteed by verifying that the decrypted message is only factorizable in prime numbers.
  • the message integrity test is generated after encryption.
  • the first incoming integrity tests are generated on a list E of the encrypted messages before proceeding with the decryption process. In the event that the messages have been digitally signed, the signature is not used to obtain this proof.
  • the first incoming integrity test is obtained from the performance of operations ⁇ on the set of encrypted messages. This operation will depend on the homomorphic properties of the encryption algorithm used, this method being characterized because the incoming integrity test is performed in blocks of encrypted messages
  • Ie Ie 1 ⁇ ... ⁇ Ie n
  • the operation ⁇ used to re-operate the first tests of integrity of the blocks and obtain a first test of incoming integrity of all messages may be the same operation ⁇ used on messages c ⁇ to calculate the integrity tests of each block , or it can also be another arithmetic operation, logical operation or group operation (eg, concatenation or grouping).
  • the operation of joining or grouping elements will be used. Therefore, the first incoming integrity test of the set of encrypted messages will be formed by the grouping of the first integrity tests of the blocks with which the global set of encrypted messages has been divided:
  • this incoming integrity test could be calculated by performing the same operation ⁇ applied only on the encryption of the values of the message integrity tests instead of using The concatenation of the messages and their integrity tests.
  • a first incoming integrity test can be calculated based solely on the encryption of the message integrity tests:
  • This stage of generating the first incoming integrity tests can be performed before or after the decryption or generation stages of the outgoing integrity tests.
  • the incoming integrity test of the encrypted message blocks can be calculated by operating only the part of the encrypted message (Le., Excluding the signature of the encrypted message).
  • the blocks on which the first incoming integrity tests are calculated are formed by randomly selected encrypted messages, to cover the total set of incoming encrypted messages.
  • the randomness of the selection of these blocks may be defined by an entity that verifies the process, by the entity that executes the process of generating the incoming integrity tests, by another entity or a combination of them.
  • the entity that verifies the incoming integrity tests is the one that will select the blocks of incoming messages on which said tests will be calculated randomly.
  • the decryption stage consists in the decryption of the information using the private key S of the algorithm used in the encryption stage.
  • This decryption process can be performed directly or through a decryption process that preserves the anonymity of the entities that have encrypted the message, such as a mixing or mixnet process.
  • the decryption with the key S can be performed in a single stage or by different stages if a distributed decryption is used.
  • An example of distributed decryption is the partial decryption by means of a piece (share) of the private key S that has previously been divided into different pieces (shares) through a scheme of secret sharing known by the state of the art, such as Shamir. In this case the final decryption will be obtained after combining the different partial decrypts.
  • the result of the decryption process will be the list of original messages encrypted by the entities.
  • O (Pn 1 , ..., m w ⁇
  • the method contemplates the generation of incoming integrity tests at each node of the process. These tests, which we will identify as intermediate incoming integrity tests, will be calculated in the same way as the first incoming integrity tests using in each case the set of encrypted incoming messages of the mixnet node. Depending on the situation of the node within the mixnet, the encrypted input messages of this node will be the same encrypted output messages of the previous node in the same mixnet.
  • the message blocks on which the first intermediate incoming integrity tests are performed on each node of the decryption process can be selected as follows:
  • the encrypted messages that are part of each block on which to perform the first integrity test will be randomly selected.
  • the process may be similar to the one described above for the messages of the blocks on which the first incoming integrity test is generated.
  • the same number of blocks as in the first node will be created.
  • the encrypted messages contained in each block will be selected taking as reference the encrypted messages contained in the blocks of the previous node used for the first tests of incoming or incoming intermediate integrity in said node.
  • the encrypted message blocks used to generate the intermediate incoming integrity tests in the second and subsequent nodes will contain at least one encrypted message from each of the blocks used to generate the intermediate incoming or incoming integrity test of the previous one. node after being transformed by the decryption process on that node (eg, after being encrypted, decrypted or decrypted with partial decryption).
  • the incoming integrity tests will result in the following operations:
  • the decryption of the operation ⁇ of the messages resulting from the operation ⁇ of the encrypted messages is considered, and the subsequent extraction of the individual values of the messages through a factoring process, where the operations ⁇ and ⁇ will generally be products.
  • the method contemplates the generation of outgoing integrity tests on each node of the decryption process (eg, node of the mixnet). These tests, which we will identify as intermediate outgoing integrity tests, will be calculated in the same way as the first incoming integrity tests but in this case using blocks of the set of messages transformed by the node decryption process and that are obtained as output of East. In the case of the last node of the decryption process, if it has as its output the final decryption of the original encrypted messages, the test will be calculated on the decrypted messages as described at the beginning of this section.
  • the transformed message blocks are chosen using as reference the blocks of the node input messages.
  • the number of transformed message blocks will be the same as incoming messages and will contain the same incoming messages but after being transformed without taking into account the position in which they are after the transformation.
  • each block of transformed messages will contain the same messages as another block of incoming messages from the same node after being re-encrypted, decrypted or re-encrypted and partially decrypted.
  • This stage can be carried out within or in parallel to the decryption stage of the messages, or at any time after the first incoming integrity test (s) have been generated.
  • H ( ⁇ f) x by Io that if we release H we will allow it to be verified if the Ie 'has been obtained from the same encrypted message by operating it again with the h ⁇ comparing if Ie is obtained again:
  • c (r.G, M + r.Q) where r is a random number and + denotes in this case the additive operation of points according to the arithmetic norms of elliptic curves.
  • the process can perform a null knowledge test that He demonstrates his knowledge of this factor before a verifier, for example using the Schnorr Identification Protocol:
  • the process that performs the decryption of the messages is the tester, which performs the following steps:
  • the null knowledge test for the pair of incoming / outgoing integrity tests is [f, s].
  • the method contemplates the generation of a second incoming integrity test on each node of the decryption process.
  • These second incoming integrity tests which we will identify as second intermediate incoming integrity tests, will contain the value of the transformation that the decryption process in each node has performed on the total of the messages contained in each block of incoming messages, used to calculate the first incoming or intermediate incoming integrity test of said node.
  • This transformation in the specific case of a mixnet, could be a permutation together with a decryption, decryption or re-encryption with partial decryption.
  • this second intermediate or incoming intermediate integrity test will be used to create the outgoing integrity tests.
  • the information of the transformation carried out in the incoming encrypted messages e.g., permutation applied to the messages
  • the information of the transformation carried out in the incoming encrypted messages will be used to locate the situation of the incoming messages once they have been transformed by the decryption process.
  • transformed message blocks can be created that contain exactly the same incoming encrypted messages after being transformed. From the contents of the transformed message blocks the intermediate outgoing or outgoing integrity tests would be created.
  • the information from the second intermediate or incoming intermediate integrity test should not facilitate the individual correlation between the encrypted incoming messages and the transformed messages.
  • the method contemplates that the information contained in the second integrity test related to the location of the messages after the transformation is given in an order that does not allow a certain correlation between these messages and the originals.
  • the positions can be sorted by their value (as in the example) or randomly.
  • the verification stage will consist in verifying if the value Ie 'is the same as the value Is. Otherwise, the decryption process has not generated the same messages that the senders had originally encrypted.
  • P (Hm 1 ) could be the independent encryption of Hm 1 or the bits of the encrypted text corresponding to Hm 1 , depending on whether the messages are concatenated with their integrity tests before encryption or after.
  • the verification will be carried out comparing that the value of the outgoing integrity tests of blocks of Transformed messages are the result of applying the transformation of the decryption process to the first incoming or intermediate integrity test on the block containing exactly the same messages before being transformed.
  • the outgoing integrity tests of the blocks will be calculated using the information of the transformation contained in the second incoming integrity test of each incoming block (as previously advanced in the generation phase of the second incoming integrity test) . In the case of a mixnet, this information would be the location of the messages after the permutation.
  • this verification will use re-encryption, decryption or re-encryption tests with partial decryption for this verification, of those known in the state of the art.
  • the outgoing integrity test consists of the operation ⁇ of a block of decrypted messages is:
  • decryption is calculated as:
  • the process can perform a null knowledge test that demonstrates your knowledge of this factor before a verifier, for example using the Schnorr Identification Protocol.
  • a decryption method that maintains anonymity based on a mixnet with encryption will be used. In that case, as many incoming integrity tests will be generated as nodes have the mixnet:
  • Each first incoming integrity test will be generated on the set of encrypted incoming messages of each node of the mixnet.
  • the first incoming integrity test can be generated by the preceding node from the set of encrypted messages at its exit, if any, in which case it would be called an intermediate integrity test (as previously entered), and / or the same node that receives incoming encrypted messages.
  • the preceding node can digitally sign Ia first incoming integrity test or intermediate test that goes to the next node.
  • the comparison is necessary to decrypt the integrity tests to be compared. That is, the comparison is made between the second incoming integrity test and the decrypted intermediate integrity tests.
  • the first incoming integrity test is compared with the integrity test of the first node, this one with that of the next node, etc; marking as malicious nodes those where its integrity test does not coincide with that of the previous node.
  • This encryption value can be part of the second incoming integrity test (see example in the section where the creation of this second incoming integrity test is explained).
  • the checking of intermediate integrity tests is performed using null knowledge tests, such as the Schnorr Identification Protocol:
  • null knowledge tests such as the Schnorr Identification Protocol
  • the null knowledge test for the pair of incoming / outgoing integrity block messages of a node is [f, s].
  • the verifier divides the outgoing integrity test by the incoming integrity test:
  • the verification process is carried out by comparing the pairs of incoming / outgoing integrity tests referred to to the same message block.
  • the verification process is carried out once the mixing is finished. Said verification process is carried out to validate the results and, in the opposite case, identify the node or nodes that have acted fraudulently.
  • these integrity tests can be used during the mixing process when the system is formed by several nodes.
  • the intermediate integrity test corresponding to the input of the next node is generated at its output and, using the exhaustive comparison algorithm described above, it is evaluated how it works
  • the node is removed from the mixnet by discarding its set of output messages and providing the subsequent node with the output of the previous one.
  • a Paillier cryptographic algorithm will be used for data encryption and a encryption mixnet.
  • an EIGamal cryptographic algorithm based on elliptic curves and a re-encryption mixnet will be used.
  • a new random value r 2 will be generated and calculated (r 2 .G, r 2 .Q).
  • This method is likely to be used in electronic voting environments for the verification of the correct decryption of the votes preserving the anonymity of the voters.
  • the votes are encrypted using the EIGamal encryption algorithm
  • the decryption system is a re-encryption mixnet consisting of several nodes, in the last of which the decryption process of the votes is performed.
  • an authorized auditor requests the generation in each node of the first incoming integrity tests, the outgoing integrity tests and the Second incoming integrity tests to verify the correct functioning of the mixnet.
  • the encrypted input votes in each node are divided into several blocks randomly, and the tests are calculated on the integral messages of each block.
  • the auditor selects a numerical combination (unknown before the permutation and re-encryption process is over) from which the messages that form each block are randomly defined.
  • the steps of the implementation are as follows: - The verification process begins once all the nodes (except the last one) have exchanged and re-encrypted the votes. For the first node, the auditor randomly defines the votes that make up each block:
  • the first tests of incoming integrity are calculated from the multiplication of the votes encrypted at the entry of the node belonging to each block.
  • the node generates the second incoming integrity tests, where it indicates the re-encrypted votes at its exit that belong to each of the previously defined blocks, and the joint re-encryption factor of each block (as we are using the algorithm of EIGamal encryption, the joint re-encryption factor is equal to the sum of the re-encryption factors of the votes that make up each block).
  • the node generates the null knowledge tests (for example using the Schnorr Identification Protocol) that demonstrate that, for each block, the outgoing integrity test is the re-encryption of the first incoming integrity test.
  • the auditor verifies the null knowledge tests and audits the next node by repeating the same steps.
  • the message blocks are redefined so that each new block contains a message belonging to each of the blocks defined above.

Landscapes

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

Abstract

La presente invención describe un método de verificación que permite corroborar que el proceso de descifrado se ha llevado a cabo honestamente por parte de Ia entidad que ha realizado este proceso. El método descrito en esta invención se caracteriza porque la verificación del correcto descifrado de un conjunto de mensajes cifrados, se basa en la prueba de que el resultado de operar bloques de los mensajes cifrados con una operación Φ es igual al cifrado del resultado de operar bloques compuestos por los mismos mensajes descifrados con una operación Θ. Para ello, se genera de una primera prueba de integridad entrante para cada bloque de mensajes cifrados, basada en la operación Φ realizada sobre el conjunto de los mensajes cifrados y se verifica que ésta se corresponda con las pruebas de integridad saliente basadas en la operación Θ de los mensajes descifrados que componen cada bloque.

Description

Método de verificación de procesos de descifrado
Campo de Ia invención
La presente invención es apta para aplicaciones donde se requiere verificar Ia integridad de los mensajes que han sido sometidos a un proceso de descifrado. Concretamente, es de especial relevancia en procesos de descifrado en los que se debe preservar el anonimato de los emisores de los mensajes cifrados, tal como el realizado por una mixnet. El método es susceptible de ser utilizado en entornos de voto electrónico remoto.
Antecedentes de Ia invención
Cuando es necesario el envío de información a través de un medio considerado no seguro conservando Ia confidencialidad, ésta se cifra de forma que sólo el destinatario sea capaz de descifrarla. De este modo, otras personas, entidades o sistemas que accedan a esta información serán incapaces de leerla.
Existen métodos para asegurar Ia integridad del mensaje cifrado durante el envío, como por ejemplo las firmas digitales. Pero el destinatario final generalmente debe confiar en que el proceso de descifrado Ie proporciona el mensaje que realmente se corresponde al contenido cifrado que ha recibido. Normalmente, se confía en que el software utilizado para el descifrado es correcto y no cambia los resultados del cifrado, pero cuando esta operación se delega a un tercero, existe Ia posibilidad de que éste manipule Ia información después del cifrado. Esta problemática solo ha sido contemplada en Ia actualidad por los procesos de descifrado de mensajes donde los emisores deben permanecer en el anonimato. Dado que en estos sistemas el proceso usual no entraña solamente el descifrado de los mensajes recibidos, sino otras operaciones que contribuyen a Ia anonimización de éstos, se han desarrollado diversos métodos que permiten Ia verificación de su correcto funcionamiento.
Preservación del anonimato en los procesos de descifrado Existen entornos en los que el proceso de descifrado debe preservar el anonimato de las entidades que han cifrado Ia información. Un ejemplo de ellos son los procesos de votación electrónica, en los que es importante que no se pueda relacionar el contenido del voto con Ia identidad de su emisor. Para ello, existen procesos de descifrado de información en los que se rompe Ia correlación de Ia información cifrada con Ia información descifrada. La técnica más conocida en este entorno es Ia basada en mixnets.
Una mixnet es una red de permutaciones que se compone de uno o varios servidores o nodos que realizan procesos de permutación y descifrado de Ia información. El objetivo es que el orden de Ia información cifrada que se introduce en Ia mixnet no se corresponda con el de Ia información descifrada que se obtiene después de ser procesada por Ia mixnet. En Ia técnica de descifrado basada en mixnets, el primer nodo recibe mensajes de entrada provenientes de distintos emisores que previamente han sido cifrados y les aplica una función de transformación, que generalmente consiste en permutarlos, cifrarlos y/o descifrarlos (dependiendo del tipo de mixnet). Si existen más nodos, los mensajes transformados se reenvían al siguiente nodo. La misma operación de permutación y cifrado o descifrado es repetida en cada nodo y los mensajes transformados enviados al siguiente hasta que los mensajes transformados son recibidos por un nodo final. Los mensajes transformados obtenidos por este último nodo son los mensajes originales antes de haber sido cifrados por los emisores. El propósito de las mixnets es crear un canal de comunicación anónimo con el fin de preservar Ia privacidad de los participantes en una comunicación.
El origen de las mixnets se remonta al concepto creado por Chaum [Ch81], que fue originalmente propuesto para lograr anonimato en el envío de correo electrónico. En esta propuesta se utiliza cifrado RSA anidado con relleno aleatorio (conocido también como padding). Cada nodo de Ia mixnet tiene una clave pública pk¡ y su correspondiente clave privada sk¡. Los mensajes que se enviarán a través de Ia mixnet se preparan en el origen por los emisores. Esta preparación consiste en el cifrado anidado por parte del emisor de su mensaje m un número de veces igual al número de nodos que forman Ia mixnet. El cifrado se lleva a cabo utilizando las claves públicas de los nodos en el orden inverso a Ia trayectoria en Ia que se procesará el mensaje en Ia mixnet. De esta manera se forma un cifrado anidado el cuál se irá descifrando a medida que recorra los diferentes nodos: M = Pk1 (JJk2... {pkn.i {pkn (m, rn), rn-i), rn.2)... , n)
De esta manera, el mensaje m es cifrado de manera repetitiva usando diferentes claves públicas y relleno aleatorio r¡. El primer nodo utiliza su clave privada Sk1 para descifrar Ia parte que Ie corresponde de los mensajes recibidos, elimina el relleno aleatorio r-¡ y entonces lleva a cabo Ia función de permutación y reenvía los mensajes al siguiente nodo. Esta operación es repetida hasta que se recuperan los mensajes originales en el último nodo.
De Ia propuesta descrita en [Ch81] se han derivado una serie de trabajos que se pueden agrupar como "mixnets chaumianas" o mixnets de descifrado, por ejemplo [FOO92 y JJR02]. En todas ellas, se busca el anonimato de los mensajes mediante un cifrado anidado inicial y una mixnet con descifrado y permutación. El problema principal de estas propuestas de mixnet es que, a mayor número de nodos de Ia mixnet, mayor es el número de operaciones de cifrado que debe realizar el emisor. Además, como en cada cifrado se añade un relleno aleatorio, el tamaño del mensaje cifrado aumenta proporcionalmente al número de nodos.
Para solucionar estos problemas, Park et al. [PIK94] propusieron Ia primera mixnet de re-cifrado y descifrado parcial. En esta propuesta, los mensajes que se envían a Ia mixnet son cifrados una única vez por medio de una clave pública utilizando criptosistema de re-cifrado. Por criptosistema de re- cifrado se entiende aquel en el que se cumple que, dada un clave pública P, su correspondiente clave privada S, y un mensaje cifrado C obtenido a partir del cifrado de un mensaje m con Ia clave P, si ciframos de nuevo el mensaje cifrado C con Ia misma clave P, obtendremos un nuevo texto cifrado C que al ser descifrado una única vez con Ia clave S dará como resultado el mismo mensaje original m:
C= Pk (m) C=Pk(C) Sk (C) = Sk(C)= m
Un ejemplo de esquema de cifrado con propiedades de re-cifrado es EIGamal o Paillier.
En este tipo de propuestas, el primer nodo recibe los mensajes cifrados, los permuta, los vuelve a cifrar con Ia misma clave pública P y los descifra parcialmente con una clave propia del nodo. El re-cifrado en los nodos se lleva a cabo haciendo uso de valores aleatorios que son obtenidos algebraicamente combinándolos con el valor aleatorio utilizado en el cifrado anterior:
Figure imgf000006_0001
Esta operación de permutación, cifrado y descifrado parcial se repite en cada nodo de Ia mixnet. La salida del último nodo son los mensajes totalmente descifrados.
En cualquiera de las propuestas de mixnet descritas previamente (chaumianas o de re-cifrado) se contempla el anonimato de los emisores como el objetivo principal, pero tienen un problema común: no son resistentes a ataques de integridad de los mensajes cifrado. Si uno de los nodos cambia los mensajes transformados por otros distintos, el siguiente nodo no puede detectarlo.
Para detectar esta práctica deshonesta, propuestas posteriores han dado importancia a una propiedad de las mixnets, llamada verificabilidad universal. La propiedad de verificabilidad consiste en aportar una prueba de Ia correcta operación de Ia mixnet que cualquier observador sea capaz de verificar. Esta verificación permite comprobar que los mensajes de salida de un nodo son los mismos (transformados) que recibió dicho nodo. Sako y Killian [SK95] propusieron Ia primera mixnet universalmente verificable basada en Ia mixnet de re-cifrado con descifrado parcial propuesta en [PIK94]. En Ia mixnet propuesta, cada nodo publica los resultados intermedios y el descifrado parcial de cada entrada antes de llevar a cabo Ia permutación y re-cifrado. Entonces los nodos proveen una prueba de las operaciones de re-cifrado y permutación.
La prueba de permutación se basa en Ia siguiente prueba de conocimiento nulo: Supongamos que τr¡ y η son los valores de permutación y de aleatoriedad usados por un nodo /. Entonces el nodo genera otra transformación λ¡ y valor de aleatoriedad t¡, y lleva a cabo el re-cifrado y Ia permutación de acuerdo a estos nuevos parámetros generando una segunda salida permutada. El verificador reta al nodo a revelar, ya sea (λ¡, f¡), Io que prueba que Ia segunda transformación se realizó correctamente, o bien Ia diferencia entre Ia primera y Ia segunda transformación (λ¡π¡~1, (r¡ - f¡)), que permite al verificador comprobar cómo Ia salida de Ia transformación original puede ser obtenida permutando y re-cifrando las salidas de Ia segunda transformación. Con una probabilidad del 50% se logra comprobar Ia correcta operación de un nodo en Ia mixnet.
En 1998, Abe [Ab98] propuso una extensión del esquema descrito en [SK95] con el fin de reducir Ia cantidad de trabajo requerido por el verificador y que el número de verificaciones sea independiente del número de nodos. En Ia mixnet de re-cifrado propuesta, los probadores (nodos) llevan a cabo trabajo adicional para proveer una prueba conjunta de sus acciones. La contribución clave consiste en formar una cadena de todas las pruebas de los nodos, de forma que el verificador sólo necesite verificar Ia salida del último nodo. Para probar Ia correcta operación de re-cifrado y permutación, los nodos llevan a cabo una transformación secundaria tal como en [SK95]. La diferencia aquí es que Ia segunda transformación, en lugar de estar basada en los mensajes de entrada del nodo, está basada en Ia segunda transformación del nodo previo. Si el verificador hace el reto de Ia segunda transformación, entonces todos los nodos revelan los valores de su segunda transformación de manera simultánea. En cambio, si el verificador hace el reto para Ia diferencia entre Ia primera y Ia segunda transformación, los nodos computan secuencialmente Ia diferencia y Ia revelan en su turno. En cualquier caso, el verificador solamente necesita verificar una sola transformación secundaria, o Ia diferencia entre una transformación primaria y secundaria. El descifrado también puede ser verificado de manera independiente al número de nodos, dado que los nodos cooperan para generar el factor de descifrado conjunto. También producen una prueba de conocimiento Chaum-Pedersen encadenada que comprueba que el factor de descifrado fue generado correctamente.
En el 2002, Jakobsson et al. [JJR02] presentaron una técnica de verificación llamada RPC (Randomized Partial Checking). Esta técnica puede aplicarse a cualquier mixnet independientemente de los mecanismos de cifrado y permutación que utilicen. En RPC, cada nodo debe revelar aleatoriamente Ia relación entrada-salida de Ia mitad de los mensajes (i.e., Ia permutación y una prueba del cifrado/descifrado aplicado a Ia mitad de los mensajes). De esta manera, un nodo puede corromper n mensajes de forma encubierta con una probabilidad de no detección de 2'". Es decir, Ia corrupción de cualquier subconjunto de mensajes tiene una probabilidad más alta de ser detectado de que no (excepto en el caso de que se modifique un mensaje, en el que Ia probabilidad sería Ia misma). Por su parte, Ia privacidad de los mensajes es protegida en base a una probabilidad, que se ve reducida cuanto más grande sea el número de nodos, o bien, a través de una cuidadosa selección de mensajes a auditar. Al seleccionar los mensajes a auditar se debe considerar que puede ser descubierta Ia trayectoria completa de un mensaje a través de Ia mixnet, Io que violaría Ia privacidad. Esto puede ser resuelto agrupando los nodos consecutivos en parejas, es decir, el nodo 1 con el nodo 2, el nodo 3 con el nodo 4, etc. Teniendo esta agrupación de nodos, se selecciona de manera aleatoria Ia mitad de los mensajes del primer nodo de cada pareja y Ia mitad restante de los mensajes del segundo nodo dependerá siempre de los nos seleccionados en el primer nodo de su pareja. Entonces se lleva a cabo Ia verificación de los mensajes seleccionados en cada nodo por parejas. De esta manera se previene que Ia trayectoria de un mensaje sea claramente descubierta. Aún así, Ia privacidad de los mensajes dependerá de que al menos Ia mitad de los nodos sean honestos.
Aunque en este último método, gracias al emparejamiento de los nodos, Ia trayectoria de un mensaje es más difícil ser descubierta, al revelar dónde ha ido a parar cada uno de los votos de Ia mitad de los mensajes en cada nodo Ia distribución de probabilidad de que un mensaje de entrada en Ia mixnet se encuentre en cualquier posición a Ia salida no es uniforme. De hecho debe existir un número mayor de dos nodos (o una pareja de nodos), para evitar que un atacante sepa situar los votos entre dos posibles subconjuntos de resultados.
En el 2004, Chaum [ChO4] solucionó esta cuestión agrupando los nodos consecutivos de 4 en 4. En cada agrupación, se selecciona de forma aleatoria Ia mitad a desvelar de los mensajes del primer nodo, y Ia mitad restante del segundo nodo. En el tercer nodo se seleccionan aleatoriamente Ia mitad de los mensajes que han sido desvelados en el segundo nodo y Ia mitad de los que no para ser mostrados, y en el cuarto nodo se desvela Ia mitad de los mensajes correspondiente a los que no han sido revelados en el tercero. De este modo Ia probabilidad de que un mensaje en una determinada posición a Ia entrada de Ia mixnet esté en cualquier posición a su salida es Ia misma. Por otro lado, Ia probabilidad de detección de una manipulación, a pesar de que sea en Ia mayoría de los casos superior a Ia de no detección, continua siendo muy baja. Por ejemplo, Ia detección de Ia manipulación de dos votos es del 75% y por Io tanto no será detectable en el 25% de los casos. Al ser independiente del número de votos, si Ia modificación se hace sobre un conjunto de 8 votos o de 800 votos no influencia en Ia probabilidad de detección. Por Io que en el caso de 8 votos significa que una manipulación del 25% de los votos no se detectaría en el 25% de los casos.
En Ia invención EP1633077A2, también descrita en [NeO1] se propone una mixnet universalmente verificable. En esta invención se describe Ia verificación de Ia correcta operación de una mixnet con cifrado EIGamal a través de pruebas interactivas de conocimiento nulo. En este esquema, las permutaciones de los mensajes se basan en Ia propiedad de invariabilidad de polinomios independientemente de Ia permutación de sus raíces. Este método de verificación mejora las propuestas anteriores basadas en RPC en el aspecto de Ia privacidad del votante, dado que no se basa en Ia revelación de las trayectorias de un cierto número de mensajes en cada nodo, sino en las relaciones matemáticas entre los mensajes de entrada y salida. Además, Ia probabilidad de detección de un mensaje modificado de forma fraudulenta aumenta considerablemente, siendo este esquema el más seguro de los presentados hasta ahora. La principal desventaja de este sistema es que Ia realización y comprobación de todas las pruebas matemáticas que garantizan Ia fiabilidad del proceso tiene un coste computacional muy alto. Posteriormente, GoIIe et al. [Go02] propusieron un nuevo tipo de mixnet universalmente verificable llamada "Optimistic Mixing" con pruebas significativamente más rápidas que los otros sistemas cuando todos los nodos de Ia mixnet actúan de forma honesta. Se trata de realizar para cada nodo una multiplicación del conjunto total de los mensajes de entrada y otra de los de salida, y probar en conocimiento nulo que el resultado de las dos multiplicaciones contiene el mismo valor cifrado. Cuando se detecta alguna manipulación, dada Ia dificultad de detectar el nodo malicioso, se realiza un mixing alternativo usando un esquema más lento pero más fiable, como por ejemplo [NeOI]. Este esquema también mejora los sistemas RPC respecto a Ia preservación de Ia privacidad del votante, dado que no es necesario revelar ninguna permutación ni otro tipo de información sobre los mensajes cifrados para realizar el proceso de verificación. La probabilidad de detección de mensajes modificados puede ser mejor en algunos casos que en los sistemas RPC, o peor en otros. Dado que Ia verificación se basa en Ia comprobación de que el resultado de Ia multiplicación de los mensajes a Ia entrada y a Ia salida de un nodo es constante, un atacante podría modificar dos mensajes de forma que esta modificación se anule mediante Ia multiplicación (por ejemplo multiplicando un mensaje por un factor y dividiendo otro por el mismo). Así pues, en el caso en el que se modifique un cierto número de mensajes siguiendo esta pauta, esta manipulación no se detecta. En cambio, si las manipulaciones en los mensajes no se anulan cuando se multiplica todo el conjunto, éstas son detectadas.
Algunos de los esquemas de mixnets verificables descritos previamente consiguen un proceso de verificación fiable haciendo uso de numerosas pruebas de conocimiento nulo, Io cual es muy costoso computacionalmente, por Io que llevar a Ia práctica dichos esquemas para aplicaciones críticas en el tiempo no resulta factible. Otros, como los basados en RPC, tienen una probabilidad de detección considerablemente baja y pueden afectar a Ia privacidad de los usuarios. Por otro lado, el esquema más eficiente ([Go02]) necesita recurrir a sistemas más lentos en caso de detección de error.
La presente invención se basa en Ia ¡mplementación de un método de descifrado anónimo verificable, que resuelva los problemas de eficiencia de las mixnets verificables que utilizan pruebas de conocimiento nulo manteniendo una alta probabilidad de detección, y que no dependa del número de nodos para garantizar el anonimato de los emisores.
Breve exposición de Ia invención
La presente invención describe un método de verificación que permite corroborar que el proceso de descifrado se ha llevado a cabo honestamente por parte de Ia entidad que ha realizado este proceso (i.e., que los datos descifrados se corresponden exactamente con los datos cifrados).
Este método de verificación es aplicable en procesos de descifrado en los que se quiere mantener el anonimato de la/s entidad/es que han realizado el cifrado de los datos, como en una mixnet. El método descrito en esta invención se caracteriza porque Ia verificación de
Ia corrección del descifrado de un conjunto de mensajes cifrados se basa en Ia prueba de que el resultado de operar bloques de los mensajes cifrados con una operación Φ es igual al cifrado del resultado de operar bloques de los mensajes descifrados con una operación Θ.
En una implementación básica, el método comprende las siguientes etapas: a. Cifrado individual de cada mensaje del conjunto de mensajes por parte de uno a varios emisores mediante una clave pública de un algoritmo criptográfico asimétrico con propiedades homomórficas, que cumpla con Ia propiedad de que operando mensajes cifrados con una primera operación Φ se obtenga el cifrado de los mensajes operados con una segunda operación Θ; b. Generación de una primera prueba de integridad entrante del conjunto de los mensajes cifrados basada en Ia operación Φ realizada sobre bloques del conjunto de los mensajes cifrados de entrada; c. Descifrado de los mensajes cifrados utilizando una clave privada relacionada con Ia clave pública de cifrado; d. Generación de una prueba de integridad saliente basada en Ia operación directa de bloques de los mensajes descifrados con Ia operación Θ; e. Generación de una segunda prueba de integridad entrante que relaciona Ia primera prueba de integridad entrante de los bloques del conjunto de mensajes cifrados en Ia etapa a), con Ia prueba de integridad saliente de los bloques de los mensajes descifrados en
Ia etapa c); yVerificación del correcto descifrado del conjunto de mensajes mediante Ia comparación de las pruebas de integridad saliente de los bloques de mensajes descifrados generada en Ia etapa d) y Ia primera prueba de integridad entrante de los bloques cifrados en Ia etapa a), relacionadas por Ia segunda prueba de integridad entrante.
En una implementación preferente, el método utiliza algoritmos criptográficos con propiedades homomórficas aditivas o multiplicativas, tales como EIGamal, EIGamal con exponenciación de mensaje, Paillier o sistemas basados en Curvas Elípticas. En una implementación específica con EIGamal con exponenciación de mensaje o Paillier, Ia operación Φ es el producto de los componentes resultantes del algoritmo de cifrado y Ia operación Θ es una suma aritmética. En el caso de los sistemas basados en Curvas Elípticas Ia operación Φ es Ia suma de puntos de Ia curva elíptica y Ia operación Θ es una suma aritmética.
En otra implementación específica con EIGamal, Ia operación Φ es el producto de los componentes resultantes del algoritmo de cifrado y Ia operación Θ es también un producto. Se considera el uso de códigos para representar el contenido de los mensajes que permitan su posterior extracción individual a partir del resultado de Ia operación Θ de los mensajes mediante procesos de factorización.
El método contempla como alternativa de implementación Ia generación de una prueba de integridad del mensaje, y el cifrado del mensaje con Ia concatenación de dicha prueba. Como alternativas de cifrado, se propone que éste se realice sobre Ia concatenación del mensaje y su prueba de integridad, o que ambos de cifren por separado y se concatenen posteriormente. Como ejemplos de implementación, Ia prueba de integridad puede obtenerse a partir de una función hash criptográfica (p.e., SHA1) o una función de compactación (p.e., ZIP).
El método también contempla como alternativa que el proceso de descifrado utilizado se base en uno que preserve el anonimato del emisor, tal como una mixnet de descifrado, re-cifrado o re-cifrado con descifrado parcial.
En este caso, el método contempla una extensión de Ia verificación del proceso de descifrado basado en Ia generación de pruebas de integridad intermedia de los grupos de mensajes transformados de salida generados por el nodo de Ia mixnet y que serán utilizados como entrada en el siguiente nodo de Ia mixnet. Estas pruebas de integridad intermedia se generan sobre los bloques de mensajes transformados en el nodo que recibe estos mensajes, en el nodo que envía estos, o en ambos nodos.
Esta extensión de Ia verificación consiste en poder implementar los mismos procesos de verificación sobre las pruebas de integridad saliente que se realizan utilizando las pruebas de integridad entrante pero con las pruebas de integridad intermedias en lugar de las entrantes. Como una extensión de Ia verificación, también se contempla Ia posibilidad de poder hacer verificaciones entre las pruebas de integridad intermedias que recibe y genera un nodo. Este proceso de verificación se contempla para verificaciones online (i.e., para hacer verificaciones del correcto funcionamiento de uno o más nodos mientras el descifrado con mixnet se está ejecutando y aún no ha terminado) o offline (i.e., a posteriori para poder detectar si qué nodo del mixnet a actuado de forma deshonesta si Ia verificación de las pruebas de integridad entrante y saliente de este nodo falla).
El método también prevé que el proceso verificación de las pruebas de integridad se realice de forma distribuida.
En una implementación práctica de este método se contempla su utilización en entornos de voto electrónico para Ia verificación del correcto descifrado de los votos preservando el anonimato de los votantes.
Breve descripción de los dibujos
La Figura 1a identifica los componentes del método de verificación de procesos de descifrado: o 118: mensajes originales. o 119: mensajes cifrados. o 120: sistema de descifrado. o 121 : mensajes descifrados. o 122: primera prueba de integridad entrante. o 123: prueba de integridad saliente. o 124: segunda prueba de integridad entrante.
La Figura 1b muestra el proceso general que forma Ia invención presentada. En ella se detalla de forma visual el funcionamiento del proceso en el que los mensajes originales 118 son transformados en los mensajes descifrados120, en un proceso verificable de cifrado y descifrado. Los procesos involucrados en esta Figura 1b son: o Los mensajes originales 118 se cifran 210, de forma que se dispone de mensajes cifrados 119 a Ia entrada del sistema de descifrado 120. o Una vez están cifrados 119, se calcula 211 Ia primera prueba de integridad entrante 122 a partir operar los mensajes cifrados de entrada 119. o Los mensajes cifrados 119 se introducen en el sistema de descifrado 120, donde se realiza el descifrado de los mensajes 212. o A partir de los mensajes descifrados 121 se calcula 213 Ia prueba de integridad saliente 123. o La primera prueba de integridad entrante 122 se descifra 214 antes, durante o después del proceso de descifrado de los mensajes 212. o Comparando 215 el resultado del descifrado de Ia primera prueba de integridad entrante (segunda prueba de integridad entrante) 124 con Ia prueba de integridad saliente 123 se verifica, en caso de coincidencia, que los mensajes descifrados 121 a Ia salida del sistema de descifrado 120 coinciden con los mensajes originales 118 a Ia entrada del sistema de descifrado 120.
La Figura 1c muestra una implementación preferente de Ia invención donde se usa una mixnet formada por varios nodos consecutivos para preservar el anonimato de los remitentes de los mensajes. Los componentes de Ia implementación son: o 110: nodos de Ia mixnet. o 119: mensajes cifrados. o 121 : mensajes descifrados. o 122: primera prueba de integridad entrante. o 123: prueba de integridad saliente. o 125: pruebas de integridad intermedias.
Las pruebas de integridad intermedias se obtienen a partir del cálculo de los mensajes cifrados a Ia salida/entrada conectada con un nodo posterior o anterior.
Las Figuras 2a, 2b y 2c muestran el funcionamiento de los algoritmos propuestos para llevar a cabo las comparaciones de las pruebas de integridad intermedias con el objetivo de identificar nodos maliciosos en una implementación preferente donde el proceso de descifrado mantiene el anonimato de los emisores de los mensajes mediante el uso de una mixnet.
Estos algoritmos proporcionan Ia opción de identificar, en caso de detectar un comportamiento malicioso, el nodo cuyo funcionamiento no es el correcto. En Ia Figura 2a, se describe Ia primera fase del algoritmo de búsqueda binaria, consistente en Ia identificación del primer nodo malicioso de Ia mixnet. Los procesos involucrados en esta Figura 2a son: o En el primer paso 201 se procede a Ia comparación de Ia prueba de integridad entrante 101 con Ia prueba de integridad intermedia del nodo n/2 105. o Si no se detecta ningún tipo de manipulación en el paso anterior, Ia siguiente comparación 202 se realiza entre el nodo n/2 105 y el nodo con identificador (n+n/2)/2 107. o Si se detecta alguna diferencia entre los nodos 110 y n/2 105, Ia siguiente comparación 203 se realizará entre el nodo 110 y el nodo n/4 103. o Se repiten los pasos 202 y 203 hasta haber comparado las pruebas de integridad necesarias para detectar el nodo malicioso.
En Ia Figura 2b se describe Ia segunda fase del algoritmo de búsqueda binaria, en Ia que se identifican otros nodos maliciosos existentes en Ia mixnet aparte del encontrado inicialmente. Los procesos involucrados en Ia figura son: o Una vez se ha identificado el nodo malicioso 111 , se comprueba Ia posible existencia de otros comparando 204 Ia prueba de integridad 103 de éste con Ia del último nodo 117, 109. o En caso de que las pruebas sean diferentes, se repiten los pasos descritos en Ia Figura 2a con esta prueba de integridad 103 como referencia, para así detectar otros nodos fraudulentos.
En Ia Figura 2c se describe el algoritmo de comparación exhaustiva, en Ia que se comprueba nodo a nodo Ia naturaleza de su comportamiento. Los procesos descritos son: o De forma secuencial se compara 206 Ia prueba de integridad entrante
101 con Ia prueba de integridad del nodo 110 (102). o En 207 se compara Ia prueba de integridad del nodo 110 (102) con Ia del nodo 111 (103)... etc. o Se marcan como nodos maliciosos aquellos donde no coincida su prueba de integridad con Ia del nodo anterior (112). En Ia Figura 3 se describe una implementación práctica recomendada del método en un entorno de Mixnet. Los componentes de Ia implementación son: o 110: nodo de Ia mixnet. o 119: mensajes cifrados. o 122: primera prueba de integridad entrante (o entrante intermedia). o 123: prueba de integridad saliente (o saliente intermedia). o 124: segunda prueba de integridad entrante (o entrante intermedia). o 126: bloques de mensajes. o 127: mensajes transformados.
Los procesos involucrados en Ia figura son por este orden: o Implementación de un proceso de descifrado 216 sobre un nodo de una Mixnet 110 y obtención de los mensajes transformados 127 a partir de los mensajes cifrados 119. o Generación 217 de las primeras pruebas de integridad 122 de los bloques
126 de mensajes cifrados 119. o Generación 219 de Ia segundas pruebas de integridad entrante 124 de los bloques 126 a partir de Ia información de los de mensajes cifrados 119 contenidos en cas uno de estos bloques 126, y Ia información de Ia transformación del proceso de descifrado 216 que fue aplicada a cada uno de los votes cifrados 119 para obtener los votos transformados 127. o Generación 218 de las pruebas de las pruebas de integridad salientes
123 de cada bloque 126 a partir de Ia localización del conjunto de los mensajes transformados 127 que se corresponden a los mensajes cifrados 119 de dicho bloque 126, utilizando Ia información de localización contenida en Ia segunda prueba de integridad entrante 124 de dicho bloque 127, y operando los mensajes transformados 127 de dicho bloque
126. o Verificación 220 para cada bloque 126 de que Ia prueba de integridad saliente 123 de dicho bloque 126 es Ia primera prueba de integridad entrante 122 del mismo bloque 126 transformada por el nodo de Mixnet 110, utilizando Ia información de transformación aplicada por el proceso de descifrado 216 a cada mensaje cifrado 119 de dicho bloque 126 y que se encuentra almacenada de forma acumulativa en Ia segunda prueba de integridad entrante 124 de dicho bloque 126.
Descripción detallada de Ia invención
La presente invención describe un método de verificación que permite corroborar que el proceso de descifrado se ha llevado a cabo honestamente por parte de Ia entidad que ha realizado este proceso (i.e., que los datos descifrados se corresponden exactamente con los datos cifrados). Este método de verificación es aplicable en procesos de descifrado en el que se quiere mantener el anonimato de la/s entidad/es que han realizado el cifrado de los datos, tal y como en una mixnet.
El método de verificación de descifrado descrito en Ia presente invención permite validar Ia integridad de los mensajes operados por el proceso de descifrado por medio de Ia generación y verificación de una prueba de integridad de los mensajes cifrados antes y después de ser transformados por este proceso. El método se aplica directamente sobre los mensajes entrantes y salientes del proceso de descifrado, por Io que es independiente del mecanismo de descifrado utilizado, ya sea un descifrado directo o un mecanismo que permita preservar el anonimato de las entidades que han cifrado los mensajes (p.e., una mixnet).
Concretamente en el caso de las mixnet, este método permite verificar si Ia transformación y permutación de los mensajes cifrados se ha llevado a cabo correctamente en cada uno de los nodos, permitiendo mediante una o varias pruebas de integridad corroborar que el contenido de los mensajes entrantes no ha sido modificado durante las operaciones de permutación y transformación ejecutadas por Ia mixnet.
El método de verificación descrito en Ia presente invención comprende las siguientes etapas:
a) Cifrado b) Generación de las primeras pruebas de integridad entrante c) Descifrado d) Generación de pruebas de integridad saliente e) Generación de las segundas pruebas de integridad entrante f) Verificación
Etapa de cifrado:
La etapa de cifrado consiste en cifrar los mensajes con el objetivo de preservar Ia privacidad de éstos. En esta etapa se utilizan criptosistemas de clave pública con propiedades homomórficas. Existen actualmente varios algoritmos del estado de Ia técnica que cumplen con esta propiedad, como por ejemplo EIGamal, Paillier, o basados en curvas elípticas. El cifrado se realizará con Ia componente pública del algoritmo de cifrado P.
Durante esta etapa los mensajes se construirán de forma que los mensajes cifrados puedan operarse entre ellos, obteniendo como resultado Ia operación cifrada de los contenidos de los mensajes. A modo de ejemplo, suponiendo d y c2 el resultado de cifrar los mensajes m1 y m2 respectivamente utilizando Ia clave pública P de un algoritmo de cifrado asimétrico con propiedades homomórficas, el cifrado se hará de forma que:
d = P(m1) c2 = P(m2) d Φ c2 = P(m1 Θ m2)
Siendo Φ Ia operación realizada entre los textos cifrados para conseguir el cifrado de los mensajes operados con Ia operación Θ.
En una implementación preferente, en esta etapa de cifrado del mensaje, se generará una prueba de integridad del mensaje Hm y se combinará con el mensaje antes de ser cifrado. Esta prueba de integridad puede ser el resultado de aplicar al mensaje una función resumen, tal como una función criptográfica hash (e.g., SHA1), o de compactación, tal como una función de compresión de datos (e.g., ZIP). Suponiendo que Ia función realizada es una función criptográfica de hash h() podemos expresar este paso de Ia siguiente manera: Hm = h(m) La combinación | entre el mensaje y su prueba de integridad Hm puede realizarse mediante una concatenación antes del cifrado: d = P(m1 | Hm1)
O de forma alternativa Ia concatenación puede realizarse después de los cifrados individuales del mensaje y Ia prueba de integridad de éste: d = P(m1) | P(HmI)
De forma optativa, Ia integridad del mensaje cifrado, concatenado con su prueba de integridad o no, podría protegerse mediante una firma digital con una clave secreta Se.:
Se(c1) = Se(P(m1)) ó Se(CI) = Se(P(m1 I HmI)) ó Se(CI) = Se(P(rτϊl) I P(HmI))
Esta clave podría ser diferente para cada emisor o ser común para un conjunto o todos los mensajes cifrados.
En una implementación preferente, se utilizarán algoritmos criptográficos con propiedades homomórficas aditivas, en los que Ia operación Θ será equivalente a una operación de suma.
En otra implementación preferente, el método utiliza algoritmos criptográficos con propiedades homomórficas multiplicativas, donde Ia operación Φ es el producto de los mensajes cifrados y Ia operación Θ sobre los mensajes en claro también es un producto. En este caso, se contempla como un ejemplo de implementación el uso de números primos para representar los mensajes. De este modo, se permite su posterior extracción individual a partir del resultado de Ia operación Θ de los mensajes mediante procesos de factorización. En el caso de utilizar números primos Ia integridad del mensaje puede garantizarse verificando que el mensaje descifrado solo sea factorizable en números primos.
En una implementación alternativa, Ia prueba de integridad del mensaje se genera después de su cifrado.
Generación de una primera prueba de integridad entrante:
La generación de las primeras pruebas de integridad entrantes se realiza sobre una lista E de los mensajes cifrados antes de proceder con el proceso de descifrado. En el caso de que los mensajes hayan sido firmados digitalmente, Ia firma no se utiliza para obtener esta prueba. La primera prueba de integridad entrante se obtiene a partir de Ia realización de operaciones Φ sobre el conjunto de mensajes cifrados. Esta operación dependerá de las propiedades homomórficas del algoritmo de cifrado utilizado, caracterizándose este método porque Ia prueba de integridad entrante se realiza en bloques de mensajes cifrados
En el caso de hacerse por bloques, estos bloques volverán a operar entre ellos para obtener Ia primera prueba de integridad entrante: Ie1 = ci Φ ... Φ cx
Ie2 = cx+i Φ ... Φ Cy
Ien = cz+1 Φ ... Φ Cw
Ie = Ie1 Φ ... Φ Ien
La operación Φ utilizada para volver a operar las primeras pruebas de integridad de los bloques y obtener una primera prueba de integridad entrante de todos los mensajes, puede ser Ia misma operación Φ utilizada sobre los mensajes c¡ para calcular las pruebas de integridad de cada bloque, o también puede ser otra operación aritmética, operación lógica o operación de grupo (p.e., Ia concatenación o agrupación).
En una ¡mplementación preferente, se utilizará Ia operación de unión o agrupación de elementos. Por Io tanto, Ia primera prueba de integridad entrante del conjunto de mensajes cifrados estará formada por Ia agrupación de las primeras pruebas de integridad de los bloques con los que se ha dividido el conjunto global de los mensajes cifrados:
Ie = {leí , ... , IenJ ó Ie = (Ie1 U ... U Ien)
En el caso de que los mensajes hubieran sido concatenados con una prueba de integridad de ellos mismos, este valor se podría calcular sobre el cifrado que contiene Ia concatenación de los mensajes y sus pruebas de integridad: - Ie = P(ITi1 | Hmi) Φ ... Φ P(mw| Hmw)
Opcionalmente, si los mensajes hubieran sido concatenados con una prueba de integridad de ellos mismos, esta prueba de integridad entrante se podría calcular realizando Ia misma operación Φ aplicada únicamente sobre el cifrado de los valores de las pruebas de integridad de los mensajes en lugar de utilizar Ia concatenación de los los mensajes y sus pruebas de integridad.
Si el cifrado se ha aplicado después de Ia concatenación c¡ = P(m¡ | Hm¡) se podría seleccionar sólo los bits del texto cifrado que correspondan a Ia parte de Ia prueba de integridad del mensaje. Por ejemplo, en el caso de una prueba de integridad de una longitud de 160 bits, los primeros 160 bits menos significativos. En este caso es importante que el proceso de cifrado tenga en cuenta que los valores Hm queden siempre en Ia misma posición en el texto cifrado, independientemente de Ia longitud del mensaje. Si Ia concatenación se ha realizado sobre cifrados independientes, c¡ =
P(m¡) | P(HiTIi), se puede calcular una primera prueba de integridad entrante basada únicamente sobre los cifrados de Ia pruebas de integridad de los mensajes:
- Ie = P(Hm1) Φ ... Φ P(Hmw)
O bien se podrían calcular pruebas de integridad independientes de cada uno de los cifrados:
- leH = P(Hm1) Φ ... Φ P(Hmw) - Ien, = P(Pn1 ) Φ ... Φ P(rτiw)
Esta etapa de generación de las primeras pruebas de integridad entrantes se puede realizar antes o después de las etapas de descifrado o generación de las pruebas de integridad salientes.
Si Ia integridad de los mensajes cifrados se ha protegido mediante una firma digital, Ia prueba de integridad entrante de los bloques de mensajes cifrados se puede calcular operando solo Ia parte del mensaje cifrado (Le., excluyendo Ia firma del mensaje cifrado).
c¡ = (P(HIi)1 Se(P(m¡))) le1 = P(m1) Φ ... Φ P(mx)
En una implementación preferente los bloques sobre los que se calculan las primeras pruebas de integridad entrante están formados por mensajes cifrados seleccionados de forma aleatoria, hasta cubrir el conjunto total de los mensajes cifrados de entrada. La aleatoriedad de Ia selección de estos bloques podrá ser definido por una entidad verificadora del proceso, por Ia entidad que ejecuta el proceso de generación de las pruebas de integridad entrante, por otra entidad o una combinación de ellas.
En una implementación preferente Ia entidad verificadora de las pruebas de integridad entrante es Ia que seleccionará los bloques de mensajes de entrada sobre los que se calcularán dichas pruebas de forma aleatoria.
Descifrado de los mensajes:
La etapa de descifrado consiste en el descifrado de Ia información utilizando Ia clave privada S del algoritmo utilizado en Ia etapa de cifrado. Este proceso de descifrado se puede realizar de forma directa o mediante un proceso de descifrado que preserve el anonimato de las entidades que han cifrado el mensaje, como por ejemplo un proceso de mixing o mixnet. El descifrado con Ia clave S se puede realizar en una etapa única o mediante distintas etapas si se utiliza un descifrado distribuido. Una ejemplo de descifrado distribuido es el descifrado parcial mediante un trozo (share) de Ia clave privada S que previamente haya sido dividida en distintos trozos (shares) mediante un esquema de compartición de secretos conocido por el estado de Ia técnica, tal como Shamir. En este caso el descifrado final se obtendrá después de combinar los distintos descifrados parciales.
En cualquiera de los casos el resultado del proceso de descifrado será Ia lista de mensajes originales cifrados por las entidades. O = (Pn1, ..., mw}
En el caso de que se haya utilizado un proceso de descifrado con anonimato (p.e., mixnet), el orden con el que se obtendrán los mensajes no dependerá del orden en el que han sido descifrados, por Io que no será posible asegurar Ia correlación con el texto cifrado del que provienen (Le., no será posible correlacionar con seguridad el mensaje descifrado con el emisor).
En el caso de que a los mensajes se les hubiera concatenado una prueba de integridad de ellos mismos, se podría hacer un paso adicional de verificación entre el mensaje y esta prueba. Para ello se volverá a aplicar Ia misma función resumen sobre el mensaje descifrado (Hm') y se verificará si tiene el mismo valor que Ia prueba de integridad obtenida después del descifrado:
S(P(m I Hm) = m I Hm Hm'=h(m) = Hm
ó si tenemos (P(m) | P(Hm)): S(P(m)) = m S(P(Hm)) = Hm Hm'=h(m) = Hm
Si esta prueba falla en alguno de los mensajes, el proceso de descifrado no ha sido correcto. En el caso de utilizar un proceso de descifrado que preserve el anonimato de las entidades que han cifrado el mensaje, como por ejemplo un proceso dé mixnet, el método contempla Ia generación de pruebas de integridad entrante en cada nodo del proceso. Estas pruebas, que identificaremos como pruebas de integridad entrante intermedias, se calcularán de Ia misma manera que las primeras pruebas de integridad entrantes utilizando en cada caso el conjunto de mensajes cifrados de entrada del nodo de Ia mixnet. Dependiendo de Ia situación del nodo dentro de Ia mixnet los mensajes cifrados de entrada de este nodo serán los mismos mensajes cifrados de salida del nodo previo en Ia misma mixnet.
Los bloques de mensajes sobre los que se realizan las primeras pruebas de integridad entrante intermedias en cada nodo del proceso de descifrado (p.e., mixnet) pueden ser seleccionados de Ia siguiente forma:
- En el primer nodo se seleccionarán de forma aleatoria los mensajes cifrados que forman parte de cada bloque sobre el que realizar Ia primera prueba de integridad. El proceso puede ser parecido al que se describió anteriormente para los mensajes de los bloques sobre los que se genera Ia primera prueba de integridad entrante.
En el segundo y posteriores nodos se crearán el mismo número de bloques que en el primer nodo. Los mensajes cifrados contenidos de cada bloque se seleccionarán tomando como referencia los mensajes cifrados contenidos en los bloques del nodo anterior utilizados para Ia primera pruebas de integridad entrante o entrante intermedia en dicho nodo. En una implementación preferente, los bloques de mensajes cifrados utilizados para generar las pruebas de integridad entrantes intermedias en los segundos y posteriores nodos contendrán como mínimo un mensaje cifrado de cada uno de los bloques utilizados para generar Ia prueba de integridad entrante o entrante intermedia del anterior nodo después de ser transformado por el proceso de descifrado en ese nodo (p.e., después de ser recifrado, descifrado o recifrado con descifrado parcial). En el caso de calcular varias primeras pruebas de integridad entrante, cada una sobre los mensajes de entrada pertenecientes a un mismo bloque, las pruebas de integridad entrantes serán el resultado las siguientes operaciones:
- leí = cx1 Φ ... Φ Cxy
- Ie2 = Cx2 O ... Φ cxv
- len = cxn Φ ... Φ cxw
Donde los elementos dentro de los bloques {cxi... Cxy}, { cX2... c™} ... { cxn... Cxw} pueden ser seleccionados de forma aleatoria por Ia entidad verificadora entre el total de los mensajes.
En una implementación preferente se considera el descifrado de Ia operación Θ de los mensajes resultante de Ia operación Φ de los mensajes cifrados, y Ia posterior extracción de los valores individuales de los mensajes mediante un proceso de factorización, donde las operaciones Θ y Φ serán generalmente productos.
Generación de Ia prueba de integridad saliente:
Una vez los mensajes han sido descifrados, se procederá a Ia generación de una prueba de integridad saliente Is a partir de Ia realización de operaciones Θ sobre el conjunto de mensajes descifrados S:
Figure imgf000026_0001
En el caso de que los mensajes hubieran sido concatenados con una prueba de integridad de ellos mismos, este valor se podría calcular sobre Ia concatenación de los mensajes y sus pruebas de integridad: Is = (mi | Hm1) Θ ... Θ (mw| Hmw) Opcionalmente, si los mensajes hubieran sido concatenados con una prueba de integridad de ellos mismos, esta prueba de integridad saliente se podría calcular realizando Ia misma operación Θ únicamente sobre los valores de integridad de los mensajes en lugar de utilizar Ia concatenación de los valores descifrados:
Si: Ci = P(m¡ I Hm¡) ó c¡ = P(m¡) | P(Hm¡) calculamos:
Figure imgf000027_0001
Hmw = h(mw)
Is = Hm1 Θ ... Θ Hrriw
Esta prueba de integridad de salida calculada sobre Ia integridad del mensaje se podría utilizar como prueba única o se podría utilizar junto a otra prueba de integridad basada solo en los mensajes (Le., sin su prueba de integridad): lsm = ITi1 Θ ... Θ mw lsH = Hm1 Θ ... Θ Hmw
En el caso de utilizar un proceso de descifrado que preserve el anonimato de las entidades que han cifrado el mensaje, como por ejemplo un proceso de mixnet, el método contempla Ia generación de pruebas de integridad saliente en cada nodo del proceso de descifrado (p.e., nodo de Ia mixnet). Estas pruebas, que identificaremos como pruebas de integridad saliente intermedia, se calcularán de Ia misma manera que las primeras pruebas de integridad entrantes pero utilizando en este caso bloques del conjunto de mensajes transformados por el proceso de descifrado del nodo y que se obtienen como salida de este. En el caso del último nodo del proceso de descifrado, si este tiene genera como salida el descifrado final de los mensajes originales cifrados, Ia prueba se calculará sobre los mensajes descifrados tal como se describe al principio de esta sección.
En una implementación preferente, los bloques de mensajes transformados se escogen utilizando como referencia los bloques de los mensajes de entrada del nodo. Como preferencia, el número de bloques de mensajes transformado será el mismo que de mensajes entrantes y contendrán los mismos mensajes entrantes pero después de ser transformados sin tener en cuenta Ia posición en Ia que se encuentren después de Ia transformación. Por ejemplo, en el caso de utilizar una mixnet, cada bloque de mensajes transformados contendrá los mismos mensajes que otro bloque de mensajes entrantes del mismo nodo después de ser re-cifrados, descifrados o re-cifrados y descifrados parcialmente.
Generación de Ia segunda prueba de integridad entrante:
Otra etapa consiste en descifrar los valores de la/s primera/s prueba/s de integridad entrante utilizando Ia misma clave privada S con Ia que han sido descifrados los mensajes, obteniendo la/s segunda/s prueba/s de integridad entrante: le'=S(le)
Esta etapa puede realizarse dentro de o en paralelo a Ia etapa de descifrado de los mensajes, o en cualquier momento después de haberse generado la/s primera/s prueba/s de integridad entrante.
En caso de que se hayan utilizado algoritmos de cifrado con propiedades probabilísticas, opcionalmente se podría publicar el factor de aleatoriedad utilizado en el cifrado. De este modo se podría verificar que el descifrado es correcto reproduciendo el cifrado de Ie' con este valor aleatorio. Existen en el estado de Ia técnica varios algoritmos que cumplen con esta propiedad. Por ejemplo, en el caso de EIGamal, tenemos los siguientes componentes: g raíz Zp* p es un primo grande clave privada: x x número aleatorio dentro de p clave publica: (h, g) donde h = g* mod p mensaje: m
El cifrado se realiza: c = (m.hr, cf) donde res un número aleatorio
Para descifrar calculamos H = (ςf)x por Io que si liberamos H permitiremos que se pueda verificar si el Ie' se ha obtenido del mismo mensaje cifrado volviéndolo a operar con el híy comparando si se obtiene Ie de nuevo: C=(Ie, ¿) Ie'. H = Ie.
Este mismo proceso puede realizarse con EIGamal basado en Curvas
Elípticas con los siguientes parámetros:
G punto generador de Ia curva n orden de Ia curva elíptica clave privada: x x número aleatorio dentro de n clave publica: Q donde Q=xG mensaje: m mensaje convertido a punto: M punto de Ia curva elíptica que representa al mensaje
El cifrado se realiza: c = (r.G, M+r.Q) donde r es un número aleatorio y + denota en este caso Ia operación aditiva de puntos según las normas aritméticas propias de las curvas elípticas.
Como para descifrar calculamos r.Q = r.G.x, si liberamos r.Q permitiremos que se pueda verificar si el Ie' se ha obtenido del mismo mensaje cifrado volviéndolo a operar con el punto r.Q y comparando si se obtiene Ie de nuevo: c=( r.G, le) Ie' + r.Q = Ie
En una implementación preferente, en lugar de liberar directamente el factor aleatorio, el proceso puede realizar una prueba de conocimiento nulo que demuestra su conocimiento de este factor ante un verificador, por ejemplo usando el Protocolo de Identificación de Schnorr:
En el caso de tener un sistema de cifrado EIGamal con los componentes definidos anteriormente, el Protocolo de Identificación de Schnorr permite a un probador demostrar, en conocimiento nulo, que conoce Ia clave privada x tal que g*=Λ.
El proceso que realiza el descifrado de los mensajes es el probador, que realiza los siguientes pasos:
- Divide Ia prueba de integridad entrante por Ia prueba de integridad saliente: le/le = (hπ+ +rv, g"+ +rv), donde h'=hn+ +rv es el factor de descifrado sobre el que realizar Ia prueba.
- Toma g'= <f+ +rv.
- Genera f=ge, donde e es un número aleatorio en Zp. - Compone d=H(f]h)g]g), donde H denota una operación de Hash.
- Y calcula s=x*d+e, donde x es Ia clave privada utilizada para descifrar los mensajes.
La prueba de conocimiento nulo para Ia pareja de pruebas de integridad entrante/saliente es [f, s].
En el proceso de verificación:
- El verificador divide Ia prueba de integridad entrante por Ia prueba de integridad saliente: IeZIs = (hn+ +rv, g"+ +rv), donde h'=hπ+ +fV.
- Toma g'= g"+ +rv.
- Compone d=H(f\h'\g)g), donde H denota una operación de Hash.
- Y comprueba que g's=hdf.
En caso de que esta comprobación falle, el proceso de descifrado no ha generado los mismos mensajes que originalmente habían cifrado los emisores. En el caso de utilizar un proceso de descifrado que preserve el anonimato de las entidades que han cifrado el mensaje, como por ejemplo un proceso de mixnet, el método contempla Ia generación de unas segundas pruebas de integridad entrante en cada nodo del proceso de descifrado. Estas segundas pruebas de integridad entrante, que identificaremos como segundas pruebas de integridad entrante intermedias, contendrán el valor de Ia transformación que el proceso de descifrado en cada nodo haya realizado sobre el total de los mensajes contenidos en cada bloque de mensajes de entrada, utilizados para calcular Ia primera prueba de integridad entrante o entrante intermedia de dicho nodo. Esta transformación, en el caso concreto de una mixnet, podría ser una permutación junto con un recifrado, descifrado o recifrado con descifrado parcial.
En una implementación preferente, se utilizará esta segunda prueba de integridad entrante o entrante intermedia, para crear las pruebas de integridad salientes. Para ello, se utilizará Ia información de Ia transformación realizada en los mensajes cifrados entrantes (p.e., permutación aplicada a los mensajes) para localizar Ia situación de los mensajes entrantes una vez hayan sido transformados por el proceso de descifrado. De este modo, se podrán crear bloques de mensajes de transformados que contengan exactamente los mismos mensajes cifrados entrantes después de ser transformados. A partir de los contenidos de los bloques de mensajes transformados se crearían las pruebas de integridad saliente o saliente intermedias.
Por ejemplo, tomando como referencia un nodo de una mixnet con recifrado: Si tenemos:
E = (Ci, C2 , C3 , C4) un conjunto de 4 mensajes cifrados
Bi = (Ci, C2) y B2 = (C3, C4) dos bloques de mensajes cifrados de entrada
R(c¡,r¡) el recifrado del mensaje c¡ con el factor aleatorio r¡ TT = (2, 3, 4, 1) una permutación
Mix = (TT, R(c¡ , P)) el conjunto de transformaciones realizadas por Ia mixnet Y hacemos una operación Mix sobre E: S = Mix(E) = (R(C4, r4), R(Ci , n), R(C2, X2), R(C3, r3)) Podemos crear una segunda prueba de integridad entrante para cada grupo Bi y B2 que contenga Ia transformación de sus mensajes (p.e., las nuevas posiciones de los votos después de Ia permutación y Ia combinación de los recifrados):
/e'Bi= ((2, 3), n+r2)) /e'B2= ((1 , 4) , r3+r4))
De este modo, las pruebas de integridad saliente o saliente intermedias pueden calcularse después de encontrar los mensajes transformados de un bloque específico a partir de Ia información de las posiciones de permutación contenidas en cada segunda prueba de integridad entrante: ISBi = R(C1 1 T1) G R(C21 T2) lsB2 = R(C4, r4) Θ R(C3, r3)
Preferentemente, Ia información de Ia segunda prueba de integridad entrante o entrante intermedia no debe facilitar Ia correlación individual entre los mensajes cifrados de entrada y los mensajes transformados. Por esta razón, el método contempla que Ia información contenida en Ia segunda prueba de integridad relacionada con Ia localización de los mensajes después de Ia transformación, se de en un orden que no permita correlación de forma cierta estos mensajes con los originales. Para ello, las posiciones pueden ordenarse por su valor (como se ha hecho en el ejemplo) o de forma aleatoria.
Verificación:
Finalmente, Ia etapa de verificación consistirá en verificar si el valor Ie' es el mismo que el valor Is. En caso contrario, el proceso de descifrado no ha generado los mismos mensajes que originalmente habían cifrado los emisores.
Al haber utilizado un método con propiedades homomórficas, deberíamos tener que:
Ie' = S(Ie) =S{^ Φ ... Φ c*) = S(P(m-ι)Φ ... Φ P(mw)) = = S(P(In1 Θ ... Θ mw)) = m1 θ ... Θ mw Por Io que Ie' debería ser igual a Is
En el caso de que a los mensajes se les hubiera concatenado una prueba de integridad de ellos mismos, esta verificación podría basarse en pruebas de integridad entrantes basadas únicamente en el cifrado de Ia prueba de integridad del mensaje:
Figure imgf000033_0001
leH'= S(IΘH) = S(P(Hm1)O ... Φ P(Hmw)) = S(P(Hmi Θ ... Θ Hmw)) =
Figure imgf000033_0002
Tal como se propone anteriormente, P(Hm1) podría ser el cifrado independiente de Hm1 o los bits del texto cifrado que corresponden a Hm1, dependiendo si se concatenan los mensajes con sus pruebas de integridad antes de cifrar o después.
Alternativamente, en el caso de que Ia segunda prueba de integridad entrante o intermedia entrante contenga Ia transformación que el proceso de descifrado haya realizado sobre el total de los mensajes, Ia verificación se realizará comparando que el valor de las pruebas de integridad salientes de bloques de mensajes transformados sean el resultado de aplicar Ia transformación del proceso de descifrado a Ia primera prueba de de integridad entrante o intermedia entrante sobre el bloque que contiene exactamente los mismos mensajes antes de ser transformados.
Para ello, las pruebas de integridad saliente de los bloques se calcularán utilizando Ia información de Ia transformación contenida en Ia segunda prueba de integridad entrante de cada bloque entrante (tal como se avanzó anteriormente en Ia fase de generación de Ia segunda prueba de integridad entrante). En el caso de una mixnet, esta información sería Ia localización de los mensajes después de Ia permutación. Una vez se tengan las parejas de primeras pruebas de integridad entrante y su homónima prueba de integridad saliente para cada bloque, se procederá a demostrar que las segundas son el resultado de aplicar Ia transformación del proceso de descifrado a las primeras. En una implementación preferente en Ia que se ha utilizado una mixnet de re-cifrado, descifrado o re-cifrado con descifrado parcial esta verificación utilizará pruebas de re-cifrado, descifrado o re-cifrado con descifrado parcial para esta verificación, de las conocidas en el estado de Ia técnica.
Por ejemplo, en el caso de EIGamal, si tenemos una prueba de integridad entrante consistente en Ia operación Φ de un bloque de mensajes cifrados, siendo Φ un producto, el resultado es:
Ie = ({m,*...*mv }.hπ+ +rv, ^1+ +rv), donde i=1... v es el número de mensajes de un bloque de entrada.
La prueba de integridad saliente consiste en Ia operación Θ de un bloque de mensajes descifrados es:
Is = {m *...*mv}, donde i=1...v es el número de mensajes de un bloque salida.
Para descifrar un mensaje calculamos h" = (o/7)* por Io que si liberamos hn+ +rv permitiremos que se pueda verificar si Is se ha obtenido del mismo bloque de mensajes cifrados que Ie volviéndolo a operar con el hn+ +rv y comparando si se obtiene Ie de nuevo: ls* hπ+ +rv= le.
En el caso de utilizar EIGamal con curvas elípticas, el descifrado se calcula como:
M = (M+rQ)-rGx
Si tenemos una prueba de integridad entrante consistente en Ia operación Φ de un bloque de los mensajes cifrados, siendo Φ un producto, el resultado es Ie =((r,+...+ r)G, {M*... *Mv}+(r,+...+ rv)Q, donde i=1... v es el número de mensajes de un bloque de entrada. La prueba de integridad saliente consiste en Ia operación Θ del mismo bloque de mensajes:
Is = {M*... *MV}, donde i=1...v es el número de mensajes de un bloque de salida.
Para descifrar un mensaje calculamos xrG = rQ, por Io que si liberamos (//+...+ rv)Q permitiremos que se pueda verificar si Is se ha obtenido del mismo conjunto de mensajes cifrados que Ie volviéndolo a operar con el (r¡+...+ rv)Q y comparando si se obtiene Ie de nuevo: ls+ (r¡+...+ rv)Q = Ie.
En una implementación preferente, en lugar de liberar directamente el factor aleatorio, el proceso puede realizar una prueba de conocimiento nulo que demuestra su conocimiento de este factor ante un verificador, por ejemplo usando el Protocolo de Identificación de Schnorr.
En una implementación preferente, se utilizará un método de descifrado que mantenga el anonimato basada en una mixnet con recifrado. En ese caso, se generarán tantas pruebas de integridad entrantes como nodos tenga Ia mixnet:
Ie= {leí, ... , IenJ donde n= número de nodos de Ia mixnet.
En una implementación preferente se generarán tantas pruebas de integridad entrantes como nodos tenga Ia mixnet y como bloques se hayan definido a partir del total de los mensajes.
Cada primera prueba de integridad entrante se generará sobre el conjunto de mensajes cifrados de entrada de cada nodo de Ia mixnet. La primera prueba de integridad entrante puede ser generada por el nodo precedente a partir del conjunto de mensajes cifrados a su salida, si Io hubiera, en cuyo caso sería llamada prueba de integridad intermedia (tal como se ha introducido anteriormente), y/o el mismo nodo que recibe los mensajes cifrados entrantes. Como prueba de integridad, el nodo precedente puede firmar digitalmente Ia primera prueba de integridad entrante o prueba intermedia que pase al siguiente nodo.
En las mixnets formadas por más de un nodo, en Ia situación de detección de un comportamiento fraudulento, de forma opcional se pueden utilizar ciertos métodos para determinar cuál o cuáles son los nodos que han actuado de forma maliciosa. Para ello, se comparan las pruebas de integridad intermedias calculadas a partir de los bloques de mensajes de salida de cada nodo con Ia primera entrante.
En un ejemplo de implementación, para realizar Ia comparación es necesario el descifrado de las pruebas de integridad a comparar. Es decir, Ia comparación se realiza entre Ia segunda prueba de integridad entrante y las pruebas de integridad intermedias descifradas.
Para llevar a cabo las comparaciones con las pruebas de integridad intermedias se propone como ejemplo de método de operación el siguiente algoritmo:
De forma secuencial se compara Ia primera prueba de integridad entrante con Ia prueba de integridad del primer nodo, ésta con Ia del nodo siguiente, etc; marcando como nodos maliciosos aquellos donde no coincida su prueba de integridad con Ia del nodo anterior.
En un segundo ejemplo de implementación, e implementación recomendada, para realizar Ia comparación no es necesario el descifrado de ninguna de las pruebas de integridad. Para ello, se partirá de que las segundas pruebas de integridad entrante contienen el valor de Ia transformación realizada por el proceso de descifrado sobre los mensajes de las primeras pruebas de integridad entrantes. En las mixnets de re-cifrado esta verificación de las pruebas intermedias consiste en comprobar que las pruebas de integridad saliente de cada nodo son el re-cifrado de las pruebas de integridad entrante.
En el caso de tener un sistema de cifrado EIGamal con los componentes definidos anteriormente, el re-cifrado se realiza como: c' = c*(hí, α/) = (m.tf*1', o/+r) donde r" es un número aleatorio
Si tenemos una prueba de integridad entrante consistente en Ia operación Φ de un bloque de los mensajes cifrados, siendo Φ un producto, el resultado es:
Ie = ({m,*...*mv }.hn+ +rv, g"+ +rv), donde i=1..v es el número de mensajes de un bloque a Ia entrada.
La prueba de integridad saliente consiste en Ia operación Φ del bloque de mensajes re-cifrados: ls = ({mr...*mv}.hπ+ +w+ +rv\ g"+ +rv+n'+ +rv)
Para re-cifrar un mensaje calculamos c' = c*(hr, tf) por Io que si liberamos hn + +rv' permitiremos que se pueda verificar si Is se ha obtenido del mismo bloque de mensajes cifrados que Ie, volviendo a operar Ie para obtener Is: le* hn + +rv= ls.
Este valor de recifrado, tal como se ha introducido anteriormente, puede formar parte de Ia segunda prueba de integridad entrante (ver ejemplo en Ia sección donde se explica Ia creación de esta segunda prueba de integridad entrante).
En una implementación preferente se realiza Ia comprobación de las pruebas de integridad intermedias utilizando pruebas de conocimiento nulo, como el Protocolo de Identificación de Schnorr: En el caso de tener un sistema de cifrado EIGamal con los componentes definidos anteriormente, el Protocolo de Identificación de Schnorr puede ser usado por un probador para demostrar, en conocimiento nulo, que conoce el factor de re-cifrado f tal que c'=c*(hr ', </) mediante el siguiente proceso: - El probador divide cada prueba de integridad saliente por Ia correspondiente prueba de integridad entrante: Is/le = (hπ + +rv>, g"'+ +rv), donde h'=hn + +rv' es el factor de re-cifrado sobre el que realizar Ia prueba.
- Calcula rv'= r,'+ ...+rv' - Toma g'=h.
- Genera f=g'e, donde e es un número aleatorio en Zp.
- Compone d=H(f\h)g)g), donde H denota una operación de Hash.
- Y calcula s=rv'*d+e
La prueba de conocimiento nulo para Ia pareja de pruebas de integridad entrante/saliente de bloque de mensajes de un nodo es [f, s].
En el proceso de verificación:
- El verificador divide Ia prueba de integridad saliente por Ia prueba de integridad entrante:
Is/le = (hπ + +π/; g"'+ +π/), donde h'=hn + +rv\
- Toma g'=h.
- Compone d=H(f\h'\g)g), donde H denota una operación de Hash.
- Y comprueba que g*=haf.
En caso de que esta comprobación falle, el proceso de re-cifrado no ha generado los mismos mensajes que estaban cifrados a su entrada.
En una implementación preferente en Ia que se hayan realizado varias pruebas de integridad entrantes y salientes en cada nodo basadas en Ia operación de los mensajes pertenecientes a un determinado bloque, el proceso de verificación se realiza comparando las parejas de pruebas de integridad entrante/saliente referidas al mismo bloque de mensajes. En una implementación preferente el proceso de verificación se realiza una vez el mixing ha finalizado. Dicho proceso de verificación se lleva a cabo para dar validez a los resultados y, en el caso contrario, identificar al nodo o nodos que han actuado de forma fraudulenta.
Sin embargo, en una implementación en Ia que Ia comprobación se realice a partir de las pruebas de integridad entrantes, estas pruebas de integridad pueden ser usadas durante el proceso de mixing cuando el sistema esté formado por varios nodos. En esta situación, a medida que el conjunto de mensajes es operado por un nodo de Ia mixnet, se genera a su salida Ia prueba de integridad intermedia correspondiente a Ia entrada del siguiente nodo y, utilizando el algoritmo de comparación exhaustiva descrito anteriormente, se evalúa el funcionamiento de éste. De este modo, al detectar un comportamiento malicioso, el nodo es eliminado de Ia mixnet desechando su conjunto de mensajes de salida y proporcionando al nodo posterior Ia salida del anterior. Mediante esta implementación se detectan manipulaciones en los mensajes durante el proceso, para poder solucionarlos y asegurar unos resultados fiables a Ia salida de Ia mixnet sin tener que volver a repetir el proceso de mixing.
En un ejemplo de implementación , se utilizará un algoritmo criptográfico de Paillier para el cifrado de los datos y una mixnet de recifrado.
En otro ejemplo de implementación , se utilizará un algoritmo criptográfico de EIGamal basado en curvas elípticas y una mixnet de re-cifrado. Para el re- cifrado de Ia mixnet se generará un nuevo valor aleatorio r2 y se calculará (r2.G, r2.Q). A continuación se sumará cada componente con los del cifrado a re-cifrar: m\=( ri.G, Pn1+ T1. Q) mensaje cifrado (r2.G, r2. Q) con r2 aleatorio m"1=( n.G+ r2.G, In1+ n.Q +r2.Q) = ( (n+ r2).G, rτii+ (n+ r2).Q) mensaje recifrado. En una implementación preferente utilizamos algoritmos basados en curvas elípticas utilizando su definición sobre un plano proyectivo formado por los puntos [x:y:z].
Se define Ia curva elíptica sobre un plano proyectivo P2(Zn), donde los puntos satisfacen Ia ecuación y2z=x3+axz2+bz3 en Zn.
Este método es susceptible de ser utilizado en entornos de voto electrónico para Ia verificación del correcto descifrado de los votos preservando el anonimato de los votantes.
A continuación se presenta un ejemplo de implementación práctica de Ia invención descrita en un entorno de votación electrónica.
En este caso, los votos están cifrados utilizando el algoritmo de cifrado EIGamal, y el sistema de descifrado es una mixnet de re-cifrado formada por varios nodos, en el último de los cuales se realiza el proceso de descifrado de los votos.
Una vez se ha realizado el proceso de permutación y re-cifrado de los votos en todos los nodos (menos en el último) un auditor autorizado solicita Ia generación en cada nodo de las primeras pruebas de integridad entrante, las pruebas de integridad saliente y las segundas pruebas de integridad entrante para verificar el correcto funcionamiento de Ia mixnet.
En esta implementación, los votos cifrados de entrada en cada nodo se dividen en varios bloques de forma aleatoria, y las pruebas se calculan sobre los mensajes integrantes de cada bloque. Para ello, el auditor selecciona una combinación numérica (desconocida antes de que el proceso de permutación y re-cifrado haya acabado) a partir de Ia cual se definen de forma aleatoria los mensajes que forman cada bloque.
Los pasos de Ia implementación son los siguientes: - El proceso de verificación comienza una vez todos los nodos (menos el último) han permutado y re-cifrado los votos. Para el primer nodo, el auditor define de forma aleatoria los votos que forman cada bloque:
- Las primeras pruebas de integridad entrante se calculan a partir de Ia multiplicación de los votos cifrados a Ia entrada del nodo pertenecientes a cada bloque.
- El nodo genera las segundas pruebas de integridad entrante, donde indica los votos re-cifrados a su salida que pertenecen a cada uno de los bloques anteriormente definidos, y el factor de re-cifrado conjunto de cada bloque (como estamos utilizando el algoritmo de cifrado EIGamal, el factor de re-cifrado conjunto es igual a Ia suma de los factores de re- cifrado de los votos que componen cada bloque).
- Las pruebas de integridad saliente para ese nodo se calculan a partir de Ia multiplicación de los votos re-cifrados a Ia salida del nodo pertenecientes a cada bloque.
- El nodo genera las pruebas de conocimiento nulo (por ejemplo utilizando el Protocolo de Identificación de Schnorr) que demuestran que, para cada bloque, Ia prueba de integridad saliente es el re-cifrado de Ia primera prueba de integridad entrante.
Finalmente, el auditor verifica las pruebas de conocimiento nulo y pasa a auditar el siguiente nodo repitiendo los mismos pasos. Para el nuevo nodo se re- definen los bloques de mensajes de modo que cada bloque nuevo contiene un mensaje perteneciente a cada uno de los bloques definidos anteriormente.
Referencias
[Ab98] Masayuki Abe. Universally verifiable MIX with verification work independent of the number of MIX servers. In Nyberg [126], pages 437^47. [Ch81] David Chaum. Untraceable electronic mail, return addresses, and digital pseudonyms. Commun. ACM, 24(2):84-88, 1981.
[ChO4] David Chaum. Secret-ballot receipts: True voter-verífiable elections. IEEE SECURITY & PRIVACY Volume: 2, Issue: 1
Pages: 38-47, JAN-FEB 2004
[FOO92] A. Fujioka, T. Okamoto, and K. Ohta, "A practical secret voting scheme for large scale election", Advances in Cryptology - Auscrypt'92, LNCS 718, Springer-Verlag, pp. 244-260, 1992.
[Go02] GoIIe, P; Zhong, S; Boneh, D, et al. Advances in Cryptology -
Asiacrypt 2002, Proceedings. VoI: 2501 , Pages:451-465. Published: 2002.
[JJR02] Markus Jakobsson, Ari Juels, and Ronald L. Rivest. Making mix nets robust for electronic voting by randomized partial checking. In Dan Boneh, editor, USENIX Securíty Symposium, pages 339-353. USENIX, 2002.
[Ne01] Andrew C. Neff. A verifiable secret shuffle and its application to evoting. In CCS '01, pages 116-125, 2001.
[PIK94] Choonsik Park, Kazutomo Itoh, and Kaoru Kurosawa. Efficient anonymous channel and all/nothing election scheme. In Tor
Helleseth, editor, EUROCRYPT, volume 765 of Lecture Notes in Computer Science, pages 248-259. Springer, 1994.
[SK95] Kazue Sako and Joe Kilian. Receipt-free mix-type voting scheme - a practical solution to the implementation of a voting booth. In Louis
C. Guillou and Jean-Jacques Quisquater, editors, EUROCRYPT, volume 921 of Lecture Notes in Computer Science, pages 393-
403. Springer, 1995.

Claims

REIVINDICACIONES
1. Método para verificar si el descifrado de un conjunto de mensajes cifrados se ha realizado correctamente, caracterizado porque dicho cifrado se realiza con un algoritmo con propiedades homomórficas y dicha verificación se basa en Ia prueba de que el resultado de operar bloques de mensajes cifrados con una operación Φ es igual al cifrado del resultado de operar los mensajes descifrados de los mismos bloques con una operación Θ.
2. Método según Ia reivindicación 1 caracterizado por comprender las siguientes etapas: a. Cifrado individual de cada mensaje del conjunto de mensajes por parte de uno a varios emisores mediante una clave pública de un algoritmo criptográfico asimétrico con propiedades homomórficas, que cumpla con Ia propiedad de que operando mensajes cifrados con una primera operación Φ se obtenga el cifrado de los mensajes operados con una segunda operación Θ; b. Generación de una primera prueba de integridad entrante basada en Ia operación Φ de Ia etapa a) y realizada sobre bloques del conjunto de los mensajes cifrados en Ia etapa a); c. Descifrado de los mensajes cifrados en Ia etapa a) utilizando una clave privada relacionada con Ia clave pública de Ia etapa a), obteniendo una lista de mensajes descifrados; d. Generación de una prueba de integridad saliente basada en Ia operación directa de bloques de los mensajes descifrados en Ia etapa c) con Ia operación Θ, donde los bloques coinciden con los definidos en Ia etapa b);e. Generación de una segunda prueba de integridad entrante que relaciona Ia primera prueba de integridad entrante de los bloques del conjunto de mensajes cifrados en Ia etapa a), con Ia prueba de integridad saliente de los bloques de los mensajes descifrados en Ia etapa c); y f. Verificación del correcto descifrado del conjunto de mensajes cifrados en Ia etapa a) mediante Ia comparación de Ia prueba de integridad saliente de los bloques de mensajes descifrados generada en Ia etapa d) y Ia primera prueba de integridad entrante de los bloques cifrados en Ia etapa a), relacionadas por Ia segunda prueba de integridad entrante generada en Ia etapa e).
3. Método según Ia reivindicación 2 caracterizado porque las propiedades homomórficas del algoritmo criptográfico son aditivas o multiplicativas.
4. Método según Ia reivindicación 3 caracterizado porque el algoritmo utilizado en Ia etapa a) es del grupo que comprende EIGamal, El Gamal con exponenciación de mensaje o Paillier.
5. Método según Ia reivindicación 4 caracterizado porque Ia operación Φ es el producto de los componentes resultantes del algoritmo de cifrado y Ia operación Θ es una suma aritmética o un producto.
6. Método según Ia reivindicación 3 caracterizado porque el algoritmo utilizado en Ia etapa a) está basado en Curvas Elípticas.
7. Método según Ia reivindicación 6 caracterizado porque Ia operación Φ es
Ia suma de puntos de Ia Curva Elíptica y Ia operación Θ es una suma aritmética o producto.
8. Método según Ia reivindicación 2 caracterizado porque Ia primera prueba de integridad entrante de Ia etapa b) está formada por un conjunto de primeras pruebas de integridad entrantes donde cada una se ha calculado a partir de uno de los bloques de mensajes cifrados en Ia etapa a). .
9. Método según Ia reivindicación 8 caracterizado porque los bloques de mensajes cifrados sobre los que se calculan las primeras pruebas de integridad entrantes se forman distribuyendo de forma aleatoria cada mensaje del conjunto de mensajes cifrados entre distintos bloques sin que un mismo mensaje cifrado esté repetido en dos bloques.
10. Método según Ia reivindicación 8 caracterizado por generar Ia primera prueba de integridad entrante de cada bloque a partir de Ia operación Φ del conjunto de mensajes cifrados contenidos en dicho bloque.
11. Método según Ia reivindicación 2 caracterizado porque Ia operación de descifrado de Ia fase c) se realiza mediante un proceso de descifrado que preserva el anonimato del emisor o emisores que han cifrado los mensajes.
12. Método según Ia reivindicación 11 caracterizado porque dicho proceso de descifrado que preserva el anonimato del emisor es una mixnet de descifrado, re-cifrado o re-cifrado con descifrado parcial.
13. Método según Ia reivindicación 12 caracterizado por generar una prueba de integridad intermedia sobre bloques del conjunto de los mensajes de salida transformados por un nodo de Ia mixnet y que serán utilizados como entrada en el siguiente nodo de Ia mixnet.
14. Método según Ia reivindicación 13 caracterizado porque esta prueba de integridad intermedia se genera sobre bloques del conjunto de mensajes transformados en el nodo que recibe estos mensajes, en el nodo que envía estos, o en ambos nodos.
15. Método según Ia reivindicación 14 caracterizado porque cada bloque distinto de mensajes de salida transformados sobre los que se generan Ia prueba de integridad intermedia contienen los mismos mensajes de un mismo bloque de mensaje de entrada generado para crear Ia primera prueba de integridad entrante o prueba de integridad intermedia entrante, después de ser transformados.
16. Método según Ia reivindicación 13 caracterizado porque Ia segunda prueba de integridad entrante contiene el valor de Ia transformación que se ha aplicado a los mensajes de cada bloque sobre el que se ha generado Ia primera prueba de integridad entrante o Ia prueba de integridad intermedia entrante.
17. Método según Ia reivindicación 17 caracterizado porque el valor de Ia transformación consiste en Ia identificación de los mensajes transformados pertenecientes a cada bloque sobre el que se ha generado Ia primera prueba de integridad entrante y el valor del re-cifrado, descifrado o re-cifrado con descifrado parcial aplicado al conjunto de mensajes de cada bloque.
18. Método según Ia reivindicación 16 caracterizado por ejecutar Ia etapa de verificación f) sobre Ia prueba de integridad de los bloques de mensajes entrantes que recibe un nodo y sobre Ia prueba de integridad de los mensajes salientes de un mismo nodo mediante Ia generación de una prueba de transformación que permita demostrar que Ia prueba de integridad de cada bloque de datos saliente es una transformación de Ia prueba de integridad del mismo bloque de datos entrante, del mismo tipo a Ia aplicada a los datos salientes.
19. Método según Ia reivindicación 14 caracterizado porque los bloques sobre los que se calculan las pruebas de integridad intermedias de los mensajes transformados que recibe un nodo de Ia mixnet se crean seleccionando al menos un mensaje de cada uno de los distintos bloques que se crearon sobre los mismos mensajes transformados en el nodo de
Ia mixnet que los envía.
PCT/ES2009/000568 2009-05-05 2009-12-11 Método de verificación de procesos de descifrado WO2010128172A1 (es)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP09844302.1A EP2429115B1 (en) 2009-05-05 2009-12-11 Method for verification of decryption processes
US13/319,164 US9077540B2 (en) 2009-05-05 2009-12-11 Method for verification of decryption processes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ESP200901196 2009-05-05
ES200901196A ES2365887B1 (es) 2009-05-05 2009-05-05 Metodo de verificacion de procesos de descifrado

Publications (1)

Publication Number Publication Date
WO2010128172A1 true WO2010128172A1 (es) 2010-11-11

Family

ID=43050007

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2009/000568 WO2010128172A1 (es) 2009-05-05 2009-12-11 Método de verificación de procesos de descifrado

Country Status (4)

Country Link
US (1) US9077540B2 (es)
EP (1) EP2429115B1 (es)
ES (1) ES2365887B1 (es)
WO (1) WO2010128172A1 (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2367940B1 (es) * 2009-12-04 2012-09-27 Scytl Secure Electronic Voting, S.A. Método para la verificación del correcto registro de una información.
FR2960671B1 (fr) * 2010-06-01 2020-01-10 Institut Telecom-Telecom Paris Tech Procede de securisation de donnees numeriques et d'identites notamment au sein de processus utilisant des technologies de l'information et de la communication
EP2905922A1 (en) * 2014-02-10 2015-08-12 Thomson Licensing Signing method delivering a partial signature associated to a message, threshold signing method, signature verification method, and corresponding computer program and electronic devices
GB2513260B (en) * 2014-06-27 2018-06-13 PQ Solutions Ltd System and method for quorum-based data recovery
GB2529246A (en) * 2014-08-15 2016-02-17 Ibm Method for securing integrity and consistency of a cloud storage service with efficient client operations
EP3041165B1 (en) 2014-12-31 2019-08-07 Scytl Secure Electronic Voting, S.A. A method for the verification of the correct content of an encoded message
US10630686B2 (en) 2015-03-12 2020-04-21 Fornetix Llc Systems and methods for organizing devices in a policy hierarchy
US10560440B2 (en) 2015-03-12 2020-02-11 Fornetix Llc Server-client PKI for applied key management system and process
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US10880281B2 (en) 2016-02-26 2020-12-29 Fornetix Llc Structure of policies for evaluating key attributes of encryption keys
US11063980B2 (en) 2016-02-26 2021-07-13 Fornetix Llc System and method for associating encryption key management policy with device activity
US10931653B2 (en) 2016-02-26 2021-02-23 Fornetix Llc System and method for hierarchy manipulation in an encryption key management system
US10348485B2 (en) * 2016-02-26 2019-07-09 Fornetix Llc Linking encryption key management with granular policy
US10917239B2 (en) 2016-02-26 2021-02-09 Fornetix Llc Policy-enabled encryption keys having ephemeral policies
US10860086B2 (en) 2016-02-26 2020-12-08 Fornetix Llc Policy-enabled encryption keys having complex logical operations
US11488433B2 (en) * 2018-01-11 2022-11-01 Mastercard International Incorporated Method and system for public elections on a moderated blockchain
ES2950584T3 (es) * 2018-02-19 2023-10-11 Telefonica Sa Procedimiento y sistema para validar la prueba ordenada de tránsito de paquetes de tráfico en una red
KR102602119B1 (ko) * 2018-04-06 2023-11-15 주식회사 크립토랩 블록체인 및 동형암호 기술을 이용하여 데이터를 공유하는 사용자 장치와 전자장치 및 그 방법들
US11087578B2 (en) 2018-11-15 2021-08-10 Daniel Bernard Ruskin Voting booth, system, and methods of making and using same
DE102021129979B3 (de) 2021-11-17 2023-03-23 Physikalisch-Technische Bundesanstalt Braunschweig Und Berlin Verfahren und System zur anonymen Übertragung von digitalen Daten

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1633077A2 (en) 2000-03-24 2006-03-08 Dategrity Corporation Verifiable, secret shuffles of encrypted data, such as elgamal encrypted data for secure multi-authority elections

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE387775T1 (de) * 2000-01-21 2008-03-15 Sony Corp Daten-identifizierungs-system
EP1277299B1 (en) * 2000-04-28 2010-06-23 Swisscom AG Method for securing communications between a terminal and an additional user equipment
US7672460B2 (en) * 2004-01-22 2010-03-02 Nec Corporation Mix-net system
JP4802274B2 (ja) * 2009-10-30 2011-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ送信および受信方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1633077A2 (en) 2000-03-24 2006-03-08 Dategrity Corporation Verifiable, secret shuffles of encrypted data, such as elgamal encrypted data for secure multi-authority elections

Non-Patent Citations (11)

* Cited by examiner, † Cited by third party
Title
A. FUJIOKA; T. OKAMOTO; K. OHTA: "Advances in Cryptology - Auscrypt'92", 1992, SPRINGER-VERLAG, article "A practical secret voting scheme for large scale election", pages: 244 - 260
ANDREW C. NEFF.: "A verifiable secret shuffle and its application to evoting", CCS '01, 2001, pages 116 - 125, XP058294630, DOI: doi:10.1145/501983.502000
CHOONSIK PARK; KAZUTOMO ITOH; KAORU KUROSAWA: "EUROCRYPT", vol. 765, 1994, SPRINGER, article "Efficient anonymous channel and all/nothing election scheme", pages: 248 - 259
DAVID CHAUM.: "Commun.", vol. 24, 1981, ACM, article "Untraceable electronic mail, return addresses, and digital pseudonyms", pages: 84 - 88
DAVID CHAUM: "Secret-ballot receipts: True voter-verifiable elections", IEEE SECURITY & PRIVACY, vol. 2, no. 1, January 2004 (2004-01-01), pages 38 - 47, XP011106868, DOI: doi:10.1109/MSECP.2004.1264852
GOLLE, P; ZHONG, S; BONEH, D ET AL.: "Advances in Cryptology - Asiacrypt", PROCEEDINGS, vol. 2501, 2002, pages 451 - 465
KAZUE SAKO; JOE KILIAN: "EUROCRYPT", vol. 921, 1995, SPRINGER, article "Receipt-free mix-type voting scheme - a practical solution to the implementation of a voting booth. In Louis C. Guillou and Jean-Jacques Quisquater", pages: 393 - 403
MARKUS JAKOBSSON; ARI JUELS; RONALD L. RIVEST: "USENIX Security Symposium", 2002, article "Making mix nets robust for electronic voting by randomized partial checking", pages: 339 - 353
MASAYUKI ABE: "Universally verifiable MIX with verification work independent of the number of MIX servers", NYBERG, pages 437 - 447
See also references of EP2429115A4 *
ZWIERKO ET AL.: "A Light-Weight e-Voting System with Distributed Trust", ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE., vol. 168, 16 February 2007 (2007-02-16), pages 109 - 126, XP005871231 *

Also Published As

Publication number Publication date
EP2429115A1 (en) 2012-03-14
US20120144186A1 (en) 2012-06-07
EP2429115B1 (en) 2019-02-20
US9077540B2 (en) 2015-07-07
ES2365887A1 (es) 2011-10-13
ES2365887B1 (es) 2012-09-03
EP2429115A4 (en) 2017-03-01

Similar Documents

Publication Publication Date Title
WO2010128172A1 (es) Método de verificación de procesos de descifrado
Chaidos et al. BeleniosRF: A non-interactive receipt-free electronic voting scheme
Gjøsteen The norwegian internet voting protocol
Benaloh Simple verifiable elections.
Wee Public key encryption against related key attacks
US9071442B2 (en) Signcryption method and device and corresponding signcryption verification method and device
Cuvelier et al. Election verifiability or ballot privacy: Do we need to choose?
Yung Practical signcryption
CN103095453A (zh) 应用私有集合交集的公钥加密的布隆过滤器
Sebé et al. Simple and efficient hash-based verifiable mixing for remote electronic voting
EP1813051A1 (en) Identity based encryption
Achenbach et al. Improved coercion-resistant electronic elections through deniable re-voting
Buchmann et al. Towards a publicly-verifiable mix-net providing everlasting privacy
ES2367940B1 (es) Método para la verificación del correcto registro de una información.
Jarecki et al. Handcuffing big brother: an abuse-resilient transaction escrow scheme
Damgård et al. Stronger security and constructions of multi-designated verifier signatures
Ryabko et al. Basics of contemporary cryptography for IT practitioners
Kohlweiss et al. Accountable metadata-hiding escrow: A group signature case study
Barnett et al. Mental poker revisited
Blazy et al. Identity-based encryption in DDH hard groups
Abe et al. Flaws in robust optimistic mix-nets and stronger security notions
Azougaghe et al. Electronic voting scheme based on additive homomorphic encryption.
Yeun Design, analysis and applications of cryptographic techniques
Duc et al. DiAE: Re-rolling the DiSE
Larriba et al. SUVS: Secure Unencrypted Voting Scheme

Legal Events

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

Ref document number: 09844302

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009844302

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 13319164

Country of ref document: US