mars the ibm candidate cipher for aes daniel barcelos [email protected] cmp200 – criptografia...

23
MARS The IBM Candidate Cipher for AES Daniel Barcelos [email protected] CMP200 – Criptografia de Dados

Upload: internet

Post on 17-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

MARSThe IBM Candidate Cipher for AES

Daniel Barcelos

[email protected]

CMP200 – Criptografia de Dados

Page 2: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

202

MARSMARS

• Cifra da IBM– Don Coppersmith (DES)

• Cifra de Bloco– 128 bits– Tamanho de chave entre 128 e 448 bits– 32 rodadas

• AES Finalista– 5º lugar

Page 3: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

203

Os autores com a palavraOs autores com a palavra

• Mais seguro que o triplo DES

• Mais rápido que o DES simples

• Seguro diante dos tipos de criptoanálise que ainda estão para ser inventados

The cryptographic core rounds provide strong resistance to all known cryptanalytical attacks, while the mixing rounds provide good avalanche and offer very wide security margins to thwart new (yet unknown) attacks.

Page 4: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

204

AlgoritmoAlgoritmo

• Dividido em três fases

• Orientado a palavra– Operações de 32 bits

• Rede Feistel Tipo-3– Decifragem é o inverso da cifragem

Page 5: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

205

AlgoritmoAlgoritmo

• Tudo-junto-ao-mesmo-tempo-agora– OU-exclusivos– Somas– Subtrações– Multiplicações– Rotações Fixas– Rotações dependentes de dados– Caixas de substituição

• Pseudo-random fashion

Page 6: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

206

AlgoritmoAlgoritmo

Add Round Key

Texto Claro

32 bits

Forward Mixing

Cryptographic Core

Backwards Mixing

Sub Round Key

Subchaves [K0-K3]

x8

x16

x8

Subchaves [K36-K39]

Texto Cifrado

ForwardMixing

CryptographicCore

BackwardsMixing

Page 7: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

207

Add Round KeyAdd Round Key

Texto Claro Subchaves [K0-K3]

32 bits

++++

====

Page 8: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

208

Forward MixingForward Mixing

S0

S1

S0

S1

+

+

++

S0

S1

Notação:

OU-exclusivo

Adição

S-box 0

S-box 1

++

+

A B C D

Soma com B se estiver Soma com B se estiver na rodada 1 ou 5na rodada 1 ou 5

Soma com D se estiver Soma com D se estiver na rodada 0 ou 4na rodada 0 ou 4

Senão passa diretoSenão passa direto

Page 9: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

209

Cryptographic CoreCryptographic Core

13 19

++

A B C D Notação:

E

Kn; Kn+1

+ +

+ i < 8i ≥ 8

Page 10: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2010

Cryptographic CoreCryptographic Core

13 19

++

A B C D Notação:

E

Kn; Kn+1

+ +

+ i < 8i ≥ 8

A

Kn

Kn+1

1319

x Multiplicação

x

1022

+

<<<Rotate x left y timesx

y

<<<

527 5 LSB

M

R

S

+ + <<<L

Page 11: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2011

Cryptographic CoreCryptographic Core

13 19

++

A B C D Notação:

E

Kn; Kn+1

+ +

+ i < 8i ≥ 8

A

Kn

Kn+1

1319

x Multiplicação

x

1022

+

<<<Rotate x left y timesx

y

<<<

527 5 LSB

M

R

S

+ + <<<L

M vai para C Para i < 8: Para i ≥ 8:

L vai para B L vai para D

R vai para D R vai para B

Page 12: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2012

Backwards MixingBackwards Mixing

S1

S1

S0

S0

+

--

+

-

A B C D

Subtrai B se estiver na Subtrai B se estiver na rodada 3 ou 7rodada 3 ou 7

Subtrai D se estiver na Subtrai D se estiver na rodada 2 ou 6rodada 2 ou 6

Senão passa diretoSenão passa direto

-

Notação:

Subtração

Page 13: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2013

