esquema de assinatura digital de merkle e suas...

32
Esquema de Assinatura Digital de Merkle e suas variantes Ana Karina D. S. de Oliveira e Julio L´ opez UFMS-UNICAMP 11 de Novembro de 2013

Upload: truongduong

Post on 08-Feb-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

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.