WO2007104802A1 - Método y sistema altamente eficientes de generación segura de números aleatorios - Google Patents

Método y sistema altamente eficientes de generación segura de números aleatorios Download PDF

Info

Publication number
WO2007104802A1
WO2007104802A1 PCT/ES2006/000121 ES2006000121W WO2007104802A1 WO 2007104802 A1 WO2007104802 A1 WO 2007104802A1 ES 2006000121 W ES2006000121 W ES 2006000121W WO 2007104802 A1 WO2007104802 A1 WO 2007104802A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
randomness
digital information
random
generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/ES2006/000121
Other languages
English (en)
French (fr)
Other versions
WO2007104802A8 (es
Inventor
Joan Miquel Bardera Bosch
Andreu Riera Jorba
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kinamik Data Integrity SL
Original Assignee
Kinamik Data Integrity SL
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 Kinamik Data Integrity SL filed Critical Kinamik Data Integrity SL
Priority to PCT/ES2006/000121 priority Critical patent/WO2007104802A1/es
Priority to EP06725815A priority patent/EP2006810A4/en
Publication of WO2007104802A1 publication Critical patent/WO2007104802A1/es
Anticipated expiration legal-status Critical
Publication of WO2007104802A8 publication Critical patent/WO2007104802A8/es
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C15/00Generating random numbers; Lottery apparatus
    • G07C15/006Generating random numbers; Lottery apparatus electronically
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator

Definitions

  • the present invention is framed in the field of the generation of random numbers by means of computer and / or electronic systems, and describes a highly efficient method for the safe and auditable generation of random numbers.
  • the present invention also facilitates that said generation is shared without negatively affecting the speed of the generation of random numbers.
  • Random numbers are used in situations as disparate as gambling, data transmission from a satellite, weather forecasting or as a key to establishing a GSM mobile phone call.
  • Random numbers generated by electronic means can be basically of two different types: firstly there are random numbers that have been generated by a hardware generator (for example, obtaining random from natural noise); and secondly we have the pseudo-random numbers generated by a software algorithm.
  • Both hardware random number generators and software generators can exhibit excellent statistical behaviors in what refers to the distribution of the resulting values. In other words, these methods can effectively serve as a basis for obtaining sequences of numbers with random and unpredictable behavior. However, in all cases these methods suffer from a serious security problem in practice: the generation of numbers Randomization is under the control of a single party and no mechanism is offered to audit the correct generation of them.
  • This commitment prevents the party from changing the value of its number without the part2 detecting it.
  • the score reveals its own number to the score, which calculates the final result by combining both numbers.
  • the score reveals the result and its own number to part 2 which verifies that the commitment previously received corresponds to the number of the score and that the final result has been calculated correctly.
  • the complexity of all these methods of shared random number generation derives from the number and difficulty of the steps that must be taken to obtain the final random number: (i) the generation of random numbers by each of the participants, ( ii) the generation and exchange of commitments of these random numbers among the participants before making said numbers public, (iii) the exchange of the numbers, (iv) the verification by the participants that the random numbers effectively correspond to the previously exchanged commitments, and (v) the calculation of the result from the combination of the respective random numbers.
  • hash functions is chosen (cryptographic operation that is performed on a set of data of any size in such a way that another set of data of fixed size and independent of the original size is obtained and that has the property of be uniquely associated with the initial data being practically impossible to find two different messages that generate an identical hash) instead of digital signatures for the shared generation of random numbers.
  • hash functions do not provide measures that allow verifying the authenticity of the resulting value, so that for audit purposes they are not a good option alone.
  • the present invention aims to solve the security problems and main limitations of the methods of generation of existing random numbers, presenting a proposal that facilitates a reliable audit of the impartiality, authenticity and integrity of the random numbers generated, but at the same time defining a process of highly efficient generation in terms of computing costs.
  • the proposal of the present invention is especially indicated for those applications of random number generation that require maximum security and at the same time maximum execution speed.
  • the present invention contemplates a method for the secure generation of random numbers reliably and allowing a subsequent audit. It is one of the methods with the highest efficiency (fast in execution in real implantations) than that of those known to date. A system that allows the implementation of the method is also contemplated.
  • Figure 1 describes the different components used in the most advanced implementation of a system that meets the characteristics described by the present invention. These components are:
  • the Processing Module (101) is an optional component of the invention which can be communicated with the Randomness Module (102) to request and / or receive a random number / s.
  • the Randomness Module (102) it is the basic component for the generation of random numbers. Said component may receive requests or messages to generate random numbers of the Processing Module (101). The random numbers resulting from the internal process of the Randomness Module (102) are returned to said Processing Module (101) for use.
  • the Registration Module (103) it is an additional component of the invention that facilitates the audit of the random number generation process. For this, it receives data or information from the Randomness Module (102) and / or the Processing Module (101). These data or information are stored securely by the Registration Module (103).
  • Figure 2 describes a basic implementation of the method for generating at least one random number.
  • the Randomness Module (102) generates a random result r (203) by applying a MAC cryptographic function (301) on information I (201) (input of the MAC function) using a K key (202).
  • the result value r (203) meets the necessary properties to be used directly as a random number or to obtain a random number.
  • FIG 3 describes an example of implementation of shared generation of random numbers in which a module of Processing (101) and the Randomness Module (102).
  • the Processing Module (102) requests, through a request S (204), the generation of a random number R (206) to the Randomness Module (102).
  • the Processing Module (101) includes in the request S (204) a V value (205), preferably random, that the Randomness Module (102) will use to prepare the input information I (201) of the MAC function (301).
  • V value preferably random
  • a deterministic function d is applied to obtain the random number R (206) requested.
  • the random number R (206) is returned to the Processing Module (101) that has requested it.
  • Figure 4 describes an example of shared implementation of random numbers in which the Randomization Module (102) reuses the random results r (203) for the generation of new random numbers.
  • the values V (205) received are also used so that the generation is shared.
  • the Randomness Module (102) prepares (303) a digital information I (201) using the random result r (203) obtained in the previous iteration, the information M (207) of the Randomness Module (102) and the V value (205) contained in the request S (204) received.
  • the digital information I (201) resulting from said preparation (303) is used as input of the MAC function (301), which also requires the use of the K key (202).
  • a deterministic function d (301) is applied to the result r (203) of said MAC operation (301) to obtain the random number R (206).
  • Said result r (203) is also used to obtain the value M (207) used for the preparation (303) of the digital information I (201) necessary for the generation of the random result r (203) of the next iteration.
  • Figure 5 is an example of an enlarged implementation of Figure 4 in which the value of the key K (202) is also updated before a certain event such as the execution of a certain number of iterations or the course of a certain period of time. weather.
  • the Module Randomness (102) Upon completion of said event, the Module Randomness (102) generates a new key K ⁇ (202) that will be used for the generation of the new random numbers, and sends the previous value of said key / C w (208) to the Registry Module (103).
  • a commitment H (K ⁇ ) (304) of the value of the current key K 1 (202) is also sent to the Registration Module (103).
  • the information received by the Registration Module (103) is stored by said module to facilitate the audit of the random numbers R (206) previously generated with the previous value of the key K ⁇ - t (208).
  • the present invention describes a method and a system for the generation of random numbers in those environments in which it is necessary to guarantee: a) the unpredictability in the generation of said numbers (i.e., that no party can predict the resulting numbers, nor so even partially); b) the subsequent reliable audit of the processes followed for said generation, and in particular of the authenticity and integrity of the random numbers; and c) the efficiency (speed) of the process of generating random numbers and associated security measures.
  • said invention allows the shared generation of the random numbers by guaranteeing the impartiality in the generation of said numbers (that is, that no party can arbitrarily choose or influence the resulting numbers).
  • a random number can represent random values in different formats such as a number, a set of alphanumeric characters or a cryptographic key.
  • the present invention considers for this purpose two differentiated components that participate in the generation of the random number.
  • the first component It is the one that needs the random numbers (for example an electronic game application) and that we will call the Processing Module.
  • the method introduces a second component that is responsible for providing security for the generation of random numbers. We will identify this component as a Randomness Module and it is in communication with the Processing Module to at least send the resulting random numbers to the latter.
  • the Randomness Module uses a cryptographic key K of the module.
  • the Randomness Module obtains a result value r with random properties.
  • the final random number R may be both the same value r and may also be obtained by applying a deterministic function d on said value r.
  • the Randomness Module will be responsible for calculating the function d on the value r.
  • the calculation could be performed by the Processing Module.
  • the arithmetic module function or bit truncation could be used as a deterministic function.
  • the Random Module can receive a signal, request or S message requesting its generation.
  • This request will generally be produced and sent by a Processing Module although the possibility that it can be sent by a third independent module or even generated by the same Randomness Module is also contemplated (for example this module could be constantly generating random numbers).
  • the K key is a unique symmetric cryptographic key of the Randomness Module, which may have been generated in the same module or installed securely during initialization. The use of said key K will allow during an audit to verify that the random number R has been effectively generated by said Randomness Module and has not been manipulated after its generation. Note that this feature could not occur in the case of using only hash functions instead of MAC functions.
  • the Randomness Module has at least some storage means where it can store digital information (at least the cryptographic key K). It is also necessary for said module to have processing means capable of executing a MAC cryptographic operation (such as HMAC or PMAC).
  • processing means capable of executing a MAC cryptographic operation (such as HMAC or PMAC).
  • the Randomness Module would be implemented using a tamper-proof hardware device, also known as the Hardware Security Module or HSM. This type of devices prevents a third party from manipulating or accessing the critical components of the method, such as the K key and the implementation of the MAC function.
  • the method of the present invention allows the generation of random numbers in a shared way, improving in this case the methods previously existing in what refers to their speed of execution in real environments.
  • This shared generation implies that at least two differentiated parties contribute their respective shares to the process of generating random numbers.
  • these two distinct parts are the Processing Module and the Randomness Module.
  • the request S sent by the Processing Module may also comprise the value V that will be used by the Randomness Module in the preparation of the digital information I.
  • this value V which has been generated outside the Randomness Module, allows to guarantee non-discretion by the Randomness Module in the generation of the random number.
  • Another possible implementation is based on operating the value V with the digital information M and using the result of the operation as an input value to the MAC function.
  • r MAC (K, V®M)
  • the operation ® can be of many different types, such as concatenation or a bitwise operation between the value V and the information M.
  • concatenation or a bitwise operation between the value V and the information M.
  • bitwise XOR as an operation.
  • the value V may be of a random nature or contain information prepared by said Processing Module, such as data received from an interaction with a user. In this way, this additional information will also be linked to the resulting value R.
  • the input of the MAC function is fed back with a value dependent on the random numbers previously generated (in a basic implementation it could be directly the random numbers themselves). Thus a generation of random number sequences linked to each other is achieved safely. Due to the feedback, all these random numbers are different although the value of the key K and / or the value V, if received, is always the same. In this way the key K and / or the value V, if received, could be used an indeterminate number of times to generate diverse random numbers.
  • the value V could only be used in the generation of the first random number.
  • Feedback through the successive r or R values ensures the diversity of the random numbers within the sequence.
  • V 2 MACiKJiT 1 )
  • T 1 MAC (KJ (T 1 J)
  • the Registration Module modifies the value of the key K after the generation of a certain number of random numbers R (iterations) or after a certain period of time.
  • the maximum value of iterations or time after which a new K key is generated may have been previously configured in the Randomness Module or may be specified by one of the requests or signals S sent to the Randomness Module.
  • each time the Randomness Module changes the value of the K key it notifies the change to the Registration Module and sends the previous K value used.
  • the value of the previous key K is available in said Registration Module in order to facilitate the audit of the random numbers previously generated by said key K.
  • the current value of K will not be disclosed to the Registration Module so as not to set danger the security of the generation of the new random numbers. Otherwise, if any party knew the current K key I could deduce the following random number to be generated by the Randomness Module.
  • Randomness Module sends to
  • Registration module a commitment to the new value of the K key, possibly along with its old value. In this way, every time the
  • Registration module receives the old value of K can verify that this corresponds to the commitment received in the previous key change.
  • This commitment could be based, for example, on the application of a summary cryptographic operation (hash function) on the K value with which the Randomness Module is committed.
  • the Randomness Module sends an encryption of the new value of the K key to the Registry Module, possibly along with its old value.
  • Said encryption would employ a technique that ensures that decryption can only be done by the designated party. For this purpose it can be based, for example, on a digital envelope, constructed by means of the public key of said designated party.
  • said Registration Module could additionally also store other useful values to facilitate the audit of the method, such as the values associated with M, I, V and / or R used in each generation process. These values could be obtained from the Randomness Module and / or the Processing Module.
  • the Registration Module could implement cryptographic practices to guarantee . The authenticity, integrity and non-repudiation of the registered information. Examples of these practices could be the cryptographic chain of the records and / or the digital signature of these by means of a pair of asymmetric keys. It should be taken into account that even if they are not stored in the Registry Module, some of these values could be stored in the Processing Module, so they could also be used for the audit.
  • a request S to the Randomness Module may simultaneously contain a request to change the key K and an external value V for the generation of the next random number.
  • the Randomness Module be formed by electronic and / or computer components that are in some way integrated, connected or communicated with the Processing Module.
  • both Modules could be implemented in two different computers connected by a data transmission line such as a communication network or a dedicated line such as a serial or USB cable.
  • both Modules are components of the same computer, with an internal connection between them.
  • one of the modules (for example, the Randomness Module) is a hardware component connected to the internal bus of said computer, such as a chip of the motherboard or a PCI board.
  • the electronic and / or computer components of the Randomness Module include: a) processing means to at least compute the MAC cryptographic function. b) storage means to at least store the key K. c) input and output means to at least notify the resulting value r or R.
  • the Random Module will also be provided with a random key generator to facilitate the periodic renewal of the K key.
  • part of the Randomness Module storage media can be found in some type of device with physical protection of the type HSM ("Hardware Security Module") in which at least the K key would be generated and / or stored.
  • HSM Hardware Security Module
  • This device It could also be used to protect at least part of the processing means of the Randomness Module, in order to allow the safe calculation of the MAC cryptographic function and / or any other cryptographic operation necessary for the implementation of the method.
  • HSM devices are smart card devices or PCI, PCMCIA or USB cryptographic cards.
  • this invention considers that it is formed at least by: a) means of entry and exit through which at least the information to be registered will be received. b) storage means in which at least the information received by said input and output means will be recorded.
  • Said Registration Module will be communicated with the Randomness Module (directly or through the Processing Module) through said input and output means using for example a dedicated line or a communication network.
  • said Registration Module would comprise a database server to expedite the searches of the information in case of an audit.
  • said Registration Module would comprise a removable device (for example, smart card type or "pen drive” memory card) to facilitate the transfer of the information stored in the Registration Module to an appropriate audit environment.
  • a removable device for example, smart card type or "pen drive” memory card
  • said Registration Module would consist of a single write and multiple read device (WORM "Write Once Read Many") such as a DVD ⁇ R or CD-R recorder. In this way the information could not be modified once saved.
  • WORM Write Once Read Many
  • the method described for the secure generation of random numbers allows auditing of the correct generation of each of the random numbers (and in particular their authenticity and integrity) without requiring in order to do so in an essential way any cryptographic operation considered expensive, such as It would be a digital signature.
  • the described method also does not essentially require the sending by any of the components of a commitment of the generated values (M, V and / or K) to another of the parties to subsequently verify the security and impartiality in the generation of the random numbers

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

La presente invención describe un método y a un sistema altamente eficientes para Ia generación segura y auditable de números aleatorios. Para ello utiliza una función criptográfica MAC, una información digital recibida externamente y/o almacenada en el módulo de generación de números aleatorios y una clave criptográfica propia.

Description

Método y sistema altamente eficientes de generación segura de números aleatorios
Campo de Ia invención
La presente invención se enmarca en el campo de Ia generación de números aleatorios mediante sistemas informáticos y/o electrónicos, y describe un método altamente eficiente para Ia generación segura y auditable de números aleatorios. La presente invención facilita además que dicha generación sea compartida sin afectar de forma negativa en Ia rapidez de Ia generación de los números aleatorios.
Antecedentes de Ia invención
Los números aleatorios se utilizan en situaciones tan dispares como pueden ser los juegos de azar, Ia transmisión de datos desde un satélite, Ia previsión del tiempo o como clave de establecimiento de una llamada de telefonía móvil GSM.
Los números aleatorios generados por medios electrónicos pueden ser básicamente de dos tipos distintos: en primer lugar existen los números aleatorios que han sido generados mediante un generador hardware (por ejemplo de obtención de azar a partir de ruido natural); y en segundo lugar disponemos de los números pseudo-aleatorios generados mediante un algoritmo software.
Tanto los generadores de números aleatorios hardware como los generadores software pueden presentar comportamientos estadísticos excelentes en Io que se refiere a Ia distribución de los valores resultantes. En otras palabras, estos métodos pueden efectivamente servir de base para Ia obtención de secuencias de números con un comportamiento azaroso e impredecible. Sin embargo, en todos los casos estos métodos adolecen de un grave problema de seguridad en Ia práctica: Ia generación de números aleatorios está bajo el control de una sola parte y no se ofrece ningún mecanismo que permita auditar Ia correcta generación de los mismos.
Actualmente Ia mayoría de procesos o aplicaciones que requieren números aleatorios gestionan su generación de forma centralizada, delegando esta función a un único generador de números aleatorios. Por una parte, este generador centralizado es excesivamente vulnerable a manipulaciones (especialmente por parte de personas o agentes con acceso o privilegios sobre dicho generador centralizado). Por otra parte, Ia generación empleada tampoco ofrece ningún tipo de mecanismo fiable para auditar con posterioridad Ia imparcialidad de los números aleatorios generados: Ia auditoría se basa usualmente en verificar si las secuencias de números generados siguen realmente una distribución aleatoria uniforme.
Sin embargo, esta verificación o auditoria estadística generalmente no garantiza que dichos números se hayan utilizado según el orden en que han sido generados (dicho de otra manera, el sistema podría asignarlos según Ie convenga). Esta verificación en realidad tampoco ofrece ninguna garantía acerca de Ia fuente real de los números aleatorios: los números aleatorios generados por el generador correcto podrían haber sido simplemente descartados y sustituidos por otros determinados arbitrariamente (aunque con una distribución estadísticamente correcta para superar con éxito Ia auditoría). En definitiva, el uso actual de generadores de números aleatorios de forma centralizada comporta gran dificultad para verificar con garantías si un número aleatorio ha sido generado por un cierto generador (autenticidad) y no ha sido manipulado (integridad). La patente US5778069 ofrece un ejemplo de sistema de generación centralizada de números aleatorios que sólo permite Ia auditoría verificando Ia distribución homogénea de los números generados y que por Io tanto adolece de los problemas de seguridad descritos previamente.
Para hacer frente a este tipo de problemáticas, existen en Ia actualidad métodos que recurren a Ia generación de números aleatorios de forma no centralizada (compartida). En este caso, los números aleatorios no se determinan unilateralmente por un único generador sino que provienen de Ia interacción de dos o más partes. Solamente Ia plena confabulación de todas las partes implicadas podría llevar a cabo una manipulación fraudulenta de los números aleatorios. La generación compartida permite así asegurar Ia imparcialidad de los números aleatorios generados. Generalmente, se dota a los métodos de generación compartida de números aleatorios de capacidades criptográficas que permiten las auditorías fiables acerca de Ia autenticidad e integridad de los números aleatorios generados.
La limitación principal de los métodos de generación compartida y/o auditable de números aleatorios es su excesiva complejidad y su difícil ¡mplementación práctica debido a los costes computacionales y/o de transferencia de datos que conllevan. La mayoría de ellos requieren protocolos criptográficos de compromiso (las partes se comprometen previamente al resultado sin necesidad de mostrarlo, de tal forma que una vez revelado pueda probarse que efectivamente corresponde al valor comprometido), así como Ia ejecución de varias interacciones secuenciales entre las distintas partes participantes antes de llegar a Ia obtención del número aleatorio resultante. También se suele hacer un uso excesivo de primitivas criptográficas computacionalmente costosas como por ejemplo Ia firma digital.
Entre los métodos existentes de generación compartida de números aleatorios encontramos el publicado por Bruce Schneier en el libro "Applied
Cryptography: protocols, algorithms, and source code in C" (ISBN 0-471-
59756-2) en Ia sección 4.7 titulada "Fair coin flips". En ella se describe un protocolo en el que dos partes generan independientemente un número aleatorio y, antes de intercambiarse sendos números, una de las partes (partel) envía un compromiso del número generado a Ia otra parte (parte!).
Este compromiso impide a Ia partel cambiar el valor de su número sin que Ia parte2 Io detecte. Una vez recibido el compromiso, Ia partel revela su propio número a Ia partel, Ia cual calcula el resultado final combinando ambos números. A continuación Ia partel revela el resultado y su propio número a Ia parte2 Ia cual comprueba que el compromiso recibido previamente se corresponda con el número de Ia partel y que el resultado final se haya calculado correctamente.
Diferentes implementaciones basadas en este método se pueden encontrar en Ia patente WO9829793. En ellas el número aleatorio se genera de forma compartida mediante Ia colaboración de una plataforma de juego con las plataformas de los jugadores y/o una(s) tercera(s) parte(s) de confianza. Para ello todos los participantes deben disponer de un generador de números aleatorios (o pseudo-aleatorios) propio y el resultado se calcula a partir de Ia combinación de todos ellos. Para evitar fraudes, los participantes deben comprometerse a sus respectivos valores antes de hacerlos públicos para calcular el resultado.
Otro método de generación compartida de números aleatorios se encuentra descrito en Ia patente WO9912135. A diferencia de los métodos anteriores, en este caso el número aleatorio se genera de forma centralizada mediante un generador de números pseudo-aleatorios (PRNG), siendo Ia semilla que inicializa este PRNG Ia que se genera aleatoriamente de forma compartida. Antes de hacer públicos los distintos valores para el cálculo de Ia semilla, las partes participantes en Ia generación también se comprometen a sus respectivos valores.
Finalmente cabe mencionar el método propuesto en Ia patente WO2004035159. En él se generan un conjunto de permutaciones aleatorias, a partir de las cuales se calcula de forma compartida el resultado del juego. Al igual que en los métodos anteriores, los participantes en Ia generación compartida deben comprometerse a los valores de las permutaciones antes de hacerlos públicos.
La complejidad de todos estos métodos de generación compartida de números aleatorios se deriva del número y dificultad de los pasos que se deben realizar para obtener el número aleatorio final: (i) Ia generación de números aleatorios por parte de cada uno de los participantes, (ii) Ia generación e intercambio de compromisos de estos números aleatorios entre los participantes antes de hacer públicos dichos números, (iii) el intercambio de los números, (iv) Ia verificación por parte de los participantes de que los números aleatorios efectivamente se corresponden con los compromisos intercambiados previamente, y (v) el cálculo del resultado a partir de Ia combinación de los respectivos números aleatorios.
Para simplificar Ia complejidad de los métodos de generación compartida de números aleatorios han aparecido algunas propuestas basadas en Ia participación de únicamente dos partes diferenciadas. Probablemente una de las implementaciones más eficientes hasta Ia fecha es Ia descrita en US6934846. Esta propuesta reduce Ia complejidad de los intercambios de compromisos mediante el uso del mecanismo de firma digital (primitiva criptográfica destinada a garantizar Ia autenticidad e integridad de una información mediante el uso de un par de claves asimétricas; ver por ejemplo el esquema de firma digital de RSA en http://www.rsasecurity.com/rsalabs/node.asp?id=2214 y Ia variante de Rabin en http://www.rsasecurity.com/rsalabs/node.asp?id=2256, ambas referencias activas en fecha 2 de Marzo de 2006). Sin embargo, pese a que se ha reducido el número de pasos, Ia computación de una firma digital para cada número aleatorio que se pretenda generar es una operación excesivamente costosa en términos computacionales. Para reducir este coste, dicha propuesta también permite Ia generación de una secuencia de números aleatorios a partir de una misma firma digital pero sólo si estos números se utilizan en una misma transacción del juego.
Finalmente, cabe destacar Ia propuesta descrita en Ia solicitud de patente US20050135608. En ésta se opta por Ia utilización de funciones hash (operación criptográfica que se realiza sobre un conjunto de datos de cualquier tamaño de tal forma que se obtiene como resultado otro conjunto de datos de tamaño fijo e independiente del tamaño original y que tiene Ia propiedad de estar asociado unívocamente a los datos iniciales siendo prácticamente imposible encontrar dos mensajes distintos que generen un hash idéntico) en lugar de firmas digitales para Ia generación compartida de números aleatorios. Aunque esta opción permite reducir drásticamente los costes de cómputo, las funciones hash no aportan medidas que permitan verificar Ia autenticidad del valor resultante, por Io que a efectos de auditoría no son una buena opción por sí solas.
La presente invención pretende solucionar los problemas de seguridad y limitaciones principales de los métodos de generación de números aleatorios existentes, presentando una propuesta que facilita una auditoría fiable de Ia imparcialidad, autenticidad e integridad de los números aleatorios generados, pero al mismo tiempo definiendo un proceso de generación altamente eficiente en cuanto a costes de computación. La propuesta de Ia presente invención es especialmente indicada para aquellas aplicaciones de generación de números aleatorios que requieran máxima seguridad a Ia vez que máxima velocidad de ejecución.
Breve exposición de Ia invención
La presente invención contempla un método para Ia generación segura de números aleatorios de forma fiable y permitiendo una auditoría posterior. Se trata de uno de los métodos con más alta eficiencia (rápido en su ejecución en implantaciones reales) que Ia de los conocidos hasta Ia fecha. Se contempla también un sistema que permite Ia implementación del método.
El método y el sistema propuestos persiguen los siguientes objetivos:
• Garantizar Ia impredecibilidad en Ia generación de los números (es decir, que ninguna parte pueda predecir los números resultantes);
• Facilitar a cualquier parte (incluso terceras partes) Ia posterior auditoría de Ia correcta generación y uso de los números aleatorios generados (es decir, comprobación de Ia imparcialidad, autenticidad e integridad de los números aleatorios).
• Permitir ¡mplementaciones reales, mediante sistemas hardware y software, que sean extremadamente rápidas en su ejecución. Este objetivo de carácter práctico es de , gran importancia en el caso de sistemas que deban soportar altas cargas de utilización simultánea de usuarios, como es el caso por ejemplo de los sistemas de juego en tiempo real que operan a través de Internet.
Es un objetivo adicional de Ia presente invención garantizar Ia seguridad e imparcialidad de Ia generación de números aleatorios mediante Ia distribución de Ia generación entre, como mínimo, dos partes diferenciadas de tal forma que ninguna de las partes pueda tener posibilidad alguna de predecir el valor resultante, ni tan solo parcialmente.
El método y sistema propuestos hacen uso de un conjunto de técnicas criptográficas que permiten alcanzar los tres objetivos planteados de forma novedosa y mejorando el estado actual de Ia técnica descrito. Breve descripción de los dibujos
La Figura 1 describe los distintos componentes utilizados en Ia implementación más avanzada de un sistema que cumple las características descritas por Ia presente invención. Estos componentes son:
• El Módulo de Procesamiento (101): es un componente opcional de Ia invención el cual se puede comunicar con el Módulo de Aleatoriedad (102) para solicitar y/o recibir un/os número/s aleatorio/s.
• El Módulo de Aleatoriedad (102): es el componente básico para Ia generación de los números aleatorios. Dicho componente puede recibir solicitudes o mensajes para generar números aleatorios del Módulo de Procesamiento (101). Los números aleatorios resultantes del proceso interno del Módulo de Aleatoriedad (102) son devueltos a dicho Módulo de Procesamiento (101) para que sean utilizados. • El Módulo de Registro (103) : es un componente adicional de Ia invención que facilita Ia auditoria del proceso de generación de los números aleatorios. Para ello recibe datos o informaciones provenientes del Módulo de Aleatoriedad (102) y/o del Módulo de Procesamiento (101). Dichos datos o informaciones son guardados de forma segura por el Módulo de Registro (103).
La Figura 2 describe una implementación básica del método para Ia generación de al menos un número aleatorio. En esta implementación el Módulo de Aleatoriedad (102) genera un resultado aleatorio r (203) aplicando una función criptográfica MAC (301) sobre una información I (201) (entrada de Ia función MAC) utilizando para ello una clave K (202). El valor resultado r (203) cumple las propiedades necesarias para ser utilizado directamente como un número aleatorio o para Ia obtención de un número aleatorio.
La Figura 3 describe un ejemplo de implementación de generación compartida de números aleatorios en Ia cual intervienen un Módulo de Procesamiento (101) y el Módulo de Aleatoriedad (102). Para ello el Módulo de Procesamiento (102) solicita mediante una petición S (204) Ia generación de un número aleatorio R (206) al Módulo de Aleatoriedad (102). Con el fin de que Ia generación del número aleatorio sea compartida, el Módulo de Procesamiento (101) incluye en Ia petición S (204) un valor V (205), preferentemente aleatorio, que el Módulo de Aleatoriedad (102) utilizará para preparar Ia información I (201) de entrada de Ia función MAC (301). Finalmente, al resultado r (203) de Ia función MAC (301) se Ia aplica una función determinista d (302) para obtener el número aleatorio R (206) solicitado. El número aleatorio R (206) es devuelto al Módulo de Procesamiento (101) que Io ha solicitado.
La Figura 4 describe un ejemplo de implementación compartida de números aleatorios en Ia que el Módulo de Aleatoriedad (102) reutiliza los resultados aleatorios r (203) para Ia generación de nuevos números aleatorios. En este ejemplo se utilizan además los valores V (205) recibidos para que Ia generación sea compartida. Con este objetivo el Módulo de Aleatoriedad (102) prepara (303) una información digital I (201) utilizando el resultado aleatorio r (203) obtenido en Ia iteración anterior, Ia información M (207) del Módulo de Aleatoriedad (102) y el valor V (205) contenido en Ia solicitud S (204) recibida. La información digital I (201) resultado de dicha preparación (303) se utiliza como entrada de Ia función MAC (301), Ia cual también requiere el uso de Ia clave K (202). Finalmente, al resultado r (203) de dicha operación MAC (301) se Ie aplica una función determinista d (301) para obtener el número aleatorio R (206). Dicho resultado r (203) es utilizado también para obtener el valor M (207) utilizado para Ia preparación (303) de Ia información digital I (201) necesaria para Ia generación del resultado aleatorio r (203) de Ia siguiente iteración.
La Figura 5 es un ejemplo de implementación ampliada de Ia Figura 4 en Ia que además se actualiza el valor de Ia clave K (202) ante un cierto evento como sería Ia ejecución de un cierto número de iteraciones o el transcurso de un determinado lapso de tiempo. Al cumplirse dicho evento, el Módulo de Aleatoriedad (102) genera una nueva clave K¡ (202) que será utilizada para Ia generación de los nuevos números aleatorios, y envía al Módulo de Registro (103) el valor anterior de dicha clave /Cw (208). En dicho ejemplo además se envía también al Módulo de Registro (103) un compromiso H(K¡) (304) del valor de Ia actual clave K1 (202). La información recibida por el Módulo de Registro (103) es almacenada por dicho módulo para facilitar Ia auditoría de los números aleatorios R (206) previamente generados con el anterior valor de Ia clave K¡-t (208).
Descripción detallada de Ia invención
La presente invención describe un método y un sistema para Ia generación de números aleatorios en aquellos entornos en los cuáles sea necesario garantizar: a) Ia impredecibilidad en Ia generación de dichos números (es decir, que ninguna parte pueda predecir los números resultantes, ni tan siquiera parcialmente); b) Ia posterior auditoría fiable de los procesos seguidos para dicha generación, y en particular de Ia autenticidad e integridad de los números aleatorios; y c) Ia eficiencia (rapidez) del proceso de generación de los números aleatorios y de las medidas de seguridad asociadas.
Adicionalmente dicha invención permite Ia generación compartida de los números aleatorios garantizando Ia imparcialidad en Ia generación de dichos números (es decir, que ninguna parte pueda escoger arbitrariamente o influir en los números resultantes).
Entendemos por números o resultados aleatorios cualquier valor aleatorio digital independientemente de su representación final. De este modo podemos considerar que un número aleatorio puede representar valores aleatorios en distintos formatos tales como un número, un conjunto de caracteres alfanuméricos o una clave criptográfica.
La presente invención considera para tal fin dos componentes diferenciados que participan en Ia generación del número aleatorio. El primer componente es aquél que necesita los números aleatorios (por ejemplo una aplicación de juego electrónico) y que llamaremos Módulo de Procesamiento. Además, como parte esencial de Ia invención, el método introduce un segundo componente que es responsable de aportar seguridad a Ia generación de los números aleatorios. A este componente Ie identificaremos como Módulo de Aleatoriedad y se encuentra en comunicación con el Módulo de Procesamiento para al menos enviar a este último los números aleatorios resultantes.
En Ia implementación básica del método, para Ia generación de un número aleatorio el Módulo de Aleatoriedad ejecuta una función criptográfica MAC (MAC o "Message Authentication Code" es una etiqueta de autenticidad derivada de aplicar a una información un esquema de compactación junto a una clave criptográfica simétrica; una función MAC se diferencia de una firma digital en que se calcula y verifica con Ia misma clave; ver explicación detallada y referencias en el documento http://www.rsasecurity.com/rsalabs/node.asp?id=2177 de RSA Laboratories, referencia activa con fecha 2 de Marzo de 2006) utilizando como entrada una información digital J preparada a partir de una información digital V recibida externamente y/o una información digital M almacenada en el Módulo de Aleatoriedad. Para ejecutar Ia función MAC, el Módulo de Aleatoriedad usa una clave criptográfica K propia del módulo. Con todo ello, el Módulo de Aleatoriedad obtiene un valor resultado r con propiedades aleatorias. El número aleatorio final R podrá ser tanto el mismo valor r como también podrá obtenerse aplicando una función determinista d sobre dicho valor r. En una implementación preferida del método, el Módulo de Aleatoriedad será el responsable del cálculo de Ia función d sobre el valor r. No obstante, en otra implementación, el cálculo podría ser realizado por el Módulo de Procesamiento. En todo caso, el número aleatorio R será el que utilizará finalmente el Módulo de Procesamiento. r = MAC(KJ) V J
R = d(r)
En una implementación preferida del método, se aplicará Ia función identidad como función determinista d, siendo por tanto el número aleatorio resultado R=r. En otras implementaciones adicionales se podría utilizar Ia función módulo aritmético o el truncado de bits como función determinista.
Para generar dicho número aleatorio, el Módulo de Aleatoriedad puede recibir una señal, petición o mensaje S solicitando su generación. Esta petición generalmente será producida y enviada por un Módulo de Procesamiento aunque también se contempla Ia posibilidad de que pueda ser enviada por un tercer módulo independiente o incluso generada por el mismo Módulo de Aleatoriedad (por ejemplo este módulo podría estar generando constantemente números aleatorios). La clave K es una clave criptográfica simétrica única del Módulo de Aleatoriedad, que puede haber sido generada en el mismo módulo o instalada de forma segura durante su inicialización. El uso de dicha clave K permitirá que durante una auditoría se verifique que el número aleatorio R ha sido efectivamente generado por dicho Módulo de Aleatoriedad y no ha sido manipulado después de su generación. Nótese que esta característica no podría darse en el caso de emplear únicamente funciones hash en lugar de funciones MAC.
Para poder implementar el método propuesto es necesario que el Módulo de Aleatoriedad disponga al menos de unos medios de almacenamiento donde pueda guardar información digital (como mínimo Ia clave criptográfica K). También es necesario que dicho módulo disponga de unos medios de procesamiento capaces de ejecutar una operación criptográfica MAC (como por ejemplo HMAC o PMAC). En una implementación preferente el Módulo de Aleatoriedad se implementaría utilizando un dispositivo hardware a prueba de manipulaciones, también conocido como Hardware Security Module o HSM. Este tipo de dispositivos evita que un tercero pueda manipular o acceder a los componentes críticos del método, como son Ia clave K y Ia implementación de Ia función MAC.
El método de Ia presente invención permite Ia generación de los números aleatorios de forma compartida, mejorando en este caso los métodos existentes previamente en Io que se refiere a su velocidad de ejecución en entornos reales. Dicha generación compartida comporta que como mínimo dos partes diferenciadas aporten sus respectivas participaciones al proceso de generación de los números aleatorios. En una implementación preferida del método estas dos partes diferenciadas son el Módulo de Procesamiento y el Módulo de Aleatoriedad. En este caso, Ia petición S enviada por el Módulo de Procesamiento puede comprender también el valor V que será utilizado por el Modulo de Aleatoriedad en Ia preparación de Ia información digital I.
La utilización de este valor V, el cual ha sido generado fuera del Módulo de Aleatoriedad, permite garantizar Ia no discrecionalidad por parte del Módulo de Aleatoriedad en Ia generación del número aleatorio. En una primera implementación, el método utiliza únicamente este valor externo V para preparar el contenido de Ia información digital I que se utiliza como entrada de Ia función MAC. r = MAC(KJ)
Otra posible implementación se basa en operar el valor V con Ia información digital M y utilizar el resultado de Ia operación como valor de entrada a Ia función MAC. r = MAC(K,V®M)
La operación ® puede ser de muy diversos tipos, como por ejemplo Ia concatenación o una operación bit a bit entre el valor V y Ia información M. En una implementación preferida utilizaremos una XOR bit a bit como operación.
El valor V puede ser de naturaleza aleatoria o contener una información preparada por dicho Módulo de Procesamiento, como por ejemplo datos recibidos a partir de una interacción con un usuario. De este modo, esta información adicional quedará también vinculada al valor resultante R. En una primera ampliación del método, Ia entrada de Ia función MAC se realimenta con un valor dependiente de los números aleatorios generados previamente (en una ¡mplementación básica podría tratarse directamente de los propios números aleatorios). Así se consigue una generación de secuencias de números aleatorios vinculados entre ellos de forma segura. Debido a Ia realimentación, todos estos números aleatorios son distintos aunque el valor de Ia clave K y/o el valor V, si fuera recibido, siempre sean los mismos. De este modo Ia clave K y/o el valor V, si fuera recibido, podrían ser utilizados un número indeterminado de veces para generar números aleatorios diversos.
En Ia generación de estas secuencias de números aleatorios, el valor V se podría utilizar solamente en Ia generación del primer número aleatorio. La realimentación mediante los sucesivos valores r o R (o valores derivados de los sucesivos valores r o R a través de una determinada función f) asegura Ia diversidad de los números aleatorios dentro de Ia secuencia.
T1 = MACiK9V)
V2 = MACiKJiT1))
T1 = MAC(KJ(T1J)
En una segunda ampliación del método se considera Ia existencia de un tercer módulo al que denominaremos Módulo de Registro. La función principal de este módulo es Ia de recibir y almacenar como mínimo el valor de Ia clave K utilizada por el Módulo de Aleatoriedad, para facilitar las auditorías posteriores relativas a los números aleatorios generados. Con el fin de mejorar Ia seguridad del método, se propone que el Módulo de Aleatoriedad cambie el valor de Ia clave K después de Ia generación de un cierto número de números aleatorios R (iteraciones) o al cabo de un determinado periodo de tiempo. El valor máximo de iteraciones o de tiempo tras el cual se genera una nueva clave K puede haber sido configurado previamente en el Módulo de Aleatoriedad o puede ser especificado mediante una de las peticiones o señales S enviadas al Módulo de Aleatoriedad.
En una implementación preferida, cada vez que el Módulo de Aleatoriedad cambie el valor de Ia clave K, notifica el cambio al Módulo de Registro y Ie envía el anterior valor de K utilizado. De este modo el valor de Ia anterior clave K queda disponible en dicho Módulo de Registro para poder facilitar Ia auditoría de los números aleatorios generados previamente mediante dicha clave K. El valor en curso de K no será revelado al Módulo de Registro para no poner en peligro Ia seguridad de Ia generación de los nuevos números aleatorios. En caso contrario, si alguna parte conociera Ia clave K en curso podría deducir el siguiente número aleatorio a generar por el Módulo de Aleatoriedad.
En otra implementación alternativa el Módulo de Aleatoriedad envía al
Módulo de Registro un compromiso del nuevo valor de Ia clave K, posiblemente junto con su antiguo valor. De este modo, cada vez que el
Módulo de Registro recibe el antiguo valor de K puede verificar que éste se corresponde con el compromiso recibido en el anterior cambio de claves.
Este compromiso podría basarse por ejemplo en Ia aplicación de una operación criptográfica resumen (función hash) sobre el valor K con el que se compromete el Módulo de Aleatoriedad.
En otra implementación alternativa el Módulo de Aleatoriedad envía al Módulo de Registro un cifrado del nuevo valor de Ia clave K, posiblemente junto con su antiguo valor. Dicho cifrado emplearía una técnica que permita asegurar que el descifrado solamente pueda realizarse por Ia parte designada. A este efecto puede basarse por ejemplo en un sobre digital, construido mediante Ia clave pública de dicha parte designada.
En cualquier caso, dicho Módulo de Registro podría adicionalmente almacenar también otros valores útiles para facilitar Ia auditoria del método, como los valores asociados a M, I, V y/o R utilizados en cada proceso de generación. Dichos valores podrían ser obtenidos del Módulo de Aleatoriedad y/o del Módulo de Procesamiento. El Módulo de Registro podría implementar prácticas criptográficas para garantizar. Ia autenticidad, integridad y no repudio de Ia información registrada. Ejemplos de estas prácticas podrían ser el encadenamiento criptográfico de los registros y/o Ia firma digital de éstos mediante un par de claves asimétricas. Hay que tener en cuenta que aunque no se almacenen en el Módulo de Registro, algunos de estos valores podrían almacenarse en el Módulo de Procesamiento, por Io que podrían también utilizarse para Ia auditoría.
Cabe señalar que las ampliaciones y variantes descritas del método son combinables entre ellas. Por ejemplo, una petición S al Módulo de Aleatoriedad puede contener simultáneamente una petición de cambio de Ia clave K y un valor externo V para Ia generación del siguiente número aleatorio. Para poner en práctica el método de esta invención es necesario que el Módulo de Aleatoriedad esté formado por componentes electrónicos y/o informáticos que se encuentren de algún modo integrados, conectados o comunicados con el Módulo de Procesamiento. Por ejemplo, ambos Módulos podrían estar implementados en dos ordenadores distintos conectados por una línea de transmisión de datos tal como una red de comunicación o una línea dedicada como un cable serie o USB. Adicionalmente también se podría considerar que ambos Módulos son componentes de un mismo ordenador, con conexión interna entre ellos. En este caso podríamos considerar que uno de los módulos (por ejemplo, el Módulo de Aleatoriedad) se trate de un componente hardware conectado al bus interno de dicho ordenador, como un chip de Ia placa base o una placa PCI.
Tal como se ha introducido anteriormente, en una implementación básica del método los componentes electrónicos y/o informáticos del Módulo de Aleatoriedad incluyen : a) unos medios de procesamiento para al menos computar Ia función criptográfica MAC. b) unos medios de almacenamiento para al menos guardar Ia clave K. c) unos medios de entrada y salida para al menos notificar el valor resultante r o R.
En una implementación preferida también se dotaría al Módulo de Aleatoriedad de un generador de claves aleatorias para facilitar Ia renovación periódica de Ia clave K.
Adicionalmente, parte de los medios de almacenamiento del Módulo de Aleatoriedad puede encontrarse en algún tipo de dispositivo con protección física del tipo HSM ("Hardware Security Module") en el que al menos se generaría y/o se almacenaría Ia clave K. Este dispositivo también podría utilizarse para proteger al menos parte de los medios de procesamiento del Módulo de Aleatoriedad, con Ia finalidad de permitir el cálculo seguro de Ia función criptográfica MAC y/o de cualquier otra operación criptográfica necesaria para Ia implementación del método. Ejemplos de dispositivo HSM son los dispositivos tipo tarjeta inteligente "smartcard" o las placas criptográficas PCI, PCMCIA o USB. Por lo que respecta al Módulo de Registro esta invención considera que está formado al menos por: a) unos medios de entrada y salida a través de los cuáles al menos recibirá Ia información a registrar. b) unos medios de almacenamiento en los que al menos registrará Ia información recibida por dichos medios de entrada y salida.
Dicho Módulo de Registro estará comunicado con el Módulo de Aleatoriedad (directamente o a través del Módulo de Procesamiento) mediante dichos medios de entrada y salida utilizando por ejemplo una línea dedicada o una red de comunicación.
En una ¡mplementación preferida dicho Módulo de Registro comprendería un servidor de base de datos para agilizar las búsquedas de Ia información en caso de una auditoría.
En otra implementación preferida dicho Módulo de Registro comprendería un dispositivo extraíble (por ejemplo, tipo tarjeta inteligente "smartcard" o de memoria "pen drive") para facilitar el traspaso de Ia información almacenada en el Módulo de Registro a un entorno de auditoría adecuado.
En otra implementación preferida dicho Módulo de Registro consistiría en un dispositivo de una sola escritura y múltiples lecturas (WORM "Write Once Read Many") tal como un grabador de DVD±R o CD-R. De este modo Ia información no podría ser modificada una vez guardada.
Se puede apreciar que el método descrito para Ia generación segura de números aleatorios permite auditar Ia correcta generación de cada uno de los números aleatorios (y en particular su autenticidad e integridad) sin requerir para ello de forma indispensable ninguna operación criptográfica considerada costosa, tal como sería una firma digital. Ello mejora sensiblemente los tiempos de ejecución de los demás métodos propuestos hasta Ia fecha. El método descrito tampoco requiere de forma esencial el envío por parte de ninguno de los componentes de un compromiso de los valores generados (M, V y/o K) a otra de las partes para verificar posteriormente Ia seguridad e imparcialidad en Ia generación de los números aleatorios.