Sub Round KeySub Round Key

From Backwards Mixing Subchaves [K36-K39]

32 bits

----

====

Texto Cifrado

Page 14: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2014

Geração de ChavesGeração de Chaves• Versão tweaked

– São geradas 10 subchaves por vez

0 14

Tamanho da Chave

...

Zeros (0x0000)

Inicialização

Page 15: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2015

Geração de Chaves (cont.)Geração de Chaves (cont.)

i i+1

0 0 ≤ i ≤ i ≤ 14 (15x)≤ 14 (15x)0 ≤ j ≤ 3 (4x)0 ≤ j ≤ 3 (4x)0 ≤ t ≤ 3 (4x)0 ≤ t ≤ 3 (4x)

O processo se repete O processo se repete para cada conjunto para cada conjunto de 10 subchavesde 10 subchaves

+S

9 MSB

i i-7 i-2

+

+

329 2

30+

+

i

jj

i

it

Page 16: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2016

CuriosidadesCuriosidades

• Melhor criptoanálise conhecida:– John Kelsey, Bruce Schneier,

MARS Attacks! Preliminary Cryptanalysis of Reduced-Round MARS Variants

• Full Mixing e 5 rodas de Núcleo• 3 FM, 3BM, 6CC

• Duas versões– Tweaked

• Alteração na geração das subchaves

Page 17: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2017

DesempenhoDesempenho• Sistemas com restrições de memória

Fonte: NIST

Page 18: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2018

DesempenhoDesempenho

• Relação Área vs.

Desempenho (FPGA)

Fonte: NIST

Page 19: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2019

DesempenhoDesempenho• Lento mesmo

Fonte: NIST

Page 20: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2020

DesempenhoDesempenho• Lento mesmo

Fonte: NIST

Page 21: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2021

Resumo NISTResumo NIST

• Segurança:Segurança: OK.OK.• Imp. Software:Imp. Software: Desempenho médio. Depende de como o Desempenho médio. Depende de como o

processador/compilador implementa multiplicação e processador/compilador implementa multiplicação e rotação variável.rotação variável.

• Smartcards:Smartcards: Desempenho ruim (not well suited). Requer Desempenho ruim (not well suited). Requer muita ROM.muita ROM.

• Imp. Hardware:Imp. Hardware: Desempenho Ruim. Mas independe do Desempenho Ruim. Mas independe do tamanho da chave.tamanho da chave.

• Ataques:Ataques: Difícil de defender contra ataques de Difícil de defender contra ataques de power power e e timing. timing. Devido à multiplicação.Devido à multiplicação.

• Cifragem vs. Decifragem:Cifragem vs. Decifragem: Bom. Funções similares (10%).Bom. Funções similares (10%).• Geração de chaves:Geração de chaves: Necessário o armazenamento de 10 Necessário o armazenamento de 10

subchaves.subchaves.• Flexibilidade:Flexibilidade: Bom, suporta tamanho de chaves variáveis.Bom, suporta tamanho de chaves variáveis.• Paralelismo:Paralelismo: Pouco paralelizável.Pouco paralelizável.

Page 22: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

2022

Referências BibliográficasReferências Bibliográficas

[Bur99a] Burwick C. et all. The MARS Encryption Algorithm. Agosto, 1999.

[Bur99b] Burwick C. et all. MARS – A candidate cioher for AES. Agosto, 1999.

[NIS00] NIST. Report on the Development of the Advanced Encryption Standard (AES), NIST, 2000.

[Pre00] Preneel B. et al., Comments by the NESSIE Project on the AES Finalists, NIST, 2000.

[IBMxx] MARS Source Code. http://www.research.ibm.com/security/mars.tar.gz. Acessado em 29/4/2007.

[Wik07] Wikipedia. http://en.wikipedia.org/wiki/MARS. Acessado em 29/4/2007.

Page 23: MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia de Dados

MARSThe IBM Candidate Cipher for AES

Daniel Barcelos

[email protected]

CMP200 – Criptografia de Dados