Cómputo seguro de múltiples partes Parte 7: Criptosistema de umbral

1. Definición

El criptosistema de umbral consta de tres partes: algoritmo de generación de claves distribuidas, algoritmo de cifrado y algoritmo de descifrado de umbral, que se definen de la siguiente manera:

(1) Generación de clave distribuida : esta es una clave pública yy generada conjuntamente por los participantesy protocolo, después de que se ejecuta el protocolo, cada participante obtendrá una clave privadaxxUn fragmento de x , la clave pública yi y_icorrespondiente a ese fragmentoyyo, y con la clave privada xxLa clave pública yycorrespondiente a xy

(2) Algoritmo de cifrado : la entrada de este algoritmo es la clave pública yyy y el mensaje mma cifrarm , cuya salida es la clave públicayyy bajo texto sin formatommEl texto cifradocc correspondiente a mdo .

(3) Descifrado de umbral : Este es un tt arbitrariot个参与者P i 1 ′ , P i 2 ′ , … , P it P_{i_1^{\prime}}, P_{i_2^{\prime}}, \ldots, P_{i_{t}}PAGi1′′,PAGi2′′,,PAGitEl protocolo en ejecución, para un texto cifrado de entrada dado ccc ,ttt claves de verificación públicahola 1 ′, hola 2 ′, …, presiona h_{i_1^{\prime}},h_{i_2^{\prime}}, \ldots, h_{i_{t}}hi1′′,hi2′′,,hity ttt个碎片xi 1 ′ xi 2 ′ , … , xit x_{i_1^{\prime}} x_{i_2^{\prime}}, \ldots, x_{i_{t}}Xi1′′Xi2′′,,Xit, el texto cifrado cc se generará después de que se ejecute el protocoloc y el texto llano correspondientemmm _

2. Cifrado ElGamal distribuido

Parámetros del sistema : p, qp, qp y q son números primos grandes, yq / p − 1 q / p-1q / p1 , satisfaciendoZ p Z_{p}ZpagEl problema del logaritmo discreto es intratable, ggg esZ p ∗ Z_{p}^{*}Zpagelemento primitivo, MMM es un mensaje de texto sin formato.

nnn participantesP 1 , P 2 , … , P n P_{1}, P_{2}, \ldots, P_{n}PAG1,PAG2,,PAGnSelecciona un número aleatorio xi ∈ Z p , i = 1 , 2 , … , n x_{i} \in Z_{p},i=1,2, \ldots, nXyoZpag,i=1 ,2 ,,n计算yi = gxi mod p y_{i}= g^{x_{i}} \bmod pyyo=gramoXyomodificaciónp y publicarlo.

