MXPA00011443A - Generacion de codigo de algoritmo de rivest, shamir y adleman distribuido de manera eficiente y robusta. - Google Patents

Generacion de codigo de algoritmo de rivest, shamir y adleman distribuido de manera eficiente y robusta.

Info

Publication number
MXPA00011443A
MXPA00011443A MXPA00011443A MXPA00011443A MXPA00011443A MX PA00011443 A MXPA00011443 A MX PA00011443A MX PA00011443 A MXPA00011443 A MX PA00011443A MX PA00011443 A MXPA00011443 A MX PA00011443A MX PA00011443 A MXPA00011443 A MX PA00011443A
Authority
MX
Mexico
Prior art keywords
protocol
shared
mod
distributed
robust
Prior art date
Application number
MXPA00011443A
Other languages
English (en)
Inventor
Yair Frankel
Original Assignee
Certco Inc
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 Certco Inc filed Critical Certco Inc
Publication of MXPA00011443A publication Critical patent/MXPA00011443A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • 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/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/302Public 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 integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S50/00Market activities related to the operation of systems integrating technologies related to power network operation or related to communication or information technologies
    • Y04S50/12Billing, invoicing, buying or selling transactions or other related activities, e.g. cost or usage evaluation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Strategic Management (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Cephalosporin Compounds (AREA)
  • Photoreceptors In Electrophotography (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Communication Control (AREA)

Abstract

La invencion provee una generacion distribuida eficiente robusta de codigos RSA; un protocolo eficiente es aquel que es independiente de la "dimension del circuito" de la prueba de condicion de numero primo, mientras que un protocolo robusto permite la terminacion correcta incluso en presencia de una minoria de partes maliciosas que actuan de mala fe arbitrariamente; el protocolo descrito es seguro contra cualquier minoria de partes maliciosas (que es optimo); el metodo descrito es util para establecer servicios de uso compartido de funciones criptograficas distribuidas sensibles (autoridades de certificacion, esquemas de firmas con responsabilidad distribuida, y autoridades en custodia de codigos), asi como otras aplicaiones ademas de RSA ( a saber: el sistema ELGAmal combinado, esquemas de identificacion, intercambio de bits simultaneo, etc.); el metodo descrito se puede combinar con tecnicas de uso compartido de funciones proactivas para establecer los primeros servicios de responsabilidad distribuida eficientes, de flexibilidad optma, robustos y seguros proactivamente basados en RSA en donde el codigo nunca es codificado a una sola entidad ( es decir, responsalbilidad distribuida totalmente "desde cero" ; el metodo decrito implica nuevas "tecnicas de garantia de robustez" eficientes que garantizan " calculos correctos" por partes mutuamente no confiables con una minoria maliciosa.

Description

GENERACIÓN DE CÓDIGO DE ALGORITMO DE RIVEST. SHAMIR Y ADLEMAN DISTRIBUIDO DE MANERA EFICIENTE Y ROBUSTA La solicitud se refiere al campo de electrónica y procesamiento de datos, y particularmente a métodos y aparatos para generar códigos criptográficos.
ANTECEDENTES DE LA INVENCIÓN La noción de protocolos criptográficos distribuidos se ha conocido en la criptografía durante quince años (15). Algunos protocolos han sido diseñados para resolver problemas de comunicación que son imposibles desde una perspectiva de información-teórica como el protocolo aleatorio de "echar la moneda al aire" [B82] y el protocolo del problema millonario [Y82]. Se han diseñado otros protocolos para resolver problemas genéricos. Estos protocolos (denominados "protocolos compiladores generales") pueden calcular de forma segura cualquier función pública en entradas de datos seguras. Los primeros protocolos mencionados fueron desarrollados por Yao [Y86] y Goldreich, Micali y Wigderson [GMW], y se realizaron diversos desarrollos y trabajos subsecuentes, por ejemplo [GHY, K, BGW, CCD]. Recientemente ha existido un empuje para construir protocolos más eficientes para aquellos problemas que involucran la aplicación distribuida de funciones criptográficas (investigados en GW97). Se requieren protocolos de uso compartido de funciones para proveer la seguridad en cuanto a la memoria incrementada, las responsabilidades distribuidas y la administración flexible (es decir, agregando y borrando encargados responsables) de funciones cruciales tales como autoridades de certificación y firmas de grupo. Una diferencia principal de eficiencia entre un protocolo compilador general (que se pensaría como un resultado de admisibilidad (véase [Gr97]) y un protocolo de uso compartido de funciones resulta del hecho que la complejidad de la comunicación del anterior, depende linealmente de la dimensión verdadera del circuito que calcula las funciones criptográficas, aunque la complejidad de comunicación de este último es independiente de la dimensión del circuito (y típicamente es un polinomio en la dimensión entrada/salida y el número de participantes). Esta diferencia (señalada primero en FY93, DDFY94) es crucial para los practicantes que requieren protocolos eficientes. Un protocolo de uso compartido de funciones involucra un protocolo para aplicar la función (basado en partes compartidas distribuidas), y algunas veces en lo que se llama un "modelo proactivo") también un protocolo para volver a clasificar aleatoriamente las partes compartidas de la función. Otro paso importante relacionado con las "funciones criptográficas distribuidas" es la generación distribuida (eficiente) de la función (las partes compartidas del código). Para las funciones criptográficas basadas en la exponenciación modular sobre un campo (cuya inversa es el logaritmo discreto que se supone que es de función de una sola vía), se conoció un protocolo para la generación distribuida de códigos [P2]. Sin embargo, para la función RSA (Método de encripción de algoritmo por Rivest, Shamir y Adleman) y las funciones criptográficas relacionadas que se describen a continuación, que requieren la generación de un producto de dos números primos y una inversa de un exponente público, este paso fue un problema expuesto durante muchos años. Se debe notar que la motivación central de Yao's [Y86] está introduciendo protocolos compiladores generales de que "los circuitos de computadora están seguros en la comunicación" era el tema de generación distribuida de códigos RSA. De hecho, los resultados de [Y86, GMW] muestran la admisibilidad de esta tarea. Otro paso en avance fue logrado por Boneh y Franklin [BF97] quienes mostraron cómo un grupo de participantes puede generar una función RSA eficientemente, desviando así el compilador no eficiente. Ellos mostraron que su protocolo era seguro en el modelo limitado de partes "confiables pero curiosas". Dejaron abierto el tema de robustez, es decir, la generación en presencia de las partes que actúan de mala fe (maliciosa). Si los adversarios se comportan arbitrariamente, se puede prevenir al protocolo de Boneh-Franklin que genere alguna vez un código de RSA compartido (debido a la falta de robustez). Las siguientes referencias proporcionan un antecedente adicional para la invención.
[ACGS] W. Alexi, B. Chor, O. Goldreich y C. Schnorr. RSA and Rabin Functions: Certain Parts are as Hard as the Whole. In SIAM Journal of Computing, volumen 17, n. 2, páginas 194-209, Abril 1988. [B84] E. Bach, "Discrete Logarithms and Factoring", Tech. Report No. UCB/CSD 84/186. División Ciencias de la Informática (EECS), Universidad de California, Berkeley, CA, Junio 1984. [BGW] Ben-Or M., S. Goldwasser y A. Wigderson, Completeness Theorem for Non cryptographic Fault-tolerant Distributed Computing, STOC 1988, ACM, pp. 1-10. [B82] M. Blum, "Coin flipping by telephone: a protocol for solving ¡mpossible problems," IEEE Computer Conference 1982, 133-137. [BF97] D. Bohen y M. Franklin, Effícient Generation of Shared RSA Keys, Crypto 97, pp. 425-436. [B88] C. Boyd, Digital Multisignatures, IMA Conference on Cryptography and Coding, Claredon Press, 241-246 (eds. H. Baker and F. Piper), 1986. [BCLL] G. Brassard, C. Crepeau, S. Laplante, C. Leger. Computationally Convincing proof s of knowledge, In Proceedings of the 8th Symp. On Theoretical Aspects of Computer Science (Springer, Berlin, 1991 ), pp. 251-262. [BGM] E. Brickell, D. Gordon y K. McCurley. Fast Exponentiation with Precomputation Advances in Cryptology - Eurocrypt 92 Proceedings, Lecture Notes in Computer Science, Vol. 658, R. Rueppel ed., Springer-Verlag, 1992. [CCD] D. Chaum, C. Crepeau y I. Damgard, Multiparty Unconditionally Secure Protocols, STOC 1988, ACM, pp. 11-19. [CEG] D. Chau, M-H. Evertse y J. van de Graff, Multiparty computations ensuring provacy of each party's input and correctness of the result, Advances in Cryptology - Europcrypt 88 Proceedings, Lecture Notes ¡n Computer Science, Vol. 330, C. Gunther ed., Springer-Verlag, 1988 pp. 87-119. [CEGP] D. Chaum, J. -H. Evertse, J van de Graaf y R. Peralta, An improved protocol for demonstrating possession of discrete logarithms and some generalizations, Advances in Cryptology - Crypto 86 Proceedings, Lecture Notes in Computer Science, Vol. 263, A. Odlyzko edl., Springer-Verlag, 1986, pp. 200-212. [CGMA] B. Chor, S. Goldwasser, S. Micali y B. Awerbuch, Verifiable Secret Sharing and Archieving Simultaneous Broadcast, Proceedings of the 26th Symposium on Foundations of Computer Science, IEEE, 1985, pp. 335-344. [DDFY94] A. DeSantis, Y. Desmedí, Y. Frankel y M. Yung, How to Share a Function Securely, ACM Proceedings of the 26th Annual Symposium on Theory of Computing, ACM, 1994, pp. 522-533.
[DF89] Y. Desmedt and Y. Frankel, Threshold cryptosustems, Advances in Cryptology - Crypto 89 Proceedings, Lecture Notes in Computer Science, Vol. 4.5, G. Brassard ed., Springer-Verlag, 1989, pp. 307-315. [DH] W. Diffle and M. Hellman, New Directions in Cryptography, IEEE Trans. On Information Theory 22(6), 1976, pp. 644-654. [FFS] U. Feige, A. Fiat and A. Shamir, Zero-Knowledge Proof of Identity,. Proceedings of the Nineteenth annual ACM symp. Theory of Computing, 1987, pp. 210-217. [F] P. Fedelman, A. Practical Scheme for Non-I ntercative Certifiable Secret Sharing, Proceedings of the 28th Symposium on Foundations of Computer Science, IEEE, 1987, pp. 427-437. [FS86] A. Fiat and A. Shamir, "How to prove yourself: Practical solutions to identification and signature problems," in Advances in Cryptology -CRYPTO '86 Proceedings (Lecture Notes in Computer Science, Vol. 263), ed. A. Odlyzko 186-194, Springer-Verlag, New York, 1987. [FGY] Y. Frankel, P. Gemmell and M. Yung, Witness Based Cryptographic Program Checking and Robust Function Sharing, Proceedings of the 28th Annual Symposium on Theory of Computing, ACM 1996, pp. 499-508. [FGMY] Y. Frankel, P. Gemmel, P. MacKenzie and M. Yung, Proactive RESa, Crpto 97. [FGMYa] Y. Frankel, P. Gemmel, P. MacKenzie and M. Yung, Optimal Resilience Proactive Public-Key Cryptosystems, FOCS 97.
[FS89] U. Feige and A. Shamir, Zero knowledge proofs of knowledge in two round, CRYPTO 1989, 20-24. [FY93] M. Franklin and M. Yung, Secure and Efficient Offline Difital Money, Porch, Of the 20m Int. Col. On Autómata, Languages and Programming (ICALP), 1993, LNCS 700, Springer-Verlag, pp. 265-276. [GHY] Z. Galil, S. Haber, and M. Yung, Minimum-Knowledge Interactive Proof for Decisión Problems, SIAM j. Comp., 18, 9189, pp. 711-739. [GHY85] Z. Galil, S. Haber, and M. Yung, Symmetric Public Key Cryptography, Crypto 85. [GHY87] Z. Galil, S. Haber, and M. Yung, Cryptographic Computations: Secure Fault Tolerant Protocols in the Public Key Model, Crypto 87, pp. 135-155. [GJKR] R. Gennaro, S. Jarecki, H. Krawczyk, T. Rabin, Robust Threshold DSS Signatures, Advances in Cryptology - Eurocrypt 96 Proceedings, Lecture Notes in Computer Science, Vol. 1070, U. Maurer ed., Springer-Verlag, 1996, pp. 354-371. [Gr97] O. Goldreich, On Foundations of Modern Cryptography, an invited paper, Crypto 97. [GMW86] O. Goldreich, S. Micali and A. Wigderson, "Proofs that yield nothing but their validity and a methodology of cryptographic protocol design," IEEE FOCS 1986, pp. 174-187.
[GMW] O. Goldreich, S. Micali, and A. Wigderson, How to play any mental game, Proceedings of the Nineteenth manual ACM Symp. Theory of Computing, 1987, pp. 218-229. [Gw97] S. Goldwasser, A New Direction in Cryptography: Twenty something year after, an invited paper, FOCS 97. [GMR] A. Goldwasser, S. Micali and C. Rackoff, The Knowledge Complexity of Intercative Proof-Systems, Siam J. on Computing, 18(1) (1989), pp.186-208. [HW] G. Hardy and E. Wright, An introduction to the theory of numbers, Oxford Science Publications, London, Great Britian, fifth edl., 1985. [HJJKY] A. Herzberg, M. Jakobsson, S. Jarecki, H. Krawczyk, M. Yung, Proactive Public-Key and Signature Schemes, Proceedings of the Fourth Annual Conference on Computer and Communications Scurity, ACM, 1996. [IY87] R. Impagliazzo, and M. Yung, "Direct minimum-knowledge computation," n Advances in Cryptology - CRYPTO '87 Proceedings (Lecture Notes in Computer Science, Vol. 293), ed. C. Pomerance, 40-51 , Springer-Verlag, New York, 1988. [K] J. Kilian, "Founding cryptography on oblivious transfer," ACM STOC 1988, 20-31. [M76] G. Miller, Reimann's Hypothesis and Test of Primality, J. of Comp. And Syst. Sciences, 13, 300-317, 1976.
[OK92] T. Okamoto, Provably Secure and Practical Identification and Corresponding Signature Scheme, Advances in Cryptology - Crypto 92 Proceedings, Lecture Notes in Computer Science Vol. 740, E. Brickell ed., Springer-Verlag, 1992, pp. 31-53 [OY91] R. Ostrovsky and M. Yung, How to withstand mobile virus attacks, Proc. of the lo"1 ACM Symposium on the Principies Distributed Computing, 1991 , pp. 51-61. [P] T.P. Pedersen, Distributed Provers with Applications to Undeniable Signatures, Advances in Cryptology - Eurocrypt 91 Proceedings, Lecture Notes in Computer Science Vol. 547, D. Davies ed., Springer-Verglag, 1991 , pp. 221-242. [P2] T.P. Pedersen, A threshold cryptosystem without a trusted party, Advances in Cryptology - Eurocrypt 91 Proceedings, Lecture Notes in Computer Science Vol. 547, D. Davies ed., Springer-Verlag, 1991 , pp. 129-140. [P91] T.P. Pedersen, Non-intercative and information thenretic secure verifiable secret sharing, Advances in Cryptology - Crypto 91 Proceedings, Lecture Notes in Computer Science Vol. 576, J. Feigenbaum ed., Springer-Verlag, 1991 , pp. 129-140.0 [RSA] R. Rivest, A. Shamir and L. Adleman, A Method for Obtaining Digital Signature and Public Key Cryptosystems, Comm. of ACM, 21 (1978), pp. 120-126.
[Sh] A. Shamir, How to share a secret, Comm. of ACM, 22(1979), pp. 612-613. [Y82a] A.C. Yao, Theory and Applications of Trapdoor functions, Proceedings of the 23rd Symposium on the Foundation of Computer Science, 1982, pp. 80-91. Carlos [Y82] A.C. Yao, "Protocols for secure computations", IEEE FOCS 1982, 160-164. [Y86] A.C. Yao, "How to genérate and exchange secrets", IEEE FOCS 1986, 162-167.
BREVE DESCRIPCIÓN DE LA INVENCIÓN La modalidad preferida de la invención es una red de computadoras que desarrolla operaciones para generar un código criptográfico para su uso en un criptosistema asimétrico (por ejemplo, público/privado). La invención permite la generación de un código secreto mediante un grupo de computadoras. El procedimiento genera el código en forma de partes compartidas distribuidas de tal forma que un subgrupo (suficientemente grande) de computadoras tiene la suficiente información para recuperar el código, y un subgrupo de computadoras puede desarrollar funciones criptográficas utilizando dichas partes compartidas (por ejemplo, firmar un certificado). Sin embargo, en ningún momento durante la generación de la parte compartida del código o del uso de la parte compartida del código se forma realmente el código secreto. En una versión particularmente preferida, el método es seguro contra un número de participantes que puedan actuar de mala fe. La modalidad preferida de la invención genera partes compartidas de código para su uso en un criptosistema que requiere un número que es el producto de dos números primos mayores. El método procede generalmente con los siguientes pasos: 1. Inicio; 2.- Generación distribuida de un valor N; 3.- Evaluación del valor N para una propiedad de doble condición de números primos; 4.- Repetición de los pasos 2 y 3 conforme se requiera; 5.- Generación de partes compartidas del código. La invención tiene una utilidad principalmente en aplicaciones criptográficas que requieren máxima seguridad contra adversarios tanto externos como internos. La robustez asegura la operación adecuada en varias condiciones del sistema como errores, fallas, ataques a los cuales se supone que se debe enfrentar un sistema distribuido.
BREVE DESCRIPCIÓN DE LAS MODALIDADES PREFERIDAS La robustez ha motivado las nociones básicas en la criptografía tales como el uso compartido de un secreto que se puede verificar [CGMA] y pruebas de conocimiento- cero generales [GMR]. La presente invención provee una^generación de robustez eficiente y segura de códigos de RSA compartidos (o muy generalmente, códigos que se basan en multiplicar dos grandes números primos y en la exponienciación). Se supone que un número n de participantes colaboran generando partes compartidas de un código criptográfico. Los participantes pueden ser computadoras programadas conectadas mediante una red de comunicación. El método de forma exitosa genera partes compartidas de un código para n > 2t + 1 , es decir en donde la mayoría de las partes f se comportan de manera adversa en cualquier forma maliciosa y arbitraria. El método logra la resistencia óptima, ya que se requiere una mayoría de buenos participantes. Si n > 3r + 1 , se puede utilizar una variante ligeramente más eficiente del protocolo. Las técnicas de la presente invención resuelven otros diversos problemas, ya que pueden ser empleadas para iniciar de manera distribuida otros esquemas criptográficos basados en números compuestos, tales como la encripción/firma del sistema EIGamal combinado, los esquemas de identificación en donde a ningún participante se le permite conocer la factorización de N (como en Feige, Fiat, Shamir [FFS], y una versión eficiente del protocolo de intercambio de bits simultáneo de Yao [Y86].
La modalidad preferida de la invención se basa en las siguientes técnicas novedosas. 1.- Protocolos de multiplicación para representaciones compartidas de "suma de poli" de valores emitidos desde (1 ) un campo de números primos (con robustez y seguridad basada exclusivamente en la severidad del problema de logaritmo discreto), o (2) un subgrupo de enteros (con robustez y seguridad basada exclusivamente en la severidad del problema RSA, pero sin requerir un módulo compartido de RSA). La técnica tiene gran potencial en otras aplicaciones debido a que es seguro en cuanto a la información/teoría pero también produce testigos públicamente verificables que son mantenidos por la "comunidad de servidores". 2.- Técnicas para "consistencia en cadena" de la información compartida y su información de verificación asociada, es decir, forzar a que la información de verificación sea consistente sobre diversas tareas de computación (por ejemplo, protocolos de generación, protocolos de multiplicación y pruebas de condición de números primos dobles) aún cuando cambie la representación de esa información de verificación. Lo anterior implica: A. La idea de la información de "verificación rigurosa", es decir, mantener consistencia verificando la información de partes compartidas a través de la información verificada y más aún, comprobar la nueva información de la verificación (tal vez una representación diferente) a través de la información la parte compartida. Esta dualidad de "verificar y calcular" es prometedora y tal vez sea de interés en particular; B. argumentos eficientes de conocimiento- cero que comprueban que la información es consistente; C. una técnica de proceso de carga inicial que asegura la verificación global utilizando una multitud de códigos individuales w.r.t de ¡nformación de verificación. De hecho las técnicas son lo suficientemente generales para tratar las variaciones de numerosos criptosistemas basados en exponenciación y protocolos distribuidos para aplicar estas funciones. 3.- Un mecanismo de dedicación, denominado Dedicaciones Simuladoras-Equívocas, que es tan seguro y eficiente como las dedicaciones normales, pero permiten ciertos argumentos de simultaneidad en los datos dedicados que no se podrían lograr mediante dedicaciones estándar. El mecanismo conduce a una nueva técnica de prueba de seguridad para los protocolos que producen resultados. El protocolo que se describe a continuación asegura que también los sistemas distribuidos que emplean la función RSA (y las otras funciones mencionadas anteriormente) se pueden iniciar de forma distribuida. Las técnicas desarrolladas aquí se pueden utilizar para edificar un umbral DSS robusto como en [GJKR], pero con resistencia óptima y sin suposiciones criptográficas adicionales. El protocolo se puede poner en práctica en hardware o software o en ambos.
El protocolo es relativamente eficiente (no depende de la dimensión del circuito de las pruebas de condición de números primos como en los compiladores generales). Además, se pueden hacer aproximadamente el mismo número de redondeos que el número de redondeos en un protocolo no robusto y la complejidad computacional (medido en el número de exponenciaciones modulares) puede llegar a aproximadamente 100 veces la complejidad computacional de un protocolo no robusto, dados los valores razonables para el número de copartícipes y de requisitos de seguridad, y algunas modificaciones para la eficiencia como se describe a continuación. El protocolo es factible y se puede utilizar en el inicio del sistema y el reemplazo de código en numerosos sistemas (como se mencionó anteriormente) y en varias fijaciones que requieren una responsabilidad distribuida. Por ejemplo, el reemplazo de un código público compartido en una autoridad de certificación se puede realizar cada tres o cinco años, y por lo tanto no tiene que ser una operación de "tiempo real". Por lo tanto, es razonable un protocolo un tanto prolongado (es decir, de dos a tres semanas). Por otro lado, un protocolo "compilador general" se llevará más de cinco años, lo que es irracional.
Descripción del sistema general La invención preferiblemente se lleva a cabo en una red de computadoras. Tiene muchas ventajas, principalmente en términos de seguridad contra ciertas clases de adversarios como se presenta a continuación. LA RED: el sistema preferido utiliza una red de computadoras (copartícipes) que tiene propiedades que satisfacen un "modelo" similar ya denominado para varios trabajos recientes y también para (BF97). El sistema tiene un grupo de n servidores (probabilístico), todos ellos conectados a un medio C de transmisión común llamado el canal de comunicación. Los mensajes enviados en C se supone que alcanzan instantáneamente cada parte conectada al mismo. El sistema está sincronizado (y los servidores w.l.o.g. se puede suponer que actúan sincronizadamente). Las ejecuciones que satisfacen el ambiente del "modelo" se pueden basar en ejecuciones conocidas de transmisión y de protocolos de multitransmisión, protocolos de envío de mensajes, protocolos de envío de mensajes encriptados y autentificados, y protocolos de dedicación. Estas ejecuciones son aparentes basadas en la técnica de comunicaciones de computadoras conocidas y practicadas (por ijemplo, Computer Networks, Andrew Tanenbaum, Prentice-hall, Inc., 1996). EL ADVERSARIO: el adversario está ligado computacionalmente (es decir, no puede romper los caracteres primitivos criptográficos subyacentes) y puede corromper los servidores en cualquier momento al visualizar las memorias de servidores corruptos y/o modificar su conducta. El adversario decide a quién va a corromper al inicio del protocolo. Se podrá asumir que el adversario corrompe a no más de t seleccionado de los servidores n a través del protocolo, en donde n < 2t + 1 (o n > 3t + 1 es la variante de protocolo más eficiente). Para el propósito de clasificar adversarios, las fallas maliciosas no se necesitan diferenciar de las fallas del servidor "normales" (por ejemplo, interrupciones). Un adversario puede ser conectado al canal de transmisión C, lo que significa que puede escuchar todos los mensajes e inyectar los propios. Sin embargo, no puede modificar mensajes enviados a C mediante un servidor que el adversario no controla, ni puede evitar que un servidor no corrupto reciba un mensaje enviado en C. De hecho, el protocolo preferido será útil contra un adversario más móvil (OY91 ), donde el protocolo procede en "pruebas" y cada prueba es independiente de las pruebas pasadas. Durante una prueba, se pueden detectar los servidores de mala fe (que incluyen adversarios maliciosos). Se puede generar un código adecuado, o los servidores restantes (que no fueron capturados desviándose del protocolo) inician una nueva prueba. Dado que los servidores de mala fe eliminados todavía no son t\ el protocolo permite la generación de un código ar ecuado si el adversario ocupa nuevos servidores t - 1 - 1' al inicio de la nueva prueba. ANOTACIÓN: la descripción a continuación utilizará la siguiente anotación. El término "SP" será un parámetro de seguridad y el término H = 2 (sp). Los subíndices "", '"'. y V designan elementos individuales indexados dentro de un vector y el subíndice "*" designa la multitud de todos los elementos en el vector (para describir operaciones paralelas). El término N* en el producto será el producto de dos números primos desconocidos, cada uno de la escala VH, 2 /H. Los términos g* y h* son generadores cuyo logaritmo discreto mod N- con respecto de otro es conocido. De hecho al encontrar dicho N* puede ser difícil, ya que es la meta del protocolo la descripción. Del protocolo preferido a continuación se hará referencia a las técnicas conocidas para el uso compartido de secreto [Sh], el uso compartido de un secreto verificable [F], el uso compartido de un secreto verificable incondicionalmente seguro [P91], los acuerdos básicos utilizando logs discreto sobre grupos de números primos [P91], las pruebas básicas de conocimiento de logs discreto [GHY85, CEG, CEGP], y ciertos métodos mediante los cuales un número de partes pueden generar un valor aleatorio mediante el acuerdo general a valores aleatorios privados, y después revelando esos valores.
Todas las publicaciones a las que se hace referencia en la presente (tanto las anteriores como las que se indica a continuación) se incorporan en la presente por referencia en su totalidad.
El protocolo principal El protocolo principal procede en una serie de pasos conforme a lo siguiente: 1.- INICIO: Los participantes corren el protocolo de inicio para el procedimiento de ACUERDO SIMULADOR-EQUIVOCO como se indica a continuación. 2.- PUNTO DE REINICIO: A la conclusión del protocolo de inicio, y periódicamente cuando el protocolo regresa a este punto, una mayoría de participantes acuerdan cuales son los servidores que son "honestos" y cual es el enlace superior sobre número de partes que actúan de mala fe (dado que algunas partes han sido eliminadas). 3.- CORRER EL CALCULO DISTRIBUIDO DE N: Tienen que ser n > 2t + 1 (o n > 3t +1 para el protocolo de multiplicación más eficiente) de copartícipe S1 , . . ., Sn. Para los propósitos de descripción, dejar que L = n!.
Dejar que sp sea el parámetro de seguridad, y dejar H = 2 (sp). El objetivo del protocolo es calcular: N = (pi + p2 + - - .+ Pn) (qi + q2 + • • • + qn), donde se eligen p y q aleatoriamente por los copartícipes. Los pasos de cálculo son los siguientes: -Cada copartícipe S¡ elige p¡, q¡ GR [1/2 VH, VH] (en donde el subíndice "R" denota "aleatorio" y el símbolo eR se refiere a un número aleatorio en un grupo de o intervalo). -Cada copartícipe S¡ utiliza el esquema de uso compartido del secreto Shamir sobre los enteros para distribuir las partes copartidas de su respectivo p¡ y q¡. Para propósitos de descripción, el polinomio utilizado para compartir p¡ es a¡ (x), y el polinomio utilizado para compartir q¡ es b¡ (x). -Cada copartícipe S¡ utiliza el procedimiento EL ESQUEMA DE MULTIPLICACIÓN SOBRE LOS ENTEROS que se describe a continuación para calcular N = (p, + p2 +. . . +pn) (qi + q2+ • • •+ Qn)- -Cada copartícipe S¡ prueba a cada otro copartícipe que su p¡ y q¡ se encuentra en la escala [0, 3/2VH] utilizando el protocolo PRUEBA DEL CONOCIMIENTO DE UN LOG discreto que se describe a continuación ( sobre g*L2 y h*) con las partes compartidos de verificación del coeficiente cero desde el esquema de multiplicación. Si cada copartícipe actúa de mala fe (conforme lo detecte la falla de cumplir con esta prueba), y la mayoría acuerda que se está comportando de mala manera, está excluido del resto del protocolo. 4.- Correr LA PRUEBA DE DOBLE-CAPACIDAD DE NÚMEROS PRIMOS DISTRIBUIDA ROBUSTA DE N: Si N falla, la corriente "honesto" (copartícipes no excluidos) repite el protocolo desde el PUNTO DE REINICIO hasta que un valor de N satisface la prueba de condición de números primos. 5.- Correr LA GENERACIÓN DISTRIBUIDA ROBUSTA DE CÓDIGOS PÚBLICOS Y PRIVADOS: Si N satisface la prueba de números primos, las partes "honestas" restantes corren uno de los dos protocolos para determinar los códigos público y privado e y d. (El protocolo para PEQUEÑOS CÓDIGOS PÚBLICOS O GRANDES CÓDIGOS PÚBLICOS que se pueden elegir por los diseñadores u operadores del sistema dependiendo de la elección si se utiliza un exponente público pequeño o mayor). EL PROTOCOLO PRINCIPAL utiliza un número de protocolo de apoyo. Estos protocolos de apoyo se describen a continuación.
Dedicación simulador/equívoca Las dedicaciones se utilizan para simular en la comunicación electrónica la noción de apostar un valor en un sobre sellado que solamente puede ser abierto en una sola forma (una propiedad obligada), pero hasta que se abra se puede coincidir el valor en él (una propiedad de seguridad), Una parte B puede dedicar un valor para la parte A, de tal forma que la dedicación es obligatoria, pero un simulador podría producir una dedicación que no sea obligatoria. Un uso anterior de dicho mecanismo (aunque es uno menos eficiente) está en [IY87]. Las dedicaciones simulador-equívocas son dedicaciones de escotilla básicamente [FS89] combinadas con una prueba de conocimiento de la escotilla. El mecanismo de dedicación preferido utiliza el siguiente protocolo de inicio, que solamente necesita que se corra una sola vez para cualquier número de dedicaciones (en sí utiliza dedicaciones regulares para fijar las dedicaciones especiales).
Inicio « Se eligen de forma distribuida una P prima fuerte y un generador g para Z*p utilizando técnicas conocidas en el medio. • La parte A elige un valor g' e Z*p que se va a utilizar para las dedicaciones B' A, transmite g' a B y prueba que B se conoce como el log de g' base g. (esto se puede realizar utilizando los procedimientos básicos para probar el conocimiento o los logs discretos conocidos en la técnica).
Dedicaciones básicas En [P91], se desarrolló un protocolo en el cual la parte A puede dedicar a un valor la información-teóricamente, de tal forma que la dedicación es obligatoria computacionalmente. El decir que existe un triple (g, h, P) con P = 2P' + 1 a prima fuerte, con el log discreto de g base h modo P desconocido para A. A dedica a un valor x publicando Commit(dedicación) = g*hx' mod P para una x' aleatoria. Cuando A desea abrir la dedicación, A revela x y x', y la otra parte puede comprobar si Commit = g*h ' mod P. Se muestra en [P91] que si A tiene la capacidad de abrir esta dedicación de dos formas diferentes, entonces podría saber el log discreto de g base h mod P. Se construye una dedicación justo como se hace en el protocolo de dedicación básico, excepto que se utiliiza g y g'. • B dedica a un valor x e Zp, eligiendo x' eR Zp, y publicando Commit = g*g*' mod P. • Cuando B desea abrir la dedicación, B revela x y x', y A puede comprobar si Commit = g*g*' mod P.
Esquema de multiplicación sobre los enteros El esquema para la multiplicación sobre los enteros es una variación de un protocolo para multiplicación distribuida sobre un campo de números primos. La multiplicación sobre un campo de números primos se describirá primero, y las modificaciones para permitir las modificaciones para permitir la multiplicación sobre los enteros se describirá después.
Suma de polimultiplicación sobre un campo de números primos. El protocolo multiplica dos valores secretos en donde cada uno está representado como una suma de polinomios. Los protocolos relacionados (sobre los campos primos solamente) se describen en [GJKR], sin embargo, opuesto a estos protocolos, el protocolo que se describe en la presente es incondicionalmente seguro y se basa en la dificultad de logs discretos sin suposiciones adicionales. El esquema utiliza encripción de código público semánticamente segura para enviar mensajes privados entre los servidores. Los servidores (copartícipes) S . . ., Sn (for n > 2t + 1) pueden desarrollar la multiplicación robusta sobre un campo de primos aunque mantiene la seguridad incondicional. El objetivo del protocolo es calcular C = )A-t + A2 +. . .+ An) (Bi + B2 + • - . + Bn) mod P' donde A, y B¡ se eligen por S¡. (La variable C como se utiliza en esta sección corresponderá a N de PROTOCOLO PRINCIPAL, An corresponderá a p„ del PROTOCOLO PRINCIPAL, y Bn corresponderá a qn del PROTOCOLO PRINCIPAL). El esquema procede según los siguientes pasos: 1. Inicio Para los propósitos de descripción, dejar que P = 2P' + 1 sea un primo fuerte, y dejar que g y h sean generadores de Zp* (de tal forma que el log discreto de h sobre la base g sea desconocido). Cada servidor S¡ determina A¡, B¡ e Z(P)., y realiza un uso compartido del secreto Shamir de aquellos valores con polinomios aleatorios: donde a¡ (0) = A¡, and b¡ (0) = B¡. Identificar que Zp- = [1 ,2,...,P']. También se debe notar que cada servidor ha creado una representación compartida de sus valores A¡, B¡, pero los servidores no han sido todavía partes distribuidas a otros servidores. Si durante el protocolo, cualquier co-partícipe S, es determinado como corrupto, los servidores restantes suponen que A¡ = B¡ = 0 para ese servidor, y que a través de las partes compartidas de protocolo A¡ = Bi = 0 son iguales a cero. 2. - Uso compartido Perdersen de a, y b¡ Los servidores comparten sus valores respectivos de A¡ y B¡ utilizando una modificación del esquema de uso compartido Pedersen. Aunque Pedersen utilizó este esquema de uso compartido para poner en práctica un uso compartido de secreto que se puede verificar, el protocolo que se describe en la presente utiliza el uso compartido como una base para la multiplicación existente, robusta, segura. Las entradas al protocolo de multiplicación son generadas conforme a lo siguiente: (a) cada servidor S, genera dos secretos asociados A'¡, B'¡ eR Zp, y los comparte con el uso compartido del secreto Shamir utilizando polinomios aleatorios a y b'i(0)=B'¡. Cada servidor también publica las partes compartidas de verificación de Pedersen para cada par (a¡(x), a (x)) y (b¡(x), £>',( )):a/,y=ga /,y mod P y ß¡ =gb ijfrb' tj mocj Cada servidor Sk verifica sus partes compartidas con las partes compartidas de verificación. (b) Para propósitos de descripción, definir • A=Ai + A2 + .... + A, mod P', . A'=A'1 + A'2 + .... + A'n mod P', • S=ßí + B2 + .... + Bn mod P', y • a(x)=SnM a¡ (x) mod P', a'(x)=?ni=1(x) mod P'. Observar que los coeficientes establecidos a cero de los polinomios a(x) y a'(x) son A y A', respectivamente. También se deben notar que las partes compartidas de verificación para el par (a(x), a'(x)) se pueden calcular mediante todos los copartícipes conforme a lo siguiente: appn/=oga' a' j mod P. 3.- Generación de polinomios aleatorios Cada servidor S; genera además polinomios aleatorios: Los servidores distribuyen partes compartidas de estos polinomios, y las partes compartidas de verificación de transmisión p¡j=gz l,Jhz ',j para 1=j =2t. (Se debe notar que z¡(0)=z'¡(0)=0, y ?u - 1 para 1=i =n). Cada servidor j verifica sus partes compartidas de polinomio recibida con las partes compartidas de verificación recibida. Cada servidor S, también genera un polinomio aleatorio mod P', y distribuye partes compartidas de este polinomio. 4.- Generar y verificar partes compartidas de A(x) B,(x) aleatorio v AMBVx) Todos los copartícipes localmente calculan partes compartidas de v-,(x) y v',(x) utilizando partes compartidas previamente recibidas como: vM=aMbtx) + z,(x); y v'Mµa'ixMx) + z (x rt(x). Cada servidor S, transmite partes compartidas de verificación V,rJ para el par polinomio (v,(x), v',(x)) como: u +v=j Todos los servidores S, pueden verificar si las partes compartidas locales coinciden con las partes compartidas públicas. En una controversia para corregir los valores v,(j), S, reta a S, para revelar las partes compartidas b,(j) y r,(j). Todos los copartícipes pueden determinar si b,(j) se ajusta a las partes compartidas de comprobación para b,(x), y pueden comprobar si la parte compartida v,(j) se ajusta a las partes compartidas de comprobación para v,(x) calculando (ga ?) ha' 0))bl 0) (g° ?) hz'' 0)) hn 0) mod P, donde ga 0) ha' 0> mod P se puede calcular a partir de las partes compartidas de comprobación a para (a(x), a'(x)), y g1' hz ?(i> mod P se puede calcular a partir de las partes compartidas de comprobación p para (z¡(x), z'¡(x)). 5.- Probar si las partes compartidas de comprobación están correctas Para 1 < i < n, cada servidor S, prueba a todos los otros que para 1 < j < n, conoce representaciones de g* ) hb1 ?> mod P y (g3 ü)ha' ?))bi(i) h? 0) mod P, donde los logs discretos de g en el primero y ga ? ha mod P en el segundo son los mismos. Esto es solamente necesario para el caso en donde 2t + 1 < n < 3t. 6.- Resultados Cada Sk calcula y revela v(k) y v'(k), donde v'(x) =lP¡=1v (x) r(oá P'. Cada servidor interpola los valores resultantes para obtener v(0). Este valor es el resultado de la multiplicación deseada, porque v(0) =AB = C mod F). Observar que las partes compartidas de comprobación para los polinomios v(x) y v'(x) se pueden calcular a partir de las partes compartidas de comprobación del paso anterior. Todas las partes compartidas reveladas son comprobadas utilizando las partes compartidas de comprobación.
Técnicas básicas sobre los enteros El protocolo principal requiere multiplicación sobre los enteros, mientras que el esquema básico descrito anteriormente realiza la multiplicación en un campo finito. El esquema anterior (sobre un campo finito) se puede modificar de la manera siguiente para realizar la multiplicación sobre los enteros. 1. Uso compartido de secretos sobre los enteros [FGMYa] Las técnicas de uso compartido de secretos de Shamir sobre un campo de números primos que fueron utilizadas anteriormente son modificadas con una variante para usarse sobre los enteros. Esta es una variante del uso compartido de secretos de Shamir [Sh]. Para efectos de descripción, dejar que L = n!. Para compartir un secreto s e[0, K], una parte escoge un polinomio aleatorio a(x) = É ¡=oa?é de manera que a0 = L2s, y cada uno de los siguientes a¡ €R[0, L, 2L . . .L3K2]. Cada copartícipe / € {1, ..., n) recibe una parte compartida del secreto s, = a(i). Cualquier serie ? de cardinalidad t + 1 puede calcular s utilizando interpolación de LaGrange. 2.- VSS incondicionalmente seguro de Pedersen sobre los enteros Los pasos de uso compartido de Pedersen sobre un campo de números primos que fueron utilizados anteriormente son modificados con una variante para usarse sobre los enteros. Esta es una variante de VSS incondicionalmente seguro de Pedersen [P91]. Para efectos de descripción, suponer que el término "sp" es el parámetro de seguridad, y déjese H = 2sp. Suponer también que N* es el producto de dos números primos desconocidos, cada uno en la escala de [VH, 2?/H], y g* y h* son generadores cuyo log discreto mod N* puede ser difícil de determinar (puesto que determinar N- es un objeto de la invención). En este caso, cada miembro Sk-puede elegir una terna (Nk, g , hk) y transmitirla. El protocolo empieza con n + 1 usos compartidos del secreto: siendo el primero un uso compartido de Shamir del secreto sobre los enteros, y siendo el siguiente n usos compartidos de secretos asociados usando la variante de uso compartido de Shamir sobre los enteros como se describe anteriormente. Específicamente, para un secreto s e[0, ], una parte escoge un polinomio aleatorio a(x) = É ¡=oa¡) de manera que ao = L2s, y entre sí a GR [0, L, 2L, . . . , L3K2]. Después para cada terna (N , gk, hk), la parte escoge un polinomio aleatorio a'k(x) = ¿ ¡=0a ¿ ^V con cada a), €R [0. .L3, K3]. Después la parte envía partes compartidas de cada polinomio a cada copartícipe (p + 1 partes compartidas totales a cada copartícipe) y publica las partes compartidas de comprobación {gkai h k mod N¡ o<¡<t, ?<k<n- Cada copartícipe S puede comprobar sus partes compartidas a(k) y a'k- (k) usando las partes compartidas de comprobación sobre Nk- (para todo 1 < k' < n). 3.- Multiplicación de suma-de-poli sobre los enteros La multiplicación de suma-de-poli sobre un campo finito se puede modificar de la manera siguiente para realizar la multiplicación sobre los enteros. El protocolo es incondicionalmente seguro, pero solamente en el sentido estadístico. El protocolo emplea encripción de código público semánticamente segura para enviar mensajes privados entre servidores. Este protocolo permite a los servidores (copartícipes) Si, . . .Sn (para n > 2t+1) realizar una multiplicación robusta sobre los enteros mientras que mantiene seguridad incondicional. El objetivo del protocolo es calcular C = (Ai + A2 + . . . + An + . . . + An) (Bi + B2 + . . . + Bn) mod P' donde A¡ y B¡ son escogidos por S; de la escala [VáVH, VH]. (El adversario puede elegir valores desde fuera de esta escala). El protocolo es el mismo que el de la sección anterior excepto que el cálculo de partes compartidas se realiza sobre los enteros en lugar de mod P los cálculos de partes comp? rtidas de comprobación y verificación son realizados mod ?? en lugar de mod P, y con los siguientes cambios específicos: -Paso 1 (INICIO): Para cada /, los coeficientes establecidos a cero de a¡(x) y b¡(x) serán L2A, y L2B„ respectivamente. -Paso 2b (USO COMPARTIDO DE PEDERSON DE A¡ y B¡): Los coeficientes establecidos a cero de a(x) serán L2 A en lugar de A.
-Paso 3 (GENERACIÓN DE POLINOMIOS DE CLASIFICACIÓN ALEATORIA): Los coeficientes de z¡(x) y z¡'(x) serán extraídos de la manera siguiente: z¡, ¡ eR [0, L11H3] y z\¡ eR [0, Ü'?4]. Los coeficientes de ?(x) serán extraídos de la manera siguiente: r^R [0, L11H* - Paso 6 (RESULTADO) : Finalmente, v(0) será L4AB en lugar de AB, de manera que los copartícipes se dividen entre L4, Herramientas de robustez Pruebas de conocimiento utilizan las herramientas de dedicación elegidas en el inicio. Estas herramientas permiten a los servidores realizar pruebas de conocimiento cero de redondeo constante eficientes. 1. Prueba de conocimiento de un log discreto Una prueba interactiva de conocimiento cero en la cual un probador aprueba conocimiento a un comprobador V de un log discreto (o cualquier función isomórfica) de X = gx mod P fue presentada en [GHY85]. A continuación se demuestra una prueba similar basada en un módulo combinado, N, y entrada X = gx mod N, donde x e [0. .. Z], para algunos Z > 1. -P dedica a una cadena de sp-bit elegida al azar c = c, | I . . . I | csp utilizando un Simulador-Dedicación equívoca, y también transmite (gq1 mod N, . . ., cqsp mod N) donde q¡ eR [0. . .Z].
-V envía una cadena de sp-bit elegida al azar c'= c \ | . . . | | c'sp a P. -P abre su dedicación. Para k - 1. . .sp, P transmite vk = dkx + qk., donde d = c ? c'.
-Para k = 1. . . sp, V comprueba si X^tf = g"? mod N. 2 - Prueba de conocimiento de un loq discreto y una representación correspondiente Para que un probador P pruebe que conoce una representación (x, y) de Y = g^h^/Y mod ?/*, y que la primera parte de la representación es equivalente al log discreto de X = gr' mod N, con x, y e [0 . . .Z], se utiliza el siguiente protocolo: -P dedica a una cadena de sp-bit elegida al azar c = ci | | . . . c | | Sp utilizando un Simulador-Dedicación equivoca, y también transmite ((gq1 mod N,g.q1hX1 mod ?A) (gqsp mod N, g-qsph.q'sp mod ?'.)) donde q¡, q', €R [0. . Z(/V + A/*)]. -V envía una cadena de sp-bit elegida al azar c' = c'i I I . . . I I c'sp a P. -P abre su dedicación. Para k =1 , . . .sp, P transmite vk=dkx + q y v'k = dky + q 'k, donde d = c ® c'. -Para k = 1. . . sp, V comprueba si Xdkgqk = gvk mod N, y ?dkg.'»(h*q* = g-vkh*v* mod N: 3.- Prueba de conocimiento de representaciones correspondientes Para que un probador P pruebe que conoce valores y y de manera que si (x,y) es una representación de X = gr * mod N* sobre g* y H*, y (x\ y') es una representación de Y = g*x'h*y' mod N* sobre g* y h% entonces x = x se utiliza el siguiente protocolo: -P dedica a una cadena de sp-bit elegida al azar c = Ci I | . . . | | csp utilizando un Simulador-Dedicación equívoca y también transmite ((gq1hX mod ?A, g*q1h-q1 " mod N-),. . „ (g*qsp h*q' sp mod N-, g.qsph*q" sp mod ?A)) donde q¡, q ',-, q¡ " e R [0. . .Z(?/ + ?A)] - -V envía una cadena de sp-bit elegida al azar c' = c'i I I . . . I | c'sp a P. -P abre su dedicación. Para k = 1. . .sp, P transmite vk = dkx + qk, v = dky + qk', y v"k - dky'+ q"k, donde d = c ® C. -Para k = 1. . . sp, V comprueba si Xdkg*qkh*q* = g.vkh*v1< mod. N* y si y gW = g*vkh-v' mod N*. 4.- Prueba de conocimiento y escala de una representación El protocolo que aparece a continuación permite a un probador P probar que conoce valores x y y de manera que (x,y) es una representación de X = g+xhS mod ?? sobre g* y A?*, donde y e [0. . . Z], y x e [a - w. . b + w], donde w = \ a- b | . Si x e [a. . b], este protocolo es de conocimiento cero. (Suponer [a - w. .b + w] c [0. . Z].) -P dedica a una cadena de sp-bit elegida al azar c = c \ . . . I \ csp utilizando un Simulador-Dedicación equívoca, y también transmite ({g*q1h 1 mod N, g>q1~ wh*q1 " mod ?A} , (g-qsp h*q'sp mod N, g«s -wh.qsp" mod ?A}) donde q¡, eR [0, w], q'i.q" , =R [0. . ZN*]. Observar que los pares no están en orden. -V envía una cadena de sp-bit elegida al azar c' = c'i I I . . . I I c'sp a P. -P abre su dedicación. Dejar que d = c ® c'. Para k = 1. . . sp, si o = 1 , P transmite g^, gk y q"k y transmite de otra manera vk = x + qk y v'k = y + q 'k, o vk = x + qk - e y v'k = y + q"k cualquiera que tenga vk G[a. .£>]. -Para /( = 1... sp, si dk - 1 , V comprueba que qx e [0.. e] y g*qkh*q k mod ?A y g*qk"eh*q "k mod ?/* eran los componentes del par k transmitido por P, y de otra manera = V comprueba que vk e[a..b] y que g-qkh*v k/mod ?A sea equivalente a uno de los componentes del par k transmitido por P.
Prueba de condición de número primo doble distribuida robusta El método preferido utiliza un esquema de prueba de número primo doble basado en uno anterior por Boneh-Franklin pero modificado para ser robusto y para "unir" las herramientas de robustez a la generación anterior del valor n. En este método, los servidores pueden verificar si un valor N calculado anteriormente es el producto de dos números primeros mayores (una condición que se requiere para utilizar N en ciertos esquemas de firma y otros esquemas criptográficos). Para obtener robustez (por ejemplo, par determinar que N es número primero doble incluso si un servidor que participa en el protocolo es corrupto) el protocolo hace uso de un polinomio para cada servidor S, definido como: f¡(x) = a¡(x) + b¡ (x) = ¿?=o f¡, ?, donde a,- (x) y b¡ (x) fueron usados para distribuir p, y q¡ respectivamente en el Cálculo Distribuido de N. El método preferido también utiliza las partes compartidas de verificación correspondientes utilizadas en los pasos de uso compartido de Pedersen. Para efectos de descripción, estas partes compartidas de verificación serán llamadas ?¡,j para 0 < j < t, con ?¡, o = g.L2(pi+ )h.<p'¡+q'i> mod ?A, en donde p , y q , son los secretos asociados a p, and q¡, respectivamente. Las partes repiten los siguientes pasos tantas veces como sea necesario para obtener el nivel de seguridad deseado. Cada repetición exitosa incrementa la confianza de que el valor calculado N es un número primo doble. Una falla de cualquier repetición indica que N no es un número primo doble, y los servidores regresan al punto de reanudación para calcular un nuevo valor de N. 1.- Los copartícipes eligen al azar g de manera que: (g/n) =1 donde "(g/n)" aquí designa el símbolo de Jacoby. 2.- Un primer servidor SÍ calcula y transmite un valor Qí = g(N+1-Pi-qi) 4 mod /v Luego el primer servidor prueba conocimiento del log discreto de Qi y una representación correspondiente de g-L2N+1 ??,d1(sobre g 4L2 y ?-) utilizando el protocolo en PRUEBA DE CONOCIEMTNO DE UN LOG DISCRETO. Para cada / = 1 (es decir, servidores restantes), cada servidor S, transmite Q1 = g(Pl+qi> 4 mod N. Después prueba conocimiento del log discreto de OÍ y una representación correspondiente de ?¡, 0 (sobre g 4L2 y h*) utilizando el protocolo en PRUEBA DE CONOCIMIENTO DE UN LOG DISCRETO. 3.- Todos los copartícipes comprueban que í/U n¡=2Q¡ = ± 1 mod N. (Aquí el símbolo "=" significa "es congruente con"). Si no es congruente, los servidores declaran que N no es un producto de dos números primos.
Generación distribuida robusta de códigos públicos y privados El paso de generación de códigos hace uso de la relación que <t>(7V = N - ?n¡=? (p¡ + q¡) + 1 (f (N) es la función de Euler. El protocolo preferido utiliza uno de dos procedimientos, uno simple para códigos públicos pequeños y uno más complicado para códigos públicos más grandes (generales). Ciertas operaciones se pueden realizar fácilmente (mientras que se mantiene la información de verificación para asegurar robustez) si se realiza primero un cambio de representación del valor compartido. Una técnica "poli-para-suma" se utiliza la cual transforma una función compartida por un polinomio grado t contra n servidores en un uso compartido de adición (suma) f-fuera-de-f. Una técnica "suma-para-poli" que transforma una función compartid mediante adición f-fuera-de-f en un uso compartido de polinomio /-fuera-de-p. Se pueden emplear las técnicas de transformación de representación de partes compartidas de [FGMYa].
Generación de códigos para códigos públicos pequeños Para códigos públicos pequeños, por ejemplo, un sistema RSA donde e = 3, se puede utilizar el siguiente procedimiento. 1.- Los copartícipes eligen de manera conjunta g eR [l, N-l] utilizando técnicas descritas en SIMULADOR-DEDICACIONES EQUIVOCAS. En este procedimiento, cada servidor dedica a un valor gi, y después que todos los participantes revelan g„ todos los participantes pueden calcular g como el producto de g¡. 2 - Cada copartícipe SÍ transmite "partes compartidas de comprobación" g Pi+qi mod N 3.- Cada copartícipe S, coteja ese valor con Q,4 mod. N. En realidad Si lo coteja con gN+l I Q* mod N. 4.- Cada copartícipe S, revela = p, + q¡ mod 3. 5.- Cada copartícipe S, prueba conocimiento del log discreto de ? =gp'+qig~™ mod N con base g" = g3 (que se puede llevar a cabo utilizando las técnicas descritas en PRUEBA DE CONOCIMIENTO DE UN LOG DISCRETO). Esto es, cada copartícipe S, muestra que conoce un valor r de manera que p, + q¡ - x¡ = 3r mostrando que conoce el exponente de X con base 6.- El siguiente paso utiliza el hecho de que: F(N) = N + l - SZ=?x¡ mod3. Para efectos de descripción dejar que r = ?/ + 2 -S?, ,.; r' = 2N + 3 - 2 S" ,=, ,.. Todos los servidores pueden calcular estos valores. Si F(N) = 2mod3, el primer copartícipe Si calcula su parte compartida de d como di = (caso 1 ), y para 2 = i = n, cada copartícipe restante SÍ calcula su parte compartida d como d¡ = - (p¡+q¡-x¡)/3 (caso 2). Si F(N) = lmod3 , el primer copartícipe Si calcula su parte compartida de d como d, = (r' -2(p?+q?-x?))/3 (caso 3), y para 2 < i = n, cada copartícipe restante Si calcula su parte compartida de d como d, = -2(pi+q¡-x¡)/3 (caso 4). (Recordar que el valor d es un secreto y la generación de partes compartidas de d sin generar realmente d es un objeto de la invención). 7.- Todos los copartícipes verifican que las partes compartidas de verificación elevadas al cubo estén correctas cuando se comparen contra las partes compartidas de verificación transmitidas en el paso 2. Por ejemplo, en el caso 1 anterior, el primer servidor empieza con g > y lo eleva a la potencia 3. El primer servidor entonces multiplica el resultado por el inverso de gr+T| . El resultado debe ser igual al inverso de gp1+q1 que fue transmitido en el paso 2 8.- Se realiza una transformación suma-para-poli para construir un uso compartido de polinomio seguro (t, n) de d. Las partes compartidas resultantes se pueden usar como partes compartidas de un código de encripción secreto para, por ejemplo, procedimientos de firma distribuidos en una autoridad de certificación raíz.
Generación de códigos para códigos públicos grandes Para e mayor, el protocolo preferido utiliza diferentes técnicas para encontrar (F(N))~' mode que estén relacionadas con ideas descritas por Boneh y Franklin. El protocolo preferido toma ventaja de una suposición de que un valor e se puede encontrar que sea un número primo, con número primo (mayor) £ = 2e + 1 a. Los primeros pasos en el método utilizaron una definición de que para 1 = i = n, f, (x) = a¡ (x) + b¡ (x). Para efectos de descripción, dejar que f(x) = L2 (N+1) - 2" M f¡ (x). Luego f(0) = L2 (N). El método preferido continúa con los siguientes pasos. 1.- Los copartícipes escogen de manera conjunta e al azar (utilizando procedimientos de SIMULADOR-DEDICACIONES EQUIVOCAS), y prueban para ver que e y 2e + 1 son números primos. 2.- Los copartícipes eligen de manera conjunta ge, he e? Z*E (nuevamente utilizando procedimientos de SIMULADOR -DEDICACIONES EQUIVOCAS). 3.- Los copartícipes eligen de manera conjunta g, h e Z*?V (utilizando procedimientos de SIMULADOR-DEDICACIONES EQUIVOCAS). (Los copartícipes pueden elegir polilog de ellos y repetir el procedimiento de verificación con todos ellos, los cual asegura generadores de orden grande.) 4.- Cada copartícipe S¡ elige m¡ eR [0,H], y realiza un uso compartido de Shamir de m¡ sobre los enteros. Para efectos de descripción, dejar que Luego m será aleatorio. Utilizando adición de partes compartidas, los copartícipes pueden tener la parte compartida de la adición. Para efectos de descripción, este polinomio agregado será llamado fm, donde fm (0) = L2m como su coeficiente establecido a cero. 5.- Los copartícipes realizan una MULTIPLACION SOBRE UN CAMPO FINITO (orden e) para calcular O = L4f(N)m mod e (con todos los valores del uso compartido de Shamir de cada m¡ tomado mod e). Esto se realiza multiplicando f y fm. Para efectos anotación, dejar que INV = D'1 mod e, que se calcula fácilmente a partir del valor D público. (Observar que D ha sido "clasificado aleatoriamente" por el valor de m y parece arbitrario de manera que su disponibilidad pública no revele información sobre f (N)). 6.- Para cada /', j, cada copartícipe S¡ multiplica su parte compartida entera de my por INV. (Observar que m es la suma de m¡ y hay un polinomio para cada m¡, por lo tanto, el protocolo produce una representación de "suma-de-poli".). Esto da a los servidores usos compartidos de enteros de polinomios cuya suma contiene un secreto: W = (L4$(N))-1 mod e el cual, cuando se multiplica por L2, es el valor a cero del polinomio de la suma. 7.- Los copartícipes realizan una multiplicación sobre los enteros con partes compartidas de verificación sobre N (de este último polinomio y f(x) para obtener un uso compartido de polinomio con L4Wf (N) + 1 en el coeficiente establecido a cero. (Para agregar uno, simplemente agregar uno a todas las partes compartidas resultantes; para multiplicar por -1 , multiplicar todas las partes compartidas por -1.). Luego, en vez de revelar las partes compartidas del polinomio resultante, los copartícipes revelan aquellas partes compartidas solamente i\~ el exponente. Por ejemplo, suponiendo que el polinomio resultante es v(x) y el polinomio asociado resultante es v'(x), en lugar de que S¡ revele v(i) y v'(x), revela gv(i) mod N y hv(i) mod N, y prueba que conoce las partes compartidas verdaderas que utilizan el protocolo de PRUEBA DE CONOCIMIENTO DE UN LOG DISCRETO. Observar que v(0) = ((-1 )+1 ) = 0 mod e, y v(0) = 1 mod f(N). 8.- Los copartícipes realizan un poli-para-suma para tener la suma del secreto distribuida a t +1 copartícipes. 9.- Los t +1 copartícipes dividen sus partes compartidas de adición entre e, y publican el resto. También publican las partes compartidas de verificación para las nuevas partes compartidas de adición. (Todos los copartícipes deben verificar estas partes compartidas de verificación elevándolas a la potencia e y comparándolas con las partes compartidas de adición originales gv<0)). El resto se sumará a un múltiplo de e. Uno de los copartícipes agrega este múltiplo a su parte compartida de adición. Luego estos copartícipes tienen de manera colectiva un uso compartido de adición de d. 10.- Los t +1 copartícipes realizan una suma-para-poli para construir un uso compartido de polinomio seguro (t, n) de d.
Eficiencia del protocolo y variaciones En sistemas típicos, h puede ser en el orden de 1000 (i.e., 1024-2048). Trabajar sobre los enteros agregará menos de 400 a la dimensión de los exponentes, suponiendo que una garantía de 2"40 sea razonable. Se puede esperar que el valor n sea menor a 10, y 2-k'4 de posibilidad de error en las pruebas con k = 40 sea suficiente garantía de exactitud. La probabilidad de generar un módulo RSA a partir de dos números primos aleatorios de sp/2 bits cada uno es aproximadamente (sp/2)'2, de manera que se espera que el procedimiento repita para aproximadamente sp2/4 redondeos. La complejidad de la comunicación de cada redondeo está limitado por O (nk(sp)) y la complejidad computacional de cada redondeo es aproximadamente 0(n(k+t)) exponenciaciones modulares. Dados valores realistas de k y t, la complejidad computacional es dominada por el protocolo de multiplicación y sería aproximadamente 24n(t+1) exponenciaciones modulares. No se puede ganar mucha eficiencia realizando división de prueba como mencionan Boneh y Franklin, ya que cada prueba contra un número primo menor involucraría una multiplicación robusta, y por consiguiente alrededor de 0(ntB/1nB) exponenciaciones modulares para cada entero distribuido probado. Se pueden realizar numerosas mejoras prácticas. Primero, la división de prueba se puede hacer una vez que se genera un posible N, y esto eliminaría muchas pruebas de condición de número primo doble distribuidas. También, si la prueba de que cada p¡ y q¡ están en la escala correcta se realiza después de esta división de prueba, entonces se pueden ahorrar muchas de ellas. (En este caso, N necesita ser probado para asegurar que se encuentra en una escala posible, de manera que se pueda determinar la actuación de mala fe flagrante de los copartícipes). Quizá la mejora más grande provendría de revelar el valor de cada ; mod-el-producto-J-de-números primos-menores-hasta-algo-B, y suponer que el valor compartido es un múltiplo de J. La suma de los valores revelados podría ser probada para ver si es divisible entre cualquiera de los números primos menores hasta B. De ser así, el entero distribuido no sería número primo y sería descartado. Desde luego, esto reduce seguridad, de manera que de preferencia se realizaría para números primos hasta, por ejemplo, 7. Esto reduce la seguridad en aproximadamente 6 bits (log((2 -1 ) (3 - 1 ) (5 - 1 ) (7 - 1 ))), pero incrementaría la probabilidad de que el número es primo por un factor de aproximadamente 5, y por consiguiente reduce el número esperado de redondeos para el protocolo por un factor de aproximadamente 25. (Si la reducción en seguridad es de preocupar, sp se podría incrementar ligeramente sin afectar el tiempo de operación de manera significativa. O uno simplemente podría utilizar los números primos 2 y 3, reduciendo la seguridad en aproximadamente 1 bit, mientas se reduce el número esperado de redondeos para el protocolo en aproximadamente 6). Con las mejoras antes descritas, el número total de exponenciaciones modulares en el protocolo será aproximadamente 24n (f + 1 ) veces (sp/10)2 (reducido de (sp/2)2 debido al sustituto para división de prueba), que es aproximadamente 10,000. Para el caso n = 4 y t = 1 , existen 2,000,000 de exponenciaciones modulares. El protocolo no robusto de Boneh-Frankiin que utiliza la división de prueba hasta 8,103 realiza aproximadamente 484 exponenciaciones modulares, aproximadamente rn factor de 4000 menos. Si es probable que todas las partes sean honestas, uno puede incrementar el rendimiento realizando una "ejecución optimista". La ¡dea es operar el protocolo (más la división de prueba de Boneh-Franklin) pero sin información de verificación alguna. Esto es, no habría polinomios asociados o partes compartidas de comprobación generadas. Al final de cada redondeo en el cual los participantes no produzcan un módulo RSA, ellos revelan toda su información del redondeo. Si todos los participantes acuerdan que la información revelada es correcta, entonces no ha habido engaño en ese redondeo, y continúan. Si se encuentra engaño, revierten al protocolo robusto descrito en este documento. Si se encuentra un módulo RSA, entonces vuelven a operar el redondeo utilizando los mismos usos compartidos de polinomios, pero incluyendo las verificaciones de robustez (es decir, polinomios asociados, partes compartidas de comprobación, pruebas de conocimiento). Si toda la ¡nformación es verificada correctamente, entonces usan el módulo RSA. De otra manera, ha ocurrido un engaño y revierten al protocolo robusto. El problema con este "modo" de operación es que se puede detectar el engaño, pero es imposible determinar exactamente qué participante engañó. Para determinar quién engañó, uno puede requerir que los participantes firmen sus mensajes a otros participantes, y hacer que los receptores de mensajes ya sea que acepten la firma o pidan al emisor que revele el mensaje a todos. Suponiendo que las firmas son firmas RSA en códigos privados de los participantes, uno puede suponer que requieren una sola exponenciación modular. Además, uno puede usar una firma por redondeo, o incluso sobre redondeos múltiples, para reducir el número de exponenciaciones modulares. En todo, este método seguirá siendo robusto y seguro (con algunas suposiciones estándar sobre seguridad y robustez de firmas y encrípciones), pero requiere solamente aproximadamente n2 veces la exponenciación modular del protocolo no robusto, donde n es el número de participantes. (Observar que esto solamente funciona cuando n es mayor a 3t + 1], porque uno no puede usar pruebas de conocimiento cero [ZK] para garantizar partes compartidas correctas en el protocolo de multiplicación). El rendimiento se puede mejorar también utilizando un algoritmo de exponenciación modular más rápido, como en [BGM], ya que en estos protocolos robustos, los participantes estarán realizando muchas exponenciaciones sobre la misma base y módulo. Otra fuente de eficiencia puede venir de colapsar redondeos en las pruebas de conocimiento cero utilizando el método conocido de cadena de autodesafío derivada de una función de información inservible unidireccional que se cree que es indistinguible desde el punto de vista computacional de un oráculo aleatorio [FS86]. Los protocolos de soporte se pueden combinar para mejorar muchas de las aplicaciones de las operaciones matemáticas sobre valores distribuidos o códigos criptográficos. Dichas operaciones implican multiplicación, inversión, adición, y exponenciación. Un ejemplo antes mencionado es el protocolo distribuido DSS.
Variaciones en el protocolo Una vez que un N combinado es establecido existen numerosas maneras de usarlo en varios protocolos criptográficos diferentes de un sistema RSA distribuido: 1.- Las partes pueden iniciar un sistema "EIGamal combinado". Extraen un elemento aleatorio g y generan el código público y = gx donde x es compartido entre las partes utilizando ya sea un esquema de uso compartido de adición o de polinomio. 2.- Los usuarios registran un protocolo de identificación utilizando la disponibilidad de N para generar un residuo cuadrático para el cual mantienen la raíz como un secreto. 3.- Los usuarios pueden participar en el protocolo de intercambio de bits secreto de Yao, donde encriptan el valor bajo N y simultáneamente revelan la desencripción bit por bit. 4.- Utilizando (e, N), los usuarios pueden usar RSA como un esquema de dedicación público (es decir, usándolo como una función unidireccional) que no se puede abrir a menos que la mayoría lo quiera hacer. Una aplicación para esto es la custodia de textos sencillos.

Claims (1)

NOVEDAD DE LA INVENCIÓN REIVINDICACIONES
1.- Un método para generar un código criptográfico en la forma de partes compartidas de código distribuidas entre un número de servidores que participan que comprende los pasos de: generación de valores secretos por parte de cada servidor; calcular distributivamente un valor combinado N a partir de los valores secretos; probar distributivamente N para una condición de número primo doble; y si N satisface la condición de número primo doble, generar distributivamente un código público y partes compartidas privadas de un código privado correspondiente.
MXPA00011443A 1998-05-22 1999-05-21 Generacion de codigo de algoritmo de rivest, shamir y adleman distribuido de manera eficiente y robusta. MXPA00011443A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8657798P 1998-05-22 1998-05-22
PCT/US1999/011203 WO1999062221A1 (en) 1998-05-22 1999-05-21 Robust efficient distributed rsa-key generation

Publications (1)

Publication Number Publication Date
MXPA00011443A true MXPA00011443A (es) 2003-04-22

Family

ID=22199490

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA00011443A MXPA00011443A (es) 1998-05-22 1999-05-21 Generacion de codigo de algoritmo de rivest, shamir y adleman distribuido de manera eficiente y robusta.

Country Status (11)

Country Link
US (2) US6237097B1 (es)
EP (1) EP1078491B1 (es)
JP (1) JP4790122B2 (es)
AT (1) ATE393993T1 (es)
AU (1) AU4407299A (es)
CA (1) CA2331442C (es)
DE (1) DE69938624T2 (es)
IL (1) IL139520A0 (es)
MX (1) MXPA00011443A (es)
NO (1) NO20005894L (es)
WO (1) WO1999062221A1 (es)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999062221A1 (en) * 1998-05-22 1999-12-02 Certco Incorporated Robust efficient distributed rsa-key generation
US7080255B1 (en) * 1999-05-19 2006-07-18 Murata Kikai Kabushiki Kaisha Secret key generation method, encryption method, and cryptographic communications method and system
JP3560860B2 (ja) * 1999-07-23 2004-09-02 株式会社東芝 秘密分散システム、装置及び記憶媒体
US7003677B1 (en) * 1999-11-01 2006-02-21 International Business Machines Corporation Method for operating proactively secured applications on an insecure system
US7356696B1 (en) * 2000-08-01 2008-04-08 Lucent Technologies Inc. Proofs of work and bread pudding protocols
CN1207867C (zh) * 2001-09-28 2005-06-22 中国科学院研究生院 一种安全的数字签名系统及其数字签名方法
CA2369304A1 (en) * 2002-01-30 2003-07-30 Cloakware Corporation A protocol to hide cryptographic private keys
US8239917B2 (en) * 2002-10-16 2012-08-07 Enterprise Information Management, Inc. Systems and methods for enterprise security with collaborative peer to peer architecture
US7840806B2 (en) * 2002-10-16 2010-11-23 Enterprise Information Management, Inc. System and method of non-centralized zero knowledge authentication for a computer network
US7698557B2 (en) * 2003-12-22 2010-04-13 Guardtime As System and method for generating a digital certificate
US7873071B2 (en) * 2006-05-15 2011-01-18 The Boeing Company Multiple level security adapter
WO2008093690A1 (ja) * 2007-02-02 2008-08-07 Nec Corporation 分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム
US7917747B2 (en) 2007-03-22 2011-03-29 Igt Multi-party encryption systems and methods
CN101345908B (zh) * 2007-07-12 2011-07-13 中兴通讯股份有限公司 多媒体广播组播业务系统中的业务密钥标识分配方法及系统
US20100046740A1 (en) * 2008-08-22 2010-02-25 Schneider James P Embedding a secret in a larger polynomial
US8345861B2 (en) * 2008-08-22 2013-01-01 Red Hat, Inc. Sharing a secret using polynomial division over GF(Q)
JP5434925B2 (ja) * 2008-10-07 2014-03-05 日本電気株式会社 多者分散乗算装置、多者分散乗算システム及び方法
WO2010147215A1 (ja) * 2009-06-19 2010-12-23 日本電気株式会社 秘密情報分散システム,秘密情報分散方法及びプログラム
US10298684B2 (en) 2011-04-01 2019-05-21 International Business Machines Corporation Adaptive replication of dispersed data to improve data access performance
US11418580B2 (en) 2011-04-01 2022-08-16 Pure Storage, Inc. Selective generation of secure signatures in a distributed storage network
US8874991B2 (en) * 2011-04-01 2014-10-28 Cleversafe, Inc. Appending data to existing data stored in a dispersed storage network
US9558359B1 (en) * 2013-03-13 2017-01-31 Hrl Laboratories, Llc Information theoretically secure protocol for mobile proactive secret sharing with near-optimal resilience
US9443089B1 (en) * 2013-03-13 2016-09-13 Hrl Laboratories, Llc System and method for mobile proactive secret sharing
US9450938B1 (en) * 2013-03-13 2016-09-20 Hrl Laboratories, Llc Information secure proactive multiparty computation (PMPC) protocol with linear bandwidth complexity
US9787472B1 (en) 2013-03-13 2017-10-10 Hrl Laboratories, Llc Information secure protocol for mobile proactive secret sharing with near-optimal resilience
US9536114B1 (en) * 2013-03-13 2017-01-03 Hrl Laboratories, Llc Secure mobile proactive multiparty computation protocol
US9614676B1 (en) * 2013-03-13 2017-04-04 Hrl Laboratories, Llc Cryptographically-secure packed proactive secret sharing (PPSS) protocol
US9467451B1 (en) * 2013-03-13 2016-10-11 Hrl Laboratories, Llc Generic proactively-secure secret-sharing protocol from any suitable honest-majority secret-sharing protocol
US9489522B1 (en) * 2013-03-13 2016-11-08 Hrl Laboratories, Llc Method for secure and resilient distributed generation of elliptic curve digital signature algorithm (ECDSA) based digital signatures with proactive security
US10083310B1 (en) * 2013-03-13 2018-09-25 Hrl Laboratories, Llc System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
US10044695B1 (en) 2014-09-02 2018-08-07 Amazon Technologies, Inc. Application instances authenticated by secure measurements
US9754116B1 (en) 2014-09-03 2017-09-05 Amazon Technologies, Inc. Web services in secure execution environments
US10079681B1 (en) 2014-09-03 2018-09-18 Amazon Technologies, Inc. Securing service layer on third party hardware
US9577829B1 (en) 2014-09-03 2017-02-21 Amazon Technologies, Inc. Multi-party computation services
US9584517B1 (en) 2014-09-03 2017-02-28 Amazon Technologies, Inc. Transforms within secure execution environments
US9491111B1 (en) 2014-09-03 2016-11-08 Amazon Technologies, Inc. Securing service control on third party hardware
US9246690B1 (en) 2014-09-03 2016-01-26 Amazon Technologies, Inc. Secure execution environment services
US10061915B1 (en) 2014-09-03 2018-08-28 Amazon Technologies, Inc. Posture assessment in a secure execution environment
US9442752B1 (en) 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
FR3033466B1 (fr) * 2015-03-04 2017-02-17 Inria Inst Nat De Rech En Informatique Et En Automatique Dispositif et procede d'administration d'un serveur de sequestres numeriques
US10211987B2 (en) 2015-04-27 2019-02-19 Cisco Technology, Inc. Transport mechanism for carrying in-band metadata for network path proof of transit
US10084596B1 (en) * 2015-12-08 2018-09-25 EMC IP Holding Company LLC Proactivized threshold password-based secret sharing with flexible key rotation
US10582027B2 (en) 2017-11-04 2020-03-03 Cisco Technology, Inc. In-band metadata export and removal at intermediate nodes
US10623278B2 (en) 2018-03-20 2020-04-14 Cisco Technology, Inc. Reactive mechanism for in-situ operation, administration, and maintenance traffic
JP7101031B2 (ja) 2018-04-13 2022-07-14 株式会社bitFlyer Blockchain ブロックチェーン・ネットワーク及びそのための確定方法
JP6478361B1 (ja) * 2018-08-11 2019-03-06 株式会社bitFlyer ブロックチェーン・ネットワーク及びそのための確定方法
JP7167585B2 (ja) * 2018-09-20 2022-11-09 富士フイルムビジネスイノベーション株式会社 障害検出装置、障害検出方法及び障害検出プログラム
US11979499B2 (en) * 2019-05-16 2024-05-07 Nchain Licensing Ag Systems and methods for mining on a Proof-of-Work blockchain network
DE102022004783A1 (de) 2022-05-07 2024-05-08 Kcrypt Lab UG (haftungsbeschränkt) Verfahren zur Erzeugung zweier großer Primzahlen durch additives Teilen ohne einen vertrauenswürdigen Händler in einem Kommunikationssystem mit einer Anzahl von Teilnehmern

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4351982A (en) * 1980-12-15 1982-09-28 Racal-Milgo, Inc. RSA Public-key data encryption system having large random prime number generating microprocessor or the like
JPH08506217A (ja) * 1993-04-20 1996-07-02 ミカリ,シルヴィオ 公正な暗号システム及びその使用方法
US5625692A (en) * 1995-01-23 1997-04-29 International Business Machines Corporation Method and system for a public key cryptosystem having proactive, robust, and recoverable distributed threshold secret sharing
JPH09205422A (ja) * 1996-01-16 1997-08-05 Internatl Business Mach Corp <Ibm> 順向性、ロバスト及び回復可能な分散しきい値秘密共有を有する公開キー暗号システム及びその方法
JPH1013402A (ja) * 1996-06-21 1998-01-16 Nippon Telegr & Teleph Corp <Ntt> 公開鍵暗号の秘密鍵管理方法および装置
WO1999062221A1 (en) * 1998-05-22 1999-12-02 Certco Incorporated Robust efficient distributed rsa-key generation

Also Published As

Publication number Publication date
DE69938624T2 (de) 2009-06-10
CA2331442C (en) 2009-10-13
DE69938624D1 (de) 2008-06-12
JP4790122B2 (ja) 2011-10-12
IL139520A0 (en) 2001-11-25
JP2002517024A (ja) 2002-06-11
US7313701B2 (en) 2007-12-25
CA2331442A1 (en) 1999-12-02
EP1078491B1 (en) 2008-04-30
EP1078491A1 (en) 2001-02-28
ATE393993T1 (de) 2008-05-15
NO20005894D0 (no) 2000-11-21
US6237097B1 (en) 2001-05-22
US20010038696A1 (en) 2001-11-08
WO1999062221A1 (en) 1999-12-02
NO20005894L (no) 2001-01-19
AU4407299A (en) 1999-12-13

Similar Documents

Publication Publication Date Title
EP1078491B1 (en) Robust efficient distributed rsa-key generation
Frankel et al. Robust efficient distributed RSA-key generation
Gennaro et al. Robust threshold DSS signatures
Frankel et al. Optimal-resilience proactive public-key cryptosystems
Gennaro et al. Robust and efficient sharing of RSA functions
Gennaro et al. Secure distributed key generation for discrete-log based cryptosystems
Canetti et al. Adaptively secure multi-party computation
Beaver et al. Security with low communication overhead
Schindler et al. Ethdkg: Distributed key generation with ethereum smart contracts
EP0981874A1 (en) Optimal-resilience, proactive, public-key cryptographic system and method
Harn et al. Verifiable secret sharing based on the Chinese remainder theorem
Catalano et al. Computing inverses over a shared secret modulus
EP1082836B1 (en) A method of exchanging digital data
Verheul Certificates of recoverability with scalable recovery agent security
Franklin et al. The varieties of secure distributed computation
Frankel et al. Distributed public key cryptosystems
El Laz et al. Security analysis of ElGamal implementations
Boyar et al. Short discreet proofs
Goldwasser New directions in cryptography: twenty some years later (or cryptograpy and complexity theory: a match made in heaven)
EP1944906A2 (en) Robust efficient distributed RSA-key generation
Dossogne et al. Secure and practical threshold RSA
Li et al. Hibge: Monitorable and traceable anonymous encryption in cloud computing
Biehl et al. A new distributed primality test for shared RSA keys using quadratic fields
Gennaro et al. CURRENT JOURNAL SUBMISSION VERSION, NEEDS SOME MINOR CORRECTIONS: DO NOT DISTRIBUTE
Adleman Implementing an electronic notary public

Legal Events

Date Code Title Description
FG Grant or registration
MM Annulment or lapse due to non-payment of fees