Esquema de Assinatura Digital de Merkle e suas...
-
Upload
truongduong -
Category
Documents
-
view
215 -
download
0
Transcript of Esquema de Assinatura Digital de Merkle e suas...
Esquema de Assinatura Digital de Merkle e suas variantes
Ana Karina D. S. de Oliveira e Julio Lopez
UFMS-UNICAMP
11 de Novembro de 2013
Sumario
Introducao;
Conceitos Basico;Assinatura One-Time de Winternitz;Esquema de Assinatura Digital de Merkle;
Variantes do Esquema de Merkle-MSS;CMSS;GMSS;XMSS;XMSSMT ;
Comparacoes dos esquemas
Conclusoes.
Introducao
(VTXHPD�GH�$VVLQDWXUD�'LJLWDO
(VTXHPD�GH�$VVLQDWXUD�'LJLWDO
0HQVDJHP
&DQDO�GH�&RPXQLFDomR�,QVHJXUR
0HQVDJHP
(PLVVRU 5HFHSWRU
$VVLQD 9HULILFD
FKDYH�SULYDGD FKDYH�
S~EOLFD
$VVLQDWXUD�'LJLWDO
0HQVDJHPDVVLQDGD
Introducao
&RPSXWDGRUHV�4XkQWLFRV�WRUQDUmR�R�56$�H�(&'6$�LQVHJXURV
$OJRULWPR�GH�6KRU��������FRQVHJXH�IDWRUDU�LQWHLURV�H�FDOFXODU�ORJDULWPRV�GLVFUHWRV�QRV�JUXSRV�UHOHYDQWHV�HP�WHPSR�SROLQRPLDO�
Introducao
Motivacao:Estudar e analisar as variantes e otimizacoes do algoritmo de Merkle.
Opcoes:Esquema de Assinatura Digital de Merkle- MSS(1979);
tem a seguranca baseada na seguranca da funcao de resumo;
nao se conhece uma maneira de aplicar o algoritmo de Shor neste
esquema.
Variantes do Esquema de Merkle-MSS;CMSS;
GMSS;
XMSS;
XMSSMT;
Conceitos Basicos
Esquema de Assinatura de Merkle;
Utiliza Assinatura One-time:um par de chaves para cada assinatura;
uma chave privada de assinatura Xi .
uma chave publica de verificacao Yi e;
Utiliza funcoes de resumo;
Constroi uma arvore de resumos.reduz a validade de muitas chaves de verificacao Y = (Y0, ...,Yn)para uma unica chave publica que e a raiz da arvore de resumo.
Conceitos Basicos
Esquema de Assinatura de Merkle
+�<��
+�<�__<��
URRWFKDYH�S~EOLFD�GD�iUYRUH�GH�0HUNOH
0HUNOH�����
ÈUYRUH�GH�KDVK
+�<�� +�<��
+�<�__<��
+�<�� +�<��
+�<�__<��
+�<�� +�<��
+�<�__<��
+�<��
Conceitos Basicos
Esquema de Assinatura One-time de Winternitz-WOTS(Merkle 1979)
Parametros:
uma funcao one-way f : {0, 1}n ! {0, 1}n;uma funcao de resumo g : {0, 1}⇤ ! {0, 1}n;w : numero de bits que sao processados simultaneamente.
t := t1 + t2,t1 := dn/we;t2 := d(blog2t1c+ 1 + w)/we;
Conceitos Basicos
Esquema de Assinatura One-time de Winternitz-WOTS(Merkle 1979)
Geracao de chaves:
Chave privada de assinatura:X = (x0, ..., xt�1) 2 {0, 1}(n,t)
onde os xi sao escolhidos aleatoriamente;
Chave publica de verificacao:Y = (y0, ..., yt�1) 2 {0, 1}(n,t)
onde yi := f 2w�1(xi )
Y = H(y0||y1||...||yt�1)
Conceitos Basicos
Geracao de Assinatura WOTS - Geracao online
Dada uma mensagem M e a chave privada de assinatura X 2 {0, 1}n:calculamos o resumo m da mensagem M
se n mod w 6= 0 entaoadicionamos zeros a esquerda de m, tal que o tamanho em bits sejadivisıvel por w ;
dividimos m em t1 blocos de tamanho w : m = (b0||...||bt1�1);
calculamos o checksum c :=Pt1�1
i=0 (2w � bi );
se (blog2t1c+ 1 + w) mod w 6= 0 entaoadicionamos zeros a esquerda de c , tal que o tamanho em bits sejadivisıvel por w ;dividimos c em t2 blocos de tamanho w : c = bt1 ||...||bt�1.adicionamos c a m: m0 = b0||...||bt1�1||bt1 ||...||bt�1.
Calculamos a assinatura:para(i=0,...,t-1) faca sigi = Hbi (xi ).
Conceitos Basicos
Verificacao de Assinatura
Dada uma mensagem M, a assinatura sig e a chave de verificacao Y :
calculamos m0 = b0||...||bt1�1||bt1 ||...||bt�1 da mesma forma que naassinatura WOTS.
para(i=0,...,t-1) faca y 0i = H2w�1�bi (sigi ).
Y 0 = H(y 00||...||y 0t�1)
se Y 0 = Y entaoretorne assinatura valida
senaoretorne assinatura invalida
Conceitos Basicos
Esquema de Assinatura de Winternitz-WOTS
&iOFXOR�GR�FKHFNVXP�F��QD�*HUDomR�H�9HULILFDomR�GH�$VVLQDWXUD�:276
([HPSOR��3DUD�Q ���FDOFXODPRV�W� ���W� ���W W��W� �'DGR�R�UHVXPR�GD�PHQVDJHP�0��P ��������������GLYLGLPRV�P�HP�W��EORFRV�GH�WDPDQKR�Z��P E�__E����FDOFXODPRV�F ���Z�E�����
Z䈴E��� �������������� ��F �� ������
���DGLFLRQDPRV�]HURV�D�HVTXHUGD�GH�F�SDUD�TXH�VHMD�GLYLVtYHO�SRU�Z�
���GLYLGLPRV�F�HP�W��EORFRV�GH�WDPDQKR�Z��F ����������� �E�__E��
���DGLFLRQDPRV�F�D�P�P¶ �P__F �E��__���E��__���E���__��E���P¶ �����__����__����__����
Conceitos Basicos
Esquema de Assinatura de Winternitz-WOTS
$/,&( %2%
P¶� �����__����__����__����P¶� ��E��__���E��__���E���__��E����
HQYLD�0�<�6LJ�
<
VH��< <��UHWRUQH�YiOLGDVHQmR�UHWRUQH�LQYiOLGD�
*HUDomR�GH�$VVLQDWXUD
*HUD�R�UHVXPR�P�GD�PHQVDJHP�0��P ������������FDOFXOD�F ������
[�
&KDYH�SULYDGD�GH�DVVLQDWXUD�;JHUDGD�DOHDWRULDPHQWH�
$VVLQDWXUD�RQH�WLPH�GH�:LQWHUQLW]�6LJ�JHUDGD�D�SDUWLU�GD�VHOHomR�GD�FKDYH�;
*HUDomR�GH�&KDYHV 9HULILFDomR�GH�$VVLQDWXUD
+���[���
&KDYH�S~EOLFD�GH�YHULILFDomR�<�JHUDGD�D�SDUWLU�GD�FKDYH�;�
3DUkPHWURV��Z ���Q �W� ���W� ���W �
[� [� [�
\� \� \� \�
< +�\�__\�__\�__\��
+���[��� +���[��� +���[���
[�
+��[���
[� [� [�
VLJ�
+��[��� +��[��� +��[���
VLJ� VLJ� VLJ�
VLJ� VLJ� VLJ� VLJ�
+���VLJ���
\¶� \¶� \¶� \¶�
<¶ +�\¶�__\¶�__\¶�__\¶��
+��VLJ��� +���VLJ��� +���VLJ���
6LJ +�\�__\�__\�__\��
P¶� �����__����__����__����P¶� ��E��__���E��__���E���__��E����
*HUD�R�UHVXPR�P�GD�PHQVDJHP�0��P ������������FDOFXOD�F ������
Algoritmo de percurso na arvore [Merkle : 79]
Algoritmo de Percurso: Calcula os caminhos de autenticacao
Entrada: H(altura).Saıda: O caminho de autenticacao: Aut[H].Para(u = 0, u < 2H , u ++)
Para(h = 0, h < H, h ++)Retorne: O caminho de autenticacao Aut da folha u
Para(h = 0, h < H, h ++)Se(u + 1)/(2h) = 0
Atualiza Aut[h] = Aux [h]noIni = (u + 1 + 2
h)� 2
h.
Aux [h].atualiza(noIni , h).
Algoritmo de percurso na arvore [Merkle : 79]
$X[>�@
<�
;�
$XW>�@
$XW>�@$X[>�@
$XW>�@$X[>�@
URRWFKDYH�S~EOLFD�GD�iUYRUH�GH�0HUNOH
&KDYH�GH�$VVLQDWXUD�RQH�WLPH
&KDYH�GH�9HULILFDomR�RQH�WLPH
I �
$VVLQDWXUD�GR�(VTXHPD�GH�0HUNOH�XVDQGR�D�FKDYH�GH�$VVLQDWXUD�;���FRP�R�UHVSHFWLYR�FDPLQKR�GH�DXWHQWLFDomR�SDUD�D�IROKD�I �
$VVLQDWXUD�066� ���I����VLJ2WV���<����$XW>�@�$XWK>�@�$XWK>�@��
0HUNOH�����
O primeiro caminho de autenticacao foi salvo durante a geracao da chave publica
Apos a assinatura da folha f0, Aut[0] = Aux[0] (caminho de autenticacao para a folha f1)
Algoritmo de percurso na arvore [Merkle : 79]
$XW>�@
<�
$X[>�@
;�
$XW>�@$X[>�@
$XW>�@$X[>�@
URRWFKDYH�S~EOLFD�GD�iUYRUH�GH�0HUNOH
&KDYH�GH�$VVLQDWXUD�RQH�WLPH
&KDYH�GH�9HULILFDomR�RQH�WLPH
I� �
$VVLQDWXUD�GR�(VTXHPD�GH�0HUNOH�XVDQGR�D�FKDYH�GH�$VVLQDWXUD�;���FRP�R�UHVSHFWLYR�FDPLQKR�GH�DXWHQWLFDomR�SDUD�D�IROKD�I �
QR,QL I����K�;25��K
�������� ������;25�� �
0HUNOH�����
$VVLQDWXUD�066� ���I����VLJ2WV���<����$XW>�@�$XWK>�@�$XWK>�@��
A figura mostra a execucao do algoritmo para gerar o proximo caminho de autenticacao para a folha f2
Apos a assinatura da folha f1, Aut[0] = Aux[0] e Aut[1] = Aux[1] (caminho de autenticacao para a folha f2)
Esquema de Assinatura Digital de Merkle(1979)-MSS
Para uma funcao de resumo de n = 256 bits(tamanho do resumo),w = 4, h = 20(altura) e Aut (caminho de autenticacao):
tamanho da chave privada MSS Cpriv :ındice da folha = 4 bytes.
SEED0 = 32 bytes (PRNG);
Aut + Aux = 2 ⇤ 20 ⇤ 32 = 1280 bytes;
Cpriv = 1316 bytes.
tamanho da chave publica MSS Cpub
Cpub = root = 32 bytes;
tamanho da assinatura MSS Csig = (foha, Sig ,Yi ,Auth).ındice da folha = 4 bytes.
Sig = t ⇤ n = 67 ⇤ 32 = 2.144 bytes.
Yi = 32 bytes;
Aut = H ⇤ n = 20 ⇤ 32 = 640 bytes.
Csig = 2.820 bytes.
PRNG
Algoritmo PRNG: Gerador de Numeros Pseudo-Aleatorios
Entrada: SEEDin
Saıda: R(PRNG ), SEEDout(Nova Semente)
1 R = H(SEEDin)
2 SEEDout = (1 + SEEDin + R) mod 2n
3 retorne: (SEEDout ,R)
padrao: FIPS PUB 186 � 2, 2007. < http : //csrc.nist.gov/publications/fips/ >.
Geracao da Chave Privada com PRNG
PRNG - Diminui o tamanho da chave privada de assinatura, poremaumenta o numero de aplicacoes da funcao de resumo
6(('� 351*
[���Q�ELWV
&RURQDGR�����
SDGUmR��),36�38%��������KWWS���FVUF�QLVW�JRY�SXEOLFDWLRQV�ILSV
351*��GLPLQXL�R�WDPDQKR�GD�FKDYH�SULYDGD�GH�DVVLQDWXUD�GH��W� �Q�ELWV�SDUD�Q�ELWV
6(('�
6HHG2WV�
351*
6HHG2WV�
6HHG2WV�
[W�����Q�ELWV351*
351*
[���Q�ELWV
6(('
6HHG2WV�
351*
6HHG2WV�
6HHG2WV�
[W�����Q�ELWV351*
�+�� 351*
[���Q�ELWV
6HHG2WV
351*
[W�����Q�ELWV351*
�+��
6HHG2WV �+��
6HHG2WV �+��
IROKD� IROKD� IROKD�+��
Variantes do Esquema de Merkle-MSS
CMSS: An Improved Merkle Signature Scheme(2006);aumenta o numero de possibilidade de assinaturas de 220 para 240
GMSS: Merkle signatures with virtually unlimited signaturecapacity(2007);
permite assinar um numero “ilimitado“ de mensagens 280
XMSS: eXtended Merkle Signature Scheme(2011);permite eliminar a necessidade de uma famılia de funcoes de resumoresistente a colisao.
XMSSMT : XMSS Multi Tree(2013);XMSS que permite assinar um numero “ilimitado“ de mensagens 280
CMSS
5�
[��� [���$XWK���
$XWK���
[��� [���
5�
SXE
[���$XWK���
$XWK���
[��� [���[���
FKDYH�S~EOLFD�GH�0HUNOH
iUYRUH�SULQFLSDO��
VXEiUYRUH���
-�%XFKPDQQ�HW�DO�����
GMSS
VXEiUYRUH�SUHFDOFXODGDV VXEiUYRUHV�IXWXUDV
VXEiUYRUH�DWXDO
ÈUYRUHV�HP�FDPDGDV�GLIHUHQWHV�SRGHP�WHU�SDUkPHWURV�Z�H�DOWXUDV�GLIHUHQWHV�
-��%XFKPDQQ�HW�DO�����
XMSS [J. Buchmann et al 2011]
Parametros do Esquema de Assinatura XMSSuma famılia de funcoes F e uma famılia de funcoes de resumo G ;
parametro de seguranca n 2 N;parametro de Winternitz w 2 N(w > 1);
tamanho da mensagem em bits m 2 N;altura da arvore H 2 N;uma famılia de funcoes pseudo-aleatorias:Fn = {fK : {0, 1}n ! {0, 1}n|K 2 {0, 1}n};uma funcao de resumo gK escolhida aleatoriamente com distribuicaouniforme da famılia de funcoes:Gn = {gK : {0, 1}2n ! {0, 1}n|K 2 {0, 1}n};
XMSS [J. Buchmann et al 2011]
Geracao de Chaves de Assinatura e Verificacao XMSSchave de assinatura one-time x :
x 2 {0, 1}n escolhida aleatoriamente com distribuicao uniforme;
chave de verificacao one-time: yconstruıda a partir da aplicacao da famılia de funcoes Fn:
Y = (y1, . . . , yl) = (f w�1sk1
(x), . . . , f w�1skl
(x)).para K , x 2 {0, 1}n, e 2 N, e fK 2 Fn;
a chave K 2 {0, 1}n, x 2 {0, 1}n e escolhida aleatoriamente com
distribuicao uniforme;
define-se a funcao f eK (x) como: f 0K (x) = K , e para e > 0 f eK (x) = fK 0(x),
onde K 0= f e�1
K (x).
Neste trabalho sugere-se a seguinte funcao fK (x):fK (x) = g(Pad(K)||Pad(x));Pad(z) = (z ||10b�|z|�1
) para |z | < b, sendo b o tamanho do bloco da
funcao de resumo.
XMSS [J. Buchmann et al 2011]
Esquema de Assinatura de Winternitz(WOTS) Modificado
Para o parametro w de Winternitz, calcula-se:
l1 =
&m
log2(w)
',
l2 =
$log2(l1(w�1))
log2(w)
%+ 1,
l = l1 + l2.
XMSS
12L�M
12L�M
(VT� 'LU�
[RU [RU
+DVK
ELWPDVNO�M ELWPDVNU�M
M �
M +
-��%XFKPDQQ�HW�DO�����
NOi ,j = hash((NOEsq. � bitmaskl ,j)||(NODir . � bitmaskr ,j))
XMSS-Seguranca
XMSS e existencialmente infalsificavel sobre Ataques de Mensagensescolhidas
Se Hn e uma famılia de funcoes de resumo resistentes a preimageme Fn e uma famılia de funcoes pseudo-aleatorias.
a existencia de uma famılia de funcoes one-way e condicao necessariapara a existencia de um esquema de assinatura digital seguro.
geradores pseudo-aleatorios sao construıdos de famılia de funcoesone-way.
XMSS usa WOTS com um gerador de chaves pseudo-aleatorio.
XMSS e seguro para frente (gerador pseudo-aleatorio).
XMSSMT
VLJ�
VLJ�
7UHH�
7UHH�
VLJ�
7UHH�
VLJ�
7UHH� 1H[W�
1H[W�
1H[W�
K�
K�
K�
K�
$QGUHDV�+�HW�DO�����
Comparacao dos esquemas
Comparacao de tempos de geracao de chaves, assinatura e verificacao, obtidos na
implementacao em software em um Computador Intel Core i7� 2670 QMCPU,
2.20 GHz
Esquema H w tchaves tsig tver
MSS 20 3 242.3 s 1.2 ms 0.12 msMSS 20 4 309.7 s 1.6 ms 0.16 ms
XMSS 20 4 363 s 2.8 ms 0.34 ms
Tabela: Tamanhos em bytes e tempos com SHA-2(256)
XMSS com SHA-2(256)-4SMS na geracao de chaves para w = 4diminuiu o tempo de geracao de chaves de 363 s para 173 s.
Comparacao dos esquemas
Comparacao de tamanho das chaves publicas, privadas e de assinatura
Esquema H w Cpub Cpriv Csig
MSS 20 3 32 1316 3556
MSS 20 4 32 1316 2820
CMSS 20 (3,3) 32 2056 6472
CMSS 20 (4,4) 32 2056 5000
CMSS 40 (3,3) 32 3976 7112
CMSS 40 (4,4) 32 3976 5640
GMSS T=2 40 (9,3) 32 3976 5224
GMSS T=4 80 (3,3,3,3) 32 9232 14224
GMSS T=4 80 (7,7,7,3) 32 9232 10864
XMSS 20 4 1696 1316 4932
Tabela: Tamanhos em bytes
Comparacao dos esquemas
Conforme aumentamos o parametro w , diminuimos o tamanho daassinatura, porem aumentamos os tempos de processamento;
o MSS, apresentada tamanho e tempo de assinaturas menores;
o XMSS tem tamanho de chave publica e de assinatura maiores porter que guardas os bitmasks, porem permite eliminar a necessidade deuma funcao de resumo resistente a colisoes.
o CMSS e GMSS, aumenta a quantidade de assinaturas, poremaumenta tambem o tamanho das chaves privada e de assinatura porter que guardar informacoes de duas ou mais arvores.
o GMSS e XMSSMT permitem altura e parametros w diferentes,permitindo balancear tamanho das chaves com o tempo deprocessamento entre as subarvores, mostrando um conjunto deparametros otimos para estes esquemas.
Conclusoes
O esquema de Merkle e suas variantes possuem tamanhos de chavessuportaveis para os computadores atuais;
Nossos resultados experimentais mostram que a geracao e verificacaode assinatura apresentaram tempos razoaveis.
e possıvel que, para muitas aplicacoes, o limite do MSS e do XMSS de220 seja suficiente;
os limites de 240 e 280 no GMSS e no XMSSMT mostram-se grande obastante podendo ser considerado ilimitado;
No contexto da criptografia pos-quantica, a grande vantagem dautilizacao destes esquemas e a nao vulnerabilidade ao algoritmo deShor.