MARS The IBM Candidate Cipher for AES Daniel Barcelos danielb@inf.ufrgs.br CMP200 – Criptografia...

Preview:

Citation preview

MARSThe 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

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.

204

AlgoritmoAlgoritmo

• Dividido em três fases

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

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

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

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

207

Add Round KeyAdd Round Key

Texto Claro Subchaves [K0-K3]

32 bits

++++

====

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

209

Cryptographic CoreCryptographic Core

13 19

++

A B C D Notação:

E

Kn; Kn+1

+ +

+ i < 8i ≥ 8

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

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

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

2013

Sub Round KeySub Round Key

From Backwards Mixing Subchaves [K36-K39]

32 bits

----

====

Texto Cifrado

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

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

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

2017

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

Fonte: NIST

2018

DesempenhoDesempenho

• Relação Área vs.

Desempenho (FPGA)

Fonte: NIST

2019

DesempenhoDesempenho• Lento mesmo

Fonte: NIST

2020

DesempenhoDesempenho• Lento mesmo

Fonte: NIST

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.

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.

MARSThe IBM Candidate Cipher for AES

Daniel Barcelos

danielb@inf.ufrgs.br

CMP200 – Criptografia de Dados

Recommended