Claims

Reivindicaciones
1. Método de generación segura de números aleatorios por medios electrónicos, en el cual se utiliza al menos un Módulo de Aleatoriedad (102) con capacidad de ejecución de al menos una función criptográfica MAC (301) y provisto de una clave criptográfica simétrica K (202), comprendiendo dicho método las siguientes etapas necesarias para dicha generación segura de cada uno de dichos números aleatorios: a) Preparar (303) una información digital I (201) a partir de una información digital V (205) recibida externamente y/o una información digital M (207) almacenada en dicho Módulo de
Aleatoriedad (102). b) Generar un resultado aleatorio r (203) aplicando dicha función criptográfica MAC (301) sobre dicha información digital I (201) y utilizando para ello dicha clave criptográfica K (202).
2. Método según Ia reivindicación 1 caracterizado porque se aplica una función determinista d (302) a dicho resultado r (203) obtenido en Ia etapa b) para obtener un valor aleatorio final R (206).
3. Método según Ia reivindicación 2 caracterizado porque dicha función determinista d (302) es Ia función identidad.
4. Método según Ia reivindicación 2 caracterizado porque dicha función determinista d (302) es del tipo que comprende un módulo aritmético o un truncado de bits.
5. Método según Ia reivindicación 2 caracterizado por comprender una etapa adicional c) posterior a dicha etapa b) que consiste en un envío de dicho valor aleatorio final R (206) a un módulo externo con capacidad de recepción de dicho valor R (206).
6. Método según Ia reivindicación 1 caracterizado porque dicha clave criptográfica simétrica K (202) se ha generado aleatoriamente.
7. Método según Ia reivindicación 1 caracterizado porque dicha información digital M (207) almacenada en dicho Módulo de Aleatoriedad (102) se obtiene a partir de dichos resultados r (203) obtenidos en ejecuciones previas de dicha generación segura de números aleatorios.
8. Método según Ia reivindicación 1 caracterizado porque dicha preparación (303) de dicha información digital I (201) consiste únicamente en Ia utilización de dicha información digital V (205) recibida externamente.
9. Método según Ia reivindicación 1 caracterizado porque dicha preparación (303) de dicha información digital I (201) consiste en una concatenación, en cualquier orden, de dicha información digital V (205) recibida externamente con dicha información digital M (207) almacenada en dicho Módulo de Aleatoriedad (102).
10. Método según Ia reivindicación 1 caracterizado porque dicha preparación (303) de dicha información digital I (201) consiste en una operación XOR bit a bit entre dicha información digital V (205) recibida externamente y dicha información digital M (207) almacenada en dicho Módulo de
Aleatoriedad (102).
11. Método según Ia reivindicación 1 caracterizado por una etapa adicional c) realizada únicamente ante un determinado evento e, tal como Ia recepción de una petición externa de renovación al Módulo de
Aleatoriedad (102), el transcurso de un lapso de tiempo predeterminado o Ia generación de un número predeterminado de números aleatorios, que comprende una renovación del valor de dicha clave criptográfica simétrica K (202) del Módulo de Aleatoriedad (102).
12. Método según Ia reivindicación 11 caracterizado porque dicha información digital M (207) almacenada en dicho Módulo de Aleatoriedad (102)se obtiene a partir de dichos resultados r (203) obtenidos en ejecuciones previas de dicha generación segura de números aleatorios.
13. Método según Ia reivindicación 12 caracterizado porque se aplica una función determinista d (302) a dicho resultado r (203) obtenido en Ia etapa b) para obtener un valor aleatorio final R (206).
14. Método según Ia reivindicación 11 caracterizado por una etapa adicional d) que comprende un registro en dicho Módulo de Aleatoriedad (102) o en un módulo externo con capacidad de almacenamiento, del valor de dicha clave criptográfica simétrica anterior a dicha renovación Khl (208) .
15. Método según Ia reivindicación 11 caracterizado por una etapa adicional d) que comprende un registro en dicho Módulo de Aleatoriedad (102) o en un módulo externo con capacidad de almacenamiento, de un compromiso criptográfico H(K) (304) del nuevo valor de dicha clave criptográfica simétrica K (202) obtenido después de dicha renovación.
16. Método según Ia reivindicación 15 caracterizado porque dicho compromiso criptográfico H(K) (304) es una función resumen unidireccional, o función hash.
17. Método según Ia reivindicación 1 caracterizado porque dicha función criptográfica MAC (301) es del grupo que comprende al menos una CBC-
MAC, una RIPE-MAC o una HMAC.
18. Método según cualquiera de las reivindicaciones anteriores caracterizado por una etapa adicional A) anterior a dicha etapa a) que comprende una recepción por parte de dicho Módulo de Aleatoriedad (102) de una petición S (204) generada interna o externamente de generación de un resultado aleatorio.
19. Sistema de generación segura de números aleatorios por medios electrónicos aplicable para implementar el método descrito en las reivindicaciones 1 a 18, caracterizado porque comprende, en combinación : a. Al menos un Módulo de Procesamiento (101) con el que interactúa al menos un usuario o una aplicación, configurado para realizar una determinada acción a partir de Ia obtención de un número aleatorio y que integra: i. unos medios de entrada y salida de datos para recibir al menos un número aleatorio;
¡i. unos medios de procesamiento para realizar al menos dicha determinada acción; b. Al menos un Módulo de Aleatoriedad (102) adaptado para una interconexión o una integración con uno o más Módulos de
Procesamiento (101) y para Ia generación segura de números aleatorios según el método descrito, integrando dicho Módulo de Aleatoriedad (102); i. Unos medios de almacenamiento para almacenar al menos una clave criptográfica simétrica (202); ii. Unos medios de procesamiento para calcular al menos una función criptográfica MAC (301) sobre una información digital (201) utilizando para ello dicha clave criptográfica simétrica (202); iii. Unos medios de entrada y salida de datos para transmitir a dicho(s) Módulo(s) de Procesamiento al menos una información digital derivada del resultado (203) de dicha función criptográfica MAC (301);
20. Sistema según Ia reivindicación 19 caracterizado porque dicho Módulo de Aleatoriedad (102) comprende además un generador de claves aleatorias para generar o actualizar dicha clave criptográfica simétrica.
21. Sistema según Ia reivindicación 19 caracterizado por comprender además al menos un Módulo de Registro (103) adaptado para una interconexión o integración con dicho Módulo de Aleatoriedad (102) o dicho Módulo de
Procesamiento (101) para almacenar una información digital originada en dicho Módulo de Aleatoriedad (102), que integra: i. Unos medios de entrada y salida para recibir una información digital originada en dicho Módulo de Aleatoriedad (102); ii. Unos medios de almacenamiento para almacenar al menos dicha información digital recibida; 22. Sistema según Ia reivindicación 21 caracterizado porque al menos parte de dichos medios de almacenamiento de dicho Módulo de Registro (103) son un servidor de base de datos.
23. Sistema según Ia reivindicación 21 caracterizado porque al menos parte de dichos medios de almacenamiento de dicho Módulo de Registro (103) emplean un dispositivo de una sola escritura tal como un WORM.
24. Sistema según Ia reivindicación 19 caracterizado porque al menos parte de dichos medios de almacenamiento de dicho Módulo de Aleatoriedad (102) se encuentran en una memoria no volátil.
25. Sistema según Ia reivindicación 19 caracterizado porque al menos parte de dichos medios de almacenamiento y/o al menos parte de dichos medios de procesamiento de dicho Módulo de Aleatoriedad (102) disponen de unas medidas de protección física proporcionadas por un hardware sellado.
26. Sistema según Ia reivindicación 25 caracterizado porque dicho hardware sellado es escogido del grupo que comprende al menos un módulo hardware de seguridad, una placa criptográfica, o un dispositivo extraíble tal como una tarjeta inteligente.
27. Sistema según Ia reivindicación 20 caracterizado porque al menos parte de dichos medios de almacenamiento y/o al menos parte de dichos medios de procesamiento y/o al menos parte de dicho generador de claves aleatorias de dicho Módulo de Aleatoriedad (102) disponen de unas medidas de protección física proporcionadas por un hardware sellado.
28. Sistema según Ia reivindicación 19 caracterizado porque dicho Módulo de Procesamiento (101) forma parte de un terminal de juego electrónico.
PCT/ES2006/000121 2006-03-13 2006-03-13 Método y sistema altamente eficientes de generación segura de números aleatorios Ceased WO2007104802A1 (es)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/ES2006/000121 WO2007104802A1 (es) 2006-03-13 2006-03-13 Método y sistema altamente eficientes de generación segura de números aleatorios
EP06725815A EP2006810A4 (en) 2006-03-13 2006-03-13 HIGHLY EFFICIENT METHOD AND SYSTEM FOR SECURE PRODUCTION OF RANDOM NUMBERS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/ES2006/000121 WO2007104802A1 (es) 2006-03-13 2006-03-13 Método y sistema altamente eficientes de generación segura de números aleatorios