Ejemplo : x = ∑ i = 1 nxi mod px=\sum_{i=1}^{n} x_{i} \bmod pX=yo = 1nXyomodificaciónpag :y = ∏ i = 1 nyi mod p = g ∑ i = 1 nxi mod p = gx mod py=\prod_{i=1}^{n} y_{i} \bmod p=g^{ \y=yo = 1nyyomodificaciónpag=gramoyo = 1nXyomodificaciónpag=gramoXmodificaciónpag

Cifrado : seleccione un número aleatorio r ∈ Z pr \in Z_{p}rZpag, La función E ( M ) = ( α , β ) = ( gr mod p , yr M mod p ) E(M)=(\alpha, \beta) = (g^{r} \bmod p, y^{ r } M\bmod p)mi ( m )=( un ,segundo )=( gramormodificaciónpag ,yr Mmodificaciónp ) Descifrado:nnn participantes primero calculanα xi mod p \alpha^{x_{i}}\bmod paXyomodificaciónp y anunciado, y luego calculan conjuntamente∏ i = 1 n α xi \prod_{i=1}^{n} \alpha^{x^{i}}yo = 1naXi , resolviendo asíMMMETRO : METRO = β ∏ yo = 1 norte α xi mod p = β α ∑ i = 1 nxi mod p = β α x mod p M=\frac{\beta}{\prod_{i=1}^{n} \alpha^{x^{i}}} \bmod p =\frac{\beta}{\alpha^{\sum_{i=1}^{n} x^{i}}} \bmod p =\frac {\beta}{\alfa^x} \bmod pMETRO=yo = 1naXibmodificaciónpag=ayo = 1nXibmodificaciónpag=aXbmodificaciónpag

promover

Sea el mensaje M = M 1 M 2 ⋯ M n M=M_{1} M_{2} \cdots M_{n}METRO=METRO1METRO2METROn, nnn participantesP 1 , P 2 , … , P n P_{1}, P_{2}, \ldots, P_{n}PAG1,PAG2,,PAGnRespectivamente para los mensajes M 1 , M 2 , … , M n M_{1}, M_{2}, \ldots, M_{n}METRO1,METRO2,,METROnencriptación

Parámetros del sistema : p, qp, qp y q son números primos grandes, yq / p − 1 q / p-1q / p1 , satisfaciendoZ p Z_{p}ZpagEl problema del logaritmo discreto es intratable, ggg esZ p ∗ Z_{p}^{*}Zpagelemento primitivo, MMM es un mensaje de texto sin formato.

Utilice el cifrado ElGamal distribuido para generar pares de claves privadas/públicas: nnn participantes eligen un número aleatorioxi ∈ Z p , i = 1 , 2 , … , n x_{i}\in Z_{p},i=1,2, \ldots,nXyoZpag,i=1 ,2 ,,n计算yi = gxi mod p y_{i}=g^{x_{i}} \bmod pyyo=gramoXyomodificaciónp y publicarlo.

Ejemplo : x = ∑ i = 1 nxi mod px=\sum_{i=1}^{n} x_{i} \bmod pX=yo = 1nXyomodificaciónpag :y = ∏ i = 1 nyi mod p = g ∑ i = 1 nxi mod p = gx mod py=\prod_{i=1}^{n} y_{i} \bmod p=g^{ \y=yo = 1nyyomodificaciónpag=gramoyo = 1nXyomodificaciónpag=gramoXmodificaciónpag

cifrado : nnn participantes seleccionan números aleatoriosr 1 , r 2 , … , rn ∈ Z p r_{1}, r_{2}, \ldots, r_{n} \in Z_{p}r1,r2,,rnZpag, para el mensaje M i M_{i}METROyo加密E ( METRO yo ) = ( α yo , β yo ) = ( gri mod pag , yri METRO yo mod pag ) E\left(M_{i}\right)= \left(\alpha_i ,\beta_i\right) = (g^{r_{i}} \bmod p, y^{r_{i}} M_{i} \bmod p)mi( Myo)=( unyo,byo)=( gramoryomodificaciónpag ,yryoMETROyomodificaciónpag )

Calcular mi ( METRO ) = mi ( METRO 1 METRO 2 ⋯ METRO norte ) = mi ( METRO 1 ) mi ( METRO 2 ) ⋯ mi ( METRO norte ) = ( α , β ) E(M)=E\ izquierda(M_{ 1} M_{2} \cdots M_{n}\right)= E(M_{1})E(M_{2}) \cdots E(M_{n})= (\alpha, \beta )mi ( m )=mi( M1METRO2METROn)=mi ( m1) mi ( m2)mi ( mn)=( un ,β )其中,α = ∏ yo = 1 norte α yo = gramo ∑ yo = 1 nri mod pags , β = ∏ yo = 1 norte β yo = y ∑ yo = 1 nri METRO mod pags \alpha=\prod_{i= 1}^{n} \alpha_{i}=g^{\sum_{i=1}^{n} r_{i}} \bmod p,\beta = \prod_{i=1}^{n} \ beta_{i}=y^{\sum_{i=1}^{n} r_{i}} M \bmod pa=yo = 1nayo=gramoyo = 1nryomodificaciónpag ,b=yo = 1nbyo=yyo = 1nryoMETROmodificaciónpag

Descifrado : nnn participantes primero calculanα xi mod p \alpha^{x_{i}} \bmod paXyomodificaciónp y anunciado, para calcular conjuntamente∏ i = 1 n α xi \prod_{i=1}^{n} \alpha^{x_{i}}yo = 1naXyo, resolviendo así el MMMETRO : METRO = β ∏ yo = 1 norte α xi modificación pag β α ∑ yo = 1 nxi modificación pag = β α x modificación pag \quad M=\frac{\beta}{\prod_{i=1}^{n } \alpha^{x_{i}}} \bmod p \frac{\beta}{\alpha^{\sum_{i=1}^{n} x_{i}}} \bmod p=\frac{\ beta}{\alfa^x} \bmod pMETRO=yo = 1naXyobmodificaciónpagayo = 1nXyobmodificaciónpag=aXbmodificaciónpag

3. Umbral de cifrado ElGamal con centro de confianza

(1) Generación de claves distribuidas

El centro de confianza genera una clave xxx , la clave pública correspondiente esy = gx mod py=g^{x} \bmod py=gramoXmodificaciónp , usando( t , n ) (t, n)( t ,n ) El esquema de umbral comparte la clave privada xxentre los participantes del protocolox : 选择随机多项式f ( u ) = en − 1 ut − 1 + … + a 2 u 2 + a 1 u + a 0 ∈ GF ( q ) [ u ] f(u)=a_{t-1} u ^{t-1}+\ldots+a_{2} u^{2}+ a_{1} u+a_{0} \in GF(q)[u]f ( tu )=at 1tut - 1++a2tu2+a1tu+a0GF ( q ) [ u ] P yo P_{i}PAGyo得到xi = f ( ui ) , i = 1 , 2 , ... , n x_{i}=f\left(u_{i}\right), i=1,2, \ldots, nXyo=F( tuyo),i=1 ,2 ,,norte _

(2) cifrado

Seleccione un número aleatorio k ∈ Z pk \in Z_{p}kZpagSolución: E ( METRO ) = ( α , β ) = ( gk mod p , yk M mod p ) E(M)=(\alpha, \beta)= (g^{k} \bmod p, y^{k } M\bmod p)mi ( m )=( un ,segundo )=( gramokmodificaciónpag ,yk Mmodificaciónpag )

(3) Descifrado

P yo P_{i}PAGyo计算α i = α xi \alpha_{i}=\alpha^{x_{i}}ayo=aXyoy publicarlo, y al mismo tiempo publicar una prueba de conocimiento cero para demostrar la exactitud de su cálculo; cada participante del protocolo elige tt
de los resultados de cálculo publicadostα i 1 , α i 2 , … , α it \alpha_{i_1}, \alpha_{i_2}, \ldots, \alpha_{i_t}ai1,ai2,,ait, 则M = β α x = β ∏ s = 1 t α es λ es M=\frac{\beta}{\alpha^{x}}=\frac{\beta}{\prod_{s=1}^ {t} \alpha_{i_s}^{\lambda_{i_s}}}METRO=aXb=s = 1taisyoisbλ es \lambda_{i_s}yoises el coeficiente de valor de Lagrange, que satisface x = λ i 1 xi 1 + ⋯ + λ itxitx=\lambda_{i_1} x_{i_1}+\cdots+\lambda_{i_t} x_{i_t}X=yoi1Xi1++yoitXit.

Hay un umbral de confianza El cifrado ElGamal no puede considerarse como un cifrado de umbral en sentido estricto. Existe una confiabilidad de terceros. Los usuarios que participan en el intercambio de claves deben confiar plenamente en el distribuidor y creer que no realizará operaciones de descifrado en datos cifrados. .

4. Umbral de cifrado ElGamal sin centro de confianza

(1) Generación de claves distribuidas

Cada participante P i P_{i}PAGyoElija un número aleatorio xi x_{i}XyoComo clave privada, calcule yi = gxi mod p y_{i}=g^{x_{i}} \bmod pyyo=gramoXyomodificaciónp , y anunciarlo;
cada participante calcula la clave pública después de recibir el valor de transmisión: y = ∏ i = 1 nyi mod p = g ∑ i = 1 nxi mod p = gx mod py=\prod_{i=1} ^{ n} y_{i} \bmod p=g^{\sum_{i=1}^{n} x_{i}} \bmod p = g^x \bmod py=yo = 1nyyomodificaciónpag=gramoyo = 1nXyomodificaciónpag=gramoXmodificaciónp para cada participanteP i P_{i}PAGyoImplementar el esquema VSS de Feldman como distribuidor secreto, en P 1 , P 2 , … , P n P_{1}, P_{2}, \ldots, P_{n}PAG1,PAG2,,PAGncompartir secretos entre xi x_{i}Xyo: seleccionar t − 1 t-1t1次随机多项式, fi ( u ) = ai , t − 1 ut − 1 + … + ai 2 u 2 + ai 1 u + aio ∈ GF ( q ) [ u ] f_{i}(u)=a_{i , t-1} u^{t-1}+\ldots+a_{i 2} u^{2}+a_{i 1} u+a_{io} \in GF(q)[u]Fyo( tu )=ayo , t 1tut - 1++ayo 2tu2+ayo 1tu+ayo oGF ( q ) [ u ]其中xi = ai 0 = fi ( 0 ) x_{i}=a_{i 0}=f_{i}(0)Xyo=ay 0=Fyo( 0 )

P yo P_{i}PAGyo计算xij = fi ( uj ) x_{ij}=f_{i}\left(u_{j}\right)Xyo=Fyo( tuj) , enviado aP j , j = 1 , 2 ... , n P_{j}, j=1,2 \ldots, nPAGj,j=1 ,2,norte ; PjP_{j}PAGjRecibir valores de otros participantes xij = fi ( uj ) , i = 1 , 2 … , n x_{ij}=f_{i}\left(u_{j}\right), i=1,2 \ldots, NoXyo=Fyo( tuj),i=1 ,2,n , 计算sj = ∑ i = 1 nxij = ∑ i = 1 nfi ( uj ) s_{j}=\sum_{i=1}^{n} x_{ij}=\sum_{i=1}^{n } f_{i}\izquierda(u_{j}\derecha)sj=yo = 1nXyo=yo = 1nFyo( tuj) como la clave privada xxque finalmente compartisteEl fragmento secreto de x , cuya clave pública de verificación es yj = gsj mod p = g ∑ i = 1 nxij mod p y_{j}=g^{s_{j}} \bmod p=g^{\sum_{i= 1 }^{n} x_{ij}} \bmod pyj=gramosjmodificaciónpag=gramoyo = 1nXyomodificaciónp (2) encriptación

Seleccione un número aleatorio k ∈ Z pk \in Z_{p}kZpag,Definición E ( METRO ) = ( α , β ) = ( gk mod p , yk METRO mod p ) E(M)=(\alpha, \beta) =(g^{k} \bmod p, y^{k } M\bmod p)mi ( m )=( un ,segundo )=( gramokmodificaciónpag ,yk Mmodificaciónp ) (3) Descifrado de umbral

Cada participante P i P_{i}PAGyo计算α i = α si \alpha_{i}=\alpha^{s_{i}}ayo=asyoy publicar Al mismo tiempo, publique una prueba de conocimiento cero para demostrar la exactitud de su cálculo; cada participante del protocolo elige tt
de los resultados de cálculo publicadostα i 1 , α i 2 , … , α it \alpha_{i_1}, \alpha_{i_2}, \ldots, \alpha_{i_t}ai1,ai2,,ait, 则M = β α x = β ∏ s = 1 t α es λ es M=\frac{\beta}{\alpha^{x}}=\frac{\beta}{\prod_{s=1}^ {t} \alpha_{i_s}^{\lambda_{i_s}}}METRO=aXb=s = 1taisyoisbλ es \lambda_{i_s}yoises el coeficiente de valor de Lagrange, que satisface x = λ i 1 si 1 + ⋯ + λ itsitx=\lambda_{i_1} s_{i_1}+\cdots+\lambda_{i_t} s_{i_t}X=yoi1si1++yoitsit.

Supongo que te gusta

Origin blog.csdn.net/apr15/article/details/128943155
Recomendado
Clasificación