MARS The IBM Candidate Cipher for AES Daniel Barcelos [email protected] CMP200 – Criptografia...
Transcript of MARS The IBM Candidate Cipher for AES Daniel Barcelos [email protected] CMP200 – Criptografia...
MARSThe IBM Candidate Cipher for AES
Daniel Barcelos
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
CMP200 – Criptografia de Dados