Publications (2)

Publication Number Publication Date
WO2007104802A1 true WO2007104802A1 (es) 2007-09-20
WO2007104802A8 WO2007104802A8 (es) 2008-10-02

Family

ID=38509075

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2006/000121 Ceased WO2007104802A1 (es) 2006-03-13 2006-03-13 Método y sistema altamente eficientes de generación segura de números aleatorios

Country Status (2)

Country Link
EP (1) EP2006810A4 (es)
WO (1) WO2007104802A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120085832A (zh) * 2025-02-14 2025-06-03 本源量子计算科技(合肥)股份有限公司 随机数生成方法及相关装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778069A (en) 1996-04-10 1998-07-07 Microsoft Corporation Non-biased pseudo random number generator
WO1998029793A2 (en) 1996-12-31 1998-07-09 Walker Digital, Llc. Method and apparatus for securing electronic games
WO1999012135A1 (en) 1997-09-02 1999-03-11 Quixotic Solutions Inc. Apparatus and process for verifying honest gaming transactions over a communications network
WO2004035159A1 (es) 2002-10-14 2004-04-29 Scytl Online World Security Sa Método para la obtención de un resultado imparcial de un juego a través de una red de comunicación y protocolos y programas asociados
US20040141611A1 (en) * 2003-01-22 2004-07-22 Walter Szrek Method of generating unpredictable and auditable random numbers
US20050135608A1 (en) 2003-12-22 2005-06-23 Wachovia Corporation Platform independent randomness accumulator for network applications

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253223B1 (en) * 1999-06-08 2001-06-26 General Instrument Corporation Robust random number generator

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778069A (en) 1996-04-10 1998-07-07 Microsoft Corporation Non-biased pseudo random number generator
WO1998029793A2 (en) 1996-12-31 1998-07-09 Walker Digital, Llc. Method and apparatus for securing electronic games
WO1999012135A1 (en) 1997-09-02 1999-03-11 Quixotic Solutions Inc. Apparatus and process for verifying honest gaming transactions over a communications network
WO2004035159A1 (es) 2002-10-14 2004-04-29 Scytl Online World Security Sa Método para la obtención de un resultado imparcial de un juego a través de una red de comunicación y protocolos y programas asociados
US20040141611A1 (en) * 2003-01-22 2004-07-22 Walter Szrek Method of generating unpredictable and auditable random numbers
US6934846B2 (en) 2003-01-22 2005-08-23 Walter Szrek Method of generating unpredictable and auditable random numbers
US20050135608A1 (en) 2003-12-22 2005-06-23 Wachovia Corporation Platform independent randomness accumulator for network applications

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HALL C. AND SCHNEIER B.: "Remote Electronic Gambling", PROCEEDINGS OF THE 13TH ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE, USA, 1997, pages 232 - 238, XP010261551 *
See also references of EP2006810A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120085832A (zh) * 2025-02-14 2025-06-03 本源量子计算科技(合肥)股份有限公司 随机数生成方法及相关装置

Also Published As

Publication number Publication date
EP2006810A4 (en) 2009-11-04
EP2006810A2 (en) 2008-12-24
WO2007104802A8 (es) 2008-10-02

Similar Documents

Publication Publication Date Title
JP4216475B2 (ja) 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス
Fan et al. Roll-DPoS: a randomized delegated proof of stake scheme for scalable blockchain-based internet of things systems
CN106797313B (zh) 利用动态密钥生成的网络认证系统
Mao Modern cryptography: theory and practice
JP2023036876A (ja) ブロックチェーンにおけるコンピュータ実行方法、システム及び記憶媒体
US8060750B2 (en) Secure seed provisioning
US10476672B2 (en) Fragmented encryption of a secret
CN113158143B (zh) 一种基于区块链数字版权保护系统的密钥管理方法及装置
KR20220088507A (ko) 분산 거래 전파 및 검증 시스템
Van Dijk et al. Physical unclonable functions in cryptographic protocols: Security proofs and impossibility results
CN101488856A (zh) 用于数字签名以及认证的系统及方法
US20210392177A1 (en) Secure multi-party random bit generation
KR20220142254A (ko) 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템
CN108038392A (zh) 一种智能卡加密方法
Di Crescenzo Private selective payment protocols
CN114189329A (zh) 一种公钥认证可否认加密方法及系统
CN113939800A (zh) 用于伪随机数据生成的计算机实现的方法和系统
CN1221928C (zh) 保护电子芯片免受欺骗的加密方法
JP2020058008A (ja) デジタルアセット管理システム、情報処理システムおよび管理システム
WO2007104802A1 (es) Método y sistema altamente eficientes de generación segura de números aleatorios
Nguyen-Van et al. A system for scalable decentralized random number generation
Rao Paras-a private nft protocol
ES2222354T3 (es) Procedimiento de proteccion de un chip electronico contra el fraude.
CN112632602A (zh) 区块链混币方法、装置、终端及存储介质
CN112258169A (zh) 基于密钥生成的并行签名系统和方法

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2006725815

Country of ref document: EP

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

Ref document number: 06725815

Country of ref document: EP

Kind code of ref document: A2