Академический Документы
Профессиональный Документы
Культура Документы
in
ar
Pr
e
Ve
rs
27 de fevereiro de 2015
in
ar
Sumrio
Encriptao assimtrica
1.3
Resumos
criptogrcos . . . . . . . . . . . . . . . . . . .
1.4
Assinatura digital . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.5
Estabelecimento de chaves . . . . . . . . . . . . . . . . . . . . . .
11
1.6
11
1.7
Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.8
Criptograa Ps-Quntica . . . . . . . . . . . . . . . . . . . . . .
14
1.9
Criptograa Quntica
(hashes)
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
14
14
14
. . . . . . . . . . . . . . . . . . . .
16
19
2.1
Criptossistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.2
Princpio de Kercho . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.3
Sigilo Perfeito . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.4
25
2.5
Segurana demonstrvel
. . . . . . . . . . . . . . . . . . . . . . .
25
2.5.1
Cenrios de ataque . . . . . . . . . . . . . . . . . . . . . .
26
2.5.2
Probabilidade desprezvel
. . . . . . . . . . . . . . . . . .
27
2.5.3
27
Ve
rs
Encriptao simtrica
1.1
Pr
e
Conceitos Fundamentais
lim
Sumrio
Problemas Difceis
3.1
Funes de mo nica
3.1.1
33
. . . . . . . . . . . . . . . . . . . . . . . .
33
36
hard-core
3.2
Predicados
. . . . . . . . . . . . . . . . . . . . . . . . .
37
3.3
39
SUMRIO
ii
41
4.1
Geradores pseudoaleatreos
41
4.2
4.3
Gerao de
4.5
45
47
48
4.4.1
48
4.4.2
53
. . . . . . . . . . . . . . .
Cifras de Fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.5.1
Mltiplas Mensagens . . . . . . . . . . . . . . . . . . . . .
54
4.5.2
57
Cifras de Bloco
. . . . . . . . . . . . .
61
5.1
63
5.2
Permutaes Pseudoaleatreas
65
5.2.1
5.3
5.4
5.5
5.8
. . . . . . .
65
. . . . . . . . . . . . . . . . . . . . . . . . .
65
5.3.1
66
5.3.2
. . . . . . . . . . . . . . .
66
5.3.3
67
5.3.4
CTR Contador . . . . . . . . . . . . . . . . . . . . . . .
67
Cifras de bloco
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
5.4.1
68
5.4.2
Construo
69
. . . . . . . . . . . . . . . . . . . . . . . . . .
69
5.5.1
Confuso e difuso . . . . . . . . . . . . . . . . . . . . . .
69
5.5.2
69
5.5.3
Rede de Feistel . . . . . . . . . . . . . . . . . . . . . . . .
71
5.5.4
Construo de Lai-Massey . . . . . . . . . . . . . . . . . .
73
Exemplo: DES
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6.1
Escalonamento de chaves
5.6.2
3DES
Ve
rs
5.7
. . . . . . . . . . . . . . . . . . .
Modos de Operao
5.6
. . . . . . . . . . . . . . .
lim
pseudoaleatreos
in
ar
4.4
nmeros
. . . . . . . . . . . . . . . . . . . . .
Pr
e
Exemplo: AES
. . . . . . . . . . . . . . . . . .
74
75
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
5.7.1
Descrio simplicada
. . . . . . . . . . . . . . . . . . . .
77
5.7.2
. . . . . . . . . . . . . . . . . . . .
80
FOX (IDEA-NXT) . . . . . . . . . . . . . . . . . . . . . . . . . .
82
Descrio algbrica
Noes de Criptanlise
87
6.1
6.2
Criptanlise linear
. . . . . . . . . . . . . .
87
. . . . . . . . . . . . . . . . . . . . . . . . . .
90
6.2.1
O Lema do Empilhamento . . . . . . . . . . . . . . . . . .
91
6.2.2
Criptanlise da rede
92
6.2.3
. . . . . . . . . . . . . . . . . . . . .
6.3
6.4
Criptanlise Algbrica
6.5
. . . . . . . . . . . . . . . . . . . . . . . . 107
SUMRIO
7.2
dexp
(Secure Hash Algorithm) .
. . . . . . . . . . . . . . . . 115
. . . . . . . . . . . . . . . . . . . 117
7.4
SHA
. . . . . . . . . . . . . . . . . . . 119
in
ar
7.3
7.4.1
SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.4.2
SHA-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.5
7.6
. . . . . . . . 123
7.6.1
7.6.2
Objees
. . . . . . . . . . . . . . . . . . . . . . . . . . . 126
131
lim
8.2
8.3
CBC-MAC
8.3.1
113
. . . . . . . 132
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.4
HMAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
8.5
. . . . . . . . . . . . . . . . . . . . . 138
Criptograa Assimtrica
Pr
e
hashing)
141
9.1
9.2
9.3
9.4
Ataque de homem-no-meio
Criptossistemas Assimtricos
9.4.1
. . . . . . . . . . . . . . . . . 145
. . . . . . . . . . . . . . . . . . . . 145
. . . . . . . . . . . 146
9.5
9.6
Elgamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
9.7
Ataques ao RSA
9.8.2
Ve
rs
9.8
iii
9.9
. . . . . . . . . . . . . . . . . . . . . . . 152
. . . . . . . . . . . . . . . 153
Goldwasser-Micali
. . . . . . . . . . . . . . . . . . . . . . . . . . 154
10 Assinaturas Digitais
159
. . . . . . . . . . . . . . . . . . . . . . . 161
. . . . . . . . . . . . . . . . . . . . . . . 162
. . . . . . . . . . . . . . . . . . . . . . . 163
10.1.4
. . . . . . . . . 164
. . . . . . . . . . . . . . . . 164
SUMRIO
iv
10.5
Protocolos
. . 169
171
in
ar
II
175
. . . . . . . . . . . . . . . . . . . . . . . . . . 176
. . . . . . . . . . . . . . . . . . 181
12 Compartilhamento de Segredos
185
lim
. . . . . . . . . . . . . . . . . . . . . 188
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
. . . . . . . . . . . . . . . . . . . . . 190
. . . . . . . . . . . . . . . . . . . . 192
Pr
e
. . . . . . . . . . . . 194
. . . . . . . . . . . . . . . . . . . 198
. . . . . . . . . . . . . . . . . . . . . . 198
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
201
. . . . . . . . . . . . . . . . . . . . . . . . . . 201
13.3
-protocolos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Ve
rs
. . . . . . . . . . . . . . . . . . . . . 207
213
215
. . . . . . . . . . 216
. . . . . . . . . . . . . . . . . . . . . 220
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
SUMRIO
223
16 Curvas Elpticas
227
in
ar
16.1.1 Simtrico
. . . . . . . . . . . . . . . . . . . . . 232
. . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Fp . .
GF2m
. . . . . . . . . . . . . . . 233
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
lim
17.1 Fatorao
239
Pr
e
17 Primalidade e Fatorao
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
F
F
F
p 1 de Pollard
de Pollard . .
Crivo quadrtico
. . . . . . . . . . . . . . . . . . . 240
. . . . . . . . . . . . . . . . . . . 242
. . . . . . . . . . . . . . . . . . . . . 244
249
. . . . . . . . . . . . . . . . . . . . . . . . . . 250
Ve
rs
18.3 Assinaturas
. . . . . . . . . . . . . . . . . . . . . . 254
19 Emparelhamentos Bilineares
261
. . . . . . . . 262
. . . . . . . . . . . . . . . . 262
20 Criptograa Ps-Quntica
20.1 Diculdade de problemas
20.2 Computao quntica
265
. . . . . . . . . . . . . . . . . . . . . . 265
. . . . . . . . . . . . . . . . . . . . . . . . 266
SUMRIO
vi
. . . . . . . . . . . . . . . . . . . . . . . . . . . 269
273
21.1 Reticulados
in
ar
21 Reticulados
. . . . . . . . . . . . . 269
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
. . . . . . . . . . . . . . . . . . 276
lim
Pr
e
281
23 Criptograa Visual
291
pequenos
. . . . . . . . . . . . . . . 294
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
. . . . . . . . . . . . . . . . . . . . . . . . . . 294
24 Encriptao Negvel
297
Ve
rs
25 Votao Eletrnica
25.1 Mix Nets
309
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
SUMRIO
vii
26 Dinheiro Eletrnico
319
27 Cifras Histricas
321
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
27.2 Enigma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
in
ar
27.1 Cifras
IV
Apndices
327
A Probabilidade
329
lim
A.1
363
Recorrncias
C.1.2
. . . . . . . . . . . . . . . . . . . . . . . . . 366
Pr
e
C.1
331
C.2
Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
C.3
C.4
Algoritmos no determinsticos
C.5
C.6
Classes de Complexidade
C.7
Redues e completude
. . . . . . . . . . . . . . . . . . 373
. . . . . . . . . . . . . . . . . . . 374
. . . . . . . . . . . . . . . . . . . . . . 376
. . . . . . . . . . . . . . . . . . . . . . . 378
C.7.1
C.7.2
Padres comuns
N P -completude
N P -completos na prtica
N P -completos . .
Problemas
Outros problemas
C.7.3
C.7.4
. . . . . 380
. . . . . . . . . . . . . . . . . . . . . . . 385
. . . . . . . . . . . . 385
. . . . . . . . . . . . 389
C.8
C.9
Ve
rs
D Transformada de Fourier
401
D.1
D.2
D.3
Transformada do Cosseno
D.2.1
D.3.1
DES
409
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
E.1.1
E.1.2
E.1.3
Funo interna
E.1.4
Escalonamento de chaves
. . . . . . . . . . . . . . 411
. . . . . . . . . . . . . . . . . . . . . . . 411
. . . . . . . . . . . . . . . . . . 414
SUMRIO
viii
AES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
E.2.1
Quantidade de rodadas
E.2.2
Escalonamento de chaves
. . . . . . . . . . . . . . . . . . . 416
E.2.3
Encriptao . . . . . . . . . . . . . . . . . . . . . . . . . . 417
E.2.4
Decriptao . . . . . . . . . . . . . . . . . . . . . . . . . . 418
. . . . . . . . . . . . . . . . . . 417
in
ar
E.2
F Respostas e Dicas
419
G Ficha Tcnica
429
448
Ve
rs
Pr
e
lim
ndice Remissivo
Ve
rs
Pr
e
lim
in
ar
SUMRIO
Notao
aeb
a (mod n)
a classe de equivalncia
o grupo gerado por
o nmero
x,
lim
so nmeros, e
AeB
y
so indistinguveis
aproximao de
Pr
e
||x||
a||b
[a]n
hXi
A
AB
xy
Zn
A
D
T
c
C
DHg (a, b)
g
k
L
m
p
p()
q
t
m(x)
c(x)
lsb (x)
log(x)
logg h
msb (x)
negl()
retorne ha, bi
rotlk (a)
ab
a R S
ha, bi f ( )
ab
ab
ab
a
perm_col (M )
O
QRn
Jn
in
ar
o adversrio
o desaador
Ve
rs
chave
um reticulado
mensagem em claro
normalmente um nmero primo
um polinmio
normalmente um nmero primo; s vezes uma quantidade
cdigo de autenticao de mensagem
x4 + 1
x
x na base 2
logaritmo discreto de h na base g
bit mais signicativo de x
bit menos signicativo de
logaritmo de
funo desprezvel
o algoritmo ou funo retornar dois valores,
rotao dos bits de
a, k
posies esquerda
b computado e armazenado em a
a escolhido uniformemente ao acaso do conjunto S
a funo f retorna dois valores
e lgico de a e b
ou lgico de a e b
ou exclusivo (XOR) de a com b (adio mdulo 2)
no lgico (negao do bit a)
conjunto de todas as matrizes obtidas permutando colunas de
ponto no innito, adicionado ao
R2
Zn
+1
Parte I
lim
in
ar
Ve
rs
Pr
e
Conceitos Fundamentais
Ve
rs
Pr
e
lim
in
ar
Pr
e
lim
in
ar
A primeira parte aborda os problemas bsicos da Criptograa, expondo construes clssicas. So dadas denies precisas para cada conceito, e h sees
em cada Captulo dedicadas a denies e demonstraes de segurana com
Ve
rs
razovel rigor.
Ve
rs
Pr
e
lim
in
ar
in
ar
Captulo 1
lim
Pr
e
concretos.
O problema mais conhecido abordado pela Criptograa o de modicar mensagens para que quem indecifrveis. Decifrar (ou decriptar) a mensagem s deve
ser possvel para quem tenha a posse de um segredo. Solues para este problema so chamadas de
chave.
criptossistemas simtricos,
chamado de
e o segredo normalmente
Enc(m, k)
Ve
rs
usar
com a chave
todos
k.
k.
k,
texto cifrado)
texto claro)
em
cifra.
Enc
Dec
damos o nome de
Cifras de uxo,
texto cifrado ao mistur-lo com um bit de outra fonte de bits (um gerador
pseudoaleatreo de bits, por exemplo) Esta mistura normalmente uma
operao de
ou
CAPTULO 1.
mensagem
1 0 0 1 0 1 1 1 0 1
in
ar
texto cifrado
1 0 1 0 1 1 0 1 1 0
0 0 1 1 1 0 1 0 1 1
bits aleatreos
idnticas;
Cifras de bloco,
Enc
Dec
so
lim
mensagens.
1 1 0 1 1
0 0 0 1 0
Pr
e
0 1 1 0 1
1 1 0 1 1
0 0 0 1 1
1 1 1 1 0
texto cifrado
A funo
f (k, m)
f 1 (k, c)
deter-
Ve
rs
f 1
duas chaves
lim
in
ar
Quando Alice precisa cifrar uma mensagem para Bob, usa a chave pblica
de Bob (disponvel publicamente). Ao receber a mensagem, Bob pode decifr-la
usando sua chave privada.
Pr
e
hashing
hashing)
2128 1 bits.
Ve
rs
mensagem secreta
SHA-256
1cc576be2ea83df4fbd9d33ca816ac7ee39da6cc0c8ddd22666dd4e80326a94a
Algumas observaes importantes:
CAPTULO 1.
10
mensagem secreta!
SHA-256
in
ar
fbb5a6d34f05b708e780fd2ab674845b5d34162066d976a819bf02c02e444a98
Embora seja fcil calcular, a funo de hashing deve ser difcil de inverter
(e portanto no deveria ser possvel a algum chegar cadeia mensagem
1cc5 a94a).
lim
secreta a partir de
Funes de hashing so diretamente teis em diversas situaes onde queremos garantir a integridade de dados, e tambm na construo de outras ferramentas criptogrcas.
Pr
e
plo).
(ou MAC
Funes de hashing tambm podem ser usadas para construir geradores pseu-
Ve
rs
irretratabilidade)
para criar um documento, qualquer um de que tenha sua chave pblica poder
vericar que realmente Alice publicou aquele documento (e Alice no poder
posteriormente negar que o fez).
lim
in
ar
11
uma vez a chave secreta includa antes do clculo de hash no est unicamente
associada a alguma entidade da mesma forma que um par de chaves pblica/-
Pr
e
privada.
Ve
rs
1.7 Protocolos
Alm dos problemas j descritos, a Criptograa moderna trata tambm de problemas de interao entre partes onde no necessariamente h conana mtua.
CAPTULO 1.
12
protocolos.
in
ar
cos.
m0
ou
m1
Alice tenha certeza de que Bob recebeu uma das duas mensagens, mas que
no saiba
qual
lim
Compromisso
se com ele, mas sem que Bob saiba qual foi o valor escolhido. Para que Alice no
possa mudar sua escolha mais tarde, deve mostrar a Bob uma prova de que fez
uma escolha, mas sem que a escolha seja revelada. O que Alice faz semelhante
a entregar a informao a Bob em um cofre (ou envelope lacrado). Quando o
valor tiver que ser usado, Alice mostra um segredo que pode ser usado para
uma funo de
Pr
e
hashing:
lha; mais tarde, quando Alice a revelar, e a escolha poder ser vericada por
Bob simplesmente calculando novamente o
hash.
dem ser usados para implementar diversos protocolos, como cara-ou-coroa por
telefone, provas de conhecimento zero e computao segura por vrios atores.
por exemplo.
depois um deles jogar uma moeda, este ltimo poderia obviamente trapacear.
Ve
rs
possvel, no entanto, jogar cara ou coroa pelo telefone, desde que usemos
um mecanismo chamado
comprometimento:
(cara ou coroa), mas de maneira que Bob no possa conhec-lo. Bob ento joga
a moeda e anuncia o resultado. Agora Alice envia a Bob o segredo que faltava
para revelar sua opo.
trato, mas como cada um dever abrir mo de algo, nenhum dos dois quer
assinar primeiro.
Compartilhamento de segredos
1.7. PROTOCOLOS
13
esta senha deveria ser guardada em segredo por um grupo de pessoas, at que,
por exemplo, dois teros do grupo decida revel-lo. A diculdade est em permitir que
qualquer
in
ar
Pr
e
lim
Eleies eletrnicas
nenhum eleitor vote mais de uma vez; que ningum possa duplicar o voto de
outro; que o resultado seja computado corretamente, e que seja possvel a qualquer um vericar que o resultado est correto. possvel construir protocolos
Ve
rs
dados vindos de vrias partes, mas sem que os dados vindos de cada fonte sejam
conhecidos. Por exemplo, duas pessoas podem descobrir qual a mais rica, sem
que nenhuma que sabendo
exatamente
esta
CAPTULO 1.
14
diculdade
em resolver es-
in
ar
lim
distribuio de chaves cuja segurana no se sustenta em complexidade computacional, mas em leis da Fsica. Este protocolo chamado de distribuio
quntica de chaves.
Pr
e
N P-
Indo dos Fundamentos para as aplicaes bsicas, usamos Teoria de Nmeros, Cdigos Corretores de Erros e outras reas da Matemtica para desenvolver
Ve
rs
1.10.1
Jogos e experimentos
Muitas das denies e demonstraes usam experimentos aleatreos que funcionam como jogos. Usamos estes jogos (ou experimentos) porque eles modelam
naturalmente o funcionamento de ataques a criptossistemas: nestes jogos haver
um desaador e um adversrio, e estaremos sempre interessados em calcular a
probabilidade de que o adversrio consiga ganhar o jogo (o que na prtica se traduz na probabilidade do adversrio quebrar alguma ferramenta criptogrca).
O exemplo a seguir um jogo extremamente simples de adivinhao de
n.
nmero
15
k1
D.
k > n,
ou
o jogo.
O jogo mostrado no diagrama a seguir.
lim
k R [1, n]
k1 6= k ),
in
ar
k <n
k1
k1 = k 1 ,
k1 k
FIM
k2
k2 k
FIM
Pr
e
k2 = k 1 ,
k3
k3 = k 1
k3 6= k 0
1/n.
D,
Ao receber a resposta de
Ve
rs
1/z2 .
Cada
zi
z2 ,
z2 .
z1
1/z1 ,
A terceira
e a probabilidade de
n,
1
(n 1) 1
(n 1) (z1 1) 1
+
+
n
n z1
n
z1
z2
1
(n 1) 1
(n 1) (n 1) 1
< +
+
n
n n
n
n n
Pr [NUMBER_GUESS(A, n) = 1] =
Passamos agora a um exemplo diretamente relacionado a Criptograa. No prximo experimento testamos um criptossistema
contra um adversrio
lhido).
{0, 1}),
R {0, 1}
signica que
e Encripta a mensagem
ento envia
mb
mb
A.
escolhe
escolhido aleatoreamente
CAPTULO 1.
16
m0 , m1
b R { 0, 1 }
mb
b = b0 1
seno 0
lim
b0
in
ar
um parmetro do experimento).
Quase sempre que descrevermos uma interao deste tipo um diagrama como
1.10.2
Pr
e
Notao e convenes
Se adotarmos um ponto de vista prtico, notaremos imediatamente que necessrio traduzir as mensagens prticas (que podem ser texto ou arquivos
binrios) para os nmeros usados nas construes tericas. Presumimos que h
alguma maneira simples de traduzir as mensagens em sequencias de bits, e que
ao usar uma das construes criptogrcas, estes bits sero interpretados como
nmeros. Ao longo do texto ento presumiremos que os nmeros so representados em base dois, e deniremos que o tamanho de um nmero o nmero de
bits necessrio para represent-lo.
Ve
rs
Assim,
A notao
goritmo simples o suciente para ser descrito textualmente isso feito; quando
ele tem estrutura detalhada ou complexa demais, apresentado na forma de
pseudocdigo. H uma nica caracterstica do pseudocdigo usado que merece
apresentao: alguns dos algoritmos e funes descritos no texto retornam mais
de um valor. A ordem dos valores no especicada porque pode ser inferida
facilmente pelo contexto. Denotamos
retorne ha, b, ci
f (x)
retorna os valores
a, b, c.
Quando um algoritmo
usa
vrios valores retornados por uma funo (ou por outro algoritmo), denotamos
17
Exerccios
in
ar
ha, b, ci f (x)
ki
e um adversrio
lim
A.
adversrio obrigado, ento, a trocar uma das cartas mas pode escolher
qual delas trocar.
aleatoreamente. Em seguida,
Pr
e
c1 , c2 , . . . , c5
ci R C
ci
c6
c6 R C \ {ci }
c1 , . . . , c 6
i, j N (ci ) = N (cj ) 1
seno 0
Ve
rs
no jogo.
k = 1, 2, . . ..
21
aps
rodadas
CAPTULO 1.
Ve
rs
Pr
e
lim
in
ar
18
in
ar
Captulo 2
lim
Criptossistemas e Noes de
Segurana
Pr
e
Notas, este Captulo inicia com alguns pargrafos que resumem, em muito
alto nvel de detalhes, a evoluo dos conceitos de segurana em Criptograa,
porque a compreenso deste processo algo demasiado importante para que se
possa compreender completamente as noes atuais de segurana, incluindo os
fatos que levaram ao seu desenvolvimento.
Ve
rs
sigilo perfeito.
Infelizmente, criptossistemas
CAPTULO 2.
20
2.1 Criptossistemas
Embora o escopo da Criptograa seja muito mais amplo que o estudo de criptossistemas simtricos, os usaremos na descrio de conceitos fundamentais sobre
No decorrer do texto usaremos os nomes
criptam e decriptam mensagens.
Enc
in
ar
segurana em criptograa.
Dec
Dec(k, x),
usaremos
Enck (x)
Deck (x).
Enc(k, x)
lim
Gen,
mensagem
uma mensagem
cifrado
e um texto
m.
Pr
e
Dec,
k,
c,
necessrio que
o espao de chaves,
M o espao de mensagens
Gen.
K, M
C.
A distribui-
M no
a priori das
A distribuio sobre
so independentes; j a distribuio
Enc.
K, M e C: Pr[K = k] a
probabilidade de a chave k ser escolhida por Gen; Pr[M = m] a probabilidade
da mensagem ser m; e Pr[C = c] a probabilidade do texto cifrado ser c.
Para simplicar a notao poderemos omitir a varivel aleatrea: Pr(k) ao
invs de Pr[K = k] etc. Neste caso o contexto determinar a varivel aleatrea.
Por exemplo, se em um dado contexto x for uma chave ento Pr(x) o mesmo
que Pr[K = x].
sobre
Ve
rs
21
in
ar
todo
mM
lim
Denio 2.2 (Sigilo Perfeito). Um criptossistema tem sigilo perfeito se, para
c C , Pr(m|c) = Pr(m).
Pr
e
Lema 2.3.
equao
e um texto cifrado
c,
considere a
Pr(c|m) = Pr(c).
Pr(m)/ Pr(c):
Pr(c|m) Pr(m)
= Pr(m)
Pr(c)
Pr(m|c).
Assim,
Pr(m|c) = Pr(m).
Criptossistemas com sigilo perfeito tem uma sria limitao, que demons-
Ve
rs
documentos
Teorema 2.4.
1 Se
M(c)
c:
e seja
para algum
o conjunto de todas as
k K}
M como todas as
8 10242 = 8388608
28388608
22
CAPTULO 2.
e portanto, como
m
/ M(c),
e neste caso
1
.
M
cifra de Vernam.
n
a notao 1 para
a sequncia de
tal que
Pr(m0 ) =
1
|M| .)
um criptossistema no tem sigilo
perfeito.
m0 M
lim
(A distribuio sobre
que
que
in
ar
Como para cada mensagem m M(c) h pelo menos uma chave k K tal
m = Deck (c), ento |M(c)| |K|. Mas como nossa hiptese inicial era de
|K| < |M|, temos que
|M(c)| |K| < |M|
{0, 1}n
para
bits.
Construo 2.5 (One-time pad). O one-time pad requer que o tamanho das
Pr
e
chaves seja igual ao das mensagens e dos textos cifrados. Assim, usando representao binria para as chaves,
K = M = C = {0, 1}n
Gen
Enc
Dec
para algum
n.
kK
mentos. Ou seja,
Enck (m) = k m,
Deck (c) = k c.
Ve
rs
1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1
0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0
mensagem
1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1
texto encriptado
23
in
ar
Lema 2.6.
lim
P (c|m0 ) = P (c|m1 ),
o Lema 2.3.
depois calcule
P (c)
usando
Teorema 2.7.
Demonstrao.
qualquer sobre
Pr
e
tribuio sobre
pad,
uma distribuio
Para o one-time
= Pr[K = m c] =
c,
m1
ento
P (c|m0 ) =
Ve
rs
1
|K|
1
= P (c|m1 )
|K|
c.
m0
ou
m1 ,
1/2.
usado h um adversrio
A.
No modelo a ser
lha duas mensagens. Em seguida, cifraremos uma delas (sem que ele saiba qual)
CAPTULO 2.
24
PRIV_EAV
quer e
in
ar
O Experimento
2. Uma chave
kK
4. Se
m1 M;
gerada usando
m0
mb
Gen,
mostra
b0 ;
b = b0 ,
o resultado do experimento
seno 0.
escolhido aleatorea-
A;
(e dizemos que
teve sucesso),
Pr
e
e um bit
lim
1.
k R { 0, 1 }
b R { 0, 1 }
m0 , m1
Enck (mb )
b0
b = b0 1
b 6= b0 0
Ve
rs
Denio 2.9 (Sigilo perfeito de criptossistema simtrico (verso com adversrio)). Um criptossistema tem sigilo perfeito sobre um conjunto de mensagens
A,
Pr[PRIV_EAV(, A) = 1] =
1
.
2
monstrao. Note que esta denio no impe restries ao tamanho das mensagens e nem ao tempo que
baseadas em experimentos, sero apresentadas. Todos os experimentos so parametrizados (neste caso os parmetros foram apenas
A;
haver variaes).
25
in
ar
de cifras de bloco, que sempre foram mais ecientes que as cifras assimtricas,
mas por outro lado carecem de demonstrao de segurana.
lim
e assim por diante. Estas ideias e mtodos (heursticas) mostraram ser bons
o suciente para a construo de cifras de bloco cuja segurana vericada em-
Pr
e
Ve
rs
CAPTULO 2.
26
in
ar
2.5.1
Cenrios de ataque
lim
KPA,
Pr
e
k,
k;
k.
Seu objetivo decriptar um outro texto que tambm foi encriptado com
k;
CCA (Chosen Ciphertext Attack), ataque de texto cifrado escolhido. Aqui
o adversrio pode obter o deciframento de mensagens usando k , exceto
Ve
rs
ativos.
sigilo,
passivos,
e os dois ltimos de
criptossistemas ou outras construes onde mensagens so de alguma forma encriptadas. Denies de segurana para outros objetivos (resistncia a fraude,
por exemplo) e construes (esquemas de assinatura, funes de hashing e protocolos) sero abordadas ao longo do texto.
O experimento
primeiro tipo de ataque (o adversrio conhece apenas textos cifrados) em criptossistemas de chave privada. Outras variantes deste experimento (para chave
privada, chave pblica e para diferentes tipos de ataque) e outras denies de
segurana sero apresentadas quando diferentes criptossistemas forem discutidos.
2.5.2
27
Probabilidade desprezvel
Precisaremos falar de criptossistemas onde o adversrio tem probabilidade desprezvel de sucesso, portanto deniremos desprezvel:
informalmente, uma
p()
existe um
1
p(n) .
Por exemplo,
1
2n desprezvel, porque para qualquer polinmio
1
1
a partir do qual n <
2
p(n) ;
desprezvel: seja
p,
haver um
lim
f (n) =
1
g(n) = n4 +100
no
1
qual h(n) < 4 .
n
in
ar
funo dita desprezvel quando se aproxima de zero mais rpido que o rec-
h(n) =
1
n5 . H algum
a partir do
menores que
N.
Pr
e
2n ;
n,
dada por
1
2n ,
n
n bits.
2
por negl .
Ve
rs
desprezvel.
Eventos com probabilidade desprezvel podem ser ignorados para efeitos pr-
ticos; aceitaremos como seguro um criptossistema que tenha probabilidade desprezvel de ser quebrado.
2.5.3
2 Usamos negl
chamadas de negligible .
CAPTULO 2.
28
e o adversrio A.
Cha-
in
ar
PRIV_EAV(, A, n).
no o mesmo que aquele usado na Denio 2.9, tendo inclusive nome diferente (o
Alm disso,
1n
n,
lim
qual das mensagens foi cifrada. Formalizamos esta ideia da seguinte forma:
m1 M,
1n
kK
gerada usando
4. Se
mb
e um bit
b0 ;
b = b0 ,
o resultado do experimento
escolhido aleato-
(e dizemos que
Ve
rs
mostra
seno 0.
n);
Gen(1n ),
Pr
e
2. Uma chave
3.
m0
A;
teve sucesso),
A
1n
m0 , m1
k R { 0, 1 }
b R { 0, 1 }
b = b0 1
b 6= b0 0
Enck (mb )
b0
n.
cifrado conhecido.
29
criptossistema simtrico
Pr[PRIV_EAV(A, n) = 1]
1
+ negl(n).
2
in
ar
tal que,
no implica
|K| <
Notas
lim
|M|.
A denio de criptossistema que demos a mesma dada por Katz e Lindell [KL08] e tambm por Goldreich [Gol04].
Pr
e
artigo
Ve
rs
CAPTULO 2.
30
O one-time pad foi descrito inicialmente por Vernam em um artigo de 1926 [Ver26]
(por isso tambm conhecido como cifra de Vernam), sem qualquer demonstrao de segurana; em 1949 Shannon deniu sigilo perfeito e mostrou que esta
in
ar
Ex. 5 Implemente o
lim
Exerccios
one-time pad.
Ex. 6
Pr
e
(de forma contrria ao que se recomenda quando usamos o one-time pad), mostre
que
m m0 = c c0 .
Ve
rs
Gen(1n )
Enc(m, k) funciona da
blocos m0 , m1 , , mm
sendo que ci = mi k ;
Dec(c, k)
seguinte maneira:
de
semelhante a
n bits.
Enc,
a mensagem
{0, 1}n ;
dividida em
mas permutando
m.
k
31
b) Prove que o criptossistema no seguro de acordo com nenhuma das denies dadas neste Captulo.
c) Implemente o criptossistema, e tambm tente implementar um programa
in
ar
Ve
rs
Pr
e
lim
perfeito.
CAPTULO 2.
Ve
rs
Pr
e
lim
in
ar
32
in
ar
Captulo 3
lim
Problemas Difceis
f (x),
mas dado
no h algoritmo eciente
(algum
tal que
f (x) = y ).
Pr
e
Se
f (m).
simplesmente usar uma funo de mo nica sobre alguma funo que expanda
a semente.
Ve
rs
de
no tamanho da entrada de
A, a probabilidade
f.
fortemente de
mo nica se
1.
2.
Fcil de computar:
f;
Difcil de inverter:
Todo algoritmo
f.
CAPTULO 3.
34
f,
n
p()
com tamanho
PROBLEMAS DIFCEIS
escolhido uniformemente
e todo
sucientemente
grande,
1
p(n)
in
ar
P r A(f (x), 1n ) f 1 (f (x)) <
A entrada
como de mo nica apenas porque ela diminui muito sua entrada (queremos um
algoritmo polinomial em
n,
e no no tamanho de
f (x)).
lim
mo nica.
de sua entrada.
P=
6 N P,
Pr
e
candidatas
a mo nica.
A multiplicao de inteiros.
tura);
A soma de subconjuntos.
Ve
rs
for diferente de
N P-
N P ).
o gerador do grupo
g x (mod p)
onde
primo e
(Np , ).
um gerador
(mod p)
1 ou
p.
J
p
consulte o Apndice B.
dexp
35
em p)
para determinar
in
ar
criptogrcas h muito tempo. Usaremos a hiptese de que no existam algoritmos ecientes para resolv-lo, e nos referiremos a tal hiptese como a hiptese
do logaritmo discreto :
lim
mult (p, q) = pq .
Acreditamos que a
mult
p, q
de tamanho
Pr
e
evidente que
n.
mult
(p, q) a partir de pq .
Usaremos
Conjectura 3.6 (Diculdade da Fatorao de Inteiros). Para qualquer algoritmo randomizado polinomial A, quaisquer inteiros x, y com k bits cada, e
qualquer polinmio positivo p(),
1
.
p(k)
Ve
rs
n inteiros x1 , , xn e uma
somasub retorna o somatrio dos
elementos do subconjunto.
somasub(x1 , x2 , , xn , S) = (x1 , x2 , , xn ,
Determinar o subconjunto
N P -completo,
xi )
iS
a partir dos elementos
xi
e da soma um problema
N P -completo
para funes de mo nica: para que a funo seja de mo nica, ela deve ser
difcil de inverter
quase sempre (exceto pela probabilidade desprezvel j menN P -completo pode ser fcil de resolver na maioria dos
cionada). Um problema
em Ingls.
CAPTULO 3.
36
casos
PROBLEMAS DIFCEIS
de problemas
N P -completos.
piores
instncias
N P -completo,
3.1.1
in
ar
Ao invs de
probabilidade no desprezvel.
mo nica se:
1.
2.
Fcil de computar:
f;
lim
fracamente de
p()
P r A(f (x), 1n )
/ f 1 f (x)) >
A randomizado de
n sucientemente
e todo
Pr
e
falhe com
1
p(n)
Lema 3.9.
Ve
rs
O seguinte Teorema, apresentado sem prova, nos diz que apesar de parecer
37
in
ar
deve haver maneira eciente de obter o valor do lance, mas isso no signica
que no possamos descobrir outras coisas sobre a mensagem que foi encriptada.
sucesso perto de
b(x)
1/2.
hard-core
ii)
f (x)
tiver probabilidade de
H : {0, 1} {0, 1}
se
o nmero de bits de
um predicado
H(x);
Pr
e
i)
de uma funo
a partir de
lim
Um predicado
x escolhido ao acaso,
1
+ negl(k),
2
x.
bit hard-core.
dado
Ve
rs
um dos bits de
Teorema 3.13.
nomial em p.
Dado dexp p,g (x), possvel computar lsb (x) em tempo poli-
Demonstrao. O seguinte algoritmo computa lsb (x) dado y = dexp p,g (x):
(p1)/2
calcule c = y
(mod p). Se c = 1, pelo critrio de Euler (Teorema B.38),
a resduo quadrtico mdulo p. Alm disso, pelo Lema B.37, se y resduo
quadrtico mdulo p, x par e o algoritmo deve retornar zero. Se c 6= 1, o
algoritmo deve retornar um (porque y no resduo quadrtico e c no par).
O algoritmo claramente polinomial.
Exemplo 3.14. Sejam
p = 41 e g = 6 (que raiz primitiva mdulo 41). Calcudexp p,g (14) (mod 41) = 21. Agora, dado que temos apenas p = 41 e o va411
lor computado 21, calculamos c = 21 2
(mod 41) = 278218429446951548637196401
(mod 41) 1 (mod 41), e o bit zero (de fato, 14 par!).
lamos
CAPTULO 3.
38
PROBLEMAS DIFCEIS
in
ar
dexp
Teorema 3.16.
hard-core
de dexp .
lim
Demonstrao. A demonstrao a seguir mostra que um algoritmo determinstico para calcular msb (x) dado dexp p,g (x) implicaria na negao da conjectura
do logaritmo discreto. possvel extender a demonstrao tambm para algoritmos randomizados, mas no o faremos.
Suponha que exista um algoritmo
mdulo
msb (x)
g ),
divida
por
r1
r2
e agora temos
p.
mdulo
g2+
(p1)
2
dado
Pr
e
p (veja
g x/2 e
menor (qual tem o bit mais signicativo igual a zero). Tomamos esta raiz (g
x/2
x,
1.
msb (x)
signicativo de x.
dado apenas
Ve
rs
o
a
y,
i0
x0 0
enquanto y 6= 1
c lsb (x)
se c = 1 / x era mpar! /
y yg 1 / temos agora potencia par /
xi 1 / achamos um bit de x /
senao
xi 0 / achamos um bit de x /
/ determinamos as duas razes: /
r1 , r2 y (mod p)
lsb (x)
para o
para o suposto
in
ar
se msb (x) = 0
y r1
senao
y r2
ii+1
retorne (xi , xi1 , , x0 )
lim
dexp .
Pr
e
Teorema 3.17.
i=1
Notas
Ve
rs
r).
A funo
pelos bits um de
x (determinado
Exerccios
Lk
i=1
xi ri .
CAPTULO 3.
40
PROBLEMAS DIFCEIS
muito
mindo que
b)
c)
d)
e)
f)
g)
P 6= N P ):
SAT
TSP
COBERTURA-POR-VERTICES
GERACAO-DE-PERMUTACAO
TETRIS
CVP
SBP
lim
a)
in
ar
Pr
e
Em seguida responda:
hard-core?
Ve
rs
das duas coisas, consegue identicar ao menos se existem bits mais seguros que outros?
N P -difceis
f (x, y) = x + y , onde
naturais, no de mo nica.
de Blum.
in
ar
Captulo 4
lim
Geradores Pseudoaleatreos e
Cifras de Fluxo
Pr
e
mais claro talvez seja o das cifras de uxo, mencionadas brevemente na Seo 1.1.
As cifras de uxo emulam, de maneira imperfeita, o
one-time pad.
A parte
que chaves sejam geradas com distribuio uniforme sobre o espao de chaves
(senhas digitadas por usurios no so seguras). Isto importante porque as
garantias de segurana dos algoritmos criptogrcos dependem da distribuio
uniforme das chaves. H tambm outros usos de aleatoriedade em Criptograa,
que sero discutidos ao longo do texto: em diversas situaes necessrio usar
Ve
rs
semente
10111010
l(k) > k .
bits gerados
variveis aleatreas.
41
X1
n,
Xn para a
famlia de distribuies.
in
ar
n.
X2
lim
de distribuies
B.
ou a
Xn e Yn so estatisticamente prximas
X
Pr [Xn = e] Pr [Yn = e]
Pr
e
mlias de distribuies
se a expresso
desprezvel em
{ 0, 1 }
n.
Xn
Yn
e
estatisticamente
prximas, podemos obter cadeias sucientes para faz-lo (no mximo precisaremos obter todas as cadeias de
2(2n )).
Ve
rs
teste que tenta distingui-las. De maneira resumida, neste experimento escolhemos uma cadeia de uma ou de outra distribuio (com probabilidade
cada distribuio) e enviamos ao teste
1/2
para
rode em tempo polinomial tentando distinguir uma sequncia de bits, determinando se foi gerada de acordo com a distribuio
(Por exemplo,
Xn
ou com a distribuio
Yn
s0 Xn
s1 Yn
1 Distribution ensemble
R { 0, 1 })
si
4. Receba
5. Se
para
b0
b = b0
de
o resultado do experimento
1;
seno
0.
in
ar
3. Envie
43
s0 Xn
s1 Yn
b R { 0, 1 }
sb
b0
b = b0 1
b 6= b0 0
lim
Pr
e
indistinguveis
de 1/2.
se a probabilidade de sucesso de
computacionalmente
Xn
negl()
Yn so computacionalmente indistinguveis
T e n sucientemente grande, existe uma
tal que
Ve
rs
Pr [DISTRIB_DISTINGUISH(D, n, Xn , Yn ) = 1]
1
+ negl(n).
2
Xn
negl()
Yn so computacionalmente indistinguveis
D e n sucientemente grande, existe uma
tal que
Pr [D(u) = 1] Pr [D(u) = 1] negl(n).
uXn
uYn
denotamos
An B n .
An
Bn
so computacionalmente indistinguveis,
Fk+1 , . . . , Fk+l .
bits, calculamos os
in
ar
uma sequncia de
Usamos o
F10
F11
F12
F13
k = 10
= 55 ( 1)
= 89 ( 1)
= 144 ( 0)
= 233 ( 1)
F14
F15
F16
F17
11011011.
=
=
=
=
bits:
377 ( 1)
610 ( 0)
987 ( 1)
1597 ( 1)
lim
k.
Pr
e
s = 1111 . . . 1 (n
An .
Bn
Para a sequncia
1
1
1
Pr[s An ] =
...
=
2
2
2
2
2
2
Pr[s Bn ] =
...
=
3
3
3
1
.
2n
2n
.
3n
J
Ve
rs
2 do
maior
um polinmio e G um al-
Para todo
A sada de
de
G(s)
n, l(n) > n
G
para
tem tamanho
(ou seja,
l(|s|).
Ento
um
gerador
distribuio uniforme de
bits.
forma: a sada de um gerador pseudoaleatreo deve passar por todos os possveis testes (de tempo polinomial) estatsticos.
2 H
45
Demonstrao.
Considere um gerador
in
ar
com
lim
22n sequncias possveis com 2n bits, G somente produzir uma pequena parte:
2n
h 2
2n sequncias que G nunca sero geradas.
n
Assim, como a sada de G de tamanho 2n, mas h somente 2
sadas
n
possveis, teremos probabilidade 2
para cada algumas sequncias de bits e
zero para outras.
No entanto, nossa denio no exige que o gerador produza sequncias com
distribuio uniforme. Queremos apenas que os bits gerados sejam indistinguveis em tempo polinomial da distribuio uniforme.
O(22n )
2n
G,
enumerar todas as
Pr
e
possveis sequncias de
2n
bits que
k+1
1/2 + negl(k).
Ve
rs
G,
com
equivalentes.
x0
e uma
f , calculamos x1 = f (x0 ) e b0 = h(x0 ). Em seguida, fazex2 = f (x1 ) e b1 = h(x1 ), e assim por diante. Como cada bit da sequncia
hard-core de f , nenhum deles deve ser fcil de prever.
funo de mo nica
x_0
x_i
in
ar
mos
x_i+1
b_i+1
f (x)
em
H . Ento
lim
Teorema 4.11.
def
um gerador pseudoaleatreo.
Demonstrao.
(Rascunho) Se
k,
x for
f
como
f (x)
f (x)
e um adversrio no ter
Pr
e
k,
1/2,
(f (x), H(x))
O Teorema 4.11 nos d apenas geradores que aumentam em um bit o tamanho da semente. possvel construir geradores que aumentam arbitrariamente
a semente:
Teorema 4.12.
def
Ve
rs
um gerador pseudoaleatreo.
Este Teorema, que no demonstraremos, diz essencialmente que a ideia des-
cado
hard-core
dexp
p; e x0
bi :
i-simo
bit gerado
um primo grande;
uma
(a semente) um inteiro.
xi
g xi1
bi
msb (xi ).
(mod p)
47
m = pq .
xn
x2n1
bi
lsb (xi ).
Uma raiz
x0
dois primos
lim
p, q 3 (mod 4),
diferente de um, de p e de q .
O i-simo bit gerado bi :
grandes com
in
ar
(mod m)
Pr
e
2k 1
nmeros
(inteiros ou
distribuio, porque h
2k
n 1,
para qualquer
Ve
rs
nmero
de bits. H
random_natural(G, n):
k log2 (n)
repita
s prximos k bits de G
interprete s como x
at que x < n
retorne x
Teorema 4.16.
in
ar
Teorema 4.17.
lim
Pr
e
no
em funes de mo nica. Por exemplo, um gerador pode ter como sada diversas sequncias que passam todos os testes conhecidos hoje, mas isso no garante
nada a respeito de novos testes estatsticos, e no garante tampouco que este
4.4.1
Ve
rs
Nosso ponto de partida so os postulados de Golomb, que expressam propriedades desejveis de sequncias pseudoaleatreas de bits. Esses postulados no so
sucientes para caracterizar sequncias pseudoaleatreas, mas so necessrios.
As denies a seguir, de perodo, subsequncia constante e de autocorrela-
tal que
xi = xi+p ,
para
sucientemente grande.
00101010
01101001
dois (o padro
10
011011011 trs,
i = 2) e
se repete depois de
o da sequncia
o da sequncia
oito.
xl , . . . xm
de
constante se
xi = xj
para quaisquer
l i, j m.
X
i
quantidade de posies
49
xi = xi+k
tal que
D(k)
p.
Sejam
A(k)
a quantidade de posies
A(k)
|{i : xi = xi+k }|
D(k)
para
in
ar
A(k) D(k)
.
p
x0
6=
x1
x2
6=
x3
x3
6=
x4
x4
6=
x5
x7
e portanto
X = 100101110.
Temos
Calculamos a autocor-
Pr
e
k = 1.
lim
A(1) = 5, D(1) = 3
6=
x8
e a autocorrelao para
k=1
2/9.
G1 )
G2 )
k+1
Ve
rs
para comprimento
G3 )
m, o nmero
m/2.
de subsequncias constantes
deve ser
O postulado
G1
1/2 + negl(k).
O postulado
(ou
PN,
de
pseudo-noise).
atreos uma variante de registradores de deslocamento, normalmente implementados facilmente em hardware. Os registradores de deslocamento, alm de
Em sua
in
ar
cada bit movido uma posio para a direita; o bit que estava mais
direita removido e usado como sada do registrador;
lim
0011011101;
Pr
e
igual a zero (a sada ser o ltimo bit do estado, que igual a um).
serial se apenas
paralela.
o ltimo bit
linearmente realimentado
Ve
rs
sl1 , sl2 , . . . , s0 ,
e para
il
i-simo
bits ento
bit determinado
3 Registradores
(mod 2),
ip-ops, com a sada de um alimentando a entrada de outro, como ilustra a gura abaixo.
cj
51
funo de realimentao.
Abreviamos registrador de
1 + c1 x + +cl xl
chamado de
lim
ter).
O polinmio
in
ar
funo de feedback,
polinmio de conexo
do LFSR.
Exemplo 4.23 (LFSR). Suponha que um LFSR com oito bits use a funo de
realimentao
onde
Pr
e
00110011,
entrada
estado
sada
Ve
rs
10011001
(0 + 1 + 0 + 1 = 0) 01001100
(1 + 1 + 1 + 0 = 1) 10100110
(0 + 0 + 1 + 0 = 1) 11010011
1
0
0
1
J
Demonstrao.
4 Porque a b
o mesmo que
a + b (mod 2),
(mod 2).
n,
n.
bits.
Se
nita e de comprimento
|S|,
uma sequncia de
in
ar
n para sequn-
a complexidade linear de
o com-
|S|
cujos
S.
Se
Se
Se
zero.
S.
lim
Teorema 4.26.
do que k .
.
Pr
e
Na descrio do algoritmo,
b()
c()
so polinmios (o pseudocdigo no
b(x)xN m
a multiplicao do polinmio
b(x)
pelo termo
xN m .
berlekampmassey(s, n):
b(x) 1
c(x) 1
L0
m 1
Ve
rs
para N de 0 a n 1:
PL
d sn + i=1 ci sni (mod 2)
se d = 1
t(x) c(x)
c(x) c(x) + b(x)xN m
se L N/2:
LN +1L
mN
b(x) t(x)
retorne L, c(x)
O algoritmo retorna
L,
c(x),
o polin-
n.
n 1),
O(n2 ):
ape-
as operaes
53
um LFSR de n bits.
0n e deslocado repe2n 1 permutaes, ento
in
ar
m-sequncias.
lim
Podemos inicializar um LFSR com uma semente e usar seus bits de sada, mas
esta construo no seria segura, porque a funo de realimentao linear,
e seria fcil recuperar estados anteriores do registrador. Normalmente alguma
Pr
e
4.4.2
H muitos testes que podem ser utilizados para tentar distinguir uma sequncia de bits aleatreos. Esta Seo descreve apenas alguns deles.
necessria
de forma alguma suciente!
Alm de vericar a complexidade linear da sequncia e testar os postulados de Golomb, h outros testes que podem ser usados para vericar se uma
Ve
rs
sequncia no pseudoaleatrea.
(segurana contra ataque de texto cifrado conhecido). No entanto, aquela Denio de segurana no trata da situao (muito mais comum) em que queremos
enviar mais de uma mensagem.
4.5.1
Mltiplas Mensagens
in
ar
vrias mensagens.
1. O adversrio
mensagens,
Gen(1n ),
de
2. Uma chave
3.
4. Se
envia
b0 ;
b = b0 ,
e um bit
lim
reamente.
gerada usando
o resultado do experimento
seno 0.
(e dizemos que
teve sucesso),
Pr
e
1n
b R {0, 1}
k R {0, 1}n
M0 = (m10 , m20 , )
M1 = (m11 , m21 , )
Enck (mb )
b0
0
Ve
rs
b=b 1
b 6= b0 0
em
n.
Pr[PRIV_MULT(, A, n) = 1]
1
+ negl(n).
2
Enc.
A,
b
55
p(.).
Gen:
dado
Enc(k, m) = G(k) m,
como
como
tenham
tenham
bits;
bits.
lim
Dec(k, c) = G(k) c,
G:
in
ar
Teorema 4.32.
Demonstrao.
Seja
Pr
e
mento 2.8 (usado na Denio 2.12) com probabilidade maior que a dada na
Denio 2.12, teramos um algoritmo para distinguir os bits gerados por
de
teste) T
Ve
rs
n.
1. Chame
A(1n )
2. Escolha um bit
3. Calcule
p(n).;
aleatoreamente;
c = s mb ;
4. Ao invs de
1n
m0 , m1
b R {0, 1}
c s mb
b0
0
s
s.
lim
b=b 1
b 6= b0 0
in
ar
teremos que a chaves usadas para cifrar as mensagens so escolhidas com distri-
Pr
e
buio uniforme
seja igual a
1
.
2
G(k),
com
esco-
Ve
rs
1
+ f (n).
2
Proposio 4.33.
Demonstrao.
A escolhe duas
seguro
M1 )
no
c1 = c2
M0 = (0n , 0n ), M1 = (0n , 1n ).
C = (c1 , c2 ), o adversrio pode
M2 ).
57
O problema com a Construo 4.31 o fato de ser um criptossistema determinstico: um mesmo par (chave, mensagem) sempre levar ao mesmo texto
encriptado. Como este foi a nica caracterstica relevante do criptossistema que
in
ar
Se usarmos uma chave diferente cada vez que encriptarmos uma mensagem
teremos resolvido o problema. Ao cifrar uma mensagem, inicializamos
no
apenas com uma semente (secreta), mas tambm com alguns bits a mais, escolhidos aleatoreamente com distribuio uniforme:
lim
p(.).
Pr
e
Gen:
dado
G:
A sada de
como
tenham
bits,
bits.
tenham
Ve
rs
o adversrio conhece
treo).
4.5.2
Enc:
(suponha por
exemplo que o adversrio possa convencer algum a cifrar para ele mensagens
usando
k ).
gerada por
Gen(1n );
1n e, podendo cifrar mensagens com Enck ,
m0 e m1 , ambas de mesmo tamanho;
criptada:
4.
A,
c = Enck (mb ).
Enck ,
responde um bit
5. O resultado do experimento um se
b = b0
b0 ;
AEnck
1n
lim
m0 , m1
b R {0, 1}
k { 0, 1 }
A;
in
ar
3. Um bit
Enck (mb )
b0
Pr
e
b = b0 1
b 6= b0 0
Denio 4.37 (Segurana contra ataque de texto claro escolhido). Um criptossistema simtrico
colhido
tem
indistinguibilidade contra ataques de texto claro esA existe uma funo desprezvel negl tal que,
1
+ negl(n).
2
Pr[PRIV_CPA(, A, n) = 1]
Ve
rs
Notas
O livro de Golomb
59
in
ar
Die Hard .
H baterias de testes
Exerccios
a)
01101011
b)
10101010
c)
11101010
d)
100101101101
1, 2
3:
lim
com deslocamentos
Pr
e
Ex. 22 Construa programas que calculem a autocorrelao e a complexidade linear de sequncias de bits.
Ex. 23 Descreva em pseudocdigo um algoritmo que verique, para sequncias de bits, os postulados de Golomb. Calcule a complexidade de tempo de seu
algoritmo.
i) Porque um LFSR tendo uma sequncia de zeros como estado inicial gerar
somente zeros?
Ve
rs
m-sequncia
nica vez.
m-sequncias
m-rias
de ordem
existem?
0n
1n ,
cifrado.
necessariamente
ser possvel.
in
ar
com deslocamento
tem perodo
igual a um.
k|p,
ento a autocor-
Ex. 30 Demonstre que a Construo 4.35 segura contra ataques de mltiplos textos cifrados conhecidos.
lim
a , b, n
e uma semente
s < n,
x0
xi
axi1 + b (mod n)
Pr
e
dados parmetros
Ve
rs
5O
in
ar
Cifras de Bloco
lim
Captulo 5
Pr
e
doaleatreas,
Neste
permutaes pseu-
Ve
rs
Ao invs de usarmos uma nica funo para encriptar mensagens, mudaremos a funo cada vez que
gens. Podemos criar uma funo F : {0, 1} {0, 1} {0, 1} , onde o primeiro
argumento usado para escolher qual Fi queremos usar. F chamada de funo
indexada por chave. Denotaremos Fk (m) ao invs de F (k, m).
funes
Com
|k| = n,
podemos indexar
2k
notamos que h
2n
bits:
2n )
61
CAPTULO 5.
CIFRAS DE BLOCO
Assim, usamos
lim
in
ar
62
2n
dentre
(2n )(2
funes. Uma
Pr
e
escolha
se permitirmos ao adversrio acesso a uma funo Fk (sem
o ndice k ), ele no deve ser capaz de distinguir Fk de uma funo qualquer
n
escolhida ao acaso dentre todas as (2n )(2 ) possveis funes com entrada e sada
de n bits.
n
Em outras palavras, a distribuio das 2 funes indexadas por k deve ser
n (2n )
indistinguvel da distribuio das (2 )
, que uniforme. Na Denio 5.1, o
algoritmo D tem o objetivo de tentar realizar esta distino.
Queremos que a segurana de nossa construo criptogrca esteja na
da funo. Assim,
Ve
rs
desprezvel
negl
D,
tal que
onde
{0, 1}n
escolhida com
{0, 1}n .
O algoritmo
D(Fk , 1n )
e no simplesmente
n
Fk
n)
de mo nica.
Enc
in
ar
tal que
No entanto, este criptossistema seria determinstico, e portanto no seria resistente a ataques de mltiplos textos cifrados conhecidos.
Para introduzir aleatoriedade podemos fazer
lim
r R { 0, 1 } ,
Enck (m) = hr, Fk (r) mi ,
e enviar
Pr
e
Gen(1n )
n:
Enck (m):
escolha
r R { 0, 1 }
{0, 1}n .
, e retorne
hr, Fk (r) mi .
Ve
rs
n (2n )
usar Fk : ao invs disso, seleciona uniformemente uma das (2 )
funes
f de n em n bits (no conseguiramos construir na prtica, mas ele servir
ao nosso argumento).
Construo 5.3. Seja
O Criptossistema
Seja o criptossistema da Construo 5.3 e A um adversrio rodando em tempo polinomial. Seja p() o polinmio dando o nmero de consultas
feitas pelo adversrio A ao orculo Enck () no experimento 4.36. A probabilidade de b = b0
Lema 5.4.
Pr [PRIV_CPA(, A, n) = 1]
1 p(n)
+ n
2
2
CAPTULO 5.
64
CIFRAS DE BLOCO
in
ar
Demonstrao. Cada vez que Enck usada (tanto por como pelo adversrio
A no experimento PRIV_CPA), um novo r escolhido. Dado que temos um r, a
1
probabilidade de r ser escolhido novamente n .
2
Suponha agora que no experimento o texto encriptado c = h rc , f (rc ) mb i
seja enviado a A.
H dois casos a tratar:
rc
usado por
RU IM .
ao orculo. Seja
A probabilidade
lim
rc
f.
A ter sucesso
RU IM .
b = b0
1
2.
Pr [PRIV_CPA( , A, n) = 1]
Pr [PRIV_CPA( , A, n) = 1 RU IM ] + Pr PRIV_CPA( , A, n) = 1 RU IM
Pr(RU IM ) + Pr PRIV_CPA( , A, n) = 1|RU IM
p(n) 1
+ .
2n
2
Pr
e
Conclumos que
Teorema 5.5.
Demonstrao.
Seja
g(n)
1
2 a probano experimento PRIV_CPA:
Ve
rs
1
g(n) = Pr [PRIV_CPA(, A, n) = 1] ,
2
e ento
1
Pr [PRIV_CPA(, A, n) = 1] = g(n) + .
2
A diferena entre a probabilidade de sucesso para , que acabamos
+
2
2
2n
p(n)
= g(n) n ,
2
de calcular,
g(n)
rana CPA);
g(n)
no desprezvel.
65
Fk
de
acontecer.
in
ar
Fk
Fk1
Quando
Fk
chamada de
eciente.
taes de
bijetora.
lim
Quando
k , Fk
indistinguvel de
D,
toda
Pr
e
srio polinomial
negl
tal que
Note que de acordo com a denio de permutao pseudoaleatrea o adversrio s tem acesso a
acesso a
teremos uma
ao adversrio
5.2.1
Fk1 ,
Ve
rs
n.
Fk
para
Um
modo de operao
.
.
.
de um esquema de encriptao usando permutaes
CAPTULO 5.
66
5.3.1
CIFRAS DE BLOCO
m
2
in
ar
lim
k.
Pr
e
5.3.2
No modo CBC, a mensagem passa por um ou-exclusivo com o vetor de inicializao antes de ser usada como entrada para
Fk .
Ve
rs
onde
ci = Fk (ivi mi ).
67
5.3.3
Fk
a sada de
Fk ;
in
ar
Teorema 5.8.
mi
com a sada da
i-sima
Fk .
iv
Pr
e
lim
iv
aplicao
c
3
ci = Fk (ivi ) mi .
escolhido ao acaso e para
i > 1, ivi =
No entanto,
Ve
rs
Fk (ivi1 ).
iv1
uma sequncia de bits pode ser preparada com antecedncia para vrios blocos
antes da encriptao (ou decriptao) das mensagens.
Teorema 5.9.
5.3.4
CTR Contador
Para encriptar o
Fk ,
parte da mensagem.
i-simo
CAPTULO 5.
CIFRAS DE BLOCO
lim
in
ar
68
ci = Fk (ctr + i) mi .
Pr
e
n-simo
Teorema 5.10.
Ve
rs
mos diversas maneiras de us-las (os modos de operao). Nos falta ainda tratar
de mtodos para a construo de cifras de bloco usando estas permutaes.
5.4.1
no fazem sentido para cifras de bloco, uma vez que estas trabalham
com blocos e chaves de tamanho xo.
sinttico, e
Ao invs disso, diremos que uma cifra de bloco segura quando o melhor
ataque contra ela tem complexidade de tempo igual da busca exaustiva pela
chave. Por exemplo uma cifra de bloco que trabalha com chaves de
256
bits
2128 ,
2128
5.4.2
69
Construo
Denio 5.11 (Cifra de Bloco). Uma cifra de bloco para chaves com
c bits
F : {0, 1}n
e os blocos de tamanho
in
ar
e mensagens com
t.
reas. Ao invs disso, uma permutao eciente indexada usada. Isso porque,
como j mencionamos, para cifras de bloco no faz sentido tratar de comportamento assinttico.
Uma cifra de bloco deve ser indistinguvel de uma permutao aleatrea. Infelizmente no podemos usar diretamente permutaes pseudoaleatreas: para
n bits precisaramos de
2n ! valores, e consequentemente teramos que usar log(2n !) bits. Por
256
se quisermos que o bloco tenha 256 bits, precisaramos de log(2
!)
lim
algo inconcebvel na prtica. Na construo de cifras de bloco usam-se normalmente funes representveis de maneira mais compacta, que,
do ponto de vista
Pr
e
A seguir so destacados
Confuso e difuso
5.5.1
Ve
rs
cifras de bloco:
Confuso:
Difuso:
no texto encriptado.
5.5.2
Dividimos o bloco
CAPTULO 5.
70
CIFRAS DE BLOCO
confuso no bloco
S-boxes (ou caixas-S).
Pr
e
lim
original, e
in
ar
aleatrea.
sada dos blocos e as distribumos entre os outros (as modicaes das S-boxes
Ve
rs
so espalhadas).
rodada.
lim
passo de mistura
traz difuso
in
ar
S-boxes
introduzem
confuso
71
XOR com
i-sima chave
Pr
e
Sendo as S-boxes invertveis, a cifra como um todo tambm o ser e assim ser tambm uma permutao (porque bijeo e preserva o tamanho da
entrada).
O projeto das S-boxes e dos passos de mistura deve ter como objetivo o
efeito avalanche:
Rede de Feistel
Ve
rs
5.5.3
direita), denotadas
onde
fi
Li
Ri .
Li = Ri1
Ri = Li1 fi (Ri1 , Ki )
Ki
n/2
CAPTULO 5.
CIFRAS DE BLOCO
in
ar
72
lim
Uma caracterstica importante das redes de Feistel que sempre so invertveis, mesmo que suas funes internas no o sejam.
Uma rede de Feistel sempre invertvel, independende da escolha de sua funo interna.
Teorema 5.12.
Pr
e
Li1 = f (Ri1 ) Ri
Corolrio 5.13.
funo
pseudoaleatrea,
Ve
rs
Michael Luby e Charles Racko, que garante que se a funo interna de uma
rede de Feistel for uma
funo
pseudoaleatrea, ento a
permutao
resultante
da rede pseudoaleatrea, desde que a rede tenha pelo menos trs rodadas.
Mais precisamente, Luby e Racko mostraram que a probabilidade de um adversrio distinguir entre uma permutao verdadeiramente aleatrea e uma cifra
de Feistel de trs rodadas construda com funes pseudoaleatreas menor do
que
q 2 /2n .
73
5.5.4
q2
.
2n
Construo de Lai-Massey
in
ar
Li
Ri .
Di = f (Ri Li )
Ri = Ri1 + Di
Calcula-se ento
lim
Li = Li1 + P (Di )
onde
uma permutao.
Pr
e
Ve
rs
1 As
ab
o mesmo que
a + (a).
CAPTULO 5.
74
CIFRAS DE BLOCO
in
ar
Ve
rs
Pr
e
lim
metade dos bits da mensagem usado de cada vez como entrada para a funo
interna, a entrada de 32 bits.
A funo interna da rede de Feistel do DES funciona da seguinte maneira:
Aps um
e quatro de sada (donde se conclui que a funo usada pelo DES na rede de
75
8 4 = 32 bits.
A Figura a seguir
Pr
e
lim
in
ar
Escalonamento de chaves
5.6.1
Ve
rs
5.6.2
3DES
256 )
em tempo aceitvel.
CAPTULO 5.
76
CIFRAS DE BLOCO
O adversrio efetua
ki
Enc(m)
xi ,
em uma tabela.
xi
(ki , kj )
com
como chave. Ao
xi ,
ele guarda as
Ve
rs
Pr
e
chaves
decripta
ki , xi
(xi , ki ).
lim
in
ar
a seguir chamado de
Se sortearmos duas chaves ao acaso, elas podero satisfazer a Equao 5.6.2 com
probabilidade
cadeia de
2n
1
2n (para peceber isto, imagine as duas chaves como uma nica
bits). O conjunto de possveis solues ter aproximadamente
22n
n
2n = 2 . Se o adversrio tiver mais pares de mensagem e texto encriptado,
este conjunto car menor e ele conseguir facilmente identicar a chave.
Tentamos ento de outra forma: encriptar, decriptar e encriptar novamente,
2 Meet-in-the-middle
77
168
2168
56
bits passamos
in
ar
5.7.1
lim
Descrio simplicada
Esta Seo contm uma descrio simplicada do AES. A Seo 5.7.2 contm a
descrio algbrica.
O AES opera em matrizes
44
Pr
e
a0,0
a1,0
a2,0
a3,0
a0,1
a1,1
a2,1
a3,1
a0,2
a1,2
a2,2
a3,2
a0,3
a1,3
a2,3
a3,3
// primeira rodada:
AddRoundKey
Ve
rs
// rodadas intermediarias:
para i de 2 a N 1:
SubBytes
ShiftRows
MixColumns
AddRoundKey
// rodada final:
SubBytes
ShiftRows
AddRoundKey
CAPTULO 5.
78
CIFRAS DE BLOCO
SubBytes
Este passo substitui cada um dos bytes da entrada, usando S-boxes. Esta uma
objetivos em mente:
No-linearidade:
in
ar
funo no-linear aplicada em cada byte. As S-boxes foram projetadas com dois
foi minimizada tanto quanto possvel; alm disso, a probabilidade de propagao de diferenas foi tambm minimizada.
Complexidade algbrica:
A expresso da
S -box
no corpo nito
GF (28 )
lim
algbrica.
SubBytes so uma
per-
ShiftRows
ShiftRows
Pr
e
O passo
Quando o tamanho do bloco de 128 bits, cada uma das linhas deslocada
para a direita por 0, 1, 2 e 3 posies. Por exemplo:
1
5
9
13
ShiftRows
A operao
1
2 3 4
/
6
6 7 8
//
11
10 11 12
///
16
14 15 16
2
7
12
13
3
8
9
14
4
5
10
15
facilmente invertvel.
Ve
rs
MixColumns
Este passo aplica uma transformao linear em cada coluna da matriz, mas
De maneira simplicada, a
a1=a
a2=a1Y
a 3 = (a 1) Y a,
onde
de a
a
3 Este
operao descrita de forma mais aprofundada na Seo 5.7.2, que expe uma
79
02
01
01
03
03
02
01
01
01
03
02
01
a0
01
a1
01
03 a2
a3
02
b0
b1
=
b2
b3
in
ar
02
01
01
03
MixColumns
03
02
01
01
01
03
02
01
do AES).
01
0A
b0
B7 b1
01
=
03 01 b2
02
39
b3
lim
b0 = 0A 02 B7 03 01 01 39 01
Pr
e
b0 = 14 75 01 39
A operao
b0
Ve
rs
b0 =00010100
Os valores
b1 , b2
b3
01110101
00000001
00111001
=00011001 = 19 .
AddRoundKey
4 4,
Escalonamento de chave
Para
chaves de rodada.
CAPTULO 5.
80
5.7.2
CIFRAS DE BLOCO
F Descrio algbrica
Esta Seo apresenta algumas das operaes do AES em sua formulao al-
nitos .
in
ar
GF (28 ),
m(x) = x8 + x4 + x3 + x + 1.
lim
SubBytes
onde
Quando
1
1 0 0 0 1 1 1 1
1
1 1 0 0 0 1 1 1
0
1 1 1 0 0 0 1 1
1 1 1 1 0 0 0 1
, b = 0
A=
0
1 1 1 1 1 0 0 0
1
0 1 1 1 1 1 0 0
1
0 0 1 1 1 1 1 0
0
0 0 0 1 1 1 1 1
x = 0,
Pr
e
A operao
o valor subsitudo
b.
MixColumns
sobre
Ve
rs
GF (28 ).
interpretada como
portanto variam de
a0
a1
a2
a3
a3 x3 + a2 x2 + a1 x + a0 ,
0 a 255 = FF ).
onde os coecientes
ai
so bytes (e
em GF (28 )
no pertence ao corpo de Rijndael,
4 Corpos
5 Se
representamos os elementos de
tencer a
Z2 .
GF (28 )
81
in
ar
E0
21
0A
72
interpretada como
72 x3 + 0A x2 + 21 x + E0
= 114x3 + 10x2 + 33x + 224.
Cada um dos coecientes, por sua vez, pode ser visto como um polinmio.
lim
seja um polinmio de grau trs (e que possa portanto ser representado como uma
coluna).
A operao
mio xo
c(x):
c(x) = 03 x3 + 01 x2 + 01 x + 02 .
Os coecientes de
c(x)
tambm so elementos de
GF (28 ),
representados aqui
Pr
e
m(x)
01 = 1
02 = x
03 = x + 1.
Ve
rs
x
1
1
x+1
x+1
x
1
1
1
x+1
x
1
1
1
x + 1
x
2 (x
um elemento qualquer em
GF (28 ),
3 (x + 1
no corpo de
a7 x7 + a6 x6 + a5 x5 + a4 x4 + a3 x3 + a2 x2 + a1 x1 + a0 .
Calculamos
ax
a(x + 1).
ax = a7 x8 + a6 x7 + a5 x6 + a4 x5 + a3 x4 + a2 x3 + a1 x2 + a0 x
7
(mod m(x))
CAPTULO 5.
82
ai xi+1
a7
ai
Podemos calcular
ax
11011
1b .
Se
1b .
Finalmente,
a(x + 1) = ax + a,
que pode ser implementado computando primeiro
sivo com
As posies em
so 0, 1, 3 e 4. O nmero binrio
a7 = 1,
(ai + a7 )xi+1 .
in
ar
que
CIFRAS DE BLOCO
a.
dos
256
lim
2.
x7 + x6 + x5
x5 + 1
x3 + x
x6 + x5 + x4 + x + 1
como
Pr
e
j mostrada,
x+1
x
1
1
resulta em
1
x+1
x
1
x7 + x6 + x5
1
1
x5 + 1
x+1
x +x
6
5
4
x
x +x +x +x+1
x
1
1
x+1
c(x),
Ve
rs
=x7 + x6 + x
=11000010 = 194 = c2 .
E portanto, o passo
MixColumns
c2 .
6 Isto
83
Da memsa forma que nas outras cifras de bloco apresentadas, h um algoritmo para escalonamento de chaves.
Note que
f 64
Pr
e
lim
in
ar
Notas
J permutaes pseudoaleatreas (e a
Ve
rs
segurana do DES.
era Horst Feistel; o AES foi desenvolvido por Joan Daemen e Vincent Rijmen.
A descrio do DES e do AES dadas aqui supercial.
DES. O padro GOST 28147-89 dene a cifra, que usa blocos de 64 bits (GOST
CAPTULO 5.
84
CIFRAS DE BLOCO
7
foi tornada pblica. A cifra de bloco denida pelo GOST tem mais rodadas que
in
ar
A cifra FOX[JV04] foi criada por Pascal Junod e Serge Vaudenay como
sucessora da cifra IDEA.
Exemplos de redes de Feistel so as cifras Camellia (desenvolvida pela Mitsubishi) [Aok+01], Blowsh (de Bruce Schneier) [Sch94], e MARS (nalista do
Exerccios
Ex. 34 Seja
Argumente que
lim
F : { 0, 1 } { 0, 1 } { 0, 1 }
F deve ser de mo nica.
Pr
e
Ve
rs
muito supercial).
onde
x.
no mximo podemos
7 Hoje
Unio Sovitica).
8O
85
Ex. 43 Voc consegue usar o mesmo raciocnio usado na resposta do Exerccio 42 para rodadas quase completa do AES, com todos os passos menos
AddRoundKey?
inversa da operao
in
ar
MixColumns.
lim
Ve
rs
Pr
e
CAPTULO 5.
CIFRAS DE BLOCO
Ve
rs
Pr
e
lim
in
ar
86
in
ar
Captulo 6
lim
Noes de Criptanlise
Este Captulo traz uma breve discusso de alguns mtodos comuns de Criptanlise. Para isso construiremos (de maneira intencionalmente simplista e descuidada) uma rede de substituio e permutao, que analisaremos usando criptanlise linear e criptanlise diferencial. Tambm construiremos uma cifra de
Pr
e
80
bits com escalonamento absolutamente simples: cada rodada usar uma parte
da chave. A primeira rodada usar os primeiros
prximos
16
16
Ve
rs
Substituio:
F = 1111.
0000, 1
como
0001,
24 = 16.
Assim, o valor
E = 1110
as sadas correspondentes.
0 1
2 8
2
D
3 4 5
5 4 A
6
C
7
F
87
8
E
9 A
3 B
B
9
C
7
D
1
E
6
F
0
CAPTULO 6.
88
9,
NOES DE CRIPTANLISE
1011 vericamos
1001.
que
1011 = B
e a
in
ar
Permutao:
5
6
7
8
9
10
11
12
13
14
15
16
lim
1
2
3
4
Esta tabela semelhante quelas vistas no Captulo 5: os nmeros representam as posies dos bits da entrada, e a ordem em que aparecem na
Pr
e
Ve
rs
Ve
rs
Pr
e
lim
in
ar
89
CAPTULO 6.
90
NOES DE CRIPTANLISE
in
ar
e lgico.
x1 , . . . , x4 . Podemos
ai
como coecientes e os
xi
a1 , . . . , a 4
a1 x1 + a2 x2 + a3 x3 + a4 x4
(mod 2),
ou
lim
a1 x1 a2 x2 a3 x3 a4 x4 ,
onde ai xi denota o
cada
e
um ou zero,
Se
a = 0110
a1 x1 a2 x2 a3 x3 a4 x4
= 0 x1 x2 x3 0 x4
Pr
e
= (0 x1 0 x4 ) x2 x3
= 0 x2 x3
= x2 x2
= 1 0 = 1.
Presumimos que um atacante tem uma grande quantidade de pares de mensagem/texto cifrado, todos gerados com a mesma chave. Aps encontrar uma
relao probabilstica linear entre bits da entrada e bits da sada, conseguiremos
Ve
rs
obter a ltima subchave com esforo menor que o de uma busca exaustiva.
V , que extrado da
X e V , e conhecendo
o valor da sada Y , podemos tentar deduzir algo a respeito da subchave k5 usada
A Figura mostra que estamos interessados em um valor
linear (ou seja, cuja sada no deveria ser representvel como combinao linear
da entrada): as S-boxes. Denotaremos por
S-box; por
X1 , X2 , X3 , X4
Y1 , Y2 , Y3 , Y4
os bits de sada.
91
6.2.1
1/2.
O Lema do Empilhamento
in
ar
Xi Xj Xm Yk Yl Yn = 0
mi , . . . , mj
Se
prxima de
1/2
muito
a criptanlise linear.
vis
1/2.
Xi
Pr
e
Denio 6.1. O
i = Pr(Xi )
X1
X2
X1 X2 = 0
X1 = X2 .
Ve
rs
Se
X1 , X2
seja
lim
p = Pr[mi mk cl cm = 0].
cl , . . . , cm ,
X1
X2
sejam
Pr[X1 = 0] = p1
Pr[X2 = 0] = p2 .
so independentes temos
Pr[X1 = 0, X2 = 0] = p1 p2
Pr[X1 = 0, X2 = 1] = p1 (1 p2 )
Pr[X1 = 1, X2 = 0] = (1 p1 )p2
Pr[X1 = 1, X2 = 1] = (1 p1 )(1 p2 ).
E portanto
Pr[X1 X2 = 0] = Pr[X1 = X2 ]
= p1 p2 + (1 p1 )(1 p2 ).
1/2
CAPTULO 6.
92
Se
p1 = 1/2 + 1
p2 = 1/2 + 2 ,
com
|e1 |
|e2 | 1/2,
ento
1
+ 21 2
2
in
ar
Pr[X1 X2 = 0] =
ou seja,
NOES DE CRIPTANLISE
1,2 = 21 2 .
(Lema do Empilhamento) Sejam X1 , X2 , . . . , Xn variveis aleatreas binrias independentes; seja i o vis de Xi e 1,2,...,n o vis de X1 Xn .
Ento
n
Y
1
i ,
Pr[X1 Xn ] = + 2n1
2
i=1
lim
Lema 6.2.
ou seja,
1,2,...,n = 2n1
n
Y
i .
Demonstrao.
Pr
e
i=1
(211 )1 = 1 .
k + 1.
X1 X2 Xik+1 ,
variveis, com
k 2.
reescrevemos
A = X1
X2 Xik
X1 X2 Xik+1 = A Xik+1 .
Ve
rs
2k1 kj=1 ij .
J o vis de
Xik+1
ik+1 .
A e
Como sabemos calcular o vis para duas variveis, basta faz-lo para
Xik+1 ,
6.2.2
obtendo
2 2k1
k
Y
ij ik+1 = 2k
j=1
k+1
Y
ij .
i=1
Criptanlise da rede
A tabela a seguir mostra o mapeamento dos bits de entrada nos de sada para
a S-box que usamos em nossa cifra.
X3
X4
Y1
Y2
Y3
Y4
in
ar
X2
lim
X1
Pr
e
93
Olharemos agora para combinaes lineares (ou seja, somas de parte dos
bits), tanto da entrada como da sada. Queremos vericar quando a equao
X3 X4 = Y1 Y2 Y3 .
A prxima tabela
Ve
rs
Apenas
X3
X4
Y1 , Y2
Y3
na sada;
X3 X4
Y1 Y2 Y3 ;
CAPTULO 6.
94
NOES DE CRIPTANLISE
X4
X3 X4
Y1 Y2 Y3
Y1
Y2
Y3
in
ar
X3
Pr
e
lim
Esperamos que
1/2
melhor).
Ve
rs
de
Pr[A = 0]
seja aproximadamente
1/2
entradas, portanto
O vis de
+8 que
A denida
Se subtrairmos
se dividido por
16
X
Xi ), e as colunas representam bits de Y (combinaes
O elemento (i, j) da tabela a quantidade de coincidncias para
(combinaes lineares de
lineares de
Yi ).
X = Y
menos oito.
95
2
3
4
5
6
7
8
9
A
B
C
D
E
+8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
+2
+2
0
2
0
+4
+2
+2
0
+4
2
0
2
2
0
0
2
2
0
0
2
2
0
+2
+4
0
2
+2
4
0
2
0
0
0
0
2
2
+2
6
0
0
0
0
2
2
+2
+2
0
4
+2
2
+2
+2
0
0
2
+2
+4
0
0
0
+2
+2
0
2
0
+2
0
+2
0
2
+4
2
0
2
+4
+2
0
+2
0
2
0
+2
2
0
+2
0
4
2
0
2
+2
0
+2
4
0
0
2
2
+4
0
+2
2
2
2
0
0
+2
2
4
0
0
0
+2
+2
2
2
0
0
2
+2
0
+4
+4
0
2
+2
0
+2
4
+2
0
+2
0
2
0
+2
+4
+2
0
+2
0
2
0
2
0
+2
2
+4
2
0
0
2
0
+2
2
4
2
0
0
0
+2
+2
0
0
2
2
2
+2
0
4
2
+2
4
0
0
0
0
0
0
+4
+4
0
0
+4
4
0
0
0
0
0
0
+2
2
+4
+2
0
0
+2
2
0
0
2
0
2
+2
+4
0
+2
2
4
4
+2
2
0
2
0
0
2
+2
0
0
+2
0
4
4
0
2
2
+2
+2
0
0
0
0
2
+2
2
+2
Pr
e
in
ar
lim
X3 X4 Y1 Y2 Y3 : a
0011 = 3 e a coluna por 1110 = 14 = E . E de fato, na posio
(3, E ) temos 4 o que signica que o vis 4/16 = 1/4, exatamente como
Ve
rs
calculamos anteriormente.
Denotaremos por
In
n-sima
I n e On .
S-boxes da
16 bits de
On
Ijn
da chave da
n-sima
n-
Ojn
kjn
j -simo
dos
j -simo
bit
rodada.
In
On ,
S4,3
so
ativas
na
CAPTULO 6.
NOES DE CRIPTANLISE
Ve
rs
Pr
e
lim
in
ar
96
Note que a trilha mostrada na rede no representa que tal entrada deve
inuenciar
97
caminho que, com alta probabilidade, nos garantir uma relao entre entrada
e sada.
Considere os bits 1 e 2 da entrada (ambos entram na S-box
aps ou-exclusivo com bits de
k1 )
S11
como
X1
in
ar
X2
(+4/16) em S1,1 : X1 X2 = Y1
(+4/16) em S2,1 : X1 = Y2 Y4
(4/16) em S3,2 : X1 = Y2 Y3
(4/16) em S3,4 : X1 = Y2 Y3 .
Reescrevemos:
lim
3
3
3
(1/4) A4 = I13
O14
O15
= 0.
Fazemos um ou-
A:
Pr
e
A = [A1 A2 A3 A4 = 0]
O vis desta nova varivel pode ser determinado usando o Lema do Empilhamento, e igual a
1,2,3,4 =
23
4
Y
i=1
Ve
rs
1
1
1
1
=8
4
4
4
4
1
.
=
32
Expandimos
A1 A2 A3 A4 ,
obtendo
I11 m1 k11
I53 O22 k53 .
Ikj
como ou-
CAPTULO 6.
98
A1 A2 A3 A4
NOES DE CRIPTANLISE
igual a
in
ar
3
(m1 m2 k11 k21 k12 k53 k13
)
3
3
O11 O11 O22 O42 O22 O63 O73 O42 O14
O15
.
x x = 0,
lim
Como
3
(m1 m2 k11 k21 k12 k53 k13
)
3
3
O63 O73 O14
O15
.
Estamos interessados no caso em que
denimos nossa varivel aleatrea
A),
A1 A2 A3 A4 = 0 (porque como
e sabemos que
Pr
e
3
I84 = O14
k84
4
4
I10
= O73 k10
4
3
4
I12
= O15
k12
,
Ve
rs
4
4
O73 I10
k10
3
O14
I84 k84
3
4
4
O15
I12
k12
.
Assim,
3
(m1 m2 k11 k21 k12 k53 k13
)
4
4
4
4
[I64 k64 ] [I10
k10
] [I84 k84 ] [I12
k12
] = 0.
I 4,
3
4
4
Z = k11 k21 k12 k53 k13
k64 k10
k84 k12
Z estar
A1 A2 A3 A4 ser
+1/32,
e no outro,
1/32.
4
4
m1 m2 I64 I10
I84 I12
(6.1)
99
1/32.
Os bits da ltima chave (K5 ) que so combinados com a sada das S-boxes
e
S4,3
5
8
k55 k12
. H 2 = 256
subchaves candidatas.
so
chamados de
Tendo o vis de
in
ar
S4,2
Pr
e
lim
Ve
rs
k -sima
Fk ,
contm os contadores
subchave).
1/32
e a usamos.
CAPTULO 6.
100
NOES DE CRIPTANLISE
Apresentamos a seguir os resultados de uma simulao, completando o exemplo. Nesta simulao, usamos
in
ar
10011001
(sublinhada acima).
lim
razovel de pares
1
2
onde
conclumos que
Como temos
= 1/32,
Pr
e
1
= 1024
(1/32)2
pares so sucientes.
A prxima tabela mostra uma lista das chaves com o vis calculado da relao
A = 0,
onde
4
4
A = m1 m2 I64 I10
I84 I12
.
1/32 = 0.03125.
A
da varivel
relao tambm valha com alta probabilidade, portanto podemos ter que buscar
Ve
rs
A
mais prximos de
A = 0.35.
subchave
|A |
01010000
0.02325
01111011
0.02325
00011111
0.025
10111000
0.02525
10111110
0.0255
10010110
0.02625
01000011
0.0265
11011110
0.02675
00100000
0.02775
01101001
0.03025
00101110
0.033
10011001
0.035
1/32.
Nesta simulao, a
101
Podemos repetir este processo para tentar obter subchaves para as outras
duas S-boxes da ltima rodada, e posteriormente repetir o processo para as
outras rodadas. Quando a chave tem muitos bits, o trabalho total dispendido
chave. A chave tem
O(280 ).
80
in
ar
72 bits, e se
O(272 ) + O(28 ),
Restam
O(28 )
para
os buscarmos exaustivamente
muito menor que
O(280 ).
Se
conseguirmos repetir este processo para as outras S-boxes, duas por vez, a busca
poderia levar tempo
busca exaustiva.
lim
6.2.3
A trilha que escolhemos no exemplo dado tinha quatro S-boxes. Deve ser claro
que a probabilidade de sucesso do ataque linear menor quando h mais S-boxes
envolvidas e quando o vis das variveis envolvidas menor.
O criptanalista deve encontrar trilhas que resultem em vis alto. para cifras
mais complexas e com mais rodadas do que a que construmos, isso pode ser
Pr
e
feito usando tcnicas de otimizao combinatria (metaheursticas). Por exemplo, usando algoritmos genticos (cada trilha um indivduo, e a funo de
adequao ao ambiente o vis da trilha).
em construes criptogrcas, particularmente aplicvel a cifras de bloco. Consiste basicamente em explorar as relaes entre probabilidades de certos bits na
mensagem e sua relao com a probabilidade de outros bits no texto cifrado.
X0
Ve
rs
X 00
X e
Y for
Y0
Y 00 .
Se a distribuio de
muito distante de uniforme, podemos us-la para acelerar a busca pela chave.
1 0 = 1; 1 1 = 0).
0 = 0; 0 1 = 1 ;
CAPTULO 6.
102
Sejam
X0
X 00
NOES DE CRIPTANLISE
Estamos interessados na
X = X 0 X 00 .
Calculamos tambm as sadas da S-box
Y 0 = S(X 0 )
mos a diferena
Y = Y 0 Y 00 .
(X , Y )
chamado de
diferencial.
Y .
X , Pr[Y |X ]
Escolhemos agora um
X0
Ve
rs
X0
para
X 00
que resul-
0011
0001
0010
0010
0001
0011
0000
0100
0111
0101
0110
0110
0101
0111
0100
1000
1011
1001
1010
1010
1001
1011
1000
1100
1111
1101
1110
1110
1101
1111
1100
xo, igual a
e para cada um
X = 0011
X 00 = X 0 X
0000
X0
0011).
1/2n
se escolhermos
deles teremos
(X , Y ),
Pr
e
X .
e observa-
tam em
Y 00 = S(X 00 ),
lim
O par
in
ar
X 00 ,
as sadas
Y0
Y 00
e a diferena
103
X = 0011
Y0
Y 00
X0
X 00
0000
0011
0010
0101
0111
0001
0010
1000
1101
0101
0010
0001
1101
1000
0101
0011
0000
0101
0010
0111
0100
0111
0100
1111
1011
0101
0110
1010
1100
0110
0110
0101
1100
1010
0110
0111
0100
1111
0100
1011
1000
1011
1110
1001
0111
1001
1010
0011
1011
1000
1010
1001
1011
0011
1000
1011
1000
1001
1110
0111
1100
1111
0111
0000
0111
1101
1110
0001
0110
0111
1110
1101
0110
0001
0111
1111
1100
0000
0111
0111
lim
in
ar
Pr
e
0110
0111
1000
1011
0
0
2
3
4
5
6
7
8
9
A
B
D
E
F
(X , Y ).
0
0
4
0
2
0
0
2
0
2
2
0
0
0
0
4
0
2
0
0
4
2
0
0
0
0
2
0
0
0
2
4
0
2
0
0
0
0
2
0
2
0
2
2
0
4
2
0
0
0
0
0
0
2
0
2
0
2
0
2
0
4
4
0
0
0
4
2
0
0
0
2
0
2
0
0
4
2
0
0
0
4
0
2
2
0
0
0
2
2
2
0
2
0
0
0
0
0
0
8
0
0
2
2
0
0
0
0
2
2
0
0
0
2
2
2
0
2
4
0
0
0
0
2
0
0
2
0
0
0
0
0
4
2
2
0
0
2
2
0
4
0
0
0
0
2
2
0
2
0
0
2
2
0
2
0
2
0
2
0
0
0
0
2
0
2
0
0
4
0
2
4
2
0
0
0
0
0
0
0
0
2
2
0
4
2
0
2
0
0
2
2
0
2
2
0
2
0
0
2
0
2
0
2
0
2
0
2
0
2
0
0
0
0
2
4
0
2
2
2
0
0
0
2
0
0
2
0
0
4
2
0
2
0
0
0
0
2
2
2
Ve
rs
16
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Y :
CAPTULO 6.
104
NOES DE CRIPTANLISE
y = 0011
esto na linha
3.
Y ,
Pr[Y |X ] =
1
,
2n
in
ar
ou seja, tal que todas as entradas na tabela de frequncias sejam iguais a um.
Teorema 6.4.
Demonstrao.
1
.
2n
lim
Pr[Y |X ] =
Oi1
diferena
ki ,
I i,
i-sima
no entanto, no dependem da
Pr
e
eI
ki
Teorema 6.5.
00(i)
I = I 0(i) I 00(i)
O = O0(i1) O00(i1)
Demonstrao.
Ve
rs
I 0(i) I 00(i) = O0(i1) k i O00(i1) k i
= O0(i1) O00(i1) ,
ki .
ou-exclusivo do diferencial na entrada de uma rodada seja o ou-exclusivo do diferencial de sada na rodada anterior, conseguiremos uma
trilha de diferenciais.
Presumimos que as taxas de propagao em diferentes rodadas so independentes, e assim multiplicamos as taxas em cada rodada para obter a taxa de
propagao da trilha.
Suponha que duas mensagens tenham diferena
A diferena na entrada de
S14
ser
0110.
nibble).
m2
Ve
rs
Pr
e
lim
in
ar
105
0110
CAPTULO 6.
106
Na sada de
com
bits
13..16
NOES DE CRIPTANLISE
de
O1 ),
0100
teremos a diferena
in
ar
1
1
Pr (O13..16
) = 0100|X = 0000 0000 0000 0110 = .
4
Na sada de
J em
O3
temos
1/2n = 1/65536.
4
1
1
=
,
4
256
lim
3
3
1
Pr (O5..8
) = (O9..12
) = 1100 (O13..16
) = 0110] =
No processo de criptanlise usamos pares de texto claro com este valor para
X .
(m , m )
Pr
e
(ou
0000 0110).
gen_msg_dx (m, X ):
m0i mi X
retorne m0
m gen_msg(n)
m gen_msg_dx(m , 6 )
c enc_vector(m )
c enc_vector(m )
Ve
rs
S41
S42
ser
0110 0110.
(c , c )
4
4
(4 , I
) e observamos a diferena I4 I
. Quando esta for igual
entre m e m , incrementamos o contador para esta subchave.
resultando em
diferena
107
1/256 = 0.00390625.
in
ar
c
p
1
= 256.
(1/256)
lim
Fk /n igual a
1/256 = 0.00390625
Pr
e
0.00375
subchave
Fk /n
11110100
0.00125
11111011
0.00125
11111100
0.00125
11111110
0.00125
00101011
0.0025
01010100
0.0025
01100100
0.0025
01101011
0.0025
01011011
0.00375
Ve
rs
dentre todos.
Assim como na Seo sobre criptanlise linear, conseguimos extrair oito bits da
chave.
k 0 = (KA KB KC KD KE ),
onde
KA ,
etc so
CAPTULO 6.
108
NOES DE CRIPTANLISE
KB = 0110
KC = 1111
KD = 1010
ento
in
ar
KA = 0001
lim
k 1 = k0
k 2 = (KB KC KD KA )
k 3 = (KC KD KA KB )
k 4 = (KD KA KB KC )
Observamos que
Pr
e
k5 = k2 .
0
0
0
0
k 2 = (k5..8
k9..12
k13..16
k1..4
)
0
0
0
0
k 3 = (k9..12
k13..16
k5..8
k5..8
)
0
0
0
0
k 4 = (k13..16
k5..8
k5..8
k9..12
).
Precisamos de modelos das S-boxes e da permutao como equaes envolvendo os bits de entrada e sada de cada uma. Sendo
Xi
Ve
rs
da S-box e
i-simo
Yi
i-simo
bit de sada
Y1 = X1 X2 X4 X1 X2 X3 X1 X2 X3 X1 X3 X4 X1 X3 X4
Y2 = X1 X3 X2 X4 X1 X3 X4
Y3 = X1 X2 X4 X1 X4 X2 X3 X4 X1 X2 X3
Y4 = X2 X3 X1 X3 X4 X1 X2 X3 X1 X3 X4 .
Aqui
a negao de booleana de
A,
1 A (mod 2).
A rede inteira pode ser descrita ento como um sistema de equaes mdulo
dois.
c1
c1 = k15 O14 .
Mas como sabemos que o primeiro bit de uma S-box pode ser descrito em termos
109
Ij4
em funo de
O3
k4 ,
in
ar
lim
As tcnicas de criptanlise linear e diferencial no so mtodos fechados. Podemos usar variantes e combin-las com outras tcnicas. Alguns exemplos so
Pr
e
listados a seguir.
Ve
rs
Notas
CAPTULO 6.
110
NOES DE CRIPTANLISE
in
ar
99.9%
Uma introduo Criptanlise Algbrica com exemplos de cifras reais quebradas dada no livro de Gregory Bard [Bar09].
lim
knudsen-related ].
Pr
e
O mtodo de Quine-McCluskey, mencionado no exemplo de criptanlise algbrica, usualmente descrito em livros sobre circuitos digitais, como o de Nelson
e outros [Nel+95], em seu terceiro Captulo.
Ve
rs
Exerccios
Pr[X1 x4 = Y3 ]
b)
Pr[X1 Y1 = 0]
c)
Pr[X1 Y2 = 0]
d)
Pr[X2 X3 Y2 Y3 = 0]
(0, 0)?
1 Traduo
livre.
111
+8
ou
8?
da entrada.
in
ar
Ex. 50 Escolha uma das S-boxes do DES e construa sua tabela de aproximao linear.
minuir pela metade o tempo necessrio para busca exaustiva pela chave do DES
lim
cifrado so necessrios?.
Ex. 53 Nos exemplos dados neste Captulo, encontramos maneiras de determinar bits de subchaves da ltima rodada da cifra. Complete os exemplos,
mostrando como o processo pode ser usado para obter os outros bits tambm.
Ex. 54 Suponha que algum tenha proposto um ataque criptanaltico terico a uma cifra de bloco. O bloco da cifra tem 80 bits e a chave, 128 bits. O
2100
2110
Pr
e
operaes em
pares de mensagem e
Ex. 55 (Programao) Construa ferramentas computacionais que automatizem parte do processo de Criptanlise.
Ex. 56 Considere a
S -box
redes de Feistel com duas, quatro e doze rodadas, e tente atac-las usando
criptanlise linear e criptanlise diferencial. (A funo interna da rede de Feisrodada).
S -box
Ve
rs
S -box
SubBytes
do AES).
Tente fazer a criptanlise desta cifra com trs, cinco e oito rodadas.
Ex. 58 Como construes de Lai-Massey no podem ter sada pseudoaleatrea com menos de trs rodadas, adapte a cifra do Exerccio 57 para funcionar
com uma ou duas rodadas e faa uma anlise estatstica da sada da cifra. Tente
em seguida identicar maneiras de usar o que descobriu para quebrar a cifra.
Ex. 59 Faa a criptanlise das cifras que voc desenvolveu no Exerccio 46,
no Captulo sobre cifras de bloco.
CAPTULO 6.
112
NOES DE CRIPTANLISE
in
ar
Ve
rs
Pr
e
lim
in
ar
Captulo 7
resumos criptogrcos)
lim
Resumos Criptogrcos
(funes de hashing)
Pr
e
x, x0
tais que
f (x) = f (x0 ).
f ()
para
Posteriormente, na
orculo aleatreo.
Ve
rs
Gen,
que
(Gen, H)
onde
Gen
segurana
Se
n.
Assim,
resumos com
p(n)
Gen(1n ) = s,
Gen(1n ),
com
s {0, 1}n
ento h um polinmio
bits a partir de
p()
e de uma entrada
tal que
cria
de tamanho
arbitrrio:
com
x {0, 1}
H(s, x) = y
p(n)
y {0, 1}
113
Usaremos
H s (x)
ao invs de
H(s, x).
coliso.
x0
H s (x) = H s (x0 ).
in
ar
tamente haver
Chamamos a isso
Neste experimento,
(Gen, H).
escolhida usando
enviada para
a funo de
lim
hashing
Gen;
A;
Se
x0 ;
Pr
e
s Gen(1n )
1n
x, x0
Ve
rs
H s (x) = H s (x0 ) 1
H s (x) 6= H s (x0 ) 0
negl
= (Gen, H)
tal que
Pr [HASH_COL(, A, n) = 1] negl(n)
Resistncia de segunda pr-imagem: ao invs de enviar apenas s ao adversrio, enviamos s e um texto x (ou seja, enviamos um elemento da
pr-imagem de H(x), e pedimos ao adversrio que encontre um segundo
elemento da pr-imagem).
texto
x0
na funo
H s;
115
in
ar
Escolha
seus resumos
usando
distribudos uniformemente em
e seja
H.
diferentes entradas
y1 , y2 , . . . , yk
n,
lim
Pr
e
N = 2n
k=
amostras.
N
N N
Pr[C]
.
2N
4N
Se o adversrio tentar
Ve
rs
coliso
N = 2100 .
2100 = 250
entradas, a probabilidade de
k(k 1)
k2
Pr[C]
4N
2N
250 (250 1)
(250 )2
Pr[C]
100
4(2 )
2(2100 )
1
1
Pr[C] .
4
2
50
Na verdade, como 2
exatamente
2100 , a probabilidade
versrio ser aproximadamente 1/2.
de sucesso do ad-
O projeto de uma funo de hashing deve, assim, levar em conta este fato.
Suponha que uma funo de hashing produza sada de 512 bits. Isso signica
factvel.
2512 = 2256
1/2
em um
1/32.
Para
200
in
ar
4.3 1078 .
A proteo contra ataques de aniversrio se d, ento, pela escolha do tamanho da sada da funo.
necessria
para a
lim
(Gen, h)
(Gen, H):
a funo
cada um com
n/2
bits; quebramos
em
k = 2|x|/n
H s (x)
blocos diferentes,
x1 , x2 , . . . , xk .
em binrio.
Usaremos
hs
a mesma, e
Pr
e
n bits.
Gen permanece
n/2
hs
de
passo.
n/2
z0 .
Nos outros,
H s (x).
Ve
rs
hs
(com
hs
Demonstrao.
DEXP
117
manho xo).
0
0
Seja i o maior ndice de bloco tal que zi1 ||xi e zi1 ||xi so diferentes.
Sejam
Pr
e
lim
in
ar
Se
direita).
Ve
rs
2n
Gen(1n ):
e sada de tamanho
Escolha um primo
um grupo de ordem
s = hG, q, g, hi.
(Gen, H)
n.
cuja representao tenha
com um gerador
bits e devolva
e um elemento
do grupo:
como
de dois nmeros
tem
H s (m) = g x hy
como a concatenao
(mod q).
in
ar
H s (m):
Presumindo que vale a hiptese do logaritmo discreto, a Construo 7.7 uma funo de hashing com resistncia a colises.
Teorema 7.8.
Demonstrao.
Seja
a Construo 7.7 e
Podemos usar
lim
DL
e(n).
DL
Pr
e
DL(G, q, g, h):
hx, x0 i A(G, q, g, h)
se x 6= x0 e x, x0 colidem em H:
se h = 1 retorne zero
senao
interprete x como (x1 ||x2 )
interprete x0 como (x01 ||x02 )
retorne (x1 x01 )(x02 x2 )1 (mod q)
Agora mostramos que quando
retorna
A encontra coliso (x 6= x0
Ve
rs
Seja
logg h = 0.
H s (x) = H s (x0 ))
logg h.
h 6= 1,
vericamos que
g x1 hx2
= g x1 hx2
x1 x01
x02 x2
d = x02 x2 .
Notamos que
= h
implica
(7.1)
d 6 0 (mod q),
(7.2)
porque se o fosse, ento
teramos
e como
hx2 x2 = h0 = 1,
0
g x1 x1 = hx2 x2 ,
0
g x1 x1 = 1
implicaria que
x = (x1 ||x2 ) =
119
g (x1 x1 )d
hx2 x2
= h[dd
(mod q))
[d1
e obtemos
(mod q)]
(mod q)]
= h.
0
g (x1 x1 )d
que a sada de
= h,
conseguimos o logaritmo de
logg h =
x01 )(x02
DL.
Temos um algoritmo
probabilidade
e(n).
DL
(x1
na base
g:
(mod q)
x2 )1
(mod q),
lim
Como
in
ar
desprezvel.
e()
deve ser
Pr
e
Esta funo muito pouco eciente para ser usada na prtica, porque exige
o clculo de exponenciao modular.
funes de hashing.
Hash Algorithm)
SHA-1
Ve
rs
7.4.1
A B:
operao de
OU
A B:
operao de
E
A B:
operao de
ou exclusivo
A:
operao de
A + B:
lgico bit-a-bit;
lgico bit-a-bit;
negao
lgico bit-a-bit;
lgica bit-a-bit;
rotlB (A):
32;
esquerda por
posies.
264 1
bits.
512
bits:
onde
512.
in
ar
y = x || 0z || l
x; l
representao de
3000
em binrio
101110111000.
3000
bits.
lim
ou seja, a mensagem
512
bits.
3072,
y.
Ve
rs
Pr
e
Hi
tem
4
32 5 = 160
bits, cada
tem ento
bits.
Hi
tem
8 4 = 32
5A827999 para 0 t 19
6ED9EBA1
para 20 t 39
Kt =
8F1BBCDC
para 40 t 59
CA62C1D6 para 60 t 79
para
para
0 t 19
20 t 39
40 t 59
60 t 79
para
Pr
e
para
lim
(B C) ((B) D)
B C D
ft (B, C, D) =
(B C) (B D) (C D)
BC D
da rodada:
in
ar
Cada
121
SHA-3
Ve
rs
7.4.2
NIST selecionou atravs de concurso um novo padro para funo de hash, que
recebeu o nome de SHA-3. O algoritmo selecionado era chamado anteriormente
de Keccac.
Seja
uma permutao em
Absoro: p
aplicada em
todos
Extrao1 :
sada.
Os
f aplicada
p primeiros bits
m
1
m
2
mn
y
1
p
...
f
q
y
2
...
Pr
e
absoro
extrao
Ve
rs
esponja(m, f, p, q, l):
// m vista como sequencia de blocos mi .
r0
c0
// fase de absoro:
enquanto h prximo bloco mi :
x f (r mi |c)
r x[0..p]
c x[p+1..q]
// fase de extrao:
yr
kp
enquanto k < l:
x f (x)
y y|x[0..p]
k k+p
retorne y
1 Squeeze
no original em Ingls.
y
n
...
lim
in
ar
so copiados.
...
in
ar
Esta Seo descreve uma cifra de bloco menos conhecida do que as anteriores.
Embora no haja cifra de bloco com segurana demonstrvel baseando-se em
Dizemos que Aardvark uma cifra de bloco, embora se parea mais com um
gabarito (ou mtodo para construo) de cifra de bloco para cada combinao
Pr
e
A Figura a seguir
lim
H0
S,
k R { 0, 1 }
retorna um par
Ve
rs
Enck (m)
retorna
Gen(1n )
H.
(c, c0 ),
c0
uma funo de
onde
= H(m)
H(m).
c0
difcil encontrar
de
S.
e
H0
so independentes:
in
ar
Teorema 7.10. Dados orculos para calcular Enck e Deck para uma chave k
desconhecida, difcil encontrar (m, c, c0 ) tais que Enck (m) = (c, c0 ) sem usar
um dos orculos para computar Enck (m) ou Deck (c, c0 ) diretamente
(Rascunho) Suponha que possvel facilmente encontrar
lim
Demonstrao.
H 0,
guimos explorar.
ou
H0
H,
(m, c, c0 )
ou conse-
Pr
e
H uma situao bastante comum no projeto de esquemas e protocolos criptogrcos que usam funes de hashing como primitiva. Ainda que presumamos
que a funo de hashing funo de mo nica e resistente a colises, parece
muito difcil encontrar uma demonstrao de segurana. Nestas situaes possvel usar uma metodologia menos rigorosa que o padro, mas que nos permite
encontrar
alguma
no leva a demonstra-
Ve
rs
funo de hashing
Seja
F AB
B.
em
F AB
x A,
resposta.
entre a Criptograa com segurana demonstrvel (ainda que resultando em construes inecientes) e a Criptograa onde a segurana de construes ecientes
avaliada de maneira emprica.
A seguir temos um exemplo de demonstrao usando o modelo do Orculo
Aleatreo. Suponha que Alice deva comprometer-se com uma escolha, mas que
125
uma banca avaliadora (e no possa divulgar seu voto antes que todos tenham
votado), ou que esteja participando de uma licitao (e que a lei exija que as
mensagem
de
in
ar
propostas sejam feitas em sigilo). A escolha de Alice pode ser vista como uma
absolutamente nada
ningum
poder
Tentamos ento usar o seguinte protocolo: Alice usa uma funo f e publica y = f (m) para comprometer-se. Depois, quando revelar m, todos podero
conferir que f (m) = y .
A intuio nos diz que poderamos usar uma funo de hashing como f .
No entanto, as propriedades de funes de hashing no so sucientes para
lim
Se presumirmos que
Pr
e
Certamente, se
hard-core.
m.
f (m)
srio no obtm dali qualquer informao. O melhor que pode fazer tentar
adivinhar
m,
escolhendo aleatoreamente
m0 = m
1/2n ,
desprezvel em
m0
e depois vericando se
f (m0 ) = y
|m|.
Ve
rs
da funo: Fk
funo de
em
H.
sucinta
completa
secreta).
7.6.1
Resistncia a colises
Todo orculo aleatreo funciona como uma funo de hashing resistente a colises.
Demonstrao.
in
ar
ao orculo e
Sejam ento
a quantidade
yi
lim
O(k 2 /2n ),
Funes de mo nica
desprezvel em
H.
consultados so
realizando
n.
Pr
e
Ve
rs
Demonstrao.
7.6.2
Objees
Esta Seo
Notas
127
usavam funes de hashing e cifras de uxo. Pat Morin mostrou que ambas eram
suscetveis a um ataque de encontro no meio, e desenvolveu Aardvark [Mor96],
semelhante em esprito mas imune quele ataque.
in
ar
lim
Pr
e
Exerccios
(Gen, H)
suas sadas:
obtido usando
Gen1
s2
onde
obtido usando
Gen2 .
uma
das outras
Ve
rs
Ex. 66 Quantas tentativas algum deveria fazer para encontrar uma coliso
em uma funo de hashing resistente a colises com sada de
probabilidade de sucesso maior ou igual que
2 Traduo
assumes that
livre.
256
bits, com
3/4?
in
ar
Ex. 69 Implemente a funo de hashing resistente a colises usando exponenciao modular descrita neste Captulo. Compare seu desempenho com
alguma funo de hashing criptogrca rpida.
lim
Ex. 72 Aardvark foi baseada em duas cifras, uma delas chamada LION. A
cifra LION usa uma funo de hashing
S.
Gen(1n )
Enc(m):
gere
k1 , k2 R { 0, 1 }
Pr
e
uxo
n, o tamanho
da chave) e calcula-se:
r S(l k1 )
l H 0 (r)
r S(l k2 )
Dec(c):
Enc,
Enc,
Ve
rs
r S(l k2 )
l H 0 (r)
r S(l k1 )
129
Ex. 74 Mostre
in
ar
Ve
rs
Pr
e
lim
Ve
rs
Pr
e
lim
in
ar
in
ar
Captulo 8
lim
Cdigos de Autenticao de
Mensagens
Pr
e
autenticidade
de
Denio 8.1 (Esquema de Autenticao de Mensagem). Um esquema de autenticao de mensagem consiste de trs algoritmos:
Ve
rs
(signicando
vlido)
k,
mensagem
uma mensagem
rtulo
m, um rtulo t, e retorna um
invlido). Denotamos v
ou zero (signicando
Para todo
n, para toda k
gerada por
que
manho
p(n)
(onde
um
p(n).
funes pseudoaleatreas.
131
CAPTULO 8.
132
escolhe
uniformemente ao acaso de
desde que
{0, 1}n .
|m| = |k| = n.
in
ar
Gen(1n )
t = Mack (m).
Em
lim
Pr
e
Uma chave
O parmetro
A,
gerada por
1n
A.
Mack ,
gera o par
(m, t).
Ve
rs
Seja
o conjunto de
enviado a
mensagens que
Gen(1n ).
Vrfk (m, t) = 1 e m
/ Q.
s Gen(1n )
AMack
1n
m, t
Vrfk (m, t) = 1, m
/Q1
negl
tal que
Pr[MAC_FORGE(, A, n) = 1] negl(n).
Teorema 8.5.
Demonstrao.
Considere
in
ar
= (Gen, Mac, Vrf) e = (Gen , Mac , Vrf ) obtidos pela Construo 8.2, sendo que foi construdo com uma funo pseudoaleatrea, e em uma funo realmente aleatrea foi usada.
Seja A um algoritmo polinomial e
e(n) = Pr[MAC_FORGE(, A, n) = 1].
Como
ento
t = f (m)
no est na lista
1
.
2n
lim
Pr[MAC_FORGE( , A, n) = 1]
de mensagens consultadas
{0, 1}n .
MAC_FORGE
(ou seja,
e(n)).
Se
e(n)
no for desprez-
Pr
e
A tem sucesso
h.
h : {0, 1}n {0, 1}n via orculo O.
Cada vez que A pedir a seu orculo para calcular o
MAC de uma mensagem m, T usa O para obter t = h(m), e retorne t para A.
Em outras palavras, T intermedia o acesso de A ao orculo do Experimento:
Suponha que queiramos distinguir uma funo
a
T recebe 1n e acesso
test executa A(1n ).
Ah
Ve
rs
Quando
Obtm
Se
retorna
1n
m, t
t0 = h(m)
via
(via T)
faz o seguinte:
O;
e se
t = t0 ,
zero.
Se
Fk pseudoaleatrea
, e
com
escolhida ao acaso,
se torna igual ao
CAPTULO 8.
134
Se
realmente aleatrea, T
1
.
2n
in
ar
Assim,
Pr [T (Fk , 1n ) = 1] Pr [T (h, 1n ) = 1] e(n) 1 .
2n
F pseudoaleatrea, existe negl
negl(n) + 2n tambm desprezvel.
Como
tal que
e(n)
1
2n
negl(n)
e(n)
lim
Pr
e
CBC-MAC uma Construo semelhante ao modo CBC para encriptao (descrito na Seo 5.3.2). A gerao do rtulo feita aplicando uma cifra de bloco
no modo CBC, com duas diferenas.
0n ;
no podem
Ve
rs
o pseudoaleatrea.
Para um polinmio
p(),
uma fun-
construo MAC.
Gen(1n )
Mack (m)
escolhe
k R {0, 1}n
Vrfk (m, t)
apenas
0n
verica se
Mack (m) = t
8.3. CBC-MAC
8.3.1
lim
in
ar
135
Demonstrao.
Seja
Pr
e
Teorema 8.7.
varivel.
M1 , M2
os respectivos rtulos.
Dados
(m1 , M1 ), (m2 , M2 ),
Sabemos que
m1 ||z .
Mi = Enck (mi )
e o rtulo de
Ve
rs
x,
m1 , m2
Enc, e sejam
Sejam
m1 ||z
deve ser
y = m2 ||(M1 z M2 ).
M3
de
x=
Aplicar
Fk
sobre o tamanho de
m,
CBC-MAC:
x Fk (|m|)
t Fx (m)
CAPTULO 8.
lim
in
ar
136
com
|m|
(o seu tamanho).
Ve
rs
Pr
e
prexando a mensagem
resultado
t0 .
Depois calculamos
t = Fk2 (t0 )
e o rtulo
k1 ,
t.
k2 ).
Ao
obtendo como
8.4. HMAC
lim
in
ar
137
Pr
e
8.4 HMAC
k,
e calcular o resumo
e chave
Ve
rs
Mac(s,k) (m)
k,
e tambm escolha
k R
retorna
s
s
t = Hiv
(k opad)||Hiv
((k ipad)||m) .
Vrf(s,k) (m, t)
A constante
opad
simplesmente verica se
igual ao valor
srio, e a constante
ipad
36
t = Mac(s,k) (m).
5C .
CAPTULO 8.
lim
in
ar
138
Quando a Construo 8.8 usada para obter um algoritmo prtico, seu nome
normalmente HMAC- seguido do nome da funo.
Pr
e
Ve
rs
gerada por
Gen(1n );
Deck ,
3. Um bit
A,
m0
m1 ,
Enck
criptada:
4.
1n
c = Enck (mi ).
pode usar
Deck
em
Enck
Deck ,
responde um bit
b0
A;
(o adversrio
c);
5. O resultado do experimento um se
b = b0
no
139
AEnck ,Deck
in
ar
1n
m0 , m1
b R { 0, 1 }
n
k R { 0, 1 }
Enck (mb )
b0
lim
1
+ negl(n).
2
Pr
e
Pr[PRIV_CCA(, A, n) = 1]
um esquema seguro
GenE (1n )
GenM (1n )
Gen(1n )
km.
calcula
Ve
rs
Encke,km (m)
c = Encke (m)
ke
Depois, decifra
t = Mackm (c),
e retorna
hc, ti
Notas
A demonstrao do Teorema 8.12 pode ser obtida no livro de Katz e Lindell [KL08].
140
CAPTULO 8.
Exerccios
Ex. 77 Alm do CBC h algum outro modo de encriptao em bloco que
in
ar
Ex. 78 Suponha que ao invs da Construo HMAC descrita neste Captulo, usemos o seguinte:
(Gen0 , H s )
Gen(1n )
(sem mudanas)
mack (m) = t.
lim
Vrfk (m, t)
Ex. 79 Ao construir CBC-MAC para mensagens de tamanho varivel, mencionamos que podemos usar uma construo semelhante ao CBC-MAC de ta-
Ve
rs
Pr
e
Captulo 9
lim
Criptograa Assimtrica
in
ar
H um pro-
Pr
e
Em 1976 um
artigo publicado por Whiteld Die e Martin Hellman [DH76] trouxe novas
perspectivas para a Criptograa, descrevendo um mtodo para estabelecimento
Ve
rs
Neste Captulo
CAPTULO 9.
142
CRIPTOGRAFIA ASSIMTRICA
inseguro
privada a ser usada em suas comunicaes, sem que outros tenham acesso
chave. A comunicao subsequente poder se dar usando apenas esta chave, e
in
ar
B,
n, executam o protocolo .
A e B so guardadas em uma lista M .
k (que no includa na lista M ).
ambas conhecendo
b escolhido.
b = 1, k 0 = k .
acaso. Se
3. A lista de mensagens
4.
envia um bit
Se
b = 0, k 0
escolhida uniformemente ao
lim
2. Um bit aleatreo
e a chave
b0
k0
b = b0
Pr
e
5. O resultado do experimento um se
so enviadas ao adversrio
A.
linomial
negl
Pr[KE_EAV(, A, n) = 1]
tal que
1
+ negl(n).
2
Ve
rs
ordem
tal que
tem
n,
bits, e um gerador
de
de
G.
Construo 9.3 (Protocolo de Die e Hellman para estabelecimento de chaves). Dois participantes, A e B , estabelecem uma chave simtrica da seguinte
maneira:
usa
para obter
(G, q, g)
x R Zq
envia
escolhe
envia
recebe
e calcula
(G, q, g, h1 )
y R Zq
h2
para
h2
para
h1 = g x
e calcula
h2 = g y .
kB = hy1 .
kA = hx2 .
in
ar
como
kA
e B.
lim
kA = hx2 = (g y )x = g xy
kB = hy1 = (g x )y = g xy .
deve ter
Pr
e
gerador
G(1n ),
e um
denotamos
Ve
rs
DHg (a, b) = g ab .
O problema Die-Hellman
Hellman)
G.
consiste em calcular
G.
H algoritmos
o problema
G.
CAPTULO 9.
144
CRIPTOGRAFIA ASSIMTRICA
Se o problema Die-Hellman decisional difcil para G , o protocolo Die-Hellman (Construo 16.8) seguro de acordo com a Denio 9.9
quando o grupo G usado.
Teorema 9.5.
usado no experimento
G.
in
ar
Demonstrao.
por um algoritmo
KE_EAV
o adversrio recebe
(G, q, g, h1 , h2 , g xy ),
(G, q, g, h1 , h2 , k 0 ),
ou
sendo que
k0 ,
lim
No experimento
k0
Ve
rs
Pr
e
Pr KE_EAV(, A, n) = 1
1
1
= Pr KE_EAV(, A, n) = 1|b = 1 + Pr KE_EAV(, A, n) = 1|b = 0
2
2
1
1
x y xy
= Pr A(G, q, g, g , g , g ) = 1 + Pr A(G, q, g, g x , g y , g z ) = 0
2
2
1
1
x y xy
= Pr A(G, q, g, g , g , g ) = 1 + Pr 1 A(G, q, g, g x , g y , g z ) = 1
2
2
1 1
x y xy
= +
Pr A(G, q, g, g , g , g ) = 1 Pr A(G, q, g, g x , g y , g z ) = 1
2 2
1 1
+ Pr A(G, q, g, g x , g y , g xy ) = 1 Pr A(G, q, g, g x , g y , g z ) = 1 .
2 2
Como
gerador de
G, g z
uniformemente distribudo em
for
Zq .
G,
ento existe
negl
Pr A(G, q, g, g x , g y , g xy ) = 1 Pr A(G, q, g, g x , g y , g z ) = 1 negl(n).
Conclumos que
1 1
Pr KE_EAV(, A, n) = 1 + negl(n).
2 2
b = 0,
elemento aleatreo do grupo G, e no uma cadeia alea-
o adversrio recebe um
trea de bits.
145
o grupo
representado por
o primeiro bit igual
demonstrao, mas
G;
in
ar
guma representao dos elementos do grupo como cadeias de bits, que preserve
a distribuio uniforme.
9.3.1
Ataque de homem-no-meio
recebe a descrio
(G, q, g, h1 )
Zq , h3 = g z .
A
B escolhe y ,
h2 = g y .
h2
computa
(G, q, g, h3 )
e determina
impede que
recebe
e computa
kA = hx3 = g xz .
kA = hz1 = g xz .
h3
h2
e calcula
para
z R
B.
envia de volta
Pr
e
kB = hy3 = g yz
kB = hz2 = g yz .
vinda de
lim
homem-no-meio:
siga para
A,
e envia
h3
para
A.
outros protocolos.
Ve
rs
parmetro de segurana
CAPTULO 9.
146
Dec,
pk ,
1 que
um texto cifrado
uma mensagem
c.
m.
sk ,
in
ar
Enc,
CRIPTOGRAFIA ASSIMTRICA
Enquanto para criptossistemas simtricos o sigilo perfeito implica em problemas prticos, para os criptossistemas assimtricos o sigilo perfeito absolutamente impossvel.
lim
9.4.1
Gen
no cria apenas
mensagens.
(Gen0 , Samp, f )
td.
Pr
e
Gen
Ve
rs
Gen(1n )
2. O adversrio recebe
3.
pk
e acesso de orculo a
4. Um bit aleatreo
pk, sk .
m0 , m1 ,
escolhido e
mk
Decsk .
do mesmo tamanho.
encriptada com
Encsk
A.
5.
1 Mais
envia um bit
b0
Dec
e enviada a
9.6. ELGAMAL
147
6. O resultado do experimento um se
b = b0
tossistema de chave pblica
negl
in
ar
tal que
Pr[PUB_CCA(, A, n) = 1]
1
+ negl(n).
2
9.6 Elgamal
lim
Pr
e
chave
sk = hG, q, g, xi,
Ve
rs
Dec: dada a
Dec retorna
A funo
Dec
com ordem
e a mensagem
e o texto cifrado
m G,
c = hc1 , c2 i,
q,
com
escolha
a funo
c2
.
cx1
opera corretamente:
hy m
c2
=
cx1 (g y )x
(g x )y m
= xy
g
xy
g m
= xy
g
=m.
CAPTULO 9.
148
CRIPTOGRAFIA ASSIMTRICA
12
69
lim
h = 59
(6, 12):
Para decriptar
e portanto
in
ar
que
encriptao).
dois
fator de expanso
Pr
e
tem um
em M e C .
Ve
rs
N.
Gen:
Seja
N = pq .
A chave privada
sk
(p, q),
p, q
tais que
p, q 3 (mod 4).
pk N .
e a chave pblica
Dados primos
p, q
com
N = pq ,
y = x2 (mod N ), computar
N , mas difcil caso contrrio.
a raiz
De fato,
N.
149
(mod pq):
N = pq
podemos determinar
y (mod p)
in
ar
Calculamos
(1)
x r1
(mod p),
x r2
(2)
x r1
(mod p),
x r2
(3)
x r1
(mod p),
x r2
(4)
x r1
(mod p),
x r2
(mod q),
(mod q),
(mod q),
lim
(mod q).
7. Temos N = 21.
(mod 21) = 16.
Para encriptar
m = 11,
r1 =
Resolvemos o sistema
16
(mod 3) = 1
16
(mod 7) = 4.
Pr
e
r2 =
calculamos
(1)
x 1
(mod 3),
x4
(2)
x 1
(mod 3),
x 4
(3)
x1
(mod 3),
x4
(4)
x1
(mod 3),
x 4
(mod 7)
(mod 7)
(mod 7)
(mod 7).
p=3 e q =
112 (mod 21) = 121
Ve
rs
sem sua
x
N
). A reduo trivial: quebrar o Rabin
(mod N )
N contm toda a
(p, q): basta fatorarmos N .
algoritmo eciente para obter a
N.
CAPTULO 9.
150
1. O par de chaves
3.
pk
para
b escolhido
c Encsk (mb ).
4. Um bit
enviada a
6. Aenvia
7. Se
b0
b = b0
de volta
lim
5.
Gen(1n ).
A.
m0 , m1 ,
devolve
gerado por
in
ar
2. Envie
(pk, sk)
CRIPTOGRAFIA ASSIMTRICA
Denio 9.17 (Segurana contra ataque de texto cifrado conhecido para criptossistemas assimtricos). Um criptossistema de chave pblica = (Gen, Enc, Dec)
tem segurana contra ataque de texto cifrado conhecido se para todo adversrio
polinomial
negl()
Pr
e
Pr[PUB_EAV(A, , n) = 1]
tal que
1
+ negl(n).
2
Esta denio difere daquela semelhante para criptossistemas simtricos porque o adversrio recebe a chave pblica
pk .
pode encriptar
tossistema de chave pblica tem segurana CPA se tem segurana contra ataque
Ve
rs
9.8 RSA
O RSA provavelmente um dos criptossistemas mais conhecidos.
A funo de encriptao no RSA funciona em
ZN elevando a mensagem a
b (ou seja, c = mb (mod N )), e decriptar o processo contrrio:
b1
calculamos m = c
. Assim, temos dois expoentes: b pblico (para que todos
1
possam encriptar) e a = b
privado (para que apenas o destinatrio possa
um expoente
decriptar).
tenha um inverso,
9.8. RSA
151
ab 1
(mod (N ))
tal que
ab = k(N ) + 1.
b
in
ar
3
o grupo de unidades
ginal :
(m
(N ) k
) m
1 m
m
(N )
q.
O valor de
dois primos
(mod N )
(mod N )
(mod N )
(mod N ).
no RSA sempre
lim
(p 1)(q 1),
porque
o produto dos
Pr
e
Gen(1n ):
Ve
rs
O clculo de
5
pode ser feito usando o algoritmo estendido de Euclides .
ZN ,
2 Uma unidade
m
/ Zn \ ZN .
unidades formado pelas unidades do anel com sua operao multiplicativa. Veja a Denio B.77 no Apndice B.
ento
5O
CAPTULO 9.
152
CRIPTOGRAFIA ASSIMTRICA
no divisvel por 2
a = 71
1
=7
(mod (N ))
(mod 200) = 143.
Temos ento
pk = (N, b) = (303, 7)
sk = (N, a) = (303, 143)
53
(que pertence a
Z303 ),
fazemos
lim
Para encriptar
in
ar
Queremos
37,
Pr
e
problema RSA.
Sabemos que o RSA deve ser pelo menos to difcil quanto a fatorao de inteiros: se for possvel fatorar
calcular
e
Ve
rs
(N )
d = e1 (mod (N ))
e1 no so pblicos,
N,
e
y = xd (mod N )
(N ) = (p 1)(q 1),
9.8.1
Ataques ao RSA
Mdulo comum
Suponha que ao distribuir chaves para um grupo de pessoas usemos sempre o
mesmo mdulo
9.8. RSA
153
Ainda que se suponha que no grupo com estas chaves haja conana mtua
e que o fato de um conhecer as chaves privadas de todos os outros no seja um
problema, o mdulo comum permite que um adversrio
(b1 , N )
(b2 , N ):
c1 = mb1
b2
c2 = m
(mod N )
(mod N ).
in
ar
lim
Como
Se
m.
Por exemplo, se
Pr
e
b e m pequenos
9.8.2
b=5
Da mesma forma que tornamos cifras de uxo seguras inserindo nelas elementos
Ve
rs
Enc
Enc0
H.
escolhido aleatoreamente.
Observe que o algoritmo original usado pelo novo. A prxima gura ilustra o
algoritmo e deixa claro tambm que sua estrutura a de uma rede de Feistel,
para que possamos calcular a inversa ao decriptar a mensagem.
para
bits, e que
deve comprimir
bits em
bits
bits.
lim
de
CRIPTOGRAFIA ASSIMTRICA
in
ar
CAPTULO 9.
154
m G(r)
G(r))
H.
Pr
e
9.9 Goldwasser-Micali
Teorema 9.22.
Ve
rs
x x (mod p).
p|2 ou p|x.
x 6 x (mod p).
Consequentemente
mdulo
Suponha que
p.
Teorema 9.23.
Demonstrao.
Teorema 9.24.
9.9. GOLDWASSER-MICALI
Demonstrao.
155
a, b as razes quadradas de y mdulo p, e c, d as ray mdulo q . Pelo Teorema B.16, temos que y (mod p) y
(mod q) y (mod pq).
As razes de y mdulo p devem ser distintas das razes de y mdulo q , porque
p e q so primos.
Sejam
Jn+
contm os nmeros
x
n
x Zn
in
ar
zes quadradas de
tais que
= +1.
contm os elementos
do grupo de unidades Zn
n.
com smbolo
lim
Jn+
Observe que
Demonstrao.
Zp
Seja
conjunto
Zp ).
Pr
e
{ g 0 , g 1 , . . . , g p2 } .
{ g 0 , g 2 , . . . , g p3 , g 0 , g 2 , . . . , g p3 } .
Cada quadrado aparece duas vezes neste conjunto, e h nele metade dos elementos de
Zp .
Zq .
Demonstrao.
quadrticos em
(x|p) = +1,
(p 1)/2
(x|p) = 1,
(q 1)/2
(x|q) = +1,
(q 1)/2
(x|q) = 1.
Ve
rs
(p 1)/2
O smbolo de Jacobi
ou seja, quando
(x|pq)
(x|p)
ser um quando
(x|q)
x
x
= +1,
p
q
tiverem o mesmo sinal. Isso acontece exatamente
Zpq :
CAPTULO 9.
156
(x|pq) = 1;
de nmeros com
No so resduos quadrticos
in
ar
1/2
CRIPTOGRAFIA ASSIMTRICA
pq .
cos mdulo
x R Jn+ , a probabilidade de x
1/2. Como no se conhece algoritmo eciente para
sem a fatorao de n, se x de fato resduo quadrtico mdulo n,
lim
Denio 9.28 (Problema da residuosidade quadrtica). O problema da residuosidade quadrtica consiste em, dados
quadrtico mdulo
n.
n = pq
x Jn+ ,
se
resduo
Para qualquer algoritmo randomizado polinomial A, quaisquer primos p, q com k bits cada, x tal que (x|pq) = +1, qualquer polinmio
positivo p(), a probabilidade de A determinar corretamente se x resduo quadrtico mdulo pq desprezvel em k .
Pr
e
Conjectura 9.29.
(x|p)
(x|q)
q,
(x|pq)
Gen(1k ):
Ve
rs
lha tambm
com
tal que
A chave pblica
A chave privada
x
x
=
= 1.
p
q
(x, n).
(p, q).
sequncia de bits
calcule
ci = a2 xmi
Decp,q (c): o
cada bit ci ,
texto
(
0
mi =
1
se
se
ci
ci
resduo quadrtico
caso contrrio.
(mod n),
ci .
Para
9.9. GOLDWASSER-MICALI
157
Por se basear no problema do resduo quadrtico, no h a necessidade de
demonstrar segurana de bit (todo bit encriptado seguro, porque cada um
in
ar
que tange ao espao utilizado: cada bit do texto claro representado como um
nmero com
Teorema 9.31. A funo Enc no criptossitema de Goldwasser-Micali homomrca para multiplicao em C e soma em M.
Sejam
lim
Demonstrao.
c1 . Ento
Notas
Pr
e
O criptossistema RSA foi elaborado por Ronald Rivest, Adi Shamir e Len
Ve
rs
que outro criptossistema, semelhante ao RSA, j havia sido descoberto por James Ellis e Cliord Cocks em 1973:
uma mensagem for codicada com OAEP antes de ser encriptada com o RSA,
o resultado um criptossistema CCA-seguro.
7 Uma
CAPTULO 9.
158
CRIPTOGRAFIA ASSIMTRICA
in
ar
bastante interessante e instrutiva diferentes experimentos (chamados de jogos no artigo de Shoup) so propostos, cada um sendo uma pequena variante
do anterior.
lim
Exerccios
tal que
Pr
e
m Z(N ) \ Z(N ) ?
y resduo quadrtico mpq , as razes quadradas de y mdulo p e mdulo q devem ser distintas
porque p e q so primos. Mostre que isso verdade.
dulo
Ve
rs
in
ar
Captulo 10
lim
Assinaturas Digitais
ao vericador a chave usada (porque no queremos que ele tambm possa rotular
Pr
e
as mensagens).
assinatura)
no repdio:
o assinante no pode
Ve
rs
de trs funes
Gen(1n ) cria um par de chaves (pk, sk). Dizemos que pk a chave pblica
e que sk a chave secreta (ou privada). Ambas as chaves devem ter
tamanho no mnimo igual a n, e deve ser possvel determinar n apenas
inspecionando pk ou sk .
Signsk (m)
assinatura
assina a mensagem
usando a chave
sk ,
retornando uma
toda mensagem
n,
(pk, sk)
m,
gerado por
Gen(1n )
CAPTULO 10.
160
ASSINATURAS DIGITAIS
in
ar
10.1 Segurana
Assim como cdigos de autenticao de mensagens, as assinaturas digitais devem
ser consideradas seguras desde que no possam ser fraudadas. Essencialmente,
entendemos por fraude a obteno de assinatura sem acesso chave privada que
supostamente seria necessria para faz-lo (formalizaremos esta noo de dife-
Quanto aos pares de mensagem e assinatura aos quais o adversrio possa ter
acesso, identicamos trs casos:
lim
o adversrio conhece,
sagens, e poder ter acesso s suas assinaturas antes de tentar iniciar sua
fraude, mas as mensagens so determinadas antes do adversrio conhecer
Pr
e
tipos
de fraude:
Ve
rs
resistncia
nica assinatura:
usada para uma nica assinatura. Para gerar mais assinaturas, necessrio gerar um novo par de chaves;
Estes trs aspectos (com trs, dois e dois casos cada um) so independentes,
10.1. SEGURANA
10.1.1
161
Segurana RMA
mensagens
Gen(1 )
m1 , m2 , . . . , mk
so escolhidas uniformemente.
(pk, sk).
recebe
5.
retorna
pk
e todos os pares
(mi , i )
(m, ).
lim
4.
sk : i Signsk (mi ).
in
ar
{ m1 , m2 , . . . , mk }.
Pr
e
Vrfpk (m, ) = 1 e m
/
m1 , . . . , mk R M
(pk, sk) Gen(1n )
i Signsk (mi )
1n , pk,
(m1 , 1 , . . . , mk , k )
(m, )
Vrfpk (m, ) = 1
m
/ { m1 , m2 , . . . , mk }
Ve
rs
negl()
tal que
Pr[SIG_FORGE_RMA(, A, n) = 1] negl(n).
fortemente seguro
gens aleatreas.
CAPTULO 10.
162
10.1.2
ASSINATURAS DIGITAIS
Segurana KMA
in
ar
2.
Gen(1n )
recebe
1n
e escolhe um conjunto
(pk, sk).
recebe
pk
e as assinaturas
5. O adversrio retorna
sk : i Signsk (mi )
i .
(m, ).
de mensagens.
lim
4.
M = { m1 , . . . , mk }
Vrfpk (m, ) = 1 e m
/M
m ao orculo).
Pr
e
1n
(m1 , . . . , mk )
pk, (1 , . . . , k )
(m, )
Ve
rs
Vrfpk (m, ) = 1
m
/ { m1 , m2 , . . . , mk }
negl()
A existe uma
tal que
Pr[SIG_FORGE_KMA(, A, n) = 1] negl(n).
10.1. SEGURANA
163
fortemente seguro
in
ar
gens escolhidas.
Quando somente uma mensagem sorteada no incio do experimento, dizemos que o esquema para somente uma assinatura.
10.1.3
Segurana CMA
A denio mais forte que temos para segurana contra ataques adaptativos
com mensagens escolhidas.
1.
2.
Gen(1n )
A
recebe
pk
(pk, sk).
o conjunto de mensa-
o conjunto de pares
(mi , i ) de mensagens
e acesso de orculo a
Signsk ();
seja
3. O adversrio retorna
(m, ).
Pr
e
enviadas por
lim
Vrfpk (m, ) = 1 e m
/M
m ao orculo).
Ve
rs
ASign
1n , pk
M=
assinadas
pelo orculo
(m, )
Vrfpk (m, ) = 1
m
/M
negl()
existe uma
tal que
Pr[SIG_FORGE_CMA(, A, n) = 1] negl(n).
CAPTULO 10.
164
Se o Experimento
SIG_FORGE_CMA
ASSINATURAS DIGITAIS
mensagem
a partir do orculo),
fortemente seguro
in
ar
gem escolhida.
lim
10.1.4
Pr
e
quntico o de Lamport, onde cada chave usada para realizar uma nica
Gen(1n ):
Y,
uma funo
bits cada):
(que devem
xi,j R { 0, 1 } .
Ve
rs
Depois preencha
A chave privada
A chave pblica
Signsk (m):
aplicando
em cada elemento de
X:
yi,j f (xi,j ).
X , a matriz com os valores xi,j
Y , a matriz com os valores yi,j
interprete a mensagem
A assinatura
Vrfpk (m, )
1 i z , f (xi ) = yi,mi .
n = 3 e p(n) = n.
sk =
x1,0
x1,1
x2,0
x2,1
x3,0
x3,1
, pk =
y1,0
y1,1
y2,0
y2,1
y3,0
y3,1
.
10.3. RSA
Como
165
n = 3
Se
m = 5 (101
em
sk =
x2,0
x2,1
y1,0
y1,1
pk =
x3,0
x3,1
y3,0
y3,1
verica:
f (x1 ) = y1,1 ?
f (x2 ) = y2,0 ?
f (x3 ) = y3,1 ?
in
ar
x1,0
x1,1
Para qualquer funo f de mo nica, o esquema de assinaturas de Lamport um esquema de assinaturas seguro para uma nica assinatura.
lim
Teorema 10.10.
10.3 RSA
O RSA tem uma propriedade interessante:
encriptamos
com a chave
com a chave
pblica
Pr
e
privada.
Para assinar,
decriptamos
Gen
pk = (b, N )
sk = (a, N ).
Ve
rs
Vrfpk (m, ) = 1
m = b (mod N ).
Temos
N = 303
(m, )
p = 101, q = 3.
Escolhemos, como
deciframos com a
(mod 303) = 74 = m.
onde
74
chave pblica:
mostramos a seguir.
CAPTULO 10.
166
Fraude
ASSINATURAS DIGITAIS
pk = (b, N ) uma
ZN arbiSignpk (m) = , e o
Seja
trariamente
e calcular
m = b (mod N ).
in
ar
pode escolher nem a assinatura e nem a mensagem), ele torna o RSA inseguro
de acordo com a Denio 10.7. Alm disso, pode haver situaes prticas nas
quais este ataque represente um problema.
Fraude
lim
chave pblica e
(1 2 )b = (ma1 ma2 )b
ab
= mab
1 m2 = m1 m2 = m
Full-domain hash
Pr
e
10.3.1
(mod N ).
ao invs de
m Zp ,
full-domain
hash,
resumos criptogrcos
de mensagens.
O resultado o
Gen(1n )
Ve
rs
entrada e sada de
com
bits.
O algoritmo
Gen
Sign
em
bits, j que
Vrf.
Fraude #1:
tentar encontrar
tal que
H(m) = m .
m0 = b (mod N )
e depois
Se a funo de hashing
for
Fraude #2:
para obter
10.4. ELGAMAL
167
10.4 Elgamal
Elgamal descreveu no mesmo artigo um criptossistema e um esquema de assinaturas mas o esquema de assinaturas no apenas uma maneira diferente
in
ar
de usar o criptossistema (como no caso do RSA). Ele apenas tem como base o
pk =
hG, q, g, hi
sk = hG, q, g, xi,
onde
h = gx .
m ax + by
(mod (q)).
(10.1)
lim
gm
g ax+by
(mod q)
g ax g by
(mod q)
ha ab
(mod q).
(a, b)
Pr
e
acima, que esperamos s poder ser produzido ecientemente por algum de posse
x).
m ax + by (mod q 1).
Sendo
(a, b) tais
= gy
(mod q)
(m ax)y 1
(mod q 1).
gm
Ve
rs
com ordem
q,
com
= gy
b =
Devolva
(a, b).
(mod q)
(m ax)y 1
(mod q 1).
CAPTULO 10.
168
Vrf:
pk = hG, q, g, hi,
ASSINATURAS DIGITAIS
(a, b),
e a assinatura
retorne
um se e somente se
ha ab g m
DSA
in
ar
10.4.1
(mod q).
pelo NIST. As diferenas do Elgamal para o DSA podem ser resumidas em dois
pontos:
64
p,
lim
tamanho deve
512 l 1024,
ser 160 bits.
e
cujo
160
bits usado (o DSA foi proposto para ser usado com a funo
do Elgamal
(mod q).
Pr
e
b = (H(m) + ax)y 1
Gen():
160
representvel com
uma funo de
bits.
160
com ordem
e gerador
g,
sendo que
bits.
Escolha um subgrupo de
com ordem
q,
seja
Ve
rs
x R Zq
h g x (mod p)
A chave pblica
A chave privada
hG, q, g, hi.
hG, q, g, xi.
Devolva
Vrf:
(H(m) + ax)y 1
b =
(mod q).
(a, b).
pk = hG, q, g, hi,
e a assinatura
e = H(m)b1
(mod q)
f = ab1
(mod q).
(a, b),
e sejam
10.5.
(mod p)
(mod q).
in
ar
a = ge yf
10.5
Zp .
o de mo nica
lim
Notas
Pr
e
Neste texto seguimos a abordagem de Jonathan Katz [Kat10] para a classicao da segurana de esquemas de assinaturas.
O esquema de assinaturas de uma nica vez foi desenvolvido por Leslie Lamport, e descrito em um relatrio tcnico [Lam79].
full-domain hash.
Ve
rs
Exerccios
(a, 0)
280 operaes).
160
e publicados:
Em
251
227 .
CAPTULO 10.
170
ASSINATURAS DIGITAIS
in
ar
lim
Dado um criptossistema assimtrico qualquer, pode-se obter um esquema de assinaturas simplesmente mudando o papel as chaves pblica e privada: para assinar, basta encriptar com a chave privada e
para vericar basta decriptar com a chave pblica.
Ve
rs
Pr
e
tricos do Captulo 9.
Parte II
lim
in
ar
Ve
rs
Pr
e
Protocolos
171
Ve
rs
Pr
e
lim
in
ar
Pr
e
lim
in
ar
173
Ve
rs
Ve
rs
Pr
e
lim
in
ar
174
in
ar
Captulo 11
lim
Protocolos Para
Comprometimento
Pr
e
costumeiro denir interao entre participantes de um protocolo usando mquinas de Turing. Neste textoestes sistemas so denidos usando atores (algoritmos) conectados por portas de comunicao.
Um
ator
Ve
rs
nomes por
B.
A ligada porta
e vice-versa);
175
out
in
in
out
in
ar
CAPTULO 11.
176
atores
que
lim
o de
Pr
e
uma funo
acoplado a
11.2 Comprometimento
comprometer-se com um valor (ou mensagem) mas sem tornar este valor pblico.
Esta noo til na construo de outras primitivas e protocolos criptogrcos,
mas tambm til por si mesma.
Ve
rs
Comprometimento:
compromete com uma mensagem, mas sem revel-la. Alice envia ao outro
participante (Bob) um
certicado de comprometimento
mensagem.
Revelao:
que permite que Bob nalmente tenha acesso mensagem. Alice no deve
ser capaz de negar que se comprometeu, e nem de modicar a mensagem.
A propriedade de
11.2. COMPROMETIMENTO
A propriedade de
sigilo
177
Gen(1n ),
Gen, Commit
Commit.
o par
e toda chave
(c, d)
lim
Reveal:
in
ar
gerada por
Gen,
Pr
e
Informalmente, podemos dizer que um protocolo de comprometimento vinculante se nenhum adversrio pode obter dois comprometimentos iguais para
mensagens diferentes. Ser til, no entanto, denirmos variantes desta ideia: o
Ve
rs
desprezvel.
Gen(1n )
2. Envie
1n
k.
para o adversrio;
Commitk (m)
d, d
e o comprometimento
m, um
d0 .
m = Revealk (c, d)
c =
c.
comprometimento
m = Revealk (c, d ).
m 6= m0 , m, m0 6= ,
CAPTULO 11.
178
in
ar
1n
k Gen(1n )
m, m0 , d, d0 , c
m 6= m m, m 6= ,
m = Revealk (c, d),
m0 = Revealk (c, d0 ) 1
(i)
lim
adversrio polinomial
Pr[COMMIT_BIND(, A, n) = 1] negl(n);
estatisticamente vinculante se para qualquer adversrio A existe uma funo desprezvel negl() tal que
Pr
e
(ii)
Pr[COMMIT_BIND(, A, n) = 1] negl(n);
(iii)
perfeitamente vinculante
se para quaisquer
Pr[COMMIT_BIND(, A, n) = 1] = 0.
Ve
rs
Gen(1n )
2. Envie
3.
1n
k.
para o adversrio;
4. O desaante
m1
m2
de mesmo tamanho.
5.
calcula
6.
devolve um bit
b R {0, 1}.
e envia
para
A.
b0
7. O resultado do experimento um se
b = b0
11.2. COMPROMETIMENTO
179
in
ar
1n
k Gen(1n )
m1 , m2
b R { 0, 1 }
(c, d) Commitk (mb )
sigilo perfeito
Demonstrao.
existe uma
e todo
n,
1
.
2
e sigilo perfeito.
1
+ negl(n).
2
Pr[COMMIT_HIDE(, A, n)] =
Teorema 11.8.
tem
Pr
e
Pr[COMMIT_HIDE(, A, n)]
(ii)
adversrio polinomial
funo desprezvel
lim
b0
b = b0 1
b 6= b0 0
Ve
rs
tico, de outra forma o adversrio com tempo ilimitado poderia encontrar as duas
mensagens com o mesmo comprometimento. Isto contraria a denio de sigilo
perfeito.
uma
Gen(1n )
escolhe aleatoreamente
H s.
r R {0, 1}n .
c = H s (r||m)
tambm.
CAPTULO 11.
180
in
ar
verica se
c = gm .
Demonstrao.
lim
Presumindo a hiptese do logaritmo discreto, o protocolo descrito na Construo 11.12 tem sigilo computacional e vnculo perfeito.
Teorema 11.11.
gm ,
determinar a
na base
nico no grupo
Zn ,
Pr
e
poder trocar
Gen(1n ) escolhe aleatoreamente um primo p com n+1 bits tal que p = 2q+1
y R Zp .
Commitk (m):
escolha
Ve
rs
se
c = gr ym
retorne
m,
seno retorne
(um valor
necessrio que
m Zq .
Teorema 11.13.
putacional.
Demonstrao.
Como
mente distribudo em
sigilo perfeito.
(r0 , m0 )
tais que
m 6= m0
(r, m)
11.2. COMPROMETIMENTO
181
gr ym = gr ym
mas ento
g rr = y m m (mod p),
0
(mod p),
y = g (rr )(m m)
(mod q)
(mod p).
na base
in
ar
g.
Como
lim
gm
m.
Por outro lado, como este logaritmo nico, obtemos vinculao perfeita. Ao
mudar de
valores
Pr
e
Construo 11.14 (Protocolo de comprometimento com criptossistema assimtrico). Seja = (Gen, Enc, Dec) um criptossistema de chave pblica com
segurana CPA.
Gen(1n )
de
sk, pk .
Ve
rs
sk ,
e retorna
se
11.2.1
Comprometimento de bit
CAPTULO 11.
182
1.
Gen(1n )
escolha um inteiro
com tamanho
bits.
A distribuio dos
Commitk (b):
Alice escolhe
y R ZN ,
c
3.
c,
que no quadrado:
d = (x, y).
se
c = x2
x2 . Para
c = yx2 . Retorne
que um quadrado
in
ar
2.
retorne zero; se
c = yx2
O protocolo 11.16 perfeitamente vinculante e, sendo verdadeira a hiptese do resduo quadrtico, computacionalmente ocultante.
lim
Teorema 11.17.
Demonstrao.
Pr
e
11.2.2
N.
P provar
V , que dados dois geradores g1 , g2 de um grupo Gq e dois
a
a
elementos h1 , h2 Gq , existe um a tal que h1 = g1 e h2 = g2 (ou seja, que o
logg1 h1 = logg2 h2 (mod q)).
Esta Seo descreve um protocolo simples que permite a uma parte
para uma outra,
g1 , g2
geradores de um grupo
conhece
O provador
Gq ,
q primo, e sejam h1 , h2 Gq .
h1 = g1a e h2 = g2a .
com
tal que
a1 = g1w
escolhe
devolve
verica que
Ve
rs
w R Gq
e envia
c R Zq
a2 = g2w
para
para o vericador
V;
P;
r = w ac (mod q);
a1 = g1r hc1
a2 = g2r hc2 .
g1r hc1
g1wac hc1
g1wac (g1a )c
g1wac g1ac
g1w = a1 .
11.2. COMPROMETIMENTO
11.2.3
183
Cara-ou-coroa
Uma aplicao imediata de protocolos de comprometimento o jogo de caraou-coroa por telefone. Se Alice e Bob precisam jogar uma moeda para decidir
ciar a deciso, podem faz-lo da seguinte maneira:
1. Alice compromete-se com um bit
cA
para Bob;
cB
in
ar
aleatoreamente entre duas opes, garantindo que nenhum deles possa inuen-
bB R {0, 1}
e envia o compro-
para Alice;
bA bB .
bB );
lim
Pr
e
Notas
Exerccios
diferentes?
Ve
rs
Gen
memente distribudo em
CAPTULO 11.
Ve
rs
Pr
e
lim
in
ar
184
in
ar
Captulo 12
lim
Compartilhamento de
Segredos
Pr
e
segredo fosse compartilhado entre vrias pessoas, e que fosse revelado apenas
quando um subconjunto autorizado dos participantes decidisse faz-lo. O foco
deste Captulo so protocolos para realizar este objetivo. Estes protocolos so
chamados de
Quando h
gredo de
revelao do se-
compartilhamento de segredos.
(k, t)
de
Ve
rs
qualicantes.
sobre P .
um conjunto de participantes.
qualicantes
no
estrutura de acesso
uma coleo
de subconjuntos de
185
estrutura montona.
tal que
CAPTULO 12.
186
COMPARTILHAMENTO DE SEGREDOS
A ;
Se
X X 0 ,
ento
X 0 .
in
ar
sobre
uma es-
de participantes. Um esquema
um par de algoritmos:
acesso
uma partilha
lim
Combine
deve retornar
s.
Pr
e
Os primeiros esquemas de compartilhamento de segredos foram propostos independentemente em 1979 por Adi Shamir [Sha79] e George Blakley [Bla79], e no
n participantes,
qualquer qurum (ou limiar) de k n possa obter o segredo (estes so chamados
de esquemas (k, n) de compartilhamento).
usam estruturas de acesso. So denidos de forma que dentre
Esquema de Shamir
12.1.1
Duas observaes muito simples formam a base do esquema de compartilhamento de segredos de Shamir:
Ve
rs
n+1
Gere um polinmio
p()
de grau
Quando
t+1
s.
(x, p(x)).
187
No entanto, esta ideia foi descrita para polinmios sobre corpos innitos.
O esquema de compartilhamento de Shamir adapta este mtodo para corpos
nitos.
in
ar
Sejam n + 1 pontos (xi , yi ), todos distintos. O (nico) polinmio de grau n passando por todos os pontos tal que seu valor em x pode ser
calculado da seguinte forma:
Teorema 12.4.
lj (x)
n
X
yj lj (x)
j=0
n
Y
k=0;k6=j
Demonstrao.
x xk
.
xj xk
Pr
e
lk (x) =
n.
lim
l(x)
= 1;
j 6= k ,
1.
(xj xj )
o fator
estar no nume-
Ve
rs
Como todos os
lk (x)
Pn (x) =
n
X
n:
k=0
so de grau
e Para os pontos
x0 , x1 , . . . xn ,
teremos
portanto
Pn (xi ) = f (xi )l0 (xi ) + + f (xi )li (xi ) + + f (xi )ln (xi )
E o polinmio
1 Para
zero.
Pn
coincidir com os
xi
n+1
pontos
dados inicialmente,
xi .
lk (x)
no necessariamente um nem
CAPTULO 12.
188
COMPARTILHAMENTO DE SEGREDOS
No contexto do esquema de Shamir, estamos interessados no coeciente constante do polinmio. Temos ento
yj rj
in
ar
l(0)
n
X
j=0
rj
n
Y
= lj (0) =
k=0;k6=j
O vetor
(r1 , r2 , . . . , rn )
chamado de
xk
.
xk xj
vetor de recombinao.
um segredo,
Share(s):
o qurum e
identicado com
participantes:
xi Fq .
k coecientes a1 , . . . , ak1 .
p(x) = s + a1 x + a2 x + . . . + ak1 x.
2. Escolha uniformemente
recebe
Pr
e
3. Cada participante
(portanto
Fq
to total de participantes.
1. Cada participante
mio
lim
um corpo,
e seja
o ponto
o polin-
(xi , p(xi ))
pontos so distribudos).
k1 chaves a pro-
uniforme; mnimo,
n;
Ve
rs
12.1.2
Esquema de Blakley
dimenses,
n1
dimenses.
12.2. SEGURANA
Share(s) :
189
dimenses.
participantes, codique o
De a cada participante um
in
ar
Combine(H) : n
12.2 Segurana
No
lim
12.2.1
Sigilo
Pr
e
um
Dizemos
Pr(s) = Pr(s|H 0 )
H0
/ .
para qualquer
Teorema 12.8.
Ve
rs
1
1
< m.
ntk
n
t 1 partilhas a
probabilidade
1/n.
Teorema 12.9.
sigilo perfeito.
CAPTULO 12.
190
COMPARTILHAMENTO DE SEGREDOS
in
ar
necessrio.
v,
o Vice-presidente;
c,
o Presidente do Congresso;
d,
o Ministro da Defesa.
lim
p,
Pr
e
{p, d}, {p, c}, {v, c, d}, {p, d, c},
{p, d, v}, {p, v, c}, {p, v, c, d}
Note que tivemos que listar mais conjuntos do que havamos especicado (por
exemplo,
{p, d, c} s
X em
Ve
rs
outro, tambm em
{p, d} ).
qualicantes minimais:
= {p, d}, {p, c}, {v, c, d}
= (p d) (p c) (v c d).
191
uma estrutura de
in
ar
(v1 v2 ) v3
tem posies
1, 2
3.
Seja
o nmero de
Combine(H):
lim
Share(s, ): Gere aleatoreamente valores si R {0, 1}n tais que para cada
clusula (vi . . . vj ), si . . . sj = s. Um participante recebe si se sua
varivel estiver na i-sima posio, e portanto Share retorna um conjunto
de valores si para cada participante.
qualquer um dos conjuntos qualicantes pode revelar
ob-
(vi , . . . , vk ),
si , . . . , sk
seja igual a
s.
Pr
e
sula
s = s1 s2
= s3 s4
= s5 s6 s7 .
sp = (s1 , s3 )
sd = (s2 , s7 )
Ve
rs
sc = (s4 , s6 )
sv = s5 .
s1 = 1100
s2 = 1010
s3 = 1110
s4 = 1000
s5 = 1111
s6 = 0010
s7 = 1011
CAPTULO 12.
192
COMPARTILHAMENTO DE SEGREDOS
As partilhas so
p, c
se renem e calculam
in
ar
v, c, d
s:
Teorema 12.13.
Demonstrao.
lim
s.
sk .
Este valor
Se foi escolhido
sk
Pr
e
de uma conjuno):
s.
sk = si sj s
Seja ento
s = si sj .
Evidentemente
s0
s.
Ao fazer
s s0
com
a partir de
sk ,
ou seja,
Pr(s|sk ) = Pr(s).
si , ..., sk .
Ve
rs
igual
ao do segredo).
(xi , yi )
mas sim algum outro valor. No h como saber quem agiu desonestamente, e
nem como recuperar o valor original sem mais participantes.
193
SecVrf,
in
ar
que pode ser executado por cada participante a m de vericar se sua partilha
est correta ou seja, se o distribuidor entregou-lhe uma partilha que de fato
sua partilha.
lim
Pr
e
Gen(1n ):
gere um grupo
Share(s):
de ordem
1n
com gerador
g,
onde
primo.
S = a0 :
Ve
rs
Escolhe-se um elemento
Calcule uma lista
Pi
recebe os pontos
a(i)
b(i).
h R G \ { 1 }
C = (C0 , C1 , C2 , . . . , Ct1 ),
tal que
ai bi
Ci = g h .
Esta lista contm um comprometimento para as partilhas de cada participante, usando o esquema de comprometimento de Pedersen (o valor
comprometido
ai ,
bi
3O
cada participante
t1
Y
(ij )
Cj
Pi
verica se
= g a(i) hb(i) .
j=0
CAPTULO 12.
194
(O ndice
COMPARTILHAMENTO DE SEGREDOS
Pi ,
do participante
e o ndice
participantes)
H de
a se d da mesma forma como no esquema de Shamir.
pontos do polinmio
in
ar
Combine(H):
substituir os valores de
t1
Y
(ij )
Cj
= g a0 hb0
(i0 )
g a1 hb1
(i1 )
g a2 hb2
j=0
2
=g
a(i) b(i)
lim
= g a0 +a1 i+a2 i
(i2 )
Pr
e
Teorema 12.16.
Pr [S = s|V, C] = Pr [S = s] .
de
t1
participantes. Cada
comprometimentos
g ai hbi .
Os comprometimentos no oferecem informao, porque o esquema de comprometimento usado o de Pedersen. Os pares de pontos
(a(i), b(i))
tambm
Shamir.
Ve
rs
195
mesmo que no seja uma das participantes (ou seja, mesmo que no tenha recebido uma partilha), a m de vericar se as partilhas esto corretas.
in
ar
xi R Zq
Share(s):
h.
com
yi = hxi .
p(x) =
t1
X
s no seja escolhido
Zq uniformemente.
importante que
q,
Zq :
Pr
e
s = a0 .
de ordem
aj xj ,
j=0
e determine que
lim
Gen(1n ):
0j<t
e inserido
o comprometimento
Cj = g aj
e as partilhas
p(i)
p(i)
Yi = yi
Cj
Ve
rs
Usando os valores
o i < N:
Xi =
t1
Y
Cji .
j=0
Xi = g p(i)
p(i)
Yi = yi
wi R Zq
a1i g wi
a2i yiwi
CAPTULO 12.
196
COMPARTILHAMENTO DE SEGREDOS
ri = wi p(i)c
c no aleatreo, mas calculado usando as informaes
i
[(a1i , a2i ), c, ri ] .
Combine:
in
ar
yi = g
xi
p(i)
Si = hi
calculando
p(i)
1/xi
= Yi
lim
Si = hi
Si ,
o segredo
S = hs
obtido usando
t
Y
i=1
Sii =
t
Y
hp(i)
i=1
Pt
=h
p(i)i
Pr
e
i=1
= hp(0) = hs ,
onde
o coeciente de Lagrange:
i =
Y
i6=j
SecVrf:
j
.
ji
Ve
rs
putar
usando os valores
Xi =
t1
Y
Cii
j=0
Ci
A1i = g ri Xic
A2i = yiri Yic
e vericar que
SecVrf
SecVrf,
Se Xi = g p(i) e Yi = yi
ritmo SecVrf sero de fato idnticos.
Teorema 12.19.
197
lim
Teorema 12.20.
in
ar
Pr
e
Lema 12.21.
Ve
rs
a0
xa = (g a ) = g aa
b0
0
0
y b = g b = g bb ,
A.
Mas
e conseguimos calcular
g ab .
o valor
z 0 = g aa bb
g ab = (z 0 ) a0 b0
CAPTULO 12.
198
COMPARTILHAMENTO DE SEGREDOS
Demonstrao.
tente, e os Xi
in
ar
ij
j Cj por isso as partilhas so
consistentes com o segredo. Dado o Lema 12.21 e o fato do esquema de Chaum-
Cj
so obtidos dos
como
Segredos no aleatreos
lim
12.5.1
hs ,
sendo
aleatreo).
aps executar
Combine
Zq .
Pr
e
compartilhar seja
Share,
a obteno de
publique
Ve
rs
diversos participantes, mas de tal forma que que um qurum mnimo possa
decifrar mensagens sem revelar a chave secreta.
Cada participante
Pi
do conjunto
si
da chave (o
hi = g si .
t+1
participantes.
Temos ento
s=
si P,i
P,i =
lP \{ i }
(q, g, h),
t+1
l
.
li
h = gs .
(a, b) = (g k hk m)
com
chave privada,
12.7. NOTAS
Cada
Pi
199
publica
zi = xsi ,
logg hi = logx zi .
in
ar
O texto claro
b
s
xP
s
x =x i si P,i
Y P,i
=
zi .
m=
i
Os participantes
podem
lim
12.7 Notas
Pr
e
Aquele esquema j era publicamente vericvel. Outro esquema de compartilhamento de segredos com vericao foi descrito por Rabin e Ben-Or [M B89].
O esquema de Pedersen foi descrito em um artigo em 1992 [Ped92]. Markus Sta-
Ve
rs
y = g (h
x.
posta pela primeira vez por Pedersen em 1991 [Ped91], modicada de vrias
formas. O trabalho de 1999 realizado por Rosario Gennaro, stanislaw Jarecki,
Hugo Krawczyk e tal Rabin [Gen+99] aperfeioa a ida, exibindo um mtodo
com demonstrao de segurana.
CAPTULO 12.
200
COMPARTILHAMENTO DE SEGREDOS
12.8 Exerccios
Ex. 99 Demonstre o Teorema 12.9.
in
ar
Ex. 100 Suponha que o esquema de compartilhamento de segredos de Shamir usado para manter uma chave secreta (usada para encriptar um testa-
n e o qurum mnimo k .
k pessoas decidiram revelar a chave, constataram que o segredo revelado
Mostre como determinar o valor correto da chave secreta usando dois tipos de
si , ..., sk .
Complete a demonstrao
lim
Pr
e
Ve
rs
in
ar
Captulo 13
lim
Pr
e
Peggy pode executar sem limite de tempo, mas as mensagens que enviar
Ve
rs
cador
aceite a prova:
veri-
caso contrrio.
se
1 Linguagens
201
(P, V )
um
executa em tempo
CAPTULO 13.
i)
Completude:
para todo
x L,
Pr[hP, V i(x) = 1]
ii)
Consistncia:
para todo
y
/ L,
Pr[hA, V i(y) = 1]
Da mesma forma que na descrio da classe
1/3
1
.
3
IP ).
A classe
IP
arbitrria.
lim
2
3
in
ar
202
Teorema 13.3.
IP , N P
PSPACE .
N P IP = PSPACE .
Pr
e
convena um vericador de algo, mas sem que o vericador ganhe qualquer informao que possa ser usada posteriormente. Por exemplo, se Peggy se apresenta
para Victor como policial disfarada e envia a ele uma cpia de suas credenciais, Victor passa a ter um documento que pode usar para mostrar a outros que
Peggy policial. Se, ao invs disso, Peggy puder
convencer
algo que Victor no pudesse ter obtido sozinho, ela ter se protegido e dizemos
de conhecimento zero
(porque Victor no
Ve
rs
simples: ao invs de um usurio enviar uma senha cada vez que usa um servio
em algum sistema, ele
prova
Com isso
rao com
P,
o vericador
(P, V ).
Durante a inte-
de conhecimento zero se
P.
P seja de conhecimento zero, ento para
todo vericador V 0 , e para toda entrada x, existe algum algoritmo polinomial M
0
que simule a interao de V com P , produzindo os mesmos resultados para as
mesmas entradas, mas sem acesso a P . Admitimos que M (x) falhe com baixa
0
probabilidade em produzir a mesma sada que hP, V i(x)
gerado, sem a participao do provador
Mais detalhadamente, para que
2 Veja
203
i)
existe
1/2,
in
ar
V0
polinomial
LHA.
ii)
Seja
(P, V ) um sistema
(P, V ) de conhecimento zero perfeito se para
0
todo ator polinomial V existe um algoritmo polinomial M tal que para toda
entrada x, as distribuies M (x) e hP, V i(x) so computacionalmente indistinguveis.
lim
(P, V ) um sistema de
de conhecimento zero perfeito se para
0
todo ator polinomial V existe um algoritmo polinomial M tal que para toda
entrada x, as distribuies M (x) e hP, V i(x) so estatisticamente indistinguveis.
13.2.1
(P, V )
Pr
e
Isomorsmo de grafo
(V2 , E2 )
G1 = (V1 , E1 ) e G2 =
G1 e G2
so isomorfos.
NP
(o Exerccio 106
pede a demonstrao).
ISOMORFISMO-DE-GRAFO est em N P .
Ve
rs
Proposio 13.8.
P.
Suponha que Peggy quer poder provar que detm um determinado segredo,
fase de inicializao:
1. Um grafo
G1
gerado aleatoriamente.
3. O grafo
3 Denimos
G2 = ((V1 ), E1 )
calculado.
dos vrtices de
G1 .
CAPTULO 13.
204
4. Publica-se
A permutao
G1, G2
(mas no
).
2. Peggy Calcula
H = (G2 )
e envia
R Sn
k R {1, 2},
se
se
k=1
k=2
Gk
em
H.
lim
Gk
n = |V1 |).
para Victor.
(onde
in
ar
H.
Se
G1 .
Peggy tem
no tem
nem ; ele tem os trs grafos e uma permutao , que transforma G1 em H .
P
V
e tem tambm
GO 1
G2 o
Pr
e
a permutao
/H
G2 ,
receber apenas
G1 g
'
G2
nem
Aps a execuo do protocolo, Victor no tem nada que no pudesse computar sozinho: ele tem
poderia ter gerado
e uma permutao
que transforma
Gb
em
(ele
Ve
rs
Exemplo 13.10. Damos agora um exemplo, que ser til para a compreenso
do aspecto de conhecimento zero do protocolo.
Neste exemplo, o segredo e os grafos so pequenos, mas em exemplos prticos
padding.
14523.
a
e
14523,
uma permutao:
a
c
(1, 4, 5, 2, 3)
in
ar
O segredo,
205
dada a Peggy.
Embora tenhamos mostrados a representao visual dos grafos, na prtica apenas as listas de arestas seriam publicadas.
lim
Agora Peggy precisa provar para Victor que conhece o segredo. Ela escolhe
aleatoriamente uma permutao de cinco elementos:
(G2 ):
= (3, 2, 4, 5, 1),
e calcula
a 7 e, b 7 c, c 7 a, d 7 d, e 7 b
O grafo resultante,
H,
Pr
e
b
Peggy envia o grafo
para Victor.
o ndice
1.
G1
isomorfo a
H.
para Victor:
Ve
rs
morsmo
G1 ,
(5, 4, 2, 3, 1)
G1
ele obtm
H,
aceita a prova.
P V :H
V P :1
P V :
G2
G1
ele poderia facilmente t-la gerado sozinho: bastaria criar uma permutao dos
vrtices de
G1
e anotar
H, 1
e a permutao.
CAPTULO 13.
206
):
one-time-pad.
in
ar
com o
A Construo 13.9 um sistema de prova interativa de conhecimento zero perfeito para a linguagem dos pares de grafos isomorfos.
Teorema 13.11.
G1
G2
H isomorfo a
G2 , Peggy pode enviar-lhe
escolhe G1 , no existe permutao
lim
Consistncia:
H,
escolhe
que Peggy possa enviar, e Victor rejeita a prova (sua sada ser igual a zero).
A probabilidade de Victor aceitar a prova quando os grafos no so isomorfos
uma interao.
simulador
Pr
e
no mximo 1/2.
Conhecimento zero:
S(G1 , G2 ):
b0 R { 0, 1 } // tenta adivinhar a escolha de V 0
permutao aleatrea dos vrtices de Gb
H = (Gb )
b R { 0, 1 } // escolha de V 0
se b 6= b0 reinicie
escreva (H, b, )
-protocolos
Ve
rs
13.3
V,
2.
V.
de bits para
c;
um desao);
3.
para
V,
207
d
s
Denio 13.12 (-protocolo). Seja
zero para uma linguagem
palavras,
in
ar
B ).
(a, b)
um
(em outras
-protocolo
lim
Completude:
fato conhece
ii)
iii)
se P e V seguem o protocolo
(x, y) L), V sempre aceita.
de
Pr
e
i)
O protocolo de conheci-
mento zero para vericador honesto. Como a nica coisa que o vericador
faz escolher o desao, um vericador honesto aquele que escolhe
distribuio uniforme.
d com
1/|D|,
onde
o conjunto de
Ve
rs
possveis desaos.
-protocolos.
13.4.1
esquemas de identicao.
inicializao:
CAPTULO 13.
1. Uma autoridade
N = pq .
Os fatores
1 s N 1,
(mod N )
e publica
v.
no so divulgados.
s,
seguir.
r R {1, . . . , N 1},
x = r2 (mod N ),
calcula
para Victor.
2. Victor escolhe um bit
b R { 0, 1 }
y = rsb (mod N )
e envia
e envia
ou
e envia
para Peggy.
para Victor.
lim
3. Peggy calcula
v = s2
1. Peggy escolhe
calcula
in
ar
208
rs.
y 0 (mod N )
y 2 xv b (mod N ).
Demonstrao.
Completude:
Pr
e
nhecimento zero.
Victor verica se
y 2 = xcb (mod N ).
E realmente,
Consistncia:
possibilidades:
mesmo escolheu
acerto
Ve
rs
0.
e pode enviar
r(s0 ) = r
de volta. A probabilidade de
1.
y = rs1
1.
1.
quadradas mdulo
N.
1/2 + negl(N ).
vezes, a probabilidade de
Conhecimento Zero:
Corolrio 13.15.
protocolo.
Demonstrao.
13.4.2
x = r2 ,
mas com
r.
Protocolo de Schnorr
y,
Resta
b = 0 e b0 = 1 fcil
in
ar
resposta).
209
z Zq .
Fase de inicializao:
Dois primos so
g,
tais que
q|p 1
t,
Dene-se
so escolhidos aleatoriamente.
Zp ,
escolhido.
um parmetro de segurana.
v = g z (mod p),
P.
que igual a
g qz (mod p).
Pr
e
lim
a = gk
para V.
V: envia
r R { 1, . . . , 2t }
para P.
P: envia
c = k + zr (mod q)
V aceita se e somente se
P:
k R Zq .
Envia
para V.
a g c v r (mod p).
Ve
rs
Teorema 13.17.
Demonstrao.
e conhecimento zero.
Completude:
trivial. Temos
e portanto a probabilidade de
Consistncia:
suponha que
a = gc vr
= g k+zr ur
= g k+zr (g z )r
= g k+zr g zr
= gk ,
V aceitar uma prova correta 1.
P no tenha z e tente convencer V
do contrrio.
CAPTULO 13.
210
k0 .
Fixe
2)
a0 = g k v r
3)
Envie
3)
Receba
4)
Se
para
r (antes
V.
r.
riamente
em
A probabilidade de
para
V.
Zp .
t
Zp :
Conhecimento zero:
lim
1
+ negl(|p|).
2t
x
a de adivinhar corretamente
o valor correto em
k0
V ).
in
ar
1)
mostramos um simulador
Pr
e
S(v):
k R Zp
r R { 1, . . . , 2t }
c g c v r (mod p)
escreva g k ; r; c
V,
O simulador pode executar em tempo polinomial, e as distribuies dos elementos na transcrio so as mesmas que aquelas em uma execuo
hP, V i(v).
No
2t
Ve
rs
Corolrio 13.18.
-protocolo
dade que assinar mensagens inclui em sua chave pblica uma funo de hash
h.
h.
-protocolo.
in
ar
interao do
lim
Notas
Provas de conhecimento zero foram propostas por Sha Goldwasser, Silvio Micali e Charles Racko em 1985 [GMR85; GMR89].
Pr
e
A Figura a
Ve
rs
IP PSPACE
CAPTULO 13.
212
in
ar
PSPACE IP , conceitualmente simples, mas envolve diversos detalhes tcnicos. De maneira resumida, o problema QSAT est em PSPACE , portanto basta
mostrar que est tambm em IP . Uma demonstrao de que IP = PSPACE
tambm pode ser encontrada no livro de Michael Sipser [Sip07].
-protocolos
porque sig
lem-
-protocolo
lim
Pr
e
Exerccios
Ex. 105 Porque no modelo computacional apresentado neste Captulo dissemos que
diferentes?
NP
Ve
rs
interativa.
in
ar
Captulo 14
lim
Pr
e
1/2.
quadrticos.
Ve
rs
k.
grandes e calcula
N = pq .
c.
A fatorao de
e com uma
deve permitir
decriptar a mensagem.
3. Alice envia
N, c
4. Bob escolhe
para Bob.
x R ZN
e envia
y = x2 (mod N )
para Alice.
y (que so x, x, y, y ). Ela
p e q . Alice ento escolhe uma das
c em m.
c.
diferentes de x
213
x foi escolhido
Alice no sabe qual dos quatro valores x.
O protocolo obviamente funciona usando o RSA para encriptao, mas tamhiptese da fatorao de inteiros.
in
ar
1/2
Notas
lim
A demonstrao de que
Ve
rs
Pr
e
Captulo 15
lim
in
ar
Este Captulo traz uma exposio bsica de protocolos com muitos participantes
onde existe a necessidade de sigilo e no h conana mtua entre as partes.
Pi
conhece um valor
Pr
e
Cada participante
f (x1 , x2 , . . . , xn )
Quando construmos protocolos com mltiplos participantes, h diversos aspectos que levamos em considerao.
Estratgia de corrupo:
Ve
rs
dizemos que um
adversrio
semi-honesto se ele segue a especicao do protocolo, mas obtm informao qual no teria direito atravs da manipulao dos participantes
corrompidos. Um adversrio malicioso se poder desviar-se arbitrariamente do protocolo;
Complexidade:
Comunicao:
podemos usar o
cenrio criptogrco,
em que presumimos
que toda a comunicao entre os participantes pblica, e que consequentemente o sigilo deve ser garantido por mecanismos criptogrcos, ou o
215
in
ar
muitos participantes.
lim
tempo.
Pr
e
Fq ,
xi .
f (x0 , x1 , . . .)
denida
Escolhemos realizar as
P 1 , P2
P3 ,
cipantes,
x1 , x2 , x3 .
Ve
rs
f (x1 , x2 , x3 ) = x1 x2 + x3
(mod q).
A Figura a seguir mostra a funo como um circuito envolvendo somas e multiplicaes. A varivel
x1
x4
x2
x1 x2 .
x4
x3
f (x1 , x2 , x3 )
Pi
enviada de
Pi
para
Pj
por
xji .
1 Information-theoretic scenario ,
xi
para os outros.
em Ingls.
Denotamos apartilha
217
in
ar
S 0 = x + yS
as partilhas so
lim
s0i = x + ysi .
Adio
y = 0.
Pr
e
basta tomar
seguir.
S0.
Pi
f (i)
g(i),
f (x)
= a + a1 x + a2 x2 + + ak xk
g(x)
= b + b1 x + b2 x2 + + bk xk .
h(x)
= f (x) + g(x)
Ve
rs
onde
h(i)
a partilha de
Multiplicao
Pi
Pi
S + S0.
pante
b(i).
x=0
m(i)
M
ou
do
(a
no enunciado do Teo-
m(i) = Ab(i).
A, B
c(i) = a(i)b(i)
c(i)
Pi
in
ar
O valor
Aps comput-lo,
Pj
Pj
o valor
ci (j)2 .
ento calcula
m(j) =
ri ci (j),
ri
o vetor de recombinao .
Teorema 15.2.
correto, ou seja,
com
lim
onde
c(i)
m(i)ri = AB.
Pr
e
15.3 Segurana
h participan-
ambiente .
Pi .
Pi corrompido,
as aes de
Pi ,
Pi
Ve
rs
protocolo
em um ambiente
Pi
executando um
Z;
por uma
F.
colo no mundo real obtero o mesmo resultado que esta funcionalidade perfeita
em um mundo ideal desde que haja participantes honestos em quantidade
suciente.
Z,
Pi ,
187.
15.3. SEGURANA
219
P1
A
P3
in
ar
P2
F,
que incorrompvel e
S,
Tam-
5
cham-los de participantes vazios ) ou entre
4 entre
(poderamos
lim
S.
P1
P2
Pr
e
P3
A),
uma execuo no mundo real e outra no mundo ideal. Deve existir ento um
simulador
que substitua
A.
i)
Ve
rs
ii)
iii)
Quando um participante
Pi
F imediatamente
Pi , e envia todo o histrico de mensagens
S possa a partir de ento simular para Z o
se corrompe, a funcionalidade
Pi
para
S,
de maneira que
comportamento de
Pi .
de segurana
4 H
k,
5 Ou
existe um simulador
Z.
e toda entrada
in
ar
que se o protocolo no for seguido de maneira a gerar os resultados que espeAssim, se o ambiente (e consequentemente o
lim
conveniente, e nota-se facilmente que para o objetivo de demonstrar a segurana do protocolo no faz diferena se o participante age por conta
prpria ou seguindo instrues deste adversrio abstrato.
Presumimos que h uma entidade incorruptvel intermediando as mensagens, de acordo com a especicao do protocolo.
A demonstrao nos
Pr
e
Di-
Ve
rs
Os
dada por Yehuda Lindell no livro que teve origem em sua tese [Lin03].
A primeira aplicao em larga escala de computao segura com mltiplos
15.6. EXERCCIOS
221
15.6 Exerccios
Ex. 111 Prove o Teorema 15.1.
in
ar
Ve
rs
Pr
e
lim
Ve
rs
Pr
e
lim
in
ar
lim
in
ar
Parte III
Ve
rs
Pr
e
Outros Tpicos
223
Ve
rs
Pr
e
lim
in
ar
Pr
e
lim
in
ar
225
Ve
rs
Ve
rs
Pr
e
lim
in
ar
226
in
ar
Captulo 16
lim
Curvas Elpticas
(Este Captulo um esboo)
Denio 16.1 (Curva Algbrica Plana). Uma curva algbrica plana o lugar
Pr
e
f (x, y) = 0,
sendo
(x, y)
um polinmio.
(x a)2 + (y b)2 = r2 ,
onde
(xa)2 +(y b)2 = 0 (nem sempre uma curva algbrica corresponde ao conceito
intuitivo de curva uma curva algbrica conjunto de pontos, sem restries
Ve
rs
onde
A, B, . . . , F
so constantes pertencentes a
Quando o corpo
F.
x0
y0
1 Curvas
x 3A2 12C
36
y 3Ax A3 + 4AC B
216
24
elpticas no tem relao direta com o objeto geomtrico elipse. O nome curva
elptica vem de sua relao com integrais elpticas, usadas no clculo de comprimento de arco
em elipses.
227
CAPTULO 16.
228
CURVAS ELPTICAS
A0
B0
so constantes pertencentes a
F.
Pr
e
onde
lim
y 02 = x03 + A0 x + B 0 ,
Ve
rs
in
ar
y 2 = x3 2x+2 e y 2 = x3 2x
Ve
rs
Pr
e
lim
in
ar
229
CAPTULO 16.
230
CURVAS ELPTICAS
an xn + an1 xn1 + + a0
a2n2
n
com razes
r1 , r2 , . . . rn
(ri rj )2 .
i<j
in
ar
linmio
mais til, porque permite inferir fatos sobre as razes sem a necessidade de
calcul-las.
lim
so
Pr
e
n
Demonstrao.
zero, o discriminante ser zero se e somente
Q Como a no
2
o produtrio
(r
r
)
for
zero. Este produtrio por sua vez ser zero
j
i<j i
se
se
e somente se um dos fatores for igual a zero. Isto o mesmo que dizer que h
duas razes
ri
rj
ri rj = 0,
tais que
ou
ri = rj .
A curva a seguir
Nas prximas Sees usaremos tangentes e cordas para construir grupos com
Ve
rs
R.
Podemos transform-la em um
+,
O elemento identidade
F 2,
determi-
nando que qualquer reta vertical o encontra no innito (nos dois sentidos!) .
Para somar dois pontos
2 H
projetivo para quaisquer dimenses, contendo um ponto no innito para cada direo que
uma reta possa ter. O leitor interessado poder consultar a literatura sobre espaos projetivos
(veja as notas ao nal do Captulo).
231
in
ar
(e portanto
Simtrico
Se um ponto
mesmo, portanto
a sua reexo
P tem coordenada y
P = P .
P e Q diferentes,
P + Q R.
P + Q + R = O,
e a soma
Soma de pontos
Sejam
Q no eixo x: P +Q+O = O,
Pr
e
16.1.2
P = Q.
lim
16.1.1
primeiro determinamos
ele
tal que
por ambos,y
Ve
rs
M=
yp = yq
xp xq
K = yp M xp
Vericamos onde esta reta intercepta a curva, obtendo um terceiro ponto, substituindo
y 2 = (M x + K)2
na equao da curva:
(M x + K)2 = x3 + Ax + B
x3 + Ax + B (M x + K)2 = 0
x3 + Ax + B K 2 + 2M Kx + M 2 x2 = 0
x3 + Ax + B K 2 + 2M Kx + M 2 x2 = (x xp )(x xq )(x xr ).
CAPTULO 16.
232
Igualamos os coecientes de
x2
CURVAS ELPTICAS
em ambos os lados:
e portanto
xr = M 2 xp xq
yr = M xr + K.
16.1.3
Dobrando um ponto
2Q = P .
Quando
P = Q
lim
e portanto
in
ar
M 2 = xp + x1 + xr ,
uma reta nica Para obter uma reta, usamos a tangente da curva em
P,
y 2 = f (x),
ento
Pr
e
elptica
M=
f 0 (x)
dy
=
.
dx
2y
M=
M,
obtemos
3x2p + A
.
2yp
R:
xr = M 2 2xp
Ve
rs
Tendo
f (x) = x3 + Ax + B ,
yr = yp + M (xp xq )
2P = R = (xr , yr ).
P tem coordenada y igual a zero, ento P =
P . Podemos concluir que 2P = O e de fato, a tangente em P s interceptar
a curva no ponto no innito O.
Finalmente,
sobre um corpo
Fq
por
#E(Fq ).
Teorema 16.5.
233
q + 1 2 q #E(F q) q + 1 + 2 q.
2 2512
in
ar
tem ordem
porque no podemos represent-los de maneira exata em computadores, e tambm porque so innitas: uma curva elptica sobre
y =
p
f (x),
valores de x.
f (x)
sendo
Curvas sobre
lim
curvas,
tambm possuem innitos pontos, e por isso trabalhamos apenas com corpos
nitos. Esta Seo descreve os dois corpos normalmente usados em Criptograa
de curvas elpticas
com
primo, e
GF2m
Fp
Fp
escrita na forma
y2
2m ).
Pr
e
16.3.1
Fp ,
(com
(mod p) = x3 + Ax + B
(mod p),
4A3 + 27B 2
(mod p) 6= 0.
Ve
rs
xr = M 2 xp xq
(mod p)
yr = M xr + K (mod p)
yp = yq
M=
(mod p)
xp xq
K = yp M x p
(mod p)
xr = M 2 2xp
(mod p)
yr = yp + M (xp xq )
M=
3x2p
+A
2yp
(mod p).
(mod p)
p.
R,
apenas
Para somar
CAPTULO 16.
234
16.3.2
CURVAS ELPTICAS
GF2m
in
ar
B
A
A2 D + B 2
0
3
y A y+
A3
x 0 A2 x +
lim
y 2 + xy = x3 + Ax2 + B,
com
B 6= 0,
onde
A0
B0
so constantes pertencentes a
F.
Pr
e
16.4.1
Logaritmo discreto
Zp
para
Ve
rs
n;
um ponto
ordem
n;
F com
A = aP, B = bP hP i,
dois pontos
ordem
q;
um ponto
P E
com
C = abP ;
235
in
ar
16.4.2
Die-Hellman
lim
Construo 16.8 (Protocolo de Die e Hellman para estabelecimento de chaves). Dois participantes, A e B , estabelecem uma chave simtrica da seguinte
maneira:
escolhe
envia
escolhe
x R Zq
recebe
H2
para
para
Fq
e um ponto
H1 = xG
e calcula o ponto
B envia o ponto H2
KB = yH1 .
A
e calcula o ponto
(E, q, G, H1 )
y R Zq
Pr
e
A determina
G.
H2 = yG.
KA = xH2 .
16.4.3
Elgamal
Ve
rs
corpo nito
Fq
CAPTULO 16.
236
CURVAS ELPTICAS
16.4.4
in
ar
Okamoto; o ECMQV
um esquema de
lim
Curve scheme),
Certos grupos construdos sobre pontos de curvas elpticas podem ser usados
na construo de
emparelhamentos bilineares;
Pr
e
relacionados a estes emparelhamentos que so explorados em construes criptogrcas. Na Criptograa baseada em identidades (abordada no Captulo 18),
por exemplo, h uma abundncia de construes baseadas neste conceito. Emparelhamentos bilineares so discutidos no Captulo 19.
Curvas elpticas tambm podem ser usadas para fatorar nmeros inteiros, uma
Ve
rs
Notas
O uso de grupos de curvas elpticas em Criptograa foi proposto independentemente em 1986-1987 por Neil Koblitz [Kob87] e Victor Miller [Mil86].
Diversos livros discutem o uso de curvas elpticas em Criptograa [Han10]
compacticao
retas paralelas ao eixo das ordenadas, e sim para todas as retas. Por exemplo, ao
adicionar ao plano complexo
C2
237
Exerccios
Ex. 115 Prove as seguintes propriedades para a operao de grupo que
a)
P =P +O=O+P
b)
P + (P ) = O
c)
P + (Q + R) = (P + Q) + RO
d)
P +Q=Q+P
Zp ,
in
ar
no mostramos que as
operaes usadas esto bem denidas. Prove que os mtodos para somar, dobrar
e calcular simtrico de pontos de curvas elpticas em
Zp
Ve
rs
Pr
e
lim
CAPTULO 16.
CURVAS ELPTICAS
Ve
rs
Pr
e
lim
in
ar
238
Captulo 17
17.1 Fatorao
lim
Primalidade e Fatorao
in
ar
Esta Seo comea com a descrio de dois mtodos simples para fatorao: O
mtodo
p1
e o mtodo
de Pollard.
Pr
e
17.1.1
2,
Ve
rs
3,
n.
eratostenes(n):
para i de 0 a n:
vi i
v1 0
i2
enquanto i2 n:
se vi 6= 0:
j 2i
enquanto j n
vj 0
j j+i
239
CAPTULO 17.
240
PRIMALIDADE E FATORAO
retorne v
v
primos entre
n.
in
ar
notvel que o crivo de Eratstenes no necessita de divises ou multiplicaes, que em um computador moderno, so operaes caras (note que
ser implementado como
i + i,
e o valor de
tal que
i2 < n
priori)
2i
pode
n.
Pr
e
lim
divisao_sucessiva(n):
se 2 | n
retorne 2
k3
enquanto k b nc:
se k | n
retorne k
senao
k k+2
retorne n
Quando um fator de
retorna o prprio
n.
17.1.2
n.
Mtodo p 1 de Pollard
n = pq
peq
com
Sendo
de
primos, o mtodo
Ve
rs
Escrevemos as fatoraes de
com
O( n).
al < aj .
onde
p1
q1
como
p1
l
1 2
= a
1 a2 al ,
q1
= a11 a22 al l aj j ,
a1 = 2, a2 = 3, a4 = 5,
ai
i-simo
al
p1 < 3
log3 (n)
e portanto
, e de maneira geral
p1 <
q 1, aj .)
1 < log2 (n).
loga (n)
ai i .
Similarmente,
Assim, escolhemos o
nmero
B=
k
Y
bn/ log(ai )c
ai
i=1
k = 1, B = 2n ;
para
p 1,
17.1. FATORAO
241
k , (p 1) | B :
poderemos dividir
porque
i i
in
ar
b1 b2 bl k
B
,
= 1 1 22
l
p1
a1 a2 a
k
i, bastando somente que l k .
p 1 e q 1 notamos que al < aj , deve haver algum
B | (p 1) mas B - (q 1). Esta a escolha que admitiremos
para todo
Como na fatorao de
para o qual
para
B.
Escolhemos aleatoreamente
podemos escrever
xB
(mod p)
= xk(p1)
h
= x(p1)
=
(q 1) - B ,
k0
tal que
0
ik
(mod p)
B = k 0 (q 1),
(mod q) = xk (q1)
se e somente se
(mod q) = 1.
Assim, teremos
Como
1.
ou seja, no existe
@k 0 , xB
(mod p)
xB
(mod q)
Pr
e
Mas
(mod p)
Como
lim
(p 1)|B ,
= xk (q1)+r (mod q)
h
ik 0
= x(q1) (mod q) xr
= x
(mod q)
(mod q).
Ve
rs
Mas
factorp1(n, B):
x R Zn
a xB (mod n)
b mdc (a 1, n)
se 1 6= b 6= n:
retorne b
seno
retorne
CAPTULO 17.
242
PRIMALIDADE E FATORAO
usamos
B = 280.
n = 71729254613.
a = xB
Temos
de
n.
Sorteamos
Ento
x = 53998655672
in
ar
forte se (p1)/2
(mod n) = 20513619516.
b = mdc (a 1, n) = 19.
Como
no igual a
E realmente,
nem a
n,
19 3775223927 = 71729254613.
lim
92988391
Sorteamos
x = 1210314091541427 B = 50
a = xB
= 32132369
temos
(mod n) = 1720706286036580
b = mdc (a 1, n) = 1.
fatorar
Pr
e
Como
Teorema 17.4.
17.1.3
Mtodo de Pollard
x0 ,
Comeando com
Ve
rs
n = 2387
xi = f (xi1 )
e
x0 = 2,
(mod n)
a sequncia
x0
x1
52
x2
320
x3
2149
x4
1746
x5
320
x6
2149
x7
1746
x8
320
x9
x10
= 2149
= 1746
17.1. FATORAO
Como
com
y1
y2
y3
y4
y5
y6
y7
y8
y9
y10
13,
Como s h
yi
para os
forma um ciclo.
Pr
e
yi = yj .
y0
ento
k = 11:
in
ar
yi = xi mod k ,
lim
Agora faremos
243
yi+1
yi
yj
Ve
rs
yj1
y2
y1
y0
divisor de
ou seja,
yi+q = yj+t .
CAPTULO 17.
244
PRIMALIDADE E FATORAO
x2n 1 xj ,
Por exemplo,
x1
x3
x3
x6
x3
x7
x7
x12
x7
x13
x7
x14
x7
x15
in
ar
lim
com
17.1.4
F Crivo quadrtico
de Dixon).
Lema 17.5.
Pr
e
(mod n),
Como
x2 y 2 0 (mod n),
Demonstrao.
temos
Ve
rs
Mas
n.
O algoritmo de Dixon
B.
Se
o conjunto
B para algum M .
(15000) = 1754.
dene
B = {p P : p < M }
Como exemplo, se
M = 15000
cada
ri
teramos
|B| =
e calculamos, para
ri
g(ri ) = r2
(mod n).
|B|,
paramos.
B.
17.1. FATORAO
Cada
g(ri )
245
como um vetor
vi
com os expoentes
vi = (a1 , a2 , . . . , a|B| ).
Por exemplo, se
de
23 31 52
g(r1 )
21 32 50
g(r2 )
20 33 52
g(r3 )
22 31 53
Ento,
(3, 1, 2)
(1, 2, 0)
v2
(0, 3, 2)
v3
(2, 1, 3)
Pr
e
v0
v1
g(ri )
por
g(rj )
as
lim
g(r0 )
g(ri ):
fatoraes so:
aj
in
ar
Representamos cada
vi
com
vj .
vi
, e
alm de em Zn )
g(ri ) r2
(mod n).
Ve
rs
vk
(temos
mais vetores do que elementos em cada vetor). Podemos encontrar vetores que,
quando multiplicados, resultem em expoentes pares. Usamos o fato da soma de
dois nmeros ser par se e somente se tiverem a mesma paridade, e fazemos
com
bi = 1
se
ai
mpar, e
em caso contrrio.
teramos
w0
(1, 1, 0)
w1
(1, 0, 0)
w2
(0, 1, 0)
w3
(0, 1, 1)
Continuando o exemplo,
CAPTULO 17.
246
PRIMALIDADE E FATORAO
rs
1
1
A=
0
0
1
0
1
1
0
0
0
1
L0 = L1 + L2 , e portanto podemos
{v0 + v1 + v2 } h somente coecientes pares.
Encontramos
(3, 1, 2)
(1, 2, 0)
(0, 3, 2)
0, 1, 2.
Em
(4, 6, 4)
600 18 675 24 36 54
De maneira geral, teremos agora
usar os ndices
lim
v0 + v1 + v2
in
ar
junto dos
(mod n).
Pr
e
(mod n),
17.1.5
F Curvas elpticas
17.1.6
Notas
p1
Ve
rs
O algoritmo
de
condensada, contm tambm alguns algoritmos para aritmtica de preciso arbitrria [Vas07].
O Algoritmo AKS para teste de primalidade foi desenvolvido por Agrawal,
17.1. FATORAO
247
Exerccios
Ex. 117 Implemente os mtodos
p1
Ve
rs
Pr
e
lim
in
ar
inteiros.
CAPTULO 17.
PRIMALIDADE E FATORAO
Ve
rs
Pr
e
lim
in
ar
248
Captulo 18
lim
Criptograa Baseada em
Identidades
in
ar
Pr
e
A Figura a seguir mostra o funcionamento de esquemas tradicionais de encriptao e assinatura com chaves pblicas. Alice obtm sua chave privada da
autoridade
T,
enviar mensagens a Alice sem antes obter sua chave pblica (e vericar que a
Ve
rs
Enc(msg)
Alice
Bob
Sign(m)
dade. A autoridade
CAPTULO 18.
250
in
ar
chave secreta
Enc(msg)
Alice
Bob
lim
Sign(m)
Em situaes prticas, a identidade de Alice pode ser um nmero de documento, telefone, endereo de rede ou qualquer outro identicador nico. Uma
nica vez, Alice autentica-se para a autoridade
sidade de interao dos participantes com
T,
ou com um diretrio.
Pr
e
id,
e no
pk ,
uma vez que este procedimento o mesmo para encriptao, assinatura e acordo
de chaves.
Ve
rs
Setup(1n ),
mestra M ,
P;
Extract(M, id):
com a chave-mestra
e uma identidade
id, a autoridade
sk .
P.
Setup
podem precisar
P,
18.2. ENCRIPTAO
251
18.2 Encriptao
Um esquema de encriptao baseado em identidades semelhante a um esquema
de encriptao tradicional, exceto que a chave pblica do destinatrio igual
in
ar
quema de encriptao baseado em identidades consiste de um esquema de gerao de chaves baseado em identidades e mais dois algoritmos:
mensagem
Decsk (c):
m, Enc
id,
os parmetros pblicos
gerado por
e uma
sk , os parmetros pblicos P e um
Enc, Dec retorna a mensagem original m.
texto encriptado
lim
Encid (m):
id e todos sk, P
gerados a partir de
m.
As noes de segurana para encriptao em sistemas assimtricos se traduzem diretamente para criptossistemas baseados em identidade. No entanto, h
Pr
e
permitindo
Setup(1n )
pblicos P .
e os parmetros
Extract(id):
identidade id;
sk
relacionada
Ve
rs
3. Quando
4. Um bit aleatreo
escolhido e
mk
encriptada com
Encsk
e enviada a
A.
5.
pode fazer mais consultas da mesma forma que antes, mas no pode
id
que escolheu.
CAPTULO 18.
6.
b0 .
envia um bit
7. O resultado do experimento um se
b = b0
AExtract,Decid
1n
id, m0 , m1
b R {0, 1}
sk Extract(id)
lim
Encsk (mb )
in
ar
252
b0
Pr
e
b=b 1
b 6= b0 0
negl
tal que
Pr[IND_ID_CCA(, A, n) = 1]
1
+ negl(n).
2
Da mesma forma que a diferena entre segurana CPA e CCA a possibilidade do adversrio obter decriptaes de mensagens, denimos segurana
Ve
rs
IND_ID_CPA,
IND_ID_CCA,
decriptao (Decid (c)).
O experimento
IND_ID_CPA
negl
tal que
Pr[IND_ID_CPA(, A, n) = 1]
1
+ negl(n).
2
18.3. ASSINATURAS
253
18.3 Assinaturas
Denio 18.7 (Esquema de assinaturas baseado em identidades).
Um es-
Signsk (m):
uma assinatura de
Vrfid (, m):
in
ar
m.
sinante, da assinatura
e da mensagem
vlida.
lim
usa
Setup(1n )
A).
Pr
e
Consulta a hash:
o devolve;
Extract(id):
ticao id;
sk
relacionada iden-
3.
devolve
Ve
rs
nas consultas
4. Retorne
se
Vrfid (m, ) = 1
se
Vrfid (m, )
Ah,Extract,Signid
D
1n , P
(id, m, )
Vrfid (m, ) = 1
id
/ consultados
1 Denida
CAPTULO 18.
254
Denio 18.9. Um esquema de assinaturas
in
ar
negl
tal que
Pr[SIG_FORGE_ID_CMA(, A, n) = 1]
1
+ negl(n).
2
lim
Um
k.
A cadeia
no
Pr
e
Zn
+1;
isso
Ve
rs
Setup: Sejam p
n = pq .
Seja
h : { 0, 1 } Zn ,
A funo
h(x) sempre
h(x)
= 1.
n
mdulo
4;
seja tambm
valer
Extract(M, id):
a chave pblica de
id
seu hash,
pk = h(id).
id
sk =
id
se
se
id
p
id
p
=
=
id
q
id
q
=1
= 1.
Zn .
A chave
sk
computar
sk = (id)
Encid (m):
n+5pq
8
+1 ou 1.
t
= m.
n
Escolha
t R Zn
Calcule
c1 =t + (id)t1
Retorne
mod n.
(c1 , c2 ).
Decsk (c1 , c2 ):
seja
(
c1
c=
c2
c+2(sk)
n
O usurio de
Enc
no sabe se
se
se
sk = id
sk = id.
Pr
e
Retorne
mod n
c1
sk
tal que
lim
c2 =t (id)t
in
ar
255
id
ou
id,
c2 .
em que sk =
id tambm segue diretamente.
Ve
rs
supondo que
O caso
CAPTULO 18.
256
in
ar
Demonstrao.
Pr[IND_ID_CPA(IDE_Cocks, A, n) = 1]
onde
p(n)
um polinmio em
n.
lim
Construiremos um algoritmo
se
1
+ p(n),
2
IND_ID_CPA,
da seguinte ma-
Pr
e
se no houve consultas
decriptao de
2. Quando receber o
id
usando
Extract
Depois, determine
para
id,
responda com a
h(id).
h(id) = a
id,
(isso pode ser feito porque nenhuma consulta anterior pode ter usado
h(id)
e portanto
Ve
rs
mente, com
Envie para
t
= b.
n
A:
4. Se a resposta
c1 = t + at1
(mod n)
c2 R Jn .
b0
a
/ QRn .
i)
Se
Seno,
A no aprender
257
A indistinguvel
IND_ID_CPA.
da que
n.
a QRn ,
Se
t
n com probabilidade
corretamente dir, com a mesma probabilidade, que a
no desprezvel, e
conseguir obter
QRn .
a
/ QRn ,
Se
c2
ento
in
ar
c1 , c2
c1 ,
no do a
a
/ QRn ,
(mod p) = at1
t1 = t
t2 = at
t3 = at
(mod p) = t
lim
a
a
=
= 1.
p
q
t
n . Para
(mod q),
(mod q),
(mod p) = at
Temos
(mod q).
Pr
e
1
(t + at1 ) = (t1 + at11 ) = (t2 + at1
2 ) = (t3 + at3 ),
mas
t
t3
t1
t2
=
6=
=
,
n
n
n
n
e portanto
fazer responder
Ve
rs
a chave privada de
escolha
id
sk
tal que
aleatoriamente.
Calcule
A assinatura
(s, t).
t =re
(mod n)
s =(sk)rf (t,m)
(mod n).
grande
(sk)e = id mod n.
CAPTULO 18.
Vrfpk (, m):
se = id tf (t,m)
mod n.
in
ar
258
As chaves privadas
ridade
sk
tem a fatorao de
n.
Para vericar que a assinatura est correta, observamos que a condio vericada por
id
trocando
Vrf
por
e
f (t,m)
s = id t
mod n;
(sk)e e t por re :
Como
coprimo com
(n),
(mod n).
lim
s = (sk)rf (t,m)
(mod n).
Notas
Pr
e
Teorema 18.14.
de assinaturas. No mesmo artigo, Shamir arma supor que deve haver tambm
esuqemas de encriptao baseados em identidade, e pede a outros pesquisadores
que os procurem.
Ve
rs
em 2001 [Coc01]. Aconteceu o mesmo que na dcada de 70, quando Cocks havia
descoberto o RSA mas no o podia revelar por estar trabalhando para o governo
Britnico: o criptossistema de Cocks foi desenvolvido anos antes, mas s pode
ser publicado aps a publicao do criptossistema de Boneh e Franklin [BF03].
As denies de segurana IND-ID-CPA e IND-ID-CCA foram descritas pela
259
Exerccios
Ex. 118 Mostre que o esquema de encriptao de Cocks no tem segurana
in
ar
IND-ID-CCA.
envia ao adversrio
c2 R Jn .
a) Se
enviasse
c1 R Zp ,
b) E se
onde
t0
lim
Ex. 121
No criptossistema de Cocks necessrio escolher um nmero
t
n
propuser.
tal que
= m,
Ex. 122 O criptossistema de Cocks usa uma funo de hashing que mapeia
cadeias em
Jn .
Pr
e
sistema.
Ex. 123 No esquema de assinaturas de Shamir, possvel que uma mensagem tenha mais de uma assinatura. Discorra sobre isso, estimando a densidade
de assinaturas de uma mesma mensagem e a probabilidade de uma fraude por
busca exaustiva.
Ex. 124 Suponha que queiramos construir esquemas de encriptao ou assinaturas que no dependam de uma nica autoridade convel. D uma poss-
Ve
rs
CAPTULO 18.
Ve
rs
Pr
e
lim
in
ar
260
in
ar
Captulo 19
lim
Emparelhamentos Bilineares
e : G1 G2 G3
i)
um
Pr
e
A funo
seguintes condies:
no degenerada: existem
o elemento neutro de
bilinear:
G1 , G2 e G3 grupos cclicos.
emparelhamento bilinear se satisfaz as
g1 G1 , g2 G2
tais que
iii)
G1 = G2 ,
Quando
(onde
ii)
para todo
(g1 , g2 ) 6= 1
G3 );
simtrico.
Ve
rs
h1 , g1 G1 , h2 , g2 G2 ,
e(h1 g1 , g2 ) =e(h, g2 )e(g1 , g2 )
e(g1 , h1 g2 ) =e(g1 , h2 )e(g1 , g2 ).
ares.
Teorema 19.3.
261
CAPTULO 19.
262
EMPARELHAMENTOS BILINEARES
e : G12 Gt ,
G1
G2
so
g1
g2 ,
a, b, c
e o gerador de
e : G1 G2 Gt ,
respectivamente.
Zq , decidir se
in
ar
c = ab mod q .
G1
g.
e os geradores de
com
calcular
lim
e : (g, g)abc Gt .
3
Para emparelhamentos assimtricos, dados (g, ag, bg) g1 (g2 , ag2 , cg2 ), calabc
cular e(g1 , g2 )
Gt .
dados
gap Dissie-Hellman
para
x Gt ,
x = e : (g, g)abc
Pr
e
se
Setup(q n ):
a chave mestra
s R Zq .
O parmetro pblico
Ve
rs
H1 : { 0, 1 } G1
n
H2 :G2 { 0, 1 }
Extract(id):
Encid (m):
calcule
pk =H1 (id)
sk =s(pk)
escolha
r R Zq .
Seja
Retorne
r
(rP, M H2 (gid
)) .
param = sP .
Decsk (c):
Dado
c = (a, b),
263
calcule
in
ar
m = b H2 (e(sk, a))
H : { 0, 1 } G1 .
Extract(id):
a chave privada
x R Zq .
retorne 1 se e somente se
lim
Setup(1n ):
A chave pblica
xP .
Pr
e
Construo 19.10 (Acordo de chaves baseado em identidades com tres participantes (Joux)).
Trs participantes,
Ve
rs
c Zq .
1.
envia
aP
para
B, C ;
2.
envia
bP
para
A, C ;
3.
envia
cP
para
A, B ;
4.
calcula
KA = e(bP, cP )a ;
5.
calcula
KB = e(aP, cP )b ;
6.
calcula
KC = e(aP, bP )c .
A chave comum
A, B
KA = KB = KC = e(P, P )abc .
a, b,
Teorema 19.11.
CAPTULO 19.
264
EMPARELHAMENTOS BILINEARES
in
ar
Notas
Os emparelhamentos bilineares em grupos de curvas elpticas foram usados ini-
Exerccios
lim
Ex. 126 Formule os Teoremas 19.2 e 19.3 para emparelhamentos assimtricos e escreva suas demonstraes.
Ve
rs
Pr
e
in
ar
Captulo 20
lim
Criptograa Ps-Quntica
(Este Captulo est incompleto)
Pr
e
o RSA e
Ve
rs
hashing
Criptograa baseada em
Criptograa multivariada
265
CAPTULO 20.
266
CRIPTOGRAFIA PS-QUNTICA
bit,
que pode assumir dois valores diferentes, zero ou um. H diferentes maneiras de
in
ar
exatamente
operaes
tos
lim
ecientes.
discre-
apenas, sem nveis intermedirios cada eltron pode ocupar rbitas bem
Pr
e
Um computador quntico usa partculas desta natureza para armazenar informao por exemplo o nvel de energia em tomos.
A unidade bsica de
qubit.
|0i
|1i.
no
superposio de estados.
Ve
rs
|0i
ou apenas
|1i.
possveis estados,
0 |0i + 1 |1i ,
0
so as
amplitudes
satisfazendo
|0 |2 + |1 |2 = 1.
q
q
p
p
1
2
2
2
|0i+
Um exemplo de estado de qubit
3
3 |1i, porque ( 1/3) +( 2/3) =
1.
As amplitudes do estado de um qubit tem um signicado importante: quando
a amplitude de cada
um dos estados determina a probabilidade de que seja ele o estado no qual o
qubit colapsar.
267
2
2
possvel, porque (1/2) +( 3/2) = 1. Quando for observado, este qubit passar
2
para o estado |0i com probabilidade (1/2) = 1/4 e para o estado |1i com
2
probabilidade ( 3/2) = 3/4.
in
ar
No se pode dizer, no entanto, que as amplitudes so probabilidades no sentido comum ao qual estamos habituados. Em primeiro lugar, elas so nmeros
complexos (no exemplo anterior so reais para manter a simplicidade); alm
disso, podem ser negativas: suponha que um qubit esteja no estado 1/2 |0i
3/2, semelhante ao estado do exemplo anterior exceto por termos mudado o sinal do segundo coeciente. Como as probabilidades dos estados so dadas pelos
3/4).
identicamos os estados
exemplo, podemos usar
dado por
0 |0i + 1 |1i,
R2 :
1
0
+ 1
0
1
(0 , 1 ),
Pr
e
Primeiro
lim
Ve
rs
o sistema com dois qubits pode estar em uma superposio de estados dada por
com
20.2.1
|ij |2 = 1.
(20.1)
i,j
Operaes qunticas
qunticas.
evoluo do estado
operaes
de um sistema
CAPTULO 20.
268
Na Denio a seguir
de
CRIPTOGRAFIA PS-QUNTICA
A ( A
obtida
em seguida a transposio).
AA = I
A unitrio quando
in
ar
F : C2 C 2
lim
representa o estado, e isto garantido pelo fato das operaes qunticas serem
Finalmente, operadores unitrios so fechados sob composio, e portanto as
operaes qunticas podem ser compostas. Este fato permite denir algoritmos
qunticos como sequncias de operaes qunticas.
Pr
e
Lema 20.3. Sejam A e B duas matrizes descrevendo operaes qunticas. Ento a operao composta A B tambm uma operao quntica.
Qualquer operao quntica deve preservar a igualdade dada pela Frmula 20.1,
que determina que a soma das probabilidades dos estados ps-medio deve ser
um. Assim, uma operao quntica pode ser vista como uma rotao em um
qubit.
Negao
de um qubit O operador que realiza a negao de um qubit
0 1
. O qubit 0 |0i + 1 |1i negado 1 |0i + 0 |1i, onde 0 e 1 so
1 0
permutados.
Ve
rs
Reordenao de qubits
os qubits em um sistema.
Rotao de um qubit
ngulo
usando a matriz
Operao de Hadamard
cos
sen
sen
.
cos
e do estado
|1i
operao leva de
(0 + 1 ) |0i + (0 1 ) |1i .
matriz de Hadamard.
0 |0i + 1 |1i
para
269
Denio 20.4 (Matriz de Hadamard). Uma matriz de Hadamard uma matriz quadrada (nn) com entradas iguais a
HH T = nI .
que satisfaz
H1
H2
H2n
in
ar
= 1
1 1
=
1 1
H2k1 H2k1
=
H2k1 H2k1
1
A matriz
1 1
|0i =
2 1
1 1
1 H2 |1i =
2
2 1
1 H2
2
1
1
=
1
0
1
0
=
1
1
1 1
= |0i + |1i ,
2 1
1
1
= |0i |1i .
1
2
Pr
e
lim
Ve
rs
1
b0
1
b1
1
.. = 1
.
n
1
bn
1
onde
= e(2i)/N
de nmeros comple-
1
2
4
.
.
.
..
n1
2(n1)
a0
a1
2(n1)
..
.
.
.
.
an
(n1)(n1)
n1
C.
O(n2 ).
Ingenuamente podemos
A transformada rpida
H, no
Fourier.
O(log2 n),
algoritmo no teria tempo sequer de ler sua entrada, que tem tamanho
n,
mas
CAPTULO 20.
270
CRIPTOGRAFIA PS-QUNTICA
log n
Nesta discusso,
|ii
i-simo
in
ar
0
0
|2i =
1
0
|i =
Pn1
j=0
para o algoritmo.
j |ji
como entrada
lim
entrada
log(n)
qubits.
2n
bits!
Pr
e
vi = vj se e somente
o perodo do vetor.
se
i j (mod k)
com
para algum
n elementos peridico se
k|n. O nmero k
tal que
vj dessa
deslocamento j .
peridico com
sequncia
vetor.
Ve
rs
Notas
Cohen [CDL06], o de Shankar [Sha94] e o de Griths [Gri04; Gri11]. Uma introduo Matemtica necessria para o estudo da Mecnica Quntica dada
no livro de Byron e Fuller [BF92],
H um livro interessante de K. J. Horadam sobre matrizes de Hadamard e
271
Exerccios
Ex. 128 Prove que a construo de Sylvester sempre resultar em uma
matriz de Hadamard.
Ve
rs
Pr
e
lim
in
ar
CAPTULO 20.
CRIPTOGRAFIA PS-QUNTICA
Ve
rs
Pr
e
lim
in
ar
272
in
ar
Captulo 21
lim
Reticulados
(Este Captulo um esboo)
21.1 Reticulados
Pr
e
Rn ,
x Rn
+ . . . + x2n
Euclidiana
de
x,
denotada por
||x||,
x21
um vetor. A
norma
norma l2 .
Rn
n
X
Ve
rs
L(B) =
onde
de
B = (b1 , . . . , bn )
um conjunto
)
i bi |i Z
i=1
uma base de
Rn .
Dizemos que
(b1 , . . . , bn )
L.
uma base
b1,1
b1,2
.
..
b2,1
..
bn,1
.
.
.
.
..
bn,n
273
bi :
CAPTULO 21.
274
RETICULADOS
N P -difceis
v L(B)
in
ar
deles so:
com
vetores e um vetor
mais prximo de
t;
gerando
L(B),
t Rn ,
determinar o
B0
para o
mesmo reticulado que seja menor de alguma forma. Por exemplo, po-
lim
||B 0 || =
||si ||2 .
Pr
e
21.2.1
SIS
,
A Zmn
q
small integer solution) consiste
para Ax = 0.
x Zm
q
LWE
Ve
rs
21.2.2
Em 2005 Regev descreveu um criptossistema baseado em reticulados com demonstrao de segurana CPA. O criptossistema LWE baseado no problema
learning with errors.
Denimos o problema LWE usando um experimento aleatreo. Na descrio
do experimento,
sobre
n, m, q
so inteiros e
Zq .
(A, n, m, q, )).
1.
A R Zmn
.
q
2.
v0 R A
3.
s R Znq , e Zm
q , v1 = As + e
1 Pela
b R {0, 1}
5. Envie
6.
vb
para
A.
envia um bit
b0
de volta
7. O resultado do experimento
se e somente se
in
ar
4.
275
b = b0
As + e
de
v R Zm
q .
LWE.
lim
bilidade um no experimento
Acredita-se que o problema LWE difcil (e portanto que somente adversrios rodando em tempo exponencial em
21.2.3
SBP e Ortogonalidade
Dizemos que uma base ortogonal se seus vetores so todos ortogonais entre si;
dizemos tambm que o
desvio de ortogonalidade
Pr
e
razo de Hadamard
B = {b1 , . . . , bn }
uma base.
H(B) =
| det B|
||b1 || . . . ||bn ||
1/n
Quando a base ortogonal seu volume (ou seja, o determinante) igual
Ve
rs
ento o
desvio de ortogonalidade
minimizar.
Denimos
1/n,
Q
(B) =
i ||bi ||
.
| det B|
CAPTULO 21.
276
21.2.4
RETICULADOS
LLL
21.2.5
in
ar
L Rn
n
qualquer em R .
Seja
B = (b1 , b2 , . . . , bn ),
um vetor
como
como
tb:
lim
w = t1 b1 + t2 b2 + . . . + tn bn .
ai = bti e,
e nalmente retornamos o vetor
Pr
e
v = ab.
Se o desvio de ortogonalidade de
Teorema 21.7.
21.3 GGH
Ve
rs
seado em problemas em reticulados, que descrito a seguir. O GGH se fundamenta no CVP e no SBP: aps codicar uma mensagem
reticulado. Para decifrar
como um ponto de
m, mas fora do
c necessrio usar o algoritmo de Babai com uma base
Gen(1n ) gera
sk = B , com
pk = R, com
Encpk (m):
a mensagem
usada). O que
Enc
21.3. GGH
277
prximo de
pequenos.
Encpk (m) = m + e,
onde
um vetor de tamanho
cujos valores
ei
in
ar
e = (e1 , , en ), ei R {, +}
so menores do que
2 ).
onde
c = m + e,
porque
lim
m = BbB 1 ce,
foi calculado por
fcil
Enc.
n,
Pr
e
quanto maior
Um adversrio que pretenda decifrar um texto encriptado precisar resolver diretamente o CVP ou tentar primeiro transformar a base pblica na base
privada (ou seja, resolver o SBP).
21.3.1
Detalhes
Gen
A gerao das chaves para o reticulado pode ser feita da seguinte maneira:
primeiro uma base ortogonal ou quase ortogonal gerada. Pode-se obter tal
Ve
rs
B R {l, . . . + l}nn escolha uniformemente uma base com coecientes inteiros entre l e l (com o cuidado de vericar se os vetores so
linearmente independentes).
kI Rn ,
dos vetores. Por exemplo, gerando uma matriz como a descrita no item
anterior e somando caixa.
2n
CAPTULO 21.
278
RETICULADOS
Enc
21.3.2
Ataques ao GGH
Suponha que
in
ar
c = mR + e.
tal que
1
2n (desprezvel em n).
encontrar o vetor de erro equivalente a resolver o problema SAT.
decifrar a mensagem) tentando ao acaso
Note que
Proposio 21.9.
lim
(mod 2),
m.
Nguyen mos-
trou tambm que com alta probabilidade este sistema tem poucas solues.
m2 ,
observamos que
Pr
e
c m2 R = (m m2 )R + e,
e tambm que
m m2 0
Ento
(m m2 ) = 2m
para algum
(mod 2).
m Zn .
Portanto
e
c m2 R
= m0 R +
,
2
2
e/2 ,
Qn .
No entanto, o vetor de
1/2.
Ve
rs
21.4 NTRU
O criptossistema NTRU criado por Hostein, Pipher e Silverman foi originalmente formulado usando anis, mas pode ser descrito em termos de reticulados.
df .
e1 + {p, 0, p}n
{p, 0, p}n .
Seja
p = 3.
21.5. AJTAI-DWORK
e tanto
como
279
f e1
contm exatamente
df + 1
valores positivos e
df
valores negativos.
A matriz
[T f ]
invertvel mdulo
q.
encriptado
c = m + [T f ]1 r
(mod q).
Dec(c)
m = (([t f ]c)
(mod q))
(mod p).
O texto
in
ar
21.5 Ajtai-Dwork
lim
Mikls Ajtai e Cynthia Dwork propuseram um criptossitema baseado em reticulados, usando uma variante do SVP. Infelizmente o tamanho das chaves
pblicas no criptossistema Ajtai-Dwork
pandido para
O(n )
O(n4 )
criptossistema.
21.6 LWE
Notas
Pr
e
O algoritmo LLL foi descrito por Lenstra, Lenstra e Lovsz em 1982 [LJL82].
Ve
rs
Exerccios
CAPTULO 21.
280
RETICULADOS
Ve
rs
Pr
e
lim
in
ar
in
ar
Captulo 22
lim
Pr
e
Ve
rs
compre 7 00 aguarde 7 10
venda
7 01 reporte
7 11
Um nico bit trocado pode modicar uma mensagem de compre para venda!
Para evitar que isso acontea, adicionamos redundncia informao enviada,
na forma de bits adicionais aps a mensagem:
00 7 00000
01 7 01011
10 7 10110
11 7 11101
281
CAPTULO 22.
282
Quando um nico bit da mensagem for alterado, ele poder ser corrigido simplesmente escolhendo a mensagem original mais prxima da corrompida (por
00001
00000).
in
ar
lim
sejam
Pr
e
Z52 ,
v, w An ,
a = 10011
b = 00101
Ento
d(a, b) = 3,
poruqe
Z85 ,
Ve
rs
Exemplo 22.3. Em
a = 0344141
b = 4342100
Ento
poruqe
d(a, b) = 4,
d(u, v) 0;
Exemplo 22.6. Em
peso
de um vetor
a quantidade de
v.
Z52 ,
o vetor de bits
(1, 0, 0, 1, 1)
in
ar
entradas no nulas em
283
e raio
a An
t R,
tal que
t 0.
Z42 ,
seja
a = 1001.
Ve
rs
013,
111,
200,
212,
224,
241,
312,
410,
441,
em
lim
Exemplo 22.9. Em
1010,
1100,
0000,
1111,
0011,
Pr
e
1001,
1000,
1011,
D(a, 2) =
1101,
0001,
0101
com
E portanto
disco
014,
112,
201,
213,
230,
242,
313,
411,
021,
113,
202,
214,
231,
243,
314,
412,
|D(a, 2)| = 61
etc. Temos
palavras (observe que de acordo com nossa denio de cdigo, a distancia entre
palavras no precisa ser uniforme).
de
min {d(u, w) : u, w C, u 6= w} .
Teorema 22.11. Com distncia mnima d, um cdigo C pode corrigir no mximo b(d 1)/2c erros.
CAPTULO 22.
284
e raio
in
ar
D(x, e) D(z, e) =
E a decodicao pela mnima distncia corrigir no mximo
M palavras
(n, M, d)-cdigo.
Se um cdigo tem
que um
de tamanho
Uma
Uma
uma
q -permutao.
permutao posicional
permutao simblica
C.
C
C0
consiste em aplicar
equivalentes
so
um
consiste em aplicar
beto de
Dois cdigos
Ento,
d,
dizemos
(n, M, d)-cdigo,
erros.
e distncia mnima
a cada palavra de
se possvel transformar
em
C0
d,
Pr
e
Seja
Cdigos Lineares
cC
C;
atravs
22.1.1
uma
lim
n-permutao
corrigindo no mximo
erros.
y.
Quando o tamanho
e que
|| = q , potncia
Fq .
de algum primo.
Fq
Vn (q).
Se
um subespao de
um
[k, n]-cdigo.
Se
|| = q ,
(por exemplo,
[k, n]-cdigo
Ve
rs
Z62 .
um
(n, q k , d)-cdigo.
[B] =
000000, 001011, 100010, 010101,
101001, 011110, 110111, 111100
Estas so as palavras de um
[B]
[3, 6]-cdigo,
porque a dimenso de
Z62
seis e a de
tres.
2,
logo temos um
(6, 23 , 2)-cdigo.
erro.
31
=1
2
J
285
Vn
determinado por
C,
k ).
o subespao
in
ar
com
0
G = 1
0
Como os vetores da base so
esquerda
de
linhas
1
0
0
0
0
1
1
1
0
1
0 .
1
G:
lim
plicando
0
0
1
Pr
e
Ve
rs
O Teorema 22.17 nos garante que para qualquer cdigo linear C com geradora
G podemos transformar G em G0 da forma [Ik , A], onde Ik a matriz identidade
k k . Assim, h um cdigo C 0 equivalente a C com matriz geradora nesta forma.
1 0 0
a1,1 a1,2
0 1
a2,1
G = [Ik , A] = .
.
..
.
..
.
.
0
1
C
[Ik , A]
Seja
um
[k, n]-cdigo
linear sobre
interpretamos
= Fq
na forma
m em c realizada da seguinte
m1 , m2 , . . . , mk e calculamos
maneira:
c = mG.
CAPTULO 22.
286
Exemplo 22.18. A matriz geradora do cdigo do exemplo 22.14 pode ter suas
linhas permutadas para que possamos escrev-la como
1
1 0
0
0
0
1
m = 101,
mG = 1
0
1
0
0
1
0
0
0
1
0
1
0
0
1 .
1
1
0
1
calculamos:
0
1
0
0
1 = 1
1
1
0
1
in
ar
1
G0 = 0
0
1 .
lim
erros.
G = [Ik ; A].
C um cdigo
matriz teste de paridade de C
H = [AT ; Ink ].
Exemplo 22.20. Como em
Z2 x = x,
teremos
A = A,
e portanto
Pr
e
H = [AT ; Ink ].
Concretamente, temos
0
A = 1
0
0
1 ,
1
0
H = 1
0
Assim,
1
0
1
1
0
1
0
AT = 1
0
0
1
1
1
0
0
Ve
rs
x+C
1
0
1
0
1
1
0
0 .
1
0
1
0
Hx
; a sndrome de uma
HxT .
correo).
Teorema 22.22.
c C se e somente se HcT = 0.
sndome
de
0
HcT = 1
0
101001
1
0
1
0
1
1
(0, 0, 0)T .
1
0
0
0
1
0
c = 101001,
1
0
0
0
1
= 0 .
0
0
1
0
0
1
J
287
0
H(c0 )T = 1
0
sndrome de c0
(1, 0, 1)T
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0 .
0
=
0
1
1
0
1
c0
no pertence ao cdigo.
lim
Decodicao
Seja
in
ar
c0 = 111001,
aditivo
classe
Pr
e
Teorema 22.25.
Mas
y+C
1. encontre
z,
m=yz
y+C
2.
Ve
rs
Teorema 22.26.
Demonstrao.
Pela denio,
somente se existe
Como
HcT = 0,
cC
tal que
y1 e y2 pertencem
y1 = y2 + c. Ento
Hy1T
H(y2 + c)T
Hy2T + HcT .
Uma
CAPTULO 22.
288
tabela que mapeie sindromes em vetores de erro. Por exemplo, para nosso
[3, 5]-
cdigo, que s corrige um erro por transmisso, teramos uma tabela mapeando
in
ar
000001 (0, 0, 1)
000010 (0, 1, 0)
000100 (1, 0, 0)
001000 (0, 1, 1)
010000 (1, 0, 1)
100000 (0, 1, 0)
101001 com erro:
mensagem
lim
1
0
1
= 0 .
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
Pr
e
0
H(c0 )T = 1
0
01000
(1, 0, 1)T ,
e corrigimos o erro.
Ve
rs
N P -difcil
[BMV78]).
Gen(1n ):
escolha
tN
uma matriz
tal que
t << n.
k n, matriz
t erros.
Gere as matrizes:
geradora de um
[n, k]-cdigo
linear que
corrija no mximo
uma matriz
k k,
uma matriz
nn
aleatrea de permutao.
= SGP .
G
t)
pk = (G,
sk = (S, G, P )
+ z,
Encpk (m) = mG
onde
Decsk (c):
c = cP 1 .
1. Calcule
P 1 de
como c).
Como
in
ar
289
permutao, ento
t.
palavra do
3. Retorne
c.
lim
m = mS
1 .
Teorema 22.29.
liece,
Demonstrao.
Pr
e
cP 1
+ z)P 1
(mG
(mSGP + z)P 1
(mS)GP P 1 + zP 1
(mS)G + zP 1 .
c =
Ve
rs
mS
Como
P 1
uma permutao e
ter no mximo
tem no mximo
uns,
zP 1
tambm
erros
mS .
sua codicao;
mensagem codicada
(mS)G
t,
o algoritmo de decodicao
mS .
Ao multiplicar
mS
por
S 1
obtemos
m.
Teorema:
CAPTULO 22.
290
in
ar
Notas
lim
Exerccios
010111
b)
111111
c)
111110
d)
100000
e)
010100
Pr
e
gens:
Ve
rs
1
G = 0
0
0
1
0
0
0
1
0
1
0
1
0 .
1
Esta matriz gera que cdigo? Quantos erros ele pode corrigir?
in
ar
Captulo 23
lim
Criptograa Visual
Criptograa visual o nome de uma tcnica desenvolvida por Moni Naor e Adi
Shamir para compartilhamento de segredos usando imagens, de forma que a
decriptao no dependa de um computador ou algoritmo.
Pr
e
Cada participante recebe uma partilha, mas a partilha no precisa ser necessariamente uma sequncia de bits em formato digital ela pode ser impressa
em alguma mdia transparente (como as antigas transparncias usadas em retroprojetores).
one-time pad.
Ve
rs
A=
B=
Para representar um pixel branco, escolhemos duas guras iguais (A, A com
probabilidade
1/2
ou
B, B
com probabilidade
1/2).
1/2
ou
B, A
CAPTULO 23.
292
A+A=
B+B=
A+B=
B+A=
in
ar
1/2).
lim
com probabilidade
CRIPTOGRAFIA VISUAL
1/2;
B,
one-time pad!
Com isto podemos denir mais claramente o que entendemos por um esquema visual de compartilhamento de segredos. Queremos distribuir imagens
Pr
e
m = 4).
A
(1, 1, 0, 0) e B como (0, 0, 1, 1)
Somar A com A (ou A com B etc), como zemos acima, o mesmo que fazer
Podemos codicar cada um dos blocos que descrevemos como uma linha:
descrito como
1, 1, 0, 0
0, 0, 1, 1
1, 1, 1, 1
o
Ve
rs
A, B :
A, A :
1, 1, 0, 0
1, 1, 0, 0
1, 1, 0, 0
para
50%
para ambos, e o
de uns.
participantes, selecionamos
linhas. O
ou exclusivo das linhas pode ter peso de Hamming alto (resultando em um pixel
escuro) ou baixo (resultando em um pixel cinza).
Escolhemos as partilhas de um pixel por vez, e depois entregamos a cada
(no ltimo exemplo cada uma com 4 pixels) que, quando sobrepostas, que
completamente
encoberta.
293
gens (no ltimo exemplo cada uma com 4 pixels) que, quando sobrepostas,
parcialmente
encoberta.
C0
C0
C1 , de forma que
C1 tenham peso
in
ar
que
alto.
1100
1010
0101
0011
1001
0110
C0 =
,
,
,
,
,
,
1100
1010
0101
0011
1001
0110
1100
1010
0101
0011
1001
0110
C1 =
,
,
,
,
,
.
0011
0101
1010
1100
0110
1001
100%
preto ou
50%
lim
1/3, 1/4
H(v) d m,
onde
a
H(v) d.
um limiar e
d m.
Pr
e
H(v)
entre
(k, n)). Um
(k, n) de compartilhamento de segredos consiste de dois conjuncada um contendo matrizes n m. Sejam d e como descritos no
esquema visual
tos
C0
C1 ,
ii)
quaisquer k
S em C1 ,
> d.
o ou lgico de
quaisquer k
Ve
rs
medida de Hamming
ou lgico de
S em C0 , o
d m.
medida de Hamming
iii)
Seja
partir de
C0 = C1 =
Desta forma se
C0
ou de
C1 .
CAPTULO 23.
294
23.1.1
CRIPTOGRAFIA VISUAL
(2, n)
(3, 3).
in
ar
ambos devem juntar suas transparncias para obter a mensagem. Nesta Seo
Seja
de segredos.
Pr
e
lim
1, 0, 0, . . . , 0
1, 0, 0, . . . , 0
C0 =perm_col
.
.
.
1, 0, 0, . . . , 0
1, 0, 0, . . . , 0
0, 1, 0, . . . , 0
C1 =perm_col
.
.
.
0, 0, 0, . . . , 1
C0
C1 denidos a seguir constituem um esquema visual (3, 3) de compartilhamento
Ve
rs
de segredos.
0, 0, 1, 1
C0 =perm_col 0, 1, 0, 1
0, 1, 1, 0
1, 1, 0, 0
C1 =perm_col 1, 0, 1, 0
1, 0, 0, 1
Naor e Shamir apresentaram seu artigo sobre Criptograa Visual na EUROCRYPT de 1994 [NS94]. Giuseppe Ateniese, Carlo Blundo, Alfredo de Santis
e Douglas Stinson propuseram tcnicas para construir esquemas de criptograa
visual com suporte a estruturas gerais de acesso [Ate+96b; Ate+01; Ate+96a].
295
Yvo Desmedt, Shuang Hou e Jean-Jacques Quisquater desenvolveram tcnicas para criptograa ptica e de udio [DHQ98], e novas tcnicas foram propostas por Chen-chi Lin, Chi-sung Laih e Ching-nung Yang [LLY03]. Estruturas
in
ar
gerais de acesso para criptograa de udio foram propostas por Daniel Socek e
Spyros Magliveras [SM05].
Exerccios
lim
Ex. 141 Prove que a Construo 23.3 realmente um esquema de compartilhamento visual, de acordo com a Denio 23.1. D tambm os valores de
e
Ex. 142 Implemente os esquemas para compartilhamento de um nico segredo descritos no texto: o programa deve ler
arquivos com as imagens de cada participante.
Pr
e
k , n,
Ve
rs
CAPTULO 23.
CRIPTOGRAFIA VISUAL
Ve
rs
Pr
e
lim
in
ar
296
in
ar
Captulo 24
lim
Encriptao Negvel
comprometedores,
tenha encriptado uma mensagem e Eve a tenha interceptado, Eve saber que
Pr
e
convincentemente
da co-
m
r, resultando em c (normalmente no
damos tanta ateno fonte de bits aleatreos, mas ela crucial neste Captulo).
Quando Eve exige a entrega da chave e dos bits aleatreos usados, Alice entrega
m0
e uma chave
k0
ou bits
r0
tais que
Enck0 (m0 , r0 ) = c.
m0
Ve
rs
da mensagem
da mensagem. Um protocolo
m0
e no
m.
CAPTULO 24.
298
ENCRIPTAO NEGVEL
in
ar
envia a
enviou
ii)
a mensagem
m,
m.
lim
i)
por
rS
em
Pr
e
m1
m1
Ve
rs
rs
rs0
Fake(rS , t, m2 )
rR
rS
(m2 , rS , t)
(m2 , rS0 , t0 )
0
rR
m2
m2
Send
Receive
R, Gen
Sendpk (m, rS )
m.
para
COM(m, rS , rR )
S,
rS ,
envia de
rR ,
obtm de
sk .
Fake(pk, t, rS , m0 )
envia
Receivesk (rR )
m.
Denotamos por
pk
rS
so
uma mensagem
rS , rR .
receber
m0 6= m
usando o protocolo, a
desprezvel em
lim
Se
a mensagem
probabilidade de
m0 .
e os bits aleatreos de
Corretude:
in
ar
Gen(1n )
299
n.
Pr
e
0
so escolhidos com probabilidade
Negabilidade: Suponha que rS , rS , rS0 , rR
uniforme e S enviou uma mensagem usando Sendpk (m1 , rS ). Seja t =
0
). Ento Fake produz bits aleatreos
COM(m1 , rS , rR ) e t0 = COM(m2 , rS0 , rR
rS tais que
(m2 , rs0 , t) (m2 , rS , m2 , t0 ).
O primeiro exemplo deste Captulo o esquema de Howlader-Basu, cuja segurana se apoia no problema da residuosidade quadrtica (denido na Seo 9.9).
Ve
rs
Gen(1n ):
SendN (b, r)
Cada bit de
i-sima
a0,0
a1,0
A=
a0,1
a1,1
.
.
.
..
ZN .
A:
CAPTULO 24.
300
Ai,j
ENCRIPTAO NEGVEL
Ai,j
in
ar
xj R ZN
ai,j x2j (mod n);
deve pertencer a
Zn ,
e seu smbolo
de Jacobi deve ser um. Como j visto, isso signica que este nmero
pode
b=b
k1
M
!
ri
onde
ri
i-simo
bit de
r;
lim
i=0
(p, q), e
pq .
Pr
e
zero ou um.
Fake(N, c, A, b):
r0
igual a
em todas as posies
menos uma
ri ,
Basta
r0 ,
modicado para
Fake
retorna
0.
ento este
Presumida a conjectura da residuosidade quadrtica, a Construo 24.2 um criptossistema negvel pelo remetente como descrito na Denio 24.1.
Ve
rs
Teorema 24.3.
do remetente,
porque ele no a tem). O contrrio (mudar uma linha de zero para um) no
feito no esquema (se declararmos que a linha contm resduos quadrticos, o
adversrio poderia exigir a raiz quadrada de cada um).
H a possibilidade do algoritmo
Enc, ao codicar
+1, mas que sejam
301
A probabilidade de um bit ser codicado erroneamente no esquema de um bit de Howlader-Basu desprezvel no nmero de colunas da
matriz A.
Teorema 24.4.
in
ar
N = 5 7 = 35.
b = 1,
Bob seja
Escolhemos aleatoreamente
de
obtendo
lim
Pr
e
e calculamos os quadrados:
9 15 4 25
16 25 30 14
A=
3 11 9 29
27 17 25 13
Ve
rs
Destes,
A matriz :
c =1 (1 1 0 0)
=1 0
=1.
(c, A).
e conseguir calcular
a partir de
A:
basta percorrer
CAPTULO 24.
302
(mod 35)
ENCRIPTAO NEGVEL
=1 (1 1 0 0)
=1.
35).
Isso s
in
ar
r = (1, 1, 0, 0).
M
m =c
ri
Se Eve puder nos obrigar a entregar a mensagem enviada, podemos dizer que
Como Eve no tem a chave pblica de Bob (e ns tambm no, por isso no
lim
Construo 24.6 (Esquema de Howlader-Basu, negvel pelo remetente (mltiplos bits)). Neste esquema a funo Send recebe as duas mensagens como
parmetro.
Gen(1n ):
Pr
e
N = pq .
sk = (p, q).
e seja
As
Calcule
md = m1 m2 .
Um vetor
r0
calculado:
r0 = r md .
representando o vetor
Ve
rs
Calcule
Retorne
r0 .
c = m1 r0 .
(c, A).
construa
r0
a partir de
m1 = c r 0 .
Fake(N, c, A, m2 ):
para abir
r0
Assim, os bits
r00 = r0 md
(onde r' zero, mantemos o zero; onde um, mudamos para zero se um
bit onde
m1
m2
m2 = c r00 .
303
A segurana do esquema para mltiplos bits semelhante do esquema para
in
ar
um nico bit.
Exemplo 24.7 (Esquema de encriptao negvel (Howlader-Basu para mltiplos bits)). A mensagem que queremos transmitir
m2 = (0, 0, 1, 1).
do exemplo anterior:
9
16
A=
3
27
e a que
25
14
29
13
15 4
25 30
11 9
17 25
Calculamos
lim
matriz
m1 = (0, 1, 1, 0),
Pr
e
=(0, 1, 1, 0) (1, 1, 0, 1)
=(1, 0, 1, 1).
Enviamos ento
para Bob.
r0 = (1, 1, 0, 0)
a partir de
e calcula
Ve
rs
r00 =r0 md
=(1, 1, 0, 1) (1, 0, 1, 0)
=(1, 0, 0, 0).
m2
usando
r00 ,
porque
Na Construo 24.6,
uma variante do
de nmeros
Teorema 24.8.
00
CAPTULO 24.
304
ENCRIPTAO NEGVEL
Isso
m2 r00 =m2 (r md ) md
in
ar
=m md r md
=m (md r md r md )
=m (md r md )
=m (md r)
=c.
lim
J mencionamos a respeito deste esquema que uma das linhas zero pode vir
a conter somente resduos quadrticos, e seria consequentemente decodicada
erroneamente pelo recipiente.
ocorra.
com
(k/n) = +1
Pr
e
Demonstrao.
1/2.
Com
zero, temos
m(1/2 ) = m/2
, que desprezvel em
1/2k .
Com
k.
linhas
encriptao amostrvel.
se no conceito de
O criptossistema no seguro (h um
Ve
rs
amostrvel
para um
se:
H um algoritmo eciente
qualquer chave pblica
RandomCT(pk)
que escolhe
cC
pk ,
Encpk (m)
ii)
SampleEncRand(sk, c),
0
tado, determina um r
RandomCT(pk).
que dados uma chave secreta e um texto encriptal que, para qualquer chave secreta
(sk, c, r)
sk ,
iii)
tado
pblica
pk
in
ar
(sk, c, r0 ).
e um texto encrip-
chave secreta
sk ,
(sk, c, s)
seja computacionalmente indistinguvel de
lim
(sk, c, s0 ).
4n + 1
A:n+1
B:n
C : 2n
A, B, C
Pr
e
e usa:
b;
b;
RandomCT(k),
resultando em bits de
C,
1/2;
b.
Ve
rs
Quando Alice for obrigada a entregar a encriptao e o bit enviado, ela pode
apresentar conjuntos
A0 , B 0 , C 0
de forma que
A0
b.
CAPTULO 24.
306
ENCRIPTAO NEGVEL
duas partes e
para
B.
in
ar
Primeiro
seguida,
I1 , I2 , . . . , Ik .
bi
para
B, A
primeiro escolhe
lim
Pr
e
24.4 Aplicaes
per se
bm usada como ferramenta para tornar protocolos mais seguros. Por exemplo,
quando um protocolo de votao usado pode acontecer de um participante
tentar coagir outro a revelar seu voto. O participante que tenta coagir o outro
Ve
rs
Notas
24.4. APLICAES
307
Exerccios
Ex. 144 Porque, no esquema de Howlader-Basu, exigimos que
r 6= 0?
in
ar
(k/N )
igual a
+1,
onde
N = pq
a chave pblica do
grande.
com
bits, e tambm
com
(em funo de
n)?
lim
Ex. 148 Dena encriptao negvel para criptossistemas simtricos, e construa um esquema de encriptao negvel simtrico.
Pr
e
Ex. 151 A Construo 24.6 pode ser extendida para mltiplas mensagens
m1 , m2 , . . . , mk ,
ao adversrio?
mi
apresentar
Ve
rs
CAPTULO 24.
ENCRIPTAO NEGVEL
Ve
rs
Pr
e
lim
in
ar
308
in
ar
Captulo 25
lim
Votao Eletrnica
Um sistema de votao permite que diversos participantes (eleitores) escolham dentre diferentes opes e, oferecendo garantias de segurana, determinar
a melhor opo, e acordo com algum critrio (por exemplo, o mais votado).
H diversas garantias de segurana que sistemas de votao eletrnica podem
Corretude:
Pr
e
oferecer:
o resultado deve
Robustez:
Ve
rs
No-coercibilidade:
Justeza: um eleitor que vote depois de outro no deve ter sua disposio
qualquer informao sobre os votos j feitos, exceto o seu.
309
CAPTULO 25.
310
VOTAO ELETRNICA
in
ar
lim
Re-encriptao
encriptado
Pr
e
c0
(se usamos um
esquema de encriptao homomrco para soma, basta operar com a encriptao de zero, por exemplo:
a mesma mensagem);
Mix-nets
de uma mensagem.
Ve
rs
mix nets.
311
pkn , depois
pkn1 ,
at
pk1 :
in
ar
c ao primeiro servidor.
Ai espera que uma quantidade de mensagens esteja disponvel,
e decripta parcialmente usando sua chave (ski ). Depois muda aleatoriamente a
ordem das mensagens e as envia para o servidor Ai+1 . O ltimo servidor poder
Em seguida, envia
Cada servidor
lim
Suponha que uma autoridade precise assinar uma autorizao, mas sem saber
seu contedo. Se usarmos uma assinatura RSA ou DSA comum, a autoridade
necessarimante conhecer o contedo da mensagem. Queremos um mtodo para
Pr
e
Blind(m, pk, r)
Ve
rs
chaves so
sk = (N, a)
pk = (N, b),
mensagem m.
e
r co-primo com N
Suponha que as
M = mrb
(mod N ).
2. Alice assina
normalmente.
O resultado,
M = (mrb )a = ma rab ,
rb
multiplicando
Sign(M )
(mod N ).
por
r1 :
CAPTULO 25.
312
ma (mod N ),
VOTAO ELETRNICA
assinada com a chave de Alice sem que Alice saiba o contedo da mensagem.
in
ar
Teorema 25.2.
lim
mix networks e
Encpk (Encsk (x)) = Encsk (Encpk (x)) = x.
O esquema de Chaum usa
Pi
(pki , ski ).
2. Cada eleitor
Pi
Pr
e
1. Cada eleitor
pki
e a envia para a
mixnet por
mixnet mistura,
Ve
rs
5. Cada eleitor
Pi
vi
e o envia para a
chave pblica:
6. A
7. Todos os eleitores podem vericar que suas chaves pblicas esto na lista
e que seus votos no foram alterados.
8. Como
pki
Encski (vi )
votos.
25.3.1
Anlise
in
ar
Democracia: no suportada a
mixnet
lim
Pr
e
escolha do adversrio.
Ve
rs
a seguir.
CAPTULO 25.
314
VOTAO ELETRNICA
sim:
m0 =t
no:
m1 =t1
O voto encriptado em
(a, b) = (g k , hk mb ),
onde
pode ser
ou
escolhido aleatoriamente.
in
ar
chave pblica
Em seguida, o eleitor constri uma prova de que seu voto da forma correta
t+1
ou de
t1 ).
lim
III: Apurao As provas de validade dos votos devem ser vericadas. De-
Pr
e
Y
(A, B) =
ai ,
Y
bi .
As
e nalmente,
C = BAs = tD
+1
D = logt (C)
) e no (t
).
Ve
rs
mximo
testando
25.4.1
Anlise
Sigilo:
Democracia:
Vericabilidade:
Justeza:
No-coercibilidade:
Complexidade de comunicao:
a diferena sequencialmente,
25.4.2
315
Votao 1-de-L
O esquema descrito pode ser modicado para escolhas do tipo um dentre L
opes. Ao invs de um gerador t, usamos vrios t1 , t2 , . . . , tL , um para cada
in
ar
ki
deste mtodo).
tokens
lim
C,
A,
que distribui
Pr
e
Construo 25.5.
I: Inicializao
Pi
Ve
rs
2. Cada eleitor
onde
ki
vi
produzindo a cdula
ci = Commit(vi , ki )
Commit
um esquema de comprometi-
mento de bit.
3.
Pi
obscurece
onde
4.
Pi
ri
ci ,
T:
ei = Blind(ci , pkT , ri )
escolhido aleatoriamente.
assina
ei :
Finalmente, envia
si
si = Signski (ei )
para
(IDi , ei , si ).
CAPTULO 25.
316
5. A autoridade
Pi
VOTAO ELETRNICA
pode votar, e se no est re-
6. A autoridade
para o eleitor
Pi
obtm a assinatura de T em
ei :
ti SigExtract(di , ri )
Pi
9.
Pi
verica se a assinatura de
eleio abortada.
envia
coletora
vlida:
VrfpkT (ei , ti ).
(ou seja,
(IDi , ei , si ).
Se no for, a
ei , ti .
(j, ei , ti ), onde j
Pr
e
e envia
lim
8.
e se ob-
Pi .
III: Votao
7. O eleitor
Pi ,
ei
assina
in
ar
di = SignskT (ei )
Pi
varia de
1 ao nmero de votos.
Pi
13.
Pi
14.
Pi
envia a chave
ki
(j, ei , ti )
est na lista.
com o nmero
para
V: Apurao (contagem)
15. O coletor abre os comprometimentos das cdulas e publica uma nova lista
Ve
rs
(j, ei , ti , ki , vi ).
25.5.1
Anlise
Democracia:
cdulas, e a autoridade
a dependncia da honestidade de
T.
317
e h a dependncia da honestidade de
T.
in
ar
ridade
Complexidade de comunicao:
lim
Notas
Pr
e
Communications of the
ACM por David Chaum em 1981, onde props a idia de mixnets. O esquema de
votao aparece no texto apenas como aplicao das mixnets. As mix-nets so
Ve
rs
Exerccios
Ex. 154 Implemente uma mix-net para algum sistema de comunicao (por
exemplo, e-mail ou um quadro de avisos com interface web).
CAPTULO 25.
318
VOTAO ELETRNICA
in
ar
assinaturas Elgamal?
Ex. 157 Mostre que no seguro usar o mesmo par de chaves for usado
para assinaruras cegas RSA e encriptao de mensagens.
Ex. 158 A descrio de assinaturas cegas RSA dada neste Captulo informal. Formalize-a usando a denio dada.
lim
Pr
e
K -em-L.
Ve
rs
Mostre como.
Captulo 26
Anonimidade
Pseudonimodade
No-rastreabilidade
Possibilidade de Transferncia
No-fraudabilidade
No-framing
Justeza
Recuperabilidade
Auditabilidade
Ve
rs
Pr
e
lim
Dinheiro Eletrnico
in
ar
Notas
O primeiro artigo a propor dinheiro digital foi publicado em 1982 por David
Chaum [Cha82].
H uma seo sobre dinheiro eletrnico no livro de Delfs [DK07]; uma viso
geram (em nvel de detalhe bastante alto) dada no trabalho de Isabelle SimplotRyl, Issa Traor e Patricia Everaere [STE09].
Em sua tese de doutorado, Mansour Al-Meaither apresenta uma discusso
interessante e que trata especicamente de dinheiro eletrnico respeitando princpios Islmicos [AlM04].
319
CAPTULO 26.
DINHEIRO ELETRNICO
Ve
rs
Pr
e
lim
in
ar
320
in
ar
Captulo 27
lim
Cifras Histricas
Pr
e
27.1 Cifras
rentes.
de substituio se sua
Ve
rs
deslocamento.
Enck (m) = mk
um caracter,
(mod 26).
(A chave o deslocamento)
quantidade de permutaes de
ou seja,
321
|M|!
CAPTULO 27.
322
CIFRAS HISTRICAS
de permutao
se os ca-
n posies do bloco.
Assim temos
in
ar
Exemplo 27.3 (Ctala espartana). Aparentemente, os espartanos desenvolveram uma cifra de permutao. A realizao fsica da cifra chamada de
Ctala,
lim
Pr
e
linhas
Por exemplo,
D
O
A
S
O
O
R
N
T
T
F
A
C
T
I
Ve
rs
D
O
U
T
O
R
F
A
N
T
A
S
T
I
C
DOASOORNT U TI TFAC.
Exemplo 27.4 (Cifra de Csar). Um mtodo que foi usado por Jlio Csar
consiste em trocar cada letra pela terceira prxima no alfabeto, sendo assim a
A em D, B em
A, B e C respectivamente. De maneira
m m + 3 (mod 26) (Csar a usou com o alfabeto usado
E,
sendo que
X, Y, Z
so mapeados em
27.1. CIFRAS
323
k = 13
conhe-
in
ar
Exemplo 27.6 (Atbash). A cifra Atbash uma cifra de substituio monoalfabtica, e consiste em trocar a primeira letra do alfabeto pela ltima, a segunda
A
Z
B
Y
C
X
D
W
E
V
F
U
G
T
H
S
I
R
J
Q
K
P
L
O
M
N
N
M
O
L
P
K
Q
J
R
I
S
H
T
G
U
F
V
E
W
D
X
C
Assim, a frase Se o luar meu amigo, censurar ningum se atreve seria en-
lim
criptada como
Exemplo 27.7 (Cifra am). A cifra am uma generalizao da cifra de deslocamento. Ao invs de substituir um caracter
tumos por
Por
por
o par
substi-
Pr
e
1 7 + 5 = 12
m + k (mod 26),
(a, b).
2 14 + 5 = 19
3 21 + 5 = 26
4 28 + 5 = 33 7
5 35 + 5 = 40 14
.
.
.
Ve
rs
ou seja,
AL
BS
CZ
DG
EN
.
.
.
ZNZN.
dos.
Y
B
Z
A
B
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
C
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
D
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
E
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
F
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
G
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
H
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
I
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
J
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
K
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
L
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
T
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
M
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
N
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
O
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
LIMA
P
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
Q
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
S
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
U
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
V
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
lim
A
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
CIFRAS HISTRICAS
Pr
e
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
CAPTULO 27.
W
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
X
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
in
ar
324
TRIS.
Ve
rs
inicialmente
i,
mi , ki :
(T, L) E
(R, I) Z
(I, M ) U
(S, A) S
n,
A cifra
portanto
m = (m1 , m2 , . . . , mn ).
c = (c1 , c2 , . . . , cn ),
27.2. ENIGMA
325
c1 =a1 m1 + b1
(mod 26)
c2 =a2 m2 + b2
(mod 26)
in
ar
onde
.
.
.
cn =an mn + bn
(mod 26).
k:
c = mk
k1,1
k1,2
.
.
.
..
kn,1
kn,2
k=
...
k1,n
lim
onde
...
kn,n
Z26 \ { 0 },
Pr
e
27.2 Enigma
Um
operador digitava uma letra de cada vez, e a cada letra digitada uma luz era
acionada indicando a prxima letra do texto encriptado.
Ve
rs
27.3 Criptanlise
27.3.1
27.3.2
Vigenre
Notas
CAPTULO 27.
326
CIFRAS HISTRICAS
in
ar
As mquinas Enigma foram criadas pelo engenheiro alemo Arthur Schrebius na dcada de 1920.
Em 1943 o pri-
lim
Exerccios
Ex. 164 Implemente simuladores para todas as tcnicas descritas neste Ca-
Pr
e
Ex. 165 Determine que cifra foi usada em cada mensagem e determine o
texto claro:
d)
e)
Ve
rs
f)
OAADE IAOIE ACMHR MNUSN SHVQO IASSC BEIAA AUOEU TIMIU RSTTA OESEN
DVNVP IEMAL EACUE QMLPH AMEDO OGARH AVRRM UOAEU OILOQ SES
c)
Ex. 166 Discorra sobre a maleabilidade das cifras descritas neste Captulo.
Ex. 167 No Exemplo 27.9 (cifra de Hill) dissemos que quando realizamos
operaes mdulo
z , uma matriz M
Ex. 168 Determine em que condies a cifra de Vigenre tem sigilo perfeito
(e demonstre o fato).
lim
in
ar
Parte IV
Ve
rs
Pr
e
Apndices
327
Ve
rs
Pr
e
lim
in
ar
in
ar
Apndice A
lim
Probabilidade
Em um grupo de
Pr
e
N.
Ve
rs
Lema A.1. Seja N um inteiro positivo. Se q elementos so escolhidos uniformemente de um conjunto de tamanho N , a probabilidade de dois destes elemenq2
tos serem iguais no mximo 2N
.
Lema A.2.
APNDICE A. PROBABILIDADE
330
Pr[C 1 ]
Ci
em
{e1 , e2 , . . . , ei }.
ento,
A probabilidade de
i
N , e a probabilidade de
ei+1
ser
e1
i elementos diferentes
ei+1 ser igual a um dos anteriores ,
diferente dos anteriores 1 Ni . Ou
ocorre, ento h
seja,
Pr[C i+1 |C i ] = 1
Temos ento
Pr[C q ] =
q1
Y
i=1
1/N < 1
para todo
i
1
N
i,
ento
.
1
i
N
ei/N ,
lim
i
.
N
in
ar
Pr[C q ]
q1
Y
eN
i=1
P
q1
i=1 (i/N )
= e
= e(q1)/2N .
Pr
e
Pr[C]
1 Pr[C q ]
1 e(q1)/2N
q(q 1)
.
4N
de termos q
2N
Ve
rs
1).
(e portanto
in
ar
Apndice B
lim
Pr
e
GF (2m )).
k.
Denotamos
a|b,
a divide
outro inteiro
que se l a divide
se
b.
b = ak
a e b o nmero
d > 0 tal que d|a, d|b e qualquer inteiro f que divida a e b tambm divide
d. Denotamos o mximo divisor comum de a e b por mdc (a, b).
Ve
rs
inteiro
maneira: Sejam
a, b > 1.
Se
mdc (a, b) = b.
mdc(a, b):
se b|a
retorne b
senao
retorne mdc(b,resto(a, b))
Teorema B.3.
Demonstrao.
Se
b > a,
temos que
ab=0
e resto(a, b)=
a.
Assim,
332
in
ar
a b;
d0 = gcd(b, r).
Ento
d0 |b, d0 |r,
d0 |a
porque
Ento
lim
a = qb + r.
ento
mdc (a, b) = 1.
so co-primos.
1.
Pr
e
co-primo
mdc (k, p) = 1.
inteiro,
(n)
Ve
rs
A funo
tambm chamada de
tociente.
4,
porque contamos
n a funo
n.
co-primos com
Claramente, para
primo,
(5) =
J
(p) = p 1.
n por (n).
Muitas
e densidade de primos.
Teorema dos Nmeros Primos, enunciado a seguir, nos garante que a densidade
dos primos suciente para que tais construes sejam seguras.
(n) ln(n)
= 1.
n
Se (n) a quantidade de
333
{ 0, 1, 2, 3, 4, 5 }.
0 + 0, 1 + 3, 1 + 4,
3+4
obtemos
7,
in
ar
. . . , 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, . . .
Assim podemos imaginar que cada elemento
equivalente
lim
teiro:
1 cngruo a 7 mdulo 6.
3 + 4 = 7,
Pr
e
mdulo seis.
Dizemos
7 1 (mod 6).
que cngruo a
3+4=71
(mod 6)
3 4 = 12 0
(mod 6)
3 5 = 2 4
(mod 6)
Ve
rs
Exemplo B.10 (Congruncia). Como exemplos simples de congruncia e aritmtica modular, podemos considerar:
21 15 3
43
(mod 6)
(mod 5) = 2
x Z, 2x + 3
(mod 2) = 1.
J
Exemplo B.11 (Congruncia). Um exemplo importante de situao onde aritmtica modular usada nas operaes em inteiros na CPU de um computador. Suponha que uma CPU trabalhe com palavras de
usando operaes em inteiros sem sinal.
64
334
64
264 1,
Mostramos a operao
in
ar
multiplicamos
a seguir, que feita como a soma usual, mas reduzindo todos os dgitos mdulo
dois
10010110
10010110
100101100
+
O
44.
00101100,
J
lim
Teorema B.12.
equivalncia.
Demonstrao.
i)
ii)
evidente que
Se
Se
a a (mod m),
j que
aa=0
Temos que
iii)
m.
Pr
e
m|(a b)
m|(b c)
ento
m|0
existe
m|((a b) + (b c)),
desde que
talque
m 6= 0;
mk = a b.
e portanto
m|(a c).
Exemplo B.13. A relao congruente a zero mdulo dois uma relao de
Ve
rs
a a (mod 2);
Se
a b (mod 2)
(ou seja,
2|a b
Se
Ou seja, se
(a b) e (b c)
k
J
a (mod n)
1 1 + 1 = 10,
por
[a]n .
335
(mod c)
(B.1)
ax by
(mod c).
(B.2)
Demonstrao.
in
ar
Teorema B.14.
by
ax
Temos que
e
so inteiros. Assim, tambm deve ser
c
c
(a+b)(x+y)
by
ax
inteiro
=
(mod 10),
8 6 3
mas
(mod 10).
lim
16 6
Se ax ay (mod m) e se a e m so
Teorema B.16.
a b (mod pq).
Demonstrao.
Pr
e
Se
a b (mod p)
a b (mod q),
temos
p|ab
q | a b.
so primos e
Como
Ve
rs
(mod pq).
de equaes do tipo
ax + by = d.
O nmero
inteiras
para
ax + by = d.
mdc (a, b) = 3,
a = 15
b = 33.
Sabemos que
x, y
tais
que
15x + 33y = 3,
x = 2
y=1
3) 5x + 11y = 1.
E realmente, os inteiros
336
Dados
a, b Z,
x, y Z
in
ar
ext_mdc(a, b):
se b|a
retorne h0, 1i
senao
q ab
r resto(a, b)
hs, ti ext_mdc(b, r)
retorne ht, s qti
Sejam a, b inteiros positivos, e sejam x, y os dois valores retornados pelo algoritmo extendido de Euclides. Ento ax + by = d tal que d|a e
d|b.
Demonstrao.
lim
Lema B.19.
prova de que o algoritmo para e que roda em tempo polinomial ca como exerccio para o leitor.
ax + by = a,
zero).
que divide
Hiptese de induo: Se
Passo:
b=0
o algoritmo retorna
Pr
e
x=1
ento
ax + by|a
y = 0. Isso
mdc de a e
e
ax + by|b.
Ve
rs
ax + by = at + b(s qt)
= bs + (a bq)t
= bs + rt,
como
r,
e portanto divide
r + bq = a.
Sejam a, b inteiros positivos, e sejam x, y os dois valores retornados pelo algoritmo extendido de Euclides. Ento ax + by = mdc (a, b)
Teorema B.20.
Sejam m1 , m2 , , ms e s inteiros,
todos co-primos. Seja M = m1 m2 ms , e suponha que a1 , a2 , , as sejam
inteiros tais que cada ai co-primo com mi . Ento as s congruncias
a1 x b1
(mod m1 )
a2 x b2
(mod m2 )
,
as x bs
(mod ms )
337
denotamos
ai x bi (mod mi ).
ci .
x c1
(mod m1 )
x c2
(mod m2 )
,
x cs
de
lim
(mod ms )
in
ar
Primeiro, sabemos que h uma soluo para cada uma das congruncias
individualmente:
mi
so co-primos,
Pr
e
ki mi + li Mi = 1
Temos ento
li M i 1
li
Mi . Como li Mi =
por mi :
o inverso de
por todos os
exceto
li M
mi , ento li Mi deve ser divisvel
li M i 1
(mod mi )
li M i 0
(mod mj ) (i 6= j).
Ve
rs
A soluo
mj
ou seja,
(mod mi ),
X=
s
X
ci li Mi ,
i=1
porque
ai X = ai
s
X
ci li Mi
i=1
s
X
ai ci li Mi
i=1
ai ci li Mi
ai ci
(mod mi )
(mod mi ).
M.
338
3x 3
(mod 5),
4x 6
(mod 11),
5x 1
(mod 8).
x1
(mod 5)
x7
(mod 11)
x5
(mod 8)
in
ar
Determinamos que
Temos
c1 = 1, c2 = 7, e c3 = 5.
M = 5 11 8 = 440. Os Mi
lim
e portanto
so:
M1 = 440/5 = 88
M2 = 440/11 = 40
M3 = 440/8 = 55.
Pr
e
(35) 5 + 2 88 = 1
11 11 + (3) 40 = 1
7 8 + (1) 55 = 1.
= 1, l2 = 3 (mod 1)1 = 8,
Mi :
Ve
rs
os inversos dos
e l3
= 1 (mod 8) = 7.
l1 M1 = 2 88
(mod 5) = 1
l2 M2 = 8 40
(mod 11) = 1
l3 M3 = 7 55
(mod 8) = 1.
Estes so
(mod 440).
E vericamos que
3(381) = 1143 3
(mod 5),
4(381) = 1524 6
(mod 11),
5(381) = 1905 1
(mod 8).
J
339
todo
inteiro, h algum
00
(mod 4)
51
(mod 4)
10 2
(mod 4)
15 3
(mod 4).
0, 5, 10
ou
15,
porque
4:
0, 1, 2
ou
lim
3 (mod 4),
transitiva:
e portanto tambm a
n 5 (mod 4)
n 10 (mod 4)
n 15 (mod 4)
Pr
e
in
ar
m um conjunto
i 6= j , ri 6 rj (mod m) e para
(mod m).
sduos mdulo
sduos mdulo
2.
Ve
rs
3.
para todo
n
{1, 3} um sistema
4:
11
(mod 4)
33
(mod 4).
0, 1, 2
0 e 2 no so co-primos
n co-primo com 4, temos que n
3 (mod 4).
J
ou
mdulo 4.
ou
a, se a e m so co-primos ento
{3, 5}.
a(m) 1
(mod m).
340
1612 = 281474976710656 1
in
ar
(mod 21).
lim
todo a inteiro,
ap1 1
(mod p).
Pr
e
mod p.
a7 a (mod 7).
Ve
rs
p = 7.
ap a
Para todo
a,
E de fato,
17 1
(mod 7)
2 = 128 2
(mod 7)
11 = 19487171 4
(mod 7).
11 4 (mod 7).
no a normalmente
m
m.
2 1,
quando
341
a=2
21 = 2 2
(mod 13)
2 =88
(mod 13)
(mod 13)
(mod 13)
2 = 16 3
2 = 32 6
6
2 = 64 12
(mod 13)
(mod 13)
2 = 128 11
8
(mod 13)
(mod 13)
2 = 256 9
lim
2 = 512 5
10
= 1024 10
11
= 2048 7
(mod 13)
12
= 4096 1
(mod 13).
2
2
2
in
ar
(mod 13)
2 =44
(mod 13)
2 uma raiz primitiva mdulo 13: Uma vez que 13 primo, (13) = 12
2i com 1 i 12 formando um sistema reduzido de resduos (note que
13 primo todo 1 i 12 co-primo com 13).
J
Ou seja,
Pr
e
temos
como
m = 13.
Resduos quadrticos, denidos a seguir, so usados diretamente na construo de algumas ferramentas criptogrcas.
p - a.
Se existe um
p.
p,
x2 a (mod p),
um
dizemos
Ve
rs
Demonstrao. a
2x 0 (mod p),
p.
10
13,
porque
Ento,
Observe que
62 = 36 10
2
7 = 49 10
6 7 (mod 13).
(mod 13)
(mod 13).
J
Euler.
342
Teorema B.36.
r
in
ar
Lema B.37. Seja g uma raiz primitiva mdulo p e a co-primo com p. Seja r
tal que g r a (mod p). Ento r par se e somente se a resduo quadrtico
mdulo p.
Demonstrao. Seja g uma raiz primitiva de p. Parapg com expoente par, por
2k
exemplo g , podemos extrair a raiz quadrada de g :
g 2k = g k .
No entanto, h (p 1)/2 expoentes pares (ou razes primitivas) mdulo p.
Este tambm o nmero de resduos quadrticos mdulo p (porque p primo e
(p) = p 1), portanto para k mpar, g k no pode ser resduo quadrtico.
e em caso contrrio
a
Seja
p1
2
(mod p),
(mod p).
(a
e portanto
p1
2
Pr
e
Demonstrao.
p1
2
lim
p1
2
)2 = a(p1) 1
(mod p),
1 (mod p).
p1
2
g k(
p.
p1
2 )
o
k( p1
2 )
divisvel por
p1
p1
2 )
g k(
Ve
rs
Note que
a = 92 4 6 0
b = 2 6 0
(mod p) 1 (mod p) se
k par
e somente se a resduo
ou seja, se e somente se
quadrtico.
tal que
(mod p).
p = 11.
Sejam tambm
(mod 11)
(mod 11).
11.
Temos ento:
(mod 11)
(mod 11).
J
343
a e um
smbolo de Legendre:
+1 se a resduo quadrtico mdulo n
a
= 0
se se p | a
12 1
(mod 7)
32 2
(mod 7)
(mod 7)
7|7
42 2
Ve
rs
12 8
32 9
(mod 7)
(mod 7)
A tabela a
tal que
Pr
e
7|0
(a/7)). Seja p = 7.
a de zero a 10.
0
=0
7
1
= +1
7
2
= +1
7
3
= 1
7
4
= +1
7
5
= 1
7
6
= 1
7
7
=0
7
8
= +1
7
9
= +1
7
10
= 1
7
p,
lim
(a/p)
(a/p).
primo
in
ar
denimos o
a
n
Quando
=
a
p1
a
p2
a
pn
344
45
3 3 5,
(a/15)).
Seja
n = 45.
A fatorao de
ento temos
2
0
0
= 02 0 = 0
3
5
2
13
13
13
=
= +12 1 = 1
45
3
5
2
76
76
76
=
= +12 +1 = +1
45
3
5
2
63
63
63
=
= 02 1 = 0
45
3
5
Teorema B.44.
Demonstrao.
in
ar
0
45
lim
Se
x(p1)/2
Pr
e
(mod p) = g
p,
ento
x = g 2k ,
2k (p1)/2
= g k(p1)
k
= g (p1)
= 1k
Se
(mod p).
x = g 2k+1 , e
(p1)/2
(mod p) = g 2k+1
Ve
rs
x(p1)/2
Mas
g (p1)/2
= g k(p1) g (p1)/2
= g (p1)/2
2
(mod p) = g p1
(mod p) = 1
Mas como
g (p1)/2 1
raiz primitiva,
(22/17) = 1.
(p1)/2
(mod p).
+1
ou
1,
(mod p),
temos que
(mod p).
6 1 (mod p),
Sejam
g (p1)/2 (mod p) = 1.
p = 17
x = 22.
Temos
22 2
(mod 17) = 16 1
(mod 17).
J
345
(mod n)
Sabemos que
in
ar
Teorema B.46.
(13) = 12.
O Teorema nos
(a, b)
de elementos de
a outros elementos
de
satisfaa:
Dizemos que
H um nico elemento
a G,
1
que a
Para todo
existe um elemento
Dizemos
simtrico
de
a1
a.
todo
a G, ea = a = ae.
tal que
Pr
e
(G, ),
e que
lim
a, b, c G, (ab)c = a(bc)
G,
onde
a1 a = e = aa1 .
o conjunto e
a operao.
por
e o inverso de
por
x.
Similarmente,
e o inverso por
x1 .
Exemplo B.49 (Grupo). O conjunto dos racionais sem o zero com a operao
de multiplicao um grupo, porque a operao associativa, h o elemento
neutro
e todo nmero
a/b
b/a,
com
(a/b)(b/a) = 1.
Ve
rs
f :AA
um grupo:
A funo identidade
(f ) = f ;
f f 1 = .
J
346
(G, )
comutativo ou abe-
a, b G, ab = ba.
(R, +)
Ento
comutativo.
in
ar
no
lim
ordem
chamado de
H G,
ento
um
subgrupo
de
nito
se o
usando a mesma
|G|.
um grupo e
Z3 Z4
Pr
e
mos
subgrupo
de
G um grupo e A subconjunto do
subgrupo de G gerado por A, denotado < A >, o menor subgrupo
contm todos os elementos de A.
G.
que
Tome
forma
Ve
rs
3, 5, 3 + 3, 3 + 5, 5 + 5, 3 + 3 + 3, 3 + 3 + 5, . . .
J
ordem
de
lncia de
1, 3, 5
G um grupo e a G. A
| < a > |).
(ou seja,
A = { [1]8 [3]8 [5]8 [7]8 } o conjunto das classes de equiva8. Ento A, com a operao de multiplicao, um
mdulo
grupo.
A ordem de
[3]8
em
portanto a ordem de
3.
Temos
< 3 >= { 31 , 32 , 33 , 34 , . . . }
= { 3, 9, 3, 9, . . . }
= { 3, 9 } ,
[3]8
em
2.
347
(G, )
chamado de gerador.
{g m |m Z} (todo
gerador do grupo.
g G tal que G =
g ). Dizemos que g
in
ar
g,
n
(Z4 , +) temos
os elementos 0, 1, 2, 3 e o gerador 1. 1 + 1 = 2, 1 + 1 + 1 = 3, 1 + 1 + 1 + 1 = 4 0
(mod 4).
J
com a operao de adio um grupo cclico. Por exemplo, em
Teorema B.64.
so co-primos.
lim
Pr
e
fa (y)
para
no
J
x, y Zn .
fa
(mod n).
Ento
tais que
ax (mod n) = ay
a Zn .
Suponha que
fa (x) =
(mod n)
ax ay
(mod n) = 0
a(x y)
(mod n) = 0
n | a(x y).
Suponha que b
/ Zn . Ento mdc (b, n) 6= 1, e existe p tal que p | n e p | b. Mas
ento p | ab, e ab = 1 (mod n). Como ab = 1 + kn para algum k , temos ao
mesmo tempo que p | n e P | (n + 1) absurdo.
n - a,
porque
Ve
rs
Mas
inteiros mdulo n.
Corolrio B.65.
O conjunto
{ x N+ : x < n, mdc (x, n) = 1 }
grupo multiplicativo de
348
primo, o conjunto
in
ar
{ 1, 2, . . . , p 1 }
1, 2, . . . , p 1 no prima
p 1 par e composto).
um grupo cclico.
grande,
Teorema B.68.
lim
Teorema B.67.
g G,
um grupo e
H G.
gH = {gh : h H}
Pr
e
uma
Hg = {hg : h H}
uma
Exemplo B.70 (Classe lateral). Considere o grupo aditivo dos inteiros, e seja
g = 1,
temos
gH = { 1 4, 1 2, 1 + 0, 1 + 2, 1 + 4, . . . } ,
o conjunto dos inteiros mpares.
Novamente tomamos
(Z, +),
H = Z6 .
Se
g = 10,
Ve
rs
temos
f :GH
x, y G.
um
homomorsmo
se
349
riamente o ou exclusivo.
f (x) = ex
A funo
um homomorsmo de
em
G = (Z, +) e H = (R, ).
H , porque para quaisquer
in
ar
x, y Z,
f (x + y) = ex+y = ex ey = f (x)f (y).
anel
A estrutura
R.
(R, +)
lim
Se h distributividade de
sobre
+,
uma
ou seja,
a(b + c) = ab + ac
para todos
a, b, c R,
(R, , +)
um
anel.
so denotados
Zn .
Pr
e
Z5
{0, 1, 2, 3, 4}
com as
Note que em um anel nem todo elemento tem inverso multiplicativo. Por
exemplo,
mas
Z4
no tem inverso no h
n N+ .
2x = 1.
tal que
Ve
rs
n,
x Z4
A(BC) = (AB)C ;
AC .
unidade
A(B + C) = AB +
J
inverso multiplicativo.
Em
Z4
as unidades so
3;
j em
as unidades so apenas
n,
1.
as unidades so as matrizes no
singulares.
grupo de unidades de R.
R.
Ento
350
Zn
Zn .
Por exemplo, considere o anel
Z15 .
O grupo de unidades
Z15
{1, 2, 4, 6, 7,
in
ar
x R
Um elemento
irredutvel
(R, , +)
um anel.
que
no sejam unidade.
A estrutura algbrica que permite realizar naturalmente as operaes aritmticas usuais o corpo, denido a seguir.
lim
(F, , +)
um corpo.
ou
C, R
(F \ {0}, )
um grupo
3
so corpos .
um anel. Se
Pr
e
comutativo, ento
raiz da unidade
se existe
tal que
xn = 1,
onde
trivialmente
n-sima
multiplicao.
Ve
rs
Em
h quatro
Teorema B.85.
em C, que so
C).
1:
para k = 0, 1, . . . , n 1.
Demonstrao.
ei = cos + isen ,
3 No
entanto,
no ordenado e
no completo
351
e(2i0)/n = e0 = 1
e
(2i1)/n
2i/3
=e
e(2i2)/n = e4i/3
Teorema B.87.
grupo cclico.
Demonstrao.
Seja
n = 3.
i 31
=
2
!
i 31
=
2
1.
3i 3 + 9 + 3i 3 1
=
23
8
= = 1.
8
Ento,
lim
Pr
e
i 31
2
!3
C).
in
ar
Sejam
k, k 0 N+ .
Ento
= e(2i(k+k ))/n
Ve
rs
= e[2i(k+k
= ( n )
k+k0
(mod n))]/n
C) .
k ,
C o grupo
0 k < n.
A Figura a seguir mostra, no plano complexo, as razes da unidade para n = 16
(i)/8
4
8
12
(e para esta caso, = e
). Note que = i, = 1 e
= i.
= e2i /n
dado por
Em
com
lk
ln
= nk .
352
Demonstrao.
Trivialmente,
in
ar
lk
lk
ln
= e(2i)/ln
k
= e(2i)/n
= nk .
lim
Corolrio B.90.
2
= n/2 .
Seja n = e(2i)/n gerador do grupo das n-simas razes da unidade em C. Seja n N e k Z tais que n > 0 e n 6 |k . Ento
X
j
nk = 0.
Lema B.91.
Demonstrao.
Pr
e
0jn1
A srie descrita,
n
X
(nk )j ,
xi =
i=0
Ve
rs
temos
nk
xn+1 1
,
x1
j
0jn1
(nk )n 1
nk 1
(nn )k 1
nk 1
k
1 1
= k
n 1
= 0.
um
B duas
AeB
entre os elementos de
na estrutura
x, y A, f (x y) = f (x) f (y).
so
isomorfos.
353
B = ({ x : x = 2k, k Z } , +) o grupo
isomorfos porque existe a bijeo f (x) = 2x, e
A = (Z, +)
x, y Z, 2(x + y) = 2x + 2y.
in
ar
R um anel com
1 e 0 para as operaes de multiplicao e adio, respectivamente. A caracterstica de R o menor inteiro n tal que n1 = 0, onde n1
denota a soma de n elementos 1: 1 + 1 + 1 + . . . + 1 = 0. Quando no possvel
escrever 0 como uma soma de 1s, a caracterstica do anel zero.
elementos identidade
Exemplo B.95. Em
(Z5 , , +)
temos
1 + 1 + 1 + 1 + 1 = 0,
5.
portanto a carac-
lim
terstica do anel
Pr
e
um corpo ou
f (x) = a0 + a1 x + a2 x2 + + an cn
ai , x A
onde
um
polinmios sobre
O conjunto de todos os
denotado
Exemplos familiares so
R[x]
C[x],
C.
F[x]
R[x].
Observando que h operaes de soma e multiplicao denidas para polinmios, conclumos que podemos trat-los tambm como estruturas algbricas: um
conjunto de polinmios com operaes de soma e produto um anel polinomial.
Ve
rs
irredutvel.
ou
ou
constante.
f A[x] irredutvel
g, h A[x], se gh = f ento
354
corpos de Galois.
Fp )
Fpm
ou
Z2
in
ar
GF (pm )).
com as operaes usuais mdulo dois
(mod 2) = 0
0+1
(mod 2) = 1
1+0
(mod 2) = 1
1+1
(mod 2) = 0
00
01
10
11
lim
0+0
(mod 2) = 0
(mod 2) = 0
(mod 2) = 0
(mod 2) = 1
Pr
e
Valem os axiomas de corpo: temos fechamento sob as duas operaes; as operaes so associativas e comutativas; zero e um so elementos neutros, um para
cada operao; o elemento
como
tem
Z5 ,
um corpo nito.
Z6
k = 6,
Ve
rs
Para
J
m
GF (p )
Fp .
A[x],
e denotado
A[x]f .
um polinmio em
em
A[x]
355
Por exemplo, se
Ak [x]f
Computamos
Dividimos
Reescrevemos os coecientes de
em dois polinmios
f = gh;
por
e tomamos o resto
mdulo
Sejam
g(x) = x2 + x
k.
Pr
e
h(x) = 2x + 1
Calculamos
fazemos:
x2 + 2 .
h,
in
ar
de todos os
lim
polinmios em
Z4 [x] mdulo
mdulo
4,
obtendo
2x + 3
e resto
3x 6.
Agora reescrevemos
obtendo
Ve
rs
x2 + 2 ,
gh
x + 2.
o polinmio
x+2
em
Z4 [x].
polinmios mdulo
f (x)
e seus coecientes.
a3 , a2 , a1 , a0
0, 0, 0, 0
0, 0, 1, 0
0, 1, 0, 0
1, 0, 0, 0
0, 0, 1, 1
0, 1, 1, 0
1, 1, 0, 0
1, 0, 1, 1
0, 1, 0, 1
1, 0, 1, 0
0, 1, 1, 1
1, 1, 1, 0
1, 1, 1, 1
1, 1, 0, 1
1, 0, 0, 1
0, 0, 0, 1
lim
in
ar
356
Pr
e
x1 , x2 , . . . , x15 ,
24
elementos.
Ve
rs
mos que
mio
g(x) = x.
GF (24 )
partindo do polin-
g(x) = x
disso:
357
x2 + 1
o polinmio
GF (33 )
usando
x.
k
1
2
3
4
5
6
7
xk
k xk (mod f (x))
8
x2 1
9
x1
10
x2 x
11
x2 + x + 1
12
x2 1
13
1
x
14
(mod f (x))
x
x2
x+1
x2 + x
x2 + x + 1
x2 x + 1
x2 x + 1
GF (34 ) usando
mas x + 1 .
Tambm em
Ve
rs
primitivo,
Pr
e
k
14
15
16
17
18
19
20
21
22
23
24
25
26
A prxima
lim
in
ar
mas
o polinmio
x4 + 2x2 + 1
como mdulo,
no
quisermos para corpos nitos cuja ordem potncia de primo, porque as representaes so isomorfas.
GF (2m )
Cada polinmios em
GF (2m )
tem como coecientes nmeros mdulo dois, e por isso podem ser descritos
como sequncias de
x3 + x2 + 1 tem os coecientes 1, 1, 0, 1,
sequncia de bits 1101.
polinmio
a
GF (2m ).
GF (24 )).
Em
GF (24 )
358
Computadores normalmente tem operaes para realizar ou-exclusivo bit-abit, possibilitando a soma rpida de polinmios representados desta forma.
GF (24 ), seja f o
polinmio x +x +1, representado por 1101 e g o polinmio x +x, representado
3
2
por 1010. A soma f + g resulta no polinmio 2x + x + x + 1 (mod 2), que o
2
mesmo que x + x + 1. Esta soma pode ser obtida efetuando o ou-exclusivo da
GF (24 )).
Em
in
ar
Se os polinmios tem tamanho igual ao da palavra usada pela CPU, esta ope-
lim
rao pode ser feita com uma nica instruo de ou exclusivo. Se mltiplo da
palavra da CPU, ainda assim apenas um ou exclusivo por palavra usado.
Notas
Pr
e
um primeiro contato; h tambm os de Herstein [Her96], Gallian [Gal09] e Artin [Art91]. Os livros de Jacobson [Jac09a; Jac09b] so excelentes, redigidos em
estilo verbalmente descritivo; o estilo de Hungerford [Hun80] oposto, compacto
e fazendo uso mais frequente de simbolismo. Uma abordagem diferente para a
lgebra, em nvel avanado, a do livro de Paolo Alu [Alu09], que inicia com
uma breve introduo Teoria das Categorias e segue com um curso avanado
Ve
rs
neo [BCC09] e de Hostein, Pipher e Silverman [HPS08] so tambm particularmente interessantes para estudiosos de Criptograa.
359
Exerccios
Ex. 170 Dentre todos os mltiplos positivos de 432,
escolhido unifor-
3x
a) 2x
4x
4
3
1
3 (mod 17)
6 (mod 5)
7 (mod 6)
1 (mod 11)
2x
4x
b)
8x
16x
(mod 7)
(mod 8)
(mod 3)
in
ar
M.
lim
a)
x = 2, p = 7
b)
x = 4, p = 7
c)
x = 5, p = 11
d)
x = 5, p = 13
e)
x = 6, p = 13
f)
x = 11, p = 17
x = 2, n = 6
b)
x = 6, n = 10
c)
x = 7, n = 12
d)
x = 9, n = 12
e)
x = 14, n = 15
f)
x = 19, n = 30
Ve
rs
a)
nmeros em
Zn
11.
(Use o critrio de
n?
(Fatore
e use o
p?
Pr
e
Euler)
5, 7, 9
mpar, ento
xy
n
o produto de
xy
n
nmeros primos
n?
p1 , p2 , . . ., pk .
Quantos
360
f : A A
com a operao de
composio um grupo?
in
ar
nho
log2 |G|.
a transformada de Fourier
4 da composio de
Pr
e
(f, g)
de
lim
1 gerador.
g:
(f, g) = F (f g).
(J, )
um grupo?
G.
Zp
aG = Gb
p,
se e somente se
com
ab1
primo e a operao
tem exata-
Ve
rs
subgrupo de
a, b S
se e somente se
=
6 S R, ento S
a b S e ab S .
um anel e
implica em
subanel de
4 Veja
o Apndice D
361
e multiplicao um corpo?
(R[x], +, )
um corpo?
in
ar
Ex. 194
Ex. 195 (Golan) Mostre que o corpo dos reais tem innitos subcorpos.
[a, b] + [c, d] = [a + c, b + d]
n 1,
n
lim
para todo
i.
Ve
rs
Pr
e
onde
p.
Mostre
Ve
rs
Pr
e
lim
in
ar
362
in
ar
Apndice C
lim
Complexidade Computacional
heaps ou
Pr
e
certamente desejvel que possamos comparar os tempos de execuo de diferentes algoritmos. H situaes em que esperamos que o algoritmo seja usado
Ve
rs
muitas vezes com entradas muito pequenas por exemplo, algoritmos usados
no ncleo de um sistema operacional.
quantidade de operaes.
tamanho da entrada
Estamos interessados no no
valor dessa funo em algum ponto, mas em quo rpido ela cresce quando
comparada com outras. Para isso determinamos sua ordem de crescimento. Por
2
3
exemplo, f (x) = x + 100 pode ser menor que g(x) = x para alguns valores,
mas a cbica cresce mais rpido que a quadrtica, havendo um x0 a partir
do qual g(x) > f (x), mesmo que f (x) seja multiplicada por uma constante
363
364
arbitrariamente grande.
A Figura a seguir mostra duas funes,
y=x
de ambas para
in
ar
contnua) e
y = x1.9
1.5
104
5
200
4
150
y
3
100
50
lim
1
0
10
50
100
150
x
200
250
300
C = AB ):
Pr
e
para i de 1 a N
para j de 1 a N
Ci,j 0
para k de 1 a N
Ci,j Ci,j + Ai,k Bk,j
Ve
rs
f,
o con-
junto
Proposio C.2.
Ento existe um termo (uma funo) fk (x) tal que fi (x) O(fk (x)) para todo
1 i n.
COMPLEXIDADE DE TEMPO
2x
365
, porque
x log(x)
4x
O(2x4 )
O(2x4 )
O(kg(x)),
com
in
ar
C.1.
O(g(x)).
constante,
O(2x )
O(x4 )
x! + 2
4x log(x) + 2x
Tambm abusamos da notao e escrevemos
O(g(n)),
ou dizemos que
f (n)
O(g(n)).
lim
2x + 5x5
O(x!)
O(x log(x))
O(n3 ).
Pr
e
H um problema prtico com o descarte de constantes que surjam multiplicando o termo dominante de uma recorrncia: quando ela muito grande,
pode indicar que o algoritmo no til na prtica. Por exemplo, um algoritmo
quadrtico para resolver um problema pode ter complexidade de tempo igual a
1000x2 .
Alm da denio de
O(f (n)),
Ve
rs
O(log(x))),
Denio C.3 (Complexidade polinomial, exponencial e subexponencial). Dizemos que um algoritmo tem complexidade de tempo
O(n2 )
O(n3 )
so
366
subexponencial.
ecientes,
in
ar
e estamos interessados
em determinar que tipo de algoritmo pode ser usado para resolver diferentes
problemas computacionais: ser possvel fatorar um inteiro
mial no tamanho da descrio de
de
n?
n em tempo polino-
equaes?
n:
de tamanho
lim
para i de 1 a n1
para j de i+1 a n
se Vi > Vj
troque Vi com Vj
O(n2 ).
O que zemos conceitualmente foi, no conjunto de todas as possveis solues (ou seja, todas as permutaes de
n!
permutaes de
V,
V)
Pr
e
Note que h
n!
O(n2 )
O(n!),
alm
C.1.1
Recorrncias
merintercalao):
gesort
merge
(ou
Ve
rs
ros elementos de cada vetor. Escolhemos o menor e copiamos para o novo vetor.
Depois, avanamos para obter o prximo menor do vetor de onde acabamos
de tirar um elemento. Comparamos novamente e repetimos a operao at que
os elementos se esgotem.
C.1.
COMPLEXIDADE DE TEMPO
Usaremos o procedimento
367
na gura abaixo).
lim
in
ar
m,
b,
V,
Pr
e
merge(V,a,m,b):
W novo vetor
ia
j m+1
k1
enquanto i < m ou j < b:
se Vi < Vj
Wk V i
ii+1
senao
Wk V j
j j+1
k k+1
copie W sobre V
Ve
rs
A complexidade de tempo de
O algoritmo
mergesort
merge
claramente
listado a seguir;
O(n).
mergesort(V,a,b):
se a < b:
m b(a + b)/2c
mergesort(V,a,m)
mergesort(V,m+1,b)
merge(V,a,m,b)
O argumento usado na demonstrao da complexidade do mergesort se apoia
Teorema C.4.
368
n/2
mergesort;
para a chamada a
merge.
in
ar
Demonstrao.
n,
2k (logk n) = n. O
O(n log(n)) no total.
tempo
e
n/2.
O(n);
lim
da entrada
log2 n,
e em cada nvel
n = 1.
O(n)
em cada iterao
Pr
e
rapidamente.
forma
Se uma recorrncia da
T (N ) = aT (n/b) + f (n),
ento
Ve
rs
iii) Se f (n) = (nlogb (a)+ ), e af (n/b) cf (n) para algum c < 1 e n sucientemente grande, ento
T (n) = (f (n)).
dade de tempo do
mergesort.
f = n).
f (n)
(nlog2 (2) )
(n),
(n log n).
mergesort)).
A recor-
Vericamos que
C.1.
COMPLEXIDADE DE TEMPO
369
O(n3 ).
O algoritmo
in
ar
A
C
B
D
E
G
F
H
=
AE + BG
CE + DG
AF + BH
.
CF + DH
Aparentemente, para multiplicar as duas matrizes precisamos realizar oito multiplicaes de matrizes com metade do tamanho das matrizes originais.
Nos
lim
n/2 (no
estamos contando nmero de elementos na matriz, mas seu maior lado ou sua
Pr
e
T (n) = n
(n2 ).
, e o algoritmo no ser
AE + BG
AF + BH
Ve
rs
e observamos que
= A(F H)
= (A + B)H
= (C + D)E
= D(G E)
X1
X2
X3
X4
X5 = (A + D)(E + H)
X6 = (B D)(G + H)
X7 = (A C)(E + F )
P5 + P4 P2 + P6
P1 + P2
CE + DG =
P3 + P4
CF + DH
P5 + P1 P3 P7
sete
multiplicaes, e no
outo.
(nlog2 7 ) = (n2.8074 ).
370
C.1.2
tamanho
da entrada, e no seu
valor.
in
ar
usando o
imaginar que a busca exaustiva pela soluo tem complexidade de tempo linear:
basta que veriquemos, para cada
0 < i < n,
se
gi = y.
No entanto, ao racioci-
valor n.
lim
mdulo
bits:
C.2 Grafos
com
Pr
e
u, v V .
G = (V, E)
consiste de um conjunto
{ u, v },
onde
Usualmente os grafos so representados visualmente como conjuntos de pontos (os vrtices) ligados por linhas (as arestas).
V = {a, b, c, d, e}
{ a, b } , { a, c } , { a, e } ,
.
{ b, c } , { b, d } , { c, d } , { d, e }
Ve
rs
G = (V, E)
onde
a
e
d
J
G = (V, E), o grau de um
w a v (ou seja,
de v por d(v).
a quantidade de vrtices
a quantidade de vizinhos de
v ).
wV
Denotamos o grau
C.2.
GRAFOS
371
No exemplo dado,
d(a) = 3
d(c) = 2.
Neste Apndice estamos interessados principalmente em denies relacionadas a grafos, que usaremos em diversos problemas e algoritmos. No apre-
in
ar
Teorema C.10.
par.
|E|:
d(v) = 2|E|.
vV
lim
Demonstrao.
Se a quantidade de vrtices com grau mpar fosse mpar, o somatrio seria mpar,
e no poderia ser igual a
2|E|.
Teorema C.11.
n1
outros, portanto h
Pr
e
Demonstrao.
vrtices.
pombos.
n1
vrtices por
Kn .
uma clique de
tringulos): {a, b, c}
Ve
rs
chamamos de
{b, c, d}.
vi , vi+1
consecu-
tivos.
Por exemplo,
(a, b, c, d)
(a, b, d, e, a)
como exemplo.
chamado de
circuito Hamiltoniano.
G
, vk )
372
(a, b, c, d, e, a).
conexos
desconexos,
usando
in
ar
a Denio a seguir.
Denio C.16 (Grafo conexo). Um grafo conexo se, para qualquer par de
vrtices
(a, b),
existe um caminho de
at
b.
lim
3-colorao:
Pr
e
uma
a3
b1
c2
d3
e1
circuitos.
Ve
rs
a
c
b
d
g
f
h
V = {a, b, c, d, e, f, g, h}
E = {{a, b}, {a, c}, {c, d}, {c, e}, {c, f }, {e, g}, {e, h}} .
1 Provas
C.3.
373
G = (V, E) e G0 =
f : V V tal que { x, y } E se
(V , E )
e somente se
{ f (x), f (y) } E 0 .
G, F
os grafos a seguir:
I
ax
cy
G
de
bw
dz
Pr
e
lim
Os grafos
in
ar
Um conjunto
de possveis entradas, ou
instncias
do problema.
tamanho
No
da
Ve
rs
factveis.
solues
Dado um vetor
mentos de
V,
de tamanho
n,
qual o vetor
V0
em ordem crescente?
cidades,
qual
o caminho que
374
Dadas
equaes com
n,
in
ar
maneira de percorr-las, passando somente uma vez em cada uma, gastando no mximo
Dado um nmero
n,
em combustvel;
primo.
k?
lim
decidir se
Note que um problema de deciso no pode ser mais difcil que um problema
de busca: se pudermos resolver o problema de busca, teremos automaticamente
obtido uma resposta para o problema de deciso.
Por outro lado, se provarmos algo
negativo
a respeito de um problema de
deciso (por exemplo que insolvel, ou que no h para ele algoritmo eciente),
Pr
e
Denio C.23 (Algoritmo no determinstico). Um algoritmo no determinstico para um problema de deciso aquele que, dados uma instncia de um
Ve
rs
G = (V, E)
e um conjunto de vrtices
k:
se |K| < n
retorne NAO
para todo u, v K
se (u, v)
/E
retorne NAO
retorne SIM
O(|K|2 ),
vrtices de K .
u, v K
determinstico.
C.5.
ALGORITMOS RANDOMIZADOS
375
Denio C.25 (Algoritmo no determinstico). Um algoritmo dito no determinstico quando pode seguir vrias sequncias diferentes de passos ao mesmo
tempo. Quando uma destas sequncias chega a um resultado e para, o algoritmo
in
ar
para.
Quando uma nova linha de execuo criada, ela se comporta como se
tivesse clonado toda a memria (todas as variveis) da linha que a iniciou.
se o algoritmo executasse em um computador com innitas unidades de processamento, uma para cada caminho possvel. A seguir apresentamos novamente
lim
Pr
e
escolha naodeterministicamente C V
se C clique (use o algoritmo anterior para verificar)
retorne SIM
senao
retorne NAO
A primeira linha diz escolha no-deterministicamente. Isso signica que o
algoritmo deve escolher um dentre um nmero exponencial (2
tos de
V.
|V |
|V |
) de subconjun-
segue com um subconjunto, at que uma delas encontre uma clique de tamanho
n,
Deve car claro agora como as duas denies esto relacionadas: no segundo
2|V |
exemplo, as
2|V |
candidatas a soluo.
Ve
rs
que usa um gerador de nmeros aleatreos durante sua execuo. Quando executado duas vezes com a mesma entrada, pode realizar computaes diferentes
ap a (mod p)
ou seja, que
primo, ento
primo escolhendo
376
no ocorra,
certamente composto.
Caso ocorra,
Esco-
ser verdadeira.
in
ar
repita k vezes
a nmero aleatreo (1, n)
se an1 6 1 (mod n)
retorne COMPOSTO
// com certeza absoluta
retorne PRIMO
// provavelmente
lim
Este algoritmo apresentado aqui por sua simplicidade; h algoritmos melhores para testar primalidade, como por exemplo o de Rabin-Miller.
Pr
e
mas de deciso. Isto porque cada problema de deciso dene uma linguagem
formal (consulte livros de linguagens formais e de complexidade computacional
para uma discusso detalhada).
Um problema de deciso no mais difcil que o problema de otimizao correspondente: sabendo resolver o problema de otimizao podemos simplesmente
resolv-lo e, de posse da soluo tima, responder a pergunta do problema de
deciso.
com exemplos.
P ).
Ve
rs
MDC
PRIMO
(dado um nmero
n N,
determinar se
primo) porque o
de busca fcil.
N P ).
NP
quando pode
C.6.
CLASSES DE COMPLEXIDADE
377
CLIQUE
Determinar se um grafo
k.
N P.
in
ar
CLIQUE
ciclo Hamiltoniano.
O problema est em
lim
CICLO-HAMILTONIANO:
N P:
TETRIS:
Pr
e
para os lados e para baixo de forma que todas desapaream , sendo que a
ltima pea preencher o espao que faltava?
H uma grande quantidade de problemas em
deles aqui.
N P,
H diversas subclasses de
PP ,
mas
1/2
so particularmente interessantes:
BPP ).
BPP
quando
Ve
rs
2/3
2/3.
1/2.
BPP (um
est contida em
algoritmo determins-
Outra classe importante a dos problemas que podem ser resolvidos usando
espao
PSPACE ).
espao
PSPACE
da entrada.
3 Lembre-se
se
polinomial no tamanho
378
NP
Teorema C.32.
N P PSPACE .
est tambm em
PSPACE .
in
ar
um problema em
linguagem
de um
3, 11
17
primos.
(a, b, f, c, d, e, a)
lim
Pr
e
Ve
rs
Computacional.
circuito Hamiltoniano.
determine se
G = (V, E),
ns de
c:ER
e um nmero
m,
determine se h uma
m.
tambm o HAM:
C.7.
REDUES E COMPLETUDE
Dado o grafo
379
Se resolvermos
|V |, sabemos
in
ar
Para resolver o HAM usando o TSP tivemos que descrever um algoritmo que
transforma entradas do HAM em entradas do TSP (simplesmente adicionamos
pesos 1 a todas as arestas, e determinamos que m = |V |), e a sada do algo-
ritmo para o TSP nos d a resposta para o HAM. Esta tcnica que consiste em
reduo.
A gura abaixo ilustra a reduo que zemos. Note que a reduo (a transformao da entrada) foi feita em tempo polinomial (adicionar pesos s arestas
O(|E|)).
os circuitos em
lim
G.
instncia de
HAM
instncia de
TSP
Pr
e
sim / no
algoritmo para
TSP
P TSP.
B,
usamos a notao
A P B .
para um
HAM
HAM.
Finalmente denimos a noo de
N P -completude4 .
Ve
rs
ii)
P NP
P0 N P, P0 P P.
A classe de problemas
classe de problemas
ltima.
N P-
completo.
Teorema C.39.
4 Denimos
TSP N P -completo.
polinomial. Esta noo de reduo chamada de reduo de Cook. H outra, no equivalente, chamada de reduo de Karp, mais aceita entre tericos de Complexidade, mas sua
incluso neste texto o tornaria desnecessariamente mais complexo.
380
Demonstrao.
i)
T SP N P :
sequncia de vrtices) possvel vericar em tempo polinomial se ela face somar os custos).
ii)
in
ar
C.7.1
Restrio:
problema A
so normalmente de um
lim
a outro problema
o algoritmo de soluo de
usada na reduo de
suciente usar
Essa a tcnica
Pr
e
Substituio local: ao provar que B N P -completo usando uma reduo de A, observamos como traduzir, de maneira direta, homognea e em
tempo polinomial, cada instncia de A em uma instncia de B ;
Projeto de componentes:
em outra de
Restrio
B N P -difcil, mostramos
N P -difcil A pode ser transformada
N P -completos.
Ve
rs
N P -difcil.
MOCHILA: dados um conjunto X , uma capacidade C , um valor objetivo
K e funes s : X Z+ e v : X Z+ dando um tamanho e valor para cada
x X , determinar se existe um subconjunto X 0 X tal que
X
s(x) B
de que
xX 0
X
xX 0
v(x) K.
REDUES E COMPLETUDE
381
N P -difcil.
as instncias de ma-
in
ar
C.7.
Substituio local
lim
S1 , S2 , . . . , Sn ,
Si , i X com
U = Si
e um inteiro
tamanho mximo
tal que
k , existe um
ix Si = U ?
conjunto de conjuntos
Pr
e
G = (V, E)
K em G?
est ligado
e um inteiro
K,
Teorema C.42.
CONJUNTO-DOMINANTE N P -difcil.
Ve
rs
(U, S)
simplesmente um grafo
G).
tanto os ndices
i = 1, . . . , n
U:
V = I U.
ligamos entre si com arestas todos os vrtices que representam ndices, e ligamos
cada elemento de
E = { { i, j } : i, j I } { { i, x } : x Si }
S3 = { x3 , x4 }, S4 = { x5 , x6 }.
S1 = { x1 }, S2 = { x1 , x2 , x3 },
in
ar
382
{ 2, 3, 4 }, destacado na FiX = { Si , i Y } soluo para COBERTURA-DECONJUNTO, ento ento X um conjunto dominante no grafo: todos os vrti-
Seja
lim
ces de ndice esto conectados entre si, e como este subconjunto est conectado
com todos os vrtices dos elementos dos
Alm disso,
|X| = |Y |
Si ,
da cobertura de conjunto.
Pr
e
Como a transformao da instncia de CONJUNTO-DOMINANTE na instncia de COBERTURA-DE-CONJUNTO pode ser feita em tempo polinomial,
conclumos que CONJUNTO-DOMINANTE N P -difcil.
O Exerccio 218 pede a demonstrao de que CONJUNTO-DOMINANTE
est em
N P.
Projeto de componentes
3COLOR:
Ve
rs
3SAT).
Uma instncia do
3SAT
exibida a
(a b c) (b d f ) (b e g) (a b f ),
Demonstrao.
N P -difcil.
3SAT
3COLOR.
3SAT em instn-
cias de
3COLOR.
C.7.
REDUES E COMPLETUDE
383
T, F
ser
o mesmo
x , x e .
Quando
lim
in
ar
Pr
e
O segundo componente garante que uma varivel e sua negao s podem assumir os valores verdadeiro e falso, e que no podem ter o mesmo valor.
O terceiro componente construdo para cada clusula, e compartilha o
Ve
rs
i)
ii)
Incluimos os vrtices
F,
iii)
, T ,
a, b, b, . . .).
e sua negao
v,
ligamos
v, v
em uma 3-clique,
384
iv)
(ii)
com o vrtice
includo no passo
(i),
in
ar
(a b c) (b c d) (a c d).
a
lim
Pr
e
Ve
rs
em cada
T.
3SAT
em uma de
3COLOR,
ento
3COLOR
N P -difcil.
3SAT
completo.
N P -difcil, 3COLOR
N P-
C.7.
REDUES E COMPLETUDE
C.7.2
385
Padres comuns
comum que problemas sejam facilmente solveis quando solues reais ou raci-
in
ar
solues no-inteiras,
O problema da mochila, que pode ser resolvido ecientemente se for permitido escolher fraes de objetos;
C.7.3
N P -completo
lim
quando as
Embora seja verdade que no sejam algoritmos ecientes para resolver de maneira exata problemas
N P -difceis,
Pr
e
N P-
Tempo pseudo-polinomial
Embora seja
Eviden-
Seja
temente,
Ve
rs
mi = max wj + mivj .
1jn
vj i
i 1,
determinamos
mochila(v, w, C):
m0 0
para i de 1 a n:
x0
para j de 1 a C:
386
in
ar
0
0
0
0
0
0
0
2
2
2
2
2
2
2
0
4
4
4
4
4
4
0
0
6
6
6
6
6
0
0
0
9
9
9
9
0
0
0
0
11
11
11
0
0
0
0
0
13
13
0
0
0
0
0
0
15
lim
valores iguais a
A soluo tima nos d valor igual a quinze, com uma unidade do item 4 e trs
1 9 + 3 2 = 15 e o peso 1 4 + 3 1 = 7). J
Pr
e
O(nC),
onde
C,
a capacidade da mochila e
a quantidade de objetos.
represent-la
log C .
C.
ou
O2k ,
onde
o nmero de bits
O(n2k ),
Ve
rs
pseudopolinomial.
Algoritmos de aproximao
Muitas vezes, apesar de no conseguirmos algoritmos ecientes para resolver
de maneira exata problemas de otimizao
N P -completos,
podemos encontrar
TSP
Suponha que a soluo tima para cada instancia I do problema P dada por
OP T (I). Suponha tambm que a soluo dada por um algoritmo A dada por
A(I). Como s trabalharemos com um problema e um algoritmo aproximado
C.7.
REDUES E COMPLETUDE
387
notao.
Idealmente, para toda instancia
de
P,
aproximao absoluta.
absoluta
I,
uma
in
ar
ecientes que nos dessem solues diferindo da tima apenas por uma constante.
aproximao
|A(I) OP T (I)| k.
lim
Todo grafo planar pode ser colorido com no mximo seis cores, portanto
Obter
2-colorao
Pr
e
aprox_colore_vertices(G):
se E = :
retorne uma unica cor
se G e bipartido:
retorne uma 2coloracao
senao
retorne uma 6coloracao
6-colorao
se P =
6 N P , no existe aproximao absoluta para o problema
Teorema C.47.
da mochila.
Um deles o da
Ve
rs
INDEPENDENTE.
TSP
CONJUNTO-
()
uma
(n)-aproximao
I,
OP T (I)
A(I)
p(n)
388
onde
Quando
que
uma
k -aproximao.
()
in
ar
N P -completo.
COBERTURA-POR-VERTICES: dado um grafo G = (V, E) e um inteiro
0
positivo K , determinar se existe V V de tamanho menor ou igual a K tal
0
que toda aresta de E tem pelo menos um de seus vrtices em V .
H uma 2-aproximao para COBERTURA-POR-VERTICES.
O problema da cobertura de grafos por vrtices
lim
aprox_vertex_cover(G):
C
A cpia de E
enquanto A 6= :
{ u, v } alguma aresta de A
C C { u, v }
remova de A qualquer aresta incidente em u ou v
retorne C
Pr
e
Proposio C.49.
tempo polinomial.
Demonstrao.
Ve
rs
cobertura de A.
Quando uma aresta { u, v } includa em C , todas as outras arestas incidentes em u ou v so excludas de A, ento no h arestas adjacentes em C , e
:
portanto precisamos de exatamente dois vrtices por aresta de A
|C| = 2|A|
C.7.
REDUES E COMPLETUDE
389
OP T (I)
uma cobertura de
Mas
A E ,
e portanto
|E| OP T (I).
|A|
Temos ento que
2OP T (I).
|C| = 2|A|
C.7.4
SAT:
3SAT
N P -completos.
lim
in
ar
(descrito no texto);
(descrito no texto);
CLIQUE
(descrito no texto);
Pr
e
3COLOR
COBERTURA-POR-VERTICES
Ve
rs
(descrito no texto);
COBERTURA-DE-CONJUNTO
CONJUNTO-DOMINANTE
(descrito no texto);
(descrito no texto);
CICLO-HAMILTONIANO
(descrito no texto);
390
TETRIS
(descrito no texto);
in
ar
EQUACAO-DIOFANTINA-QUADRATICA
(descrito no texto);
lim
GERACAO-DE-PERMUTACAO: dada uma permutao sobre o conjunto de inteiros S = {1, 2, . . . , n} e uma sequncia (S1 , S2 , . . . , Sm ) de
subconjuntos de S , possvel expressar como uma composio =
1 2 m , tal que para cada 1 i m, i uma permutao de S que
muda apenas as posies dos elementos de Si ?
EMPACOTAMENTO-DE-CONJUNTO: Dada uma coleo C de conjuntos e um inteiro positivo k |C|, determinar se C contm pelo menos k
conjuntos mutuamente disjuntos.
SBP:
SVP:
L.
Pr
e
e um ponto
em
Ve
rs
Dados
MQUINAS DE TURING
Teorema C.54.
Demonstrao.
391
para quando
versa.
confunde(P, e):
se nao para(P, e) // P no para
retorne SIM
senao
// P para
nao pare nunca
diagonal(x)
no para, e vice-
do procedimento
para
existir.
Pr
e
diagonal
Podera-
diagonal(x):
confunde(x, x)
Podemos executar
e.
lim
Finalmente,
para(P, e)
in
ar
C.9.
Mquinas de Turing
Ve
rs
C.9
N P -difceis.
estado e uma cabea de leitura e gravao que percorre uma ta com smbolos.
Ao iniciar a operao a mquina estar em um estado denominado inicial. Em
um passo de computao, a mquina:
1. L um smbolo da ta
392
ii.
iii.
e direita por
in
ar
i.
.).
x, q4 , /),
q4 ,
q2
escreva x onde
q3
lim
q3
Pr
e
a b b c a c d a
Uma maneira de representar mquinas de Turing como um grafo. A prxima Figura ilustra uma mquina de Turing com trs estados. Esta mquina
verica se uma cadeia de zeros e uns termina em zero ou no (se as cadeias representarem nmeros binrios, a mquina estaria identicando nmeros pares).
O estado inicial
q0
q0
Ve
rs
start
q2 .
1, 1, .
q1
1, 1, .
0, 0, .
0, 0, .
1, 1, .
q2
0, 0, .
Este autmato sempre grava o mesmo smbolo que leu, e portanto no muda
a ta .
(Q, q0 , QA , QR , , ),
onde
5 Na
verdade, o leitor familiarizado com Linguagens Formais reconhecer que esta mquina
C.9.
MQUINAS DE TURING
q0 Q
393
o estado inicial;
QA , QR Q
in
ar
: Q Q {/, .}
lim
(Q, q0 , { q2 } , , , ),
onde Q = { q0 , q1 , q2 }, = { 0, 1 } e
reconhece
Pr
e
rejeitar
Similarmente, a
q QA ou em q QR
loop,
executando
Ve
rs
de Turing no existe.
cidvel.
linguagem inde-
Exemplo C.58 (Linguagem Turing-decidvel: primos). O conjunto dos nmeros primos uma linguagem Turing-decidvel, porque existe algoritmo que
decide se um nmero
3 3,
LZ33
LZ33
no Turing-decidvel.
394
in
ar
Teorema C.60. Uma linguagem L decidvel se tanto L como seu complemento so Turing-reconhecveis.
Deve estar clara a relao entre mquinas de Turing e a Denio C.33
(linguagem de um problema de deciso).
simples
para
Tese de Church-Turing.
lim
o que diz a
Toda funo que pode ser efetivamente calculada pode ser calculada
por uma mquina de Turing
Os
ii)
Pr
e
i)
iii)
As instrues em
(i)
(ii);
Os passos de computao so
discretos,
v)
analgico;
Os passos de computao so
determinsticos,
Ve
rs
(v)
pseudoaleatreos
computadores determinsticos).
Notas
Para uma exposio mais detalhada de tcnicas para anlise de algoritmos veja
os livros de Cormen, Leiserson, Rivest e Stein [Cor+09] e de Papadimitriou e
Vazirani [DPV06; PV09]. O tratamento que damos aqui o mesmo seguido nesses livros, abordando complexidade computacional diretamente com algoritmos.
H tambm o livro de Udi Manber, que constri sistematicamente algoritmos
usando induo [Man89].
C.9.
MQUINAS DE TURING
395
Uma abordagem usando Mquinas de Turing pode ser encontrada nos livros
de Sipser [Sip07] e de Lewis e Papadimitriou [LP04].
Tcnicas para resoluo de recorrncias no contexto de anlise de algorittashnik [GKP95].
in
ar
mos so dadas por Cormen e outros [Cor+09] e por Graham, Knuth e PaO livro de Gilles Brassard e Paul Bratley [BB96] aborda
T (n) = g(n) +
l
X
lim
ai T (bi n + hi n)
i=1
Pr
e
H tambm tcnicas de
algoritmos
N P -completo
foi o
SAT
(satisfa-
N P -completo;
N P-
CIRCUIT-SAT
completude do
Ve
rs
A demonstrao de que
N P,
N P -completos.
N P -difceis; o
handbook organizado
goritmos, e o
396
em livros sobre Complexidade Computacional, como o de Papadimitriou e Vazirani [DPV06] e o de Cormen e outros [Cor+09]. O Captulo dezesseis do livro de
Korte e Vygen [KV02] compacto, porm mais denso que as introdues dos ou-
in
ar
Mquinas de Turing surgem normalmente em diferentes contextos no estudo de computabilidade e modelos de computao, de complexidade computacional e em linguagens formais.
lim
Pr
e
-Clculo
Ve
rs
funes recursivas o de Hartley Rogers [Rog87], que d tambm uma breve mas
excelente introduo tese de Church-Turing. O livro de Barry Cooper [Coo03],
tambm abordando tpicos avanados, mais atual (mas no substitui o de
Rogers ambos se complementam). Uma coletnea de reprodues de artigos
histricos foi organizada por Martin Davis [Dav04].
H muitos bons livros abordando Linguagens Formais. Dentre os introdu-
en passant
6 [BM10]
muito muito bom. O livro de Bla Bollobs [Bol98] tambm muito bom, com
uma perspectiva um tanto diferente. Outra boa introduo dada no livro de
6 Uppaluri
C.9.
MQUINAS DE TURING
397
in
ar
Exerccios
Ex. 198 Prove a Proposio C.2.
a)
T (n) = 2T (n/3)
b)
c)
T (n) = T (log(n)) + n
d)
T (n) = T (n/2) + n2
e)
T (n) = 3T (n/4) + 1
f)
T (n) = T (n/2) + n
T (n) = T (n/2) + n
T (n) = T ( n) + 1
g)
h)
lim
Pr
e
cio 201
dgitos decimais? E se
Ve
rs
k bits?
Ex. 205 Na Seo C.5 dissemos que nmeros de Carmichael so mais raros que nmeros primos.
Carmichael antes de
Denotamos por
(x)
C(x)
a quantidade de nmeros de
x.
Sabendo que
7 Ou
398
Ex. 207
Torres de Hani
in
ar
duas vazias e uma com vrios discos dispostos de forma que o maior ca na base
e o menor no topo.
i) Um nico disco pode ser movido de uma haste a outra em cada iterao.
ii) O disco que movido de uma haste para outra deve ser o do topo (na
verdade no h como mover os discos abaixo dele).
lim
P ARA,
usando a haste
AU X
discos da hasta
DE
para a haste
Pr
e
Ve
rs
Prove que
f (x) o(g(x))
lim
se e somente se
f (n)
=0
g(n)
f (x) o(g(x)) implica que f (x) O(g(x)), mas a recproca no vale.
Ex. 209 Prove que os trs casos do Teorema Mestre para recorrncias so
mutuamente excludentes.
Ex. 212 Prove que qualquer rvore com mais de um vrtice tem pelo menos
duas folhas.
C.9.
MQUINAS DE TURING
399
Kn .
So necessrias
cores para
colorir seus vrtices. Quantas arestas precisam ser removidas desta clique para
que seja possvel colori-la com
n1
3SAT
in
ar
de cores?
dada no Exemplo C.43. Caso
N P -completo.
COBERTURA-POR-ARESTAS: dado um grafo G = (V, E) e um inteiro po0
sitivo K , determinar se existe E E de tamanho menor ou igual a K tal que
0
todo vrtice de V pertence a uma aresta em E .
lim
Ex. 216 Apresentamos um algoritmo na Seo C.7.3 para determinar o valor mximo que pode ser posto na mochila, mas no mostramos como identicar
os itens a serem includos. Modique o algoritmo para que ele construa uma
lista de quantidades de itens.
Ex. 217 Na pgina 387 dissemos que colorir um grafo bipartido com duas
cores em tempo polinomial simples. Mostre o algoritmo.
N P -difcil.
Pr
e
N P.
N P -completo
ARVORE-DE-STEINER: Dado um grafo G = (V, E), um subconjunto R de
V e um inteiro positivo k < |V |, determine se h um subgrafo de G que seja
rvore contendo todos os vrtices de R e com no mximo k arestas.
Ex. 220 Prove que o problema a seguir
Ve
rs
N P -difcil.
SOBREVIVENCIA-DE-REDE: Um grafo G = (V, E), uma probabilidade
(racional) de falha p(x) para cada vrtice e cada aresta, e um nmero racional
q 1. Presuma que as falhas em arestas e vrtices so independentes. Seja f a
probabilidade de que, para todos (u, v) E , pelo menos um dentre u, v e (u, v)
falhar. Determinar se q f .
Ex. 221 Prove que
CIRCUITO-HAMILTONIANO
N P -completo.
Ex. 222 Demonstre o Teorema C.47. Dica: tente mostrar que seria possvel
usar a aproximao absoluta do problema para resolv-lo de maneira exata o
que implicaria em
P = N P.
aprox_vertex_cover
400
Muitas tas:
em um espao de
c)
Acesso aleatrio:
ler e escrever
in
ar
b)
PSPACE ,
lim
33
Pr
e
Ex. 229 Considere uma variante de mquina de Turing onde a ta trocada por duas pilhas (de tamanho ilimitado), P1 e P2 . O alfabeto das pilhas
, e = {}; a funo de transio do autmato : Q 2 Q 2 .
Prove que esta variante equivalente em poder computacional a uma mquina
Ve
rs
de Turing comum.
Apndice D
lim
Transformada de Fourier
in
ar
Pr
e
Qualquer funo pode ser expressa como a soma de senoides e cossenoides, com
diferentes frequncias e amplitudes. A transformada de Fourier de uma funo
esta decomposio da funo.
Se
f (x)
de Fourier leva
a transformada de
Ve
rs
401
402
0
s(x) = 1/2
se
se
se
in
ar
s(x) = cos(2x)
lim
Pr
e
f (x)
a integral
F (k) =
ei = cos + isen ,
f (x)e2ikx dx
F (k) =
Ve
rs
f (x) =
F (k)e2ikx dk
H maneiras diferentes de formular a transformada de Fourier, e o leitor encontrar pequenas variaes na literatura.
Uma das situaes em que a transformada de Fourier existe quando
integrvel em
(, +).
f (x)
F (k) so comf (x) multiplicado por isen (2kx)). Isso signica que para
frequncia k , F (k) dar um nmero complexo, que pode ser decomposto
plexos (porque
cada
403
Tendo
in
ar
onde
cos(x )
onde
a amplitude,
a frequncia e
o ngulo de fase.
lim
nita
de
Pr
e
Fn =
N
1
X
fk e(2ink)/N
k=0
A inversa da DFT
fk =
Cada um dos coecientes
Fk
as
N 1
1 X
Fn e(2ink)/N
N n=0
N = e(2i)/N ,
Ve
rs
se zermos
observando que
e(2i)/N
Fn =
N
1
X
nk
fk N
,
(D.1)
k=0
C.
ab
(a, b) N
1
F0
1
F1
1
.. =
.
1
FN
1
1
2
4
.
.
.
..
N 1
.
2(N 1)
f0
f1
2(N 1)
..
.
.
.
.
fN
(N 1)(N 1)
N 1
404
D.2.1
O(N 2 ):
plexidade de tempo
in
ar
dft(f, N )
e(2i)/N
para n de 0 a N 1:
Fn 0
para k de 0 a N 1:
Fn Fn + fk kn
retorne F
lim
pela soma na Equao D.1 em duas partes: uma para os ndices mpares e outra
para os ndices pares.
(N/2)1
(N/2)1
Fn =
2kn
(f2k )N
Pr
e
kn
2kn
= N/2
,
N
Fn
(N/2)1
(N/2)1
nk
(f2k )N/2
+
(2kn+n)
(f2k+1 )N
k=0
k=0
(N/2)1
(N/2)1
nk
(f2k )N/2
+
(2kn)
(f2k+1 )N
n
N
k=0
k=0
(N/2)1
(2k+1)n
(f2k+1 )N
reescrevemos
Ve
rs
k=0
k=0
Como
(N/2)1
kn
n
(f2k )N/2
+ (N
)
k=0
kn
(f2k+1 )N/2
.
k=0
Fn
N/2
algoritmo para a FFT calcula estas duas transformadas separadamente. O vetor de entrada dividido em dois outros:
f0
f 0 (f0 , f2 , . . .)
f 1 (f1 , f3 , . . .).
f0
f 1.
fft(f, ):
N tamanho(f )
405
para
N/2.
fft
usam
lim
As chamadas recursivas a
in
ar
se N = 1
retorne f
1
N e(2i)/N
f 0 (f0 , f2 , . . .)
f 1 (f1 , f3 , . . .)
F 0 fft(f 0 , 2 )
F 1 fft(f 1 , 2 )
para i de 0 a n/2 1:
Fi Fi0 + i Fi1
Fi+n/2 Fi0 i Fi1
retorne F
Aps o clculo das duas transformadas de tamanho
N/2, o algoritmo
N = 2k , as
N = 8,
temos
80
81
82
83
80
81
82
83
i
=
= i
= i i
Pr
e
exemplo, para
= 1
= i
= i
= i i.
Ve
rs
Este algoritmo da maneira como foi apresentado s pode ser usado quando o
tamanho do vetor uma potncia de dois. possvel adaptar o algoritmo para
que funcione tambm com vetores de tamanho arbitrrio.
Teorema D.1.
Demonstrao.
O(n).
n/2;
T (n) = 2T (n/2) + n.
T (n) = kn/2 + n log(n) = O(n log(n)),
conforme a
406
(que complexo)
so usadas em sequncia (
multiplic-la por
, 1 , . . .,
for.
in
ar
de
Z
=
=
=
+,
ser
f (x) cos(2kx) isen (2kx) dx
Z
Z
f (x) cos(2kx) dx
f (x)isen (2kx) dx
Z
f (x) cos(2kx) dx.
lim
F (k)
Pr
e
Z
F (k) =
f (x)
pontos decomposta em
Ve
rs
Xk =
N
1
X
xn cos
n=0
k(n + 21 )
N
N
1
X
n(k + 21 )
1
fk = X0 +
Xn cos
2
N
n=1
Para aplicar a DCT em imagens, ser interessante deni-la para duas dimenses.
Neste caso, aplicamos a DCT em linhas e colunas individualmente a transformada
Fu,v = C(u)C(v)
N
1 N
1
X
X
x=0 y=0
fx,y cos
(2x + 1)u
(2y + 1)v
cos
2N
2N
q
1
N
c(k) = q
1
2N
D.3.1
se
k=0
se
k>0
in
ar
onde
407
lim
Notas
calor .
Pr
e
Ve
rs
nery [Pre+07] e Berman e Paul [BP05] (onde discutida uma verso paralela
do algoritmo).
transformada integral
uma transformada
T f (x) =
f (u)
da forma
em outra funo
T f (u). K
kernel
da trans-
(e2ixt ), a =
b = +.
K =
408
handbook
in
ar
organizado por Rao e Yip [RY01] trazem descries detalhadas da DCT com
aplicaes em compresso e processamento de imagens.
Exerccios
a)
b)
f (x) = x3 x2
lim
H(f ) =
sen (2f T )
2f
b)
H(f ) =
cos(2(1f )
2f
Pr
e
potncia de
Ex. 234 Partindo da exposio dada neste Apndice, tente reescrever o de-
Ve
rs
Apndice E
lim
Descrio Detalhada de
Construes
in
ar
supercialmente no texto.
E.1 DES
Pr
e
Ve
rs
O DES uma cifra obsoleta e no deve mais ser usado na prtica. No entanto,
esta Seo descreve os detalhes de sua especicao por completude (anal,
o descrevemos no Captulo sobre cifras de bloco) e porque pode ser til ao
leitor interessado em Criptanlise: quebrar verses simplicadas do DES um
excelente exerccio.
E.1.1
Descrio geral
cifra.
409
IP
Pr
e
lim
in
ar
410
IP IN V ,
Sua
inversa,
Ve
rs
KS
mados
DES
E.1.2
411
PI
42
44
46
48
41
43
45
47
26
28
30
32
25
27
29
31
18
20
22
24
17
19
21
23
8
7
6
5
4
3
2
1
48
47
46
45
44
43
42
41
Ve
rs
40
39
38
37
36
35
34
33
E.1.3
34
36
38
40
33
35
37
39
10
12
14
16
9
11
13
15
2
4
5
7
Pr
e
A inversa de
50
52
54
56
49
51
53
55
lim
58
60
62
64
57
59
61
63
in
ar
E.1.
16
15
14
13
12
11
10
9
56
55
54
53
52
51
50
49
24
23
22
21
20
19
18
17
64
63
62
61
60
59
58
57
32
31
30
29
28
27
26
25
Funo interna F
A funo interna
redundncia. Depois faz ou exclusivo com a chave da rodada (que tem 48 bits);
divide os 48 bits em oito partes de seis bits, que so usadas como entrada para
oito S-boxes. Estas S-boxes tem sada de quatro bits cada, reduzindo novamente
o nmero de bits para 32.
restantes.
Pr
e
lim
in
ar
412
Ve
rs
Expanso de bits
A funo de expanso
32
4
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31
4
8
12
16
20
24
28
32
5
9
13
17
21
25
29
1
E.1.
DES
413
Permutao interna
A permutao P realizada aps a aplicao das S-boxes dada pela prxima
7 20 21
12 28 17
15 23 26
18 31 10
8 24 14
27 3 9
13 30 6
11 4 25
S-boxes
in
ar
16
29
32
19
22
lim
matriz.
4 13 1 2 15
15 7 4 14 2
1 14 8 13 6
12 8 2 4
9
S2:
15
3
0
13
1
8 14
13 4
7
14 7 11
8 10 1
11
13
2
1
8
1
11
7
3 10
10 6
15 12
5 11
6 12 5
12 11 9
9 7 3
3 14 10
Pr
e
14
0
4
15
6 11
15 2
10 4
3 15
3
8
13
4
4 9 7
14 12 0
1 5 8
2 11 6
2 13 12
1 10 6
12 6 9
7 12 0
9 0 7
5 3 8
10 5 0
0 6 13
0 5 10
9 11 5
3 2 15
5 14 9
9 14
0
9
4
9
13 0
6 3 15
3 4
6
8 15 3
6 9
8
Ve
rs
0
7
6
10
S3:
10
13
13
1
5
10
0
7
1
2
11
4
13 12 7
8 5 14
1 2 12
15 14 3
11 4 2
12 11 15
5 10 14
11 5 2
8
1
7
12
S4:
7 13
13 8
10 6
3 15
14 3 0
6
9
11 5 6 15 0
9 0 12 11 7
0 6 10 1 13
10
3
13
8
1 2 8 5 11
4 7 2 12 1
15 1 3 14 5
9 4 5 11 12
12
10
2
7
4 15
14 9
8 4
2 14
S5:
2
14
4
11
12 4
11 2
2
1
8 12
1
12
11
7
7 10 11 6
4
7 13 1
10 13 7
8
1 14 2 13
8 5
5 0
15 9
6 15
3 15 13 0 14
15 10 3 9 8
12 5 6 3 0
0 9 10 4 5
9
6
14
3
414
S6:
2 6
12 9
8 12
5 15
8
5
3
10
0
6
7
11
13
1
0
14
3 4
13 14
4 10
1 7
S7:
4
13
1
6
11 2 14 15 0
0 11 7
4 9
4 11 13 12 3
11 13 8 1 4
8 13 3
1 10 14
7 14 10
10 7 9
8 4 6
13 8 10
4 1 9
14 7 4
5 10 6
2 15 8
0 5 9
14 2 3
15 11 1 10 9 3
3 7 4 12 5 6
12 14 2 0 6 10
10 8 13 15 12 9
14 5
11 0
13 15
0 3
0
14
3
5
1
6
2
12
12 7
9 2
5 8
6 11
13 2
1 15
7 11
2
1
Pr
e
S8:
12 9 7
3 5 12
15 6 8
5 0 15
lim
14 7 5 11
0 11 3 8
1 13 11 6
6 0 8 13
in
ar
12 1 10 15 9
10 15 4
2 7
9 14 15 5 2
4
3
2 12 9
Escalonamento de chaves
Ve
rs
E.1.4
57 49 41
1 58 50
10 2 59
19 11 3
63 55 47
7 62 54
14 6 61
21 13 5
33
42
51
60
39
46
53
28
25
34
43
52
31
38
45
20
17 9
26 18
35 27
44 36
23 15
30 22
37 29
12 4
E.1.
DES
Tanto
C0
415
como
D0
A quantidade de bits
deslocamentos esq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
1
2
2
2
2
2
2
1
2
2
2
2
2
2
1
Pr
e
lim
iterao
in
ar
C0
D0
Importante:
os bits so
Assim, os bits
2 = 0001110.
1000011 <<
Ve
rs
14 17
3 28
23 19
16 7
41 52
30 40
44 49
46 42
11
15
12
27
31
51
39
50
24
6
4
20
37
45
56
36
1
21
26
13
47
33
34
29
5
10
55
48
53
32
Pr
e
lim
in
ar
416
E.2 AES
Quantidade de rodadas
Ve
rs
E.2.1
Nb
32
Nk
32
Nk
4
5
6
7
8
4
10
11
12
13
14
5
11
11
12
13
14
Nb
6
12
12
12
13
14
7
13
13
13
13
14
8
14
14
14
14
14
AES
E.2.2
Escalonamento de chaves
E.2.3
Encriptao
A tabela para
xy
O byte
SubBytes
1
2
7c 77
82 c9
f d 93
c7 23
83 2c
d1 00
ef aa
a3 40
0c 13
81 4f
32 3a
c8 37
78 25
3e b5
f 8 98
a1 89
3
7b
7d
26
c3
1a
ed
fb
8f
ec
dc
0a
6d
2e
66
11
0d
4
f2
fa
36
18
1b
20
43
92
5f
22
49
8d
1c
48
69
bf
5
6b
59
3f
96
6e
fc
4d
9d
97
2a
06
d5
a6
03
d9
e6
6
6f
47
f7
05
5a
b1
33
38
44
90
24
4e
b4
f6
8e
42
e coluna
y
7
c5
f0
cc
9a
a0
5b
85
f5
17
88
5c
a9
c6
0e
94
68
da matriz.
8
9
30 01
ad d4
34 a5
07 12
52 3b
6a cb
45 f 9
bc b6
c4 a7
46 ee
c2 d3
6c 56
e8 dd
61 35
9b 1e
41 99
Pr
e
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
0
63
ca
b7
04
09
53
d0
51
cd
60
e0
e7
ba
70
e1
8c
a
67
a2
e5
80
d6
be
02
da
7e
b8
ac
f4
74
57
87
2d
b
2b
af
f1
e2
b3
39
7f
21
3d
14
62
ea
1f
b9
e9
0f
c
d
f e d7
9c a4
71 d8
eb 27
29 e3
4a 4c
50 3c
10 f f
64 5d
de 5e
91 95
65 7a
4b bd
86 c1
ce 55
b0 54
e
ab
72
31
b2
2f
58
9f
f3
19
0b
e4
ae
8b
1d
28
bb
Ve
rs
in
ar
417
lim
E.2.
Por exemplo,
Em
e4
substitudo por
69 .
Nb
Nb
4
5
6
7
8
C0
0
0
0
0
0
C1
1
1
1
1
1
C2
2
2
2
2
3
C3
3
3
3
4
4
f
76
c0
15
75
84
cf
a8
d2
73
db
79
08
8a
9e
df
16
418
E.2.4
Decriptao
1
09
e3
7b
2e
f8
70
d8
2c
91
ac
f1
56
dd
51
e0
2b
InvMixColumns
2
6a
39
94
a1
f6
48
ab
1e
11
74
1a
3e
a8
7f
3b
04
3
d5
82
32
66
64
50
00
8f
41
22
71
4b
33
a9
4d
7e
4
5
30 36
9b 2f
a6 c2
28 d9
86 68
f d ed
8c bc
ca 3f
4f 67
e7 ad
1d 29
c6 d2
88 07
19 b5
ae 2a
ba 77
6
a5
ff
23
24
98
b9
d3
0f
dc
35
c5
79
c7
4a
f5
d6
9
40
8e
4c
5b
a4
15
e4
af
f2
f9
b7
db
12
e5
eb
69
a
a3
43
95
a2
5c
46
58
bd
cf
37
62
c0
10
7a
bb
14
lim
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
0
52
7c
54
08
72
6c
90
d0
3a
96
47
fc
1f
60
a0
17
Pr
e
y
7
8
38 bf
87 34
3d ee
b2 76
16 d4
da 5e
0a f 7
02 c1
ea 97
85 e2
89 6f
20 9a
31 b1
0d 2d
b0 c8
26 e1
in
ar
InvSubBytes
0E
09
0D
0B
0B
0E
09
0D
0D
0B
0E
09
b
9e
44
0b
49
cc
57
05
03
ce
e8
0e
fe
59
9f
3c
63
c
81
c4
42
6d
5d
a7
b8
01
f0
1c
aa
78
27
93
83
55
d
e
f
f 3 d7 f b
de e9 cb
f a c3 4e
8b d1 25
65 b6 92
8d 9d 84
b3 45 06
13 8a 6b
b4 e6 73
75 df 6e
18 be 1b
cd 5a f 4
80 ec 5f
c9 9c ef
53 99 61
21 0c 7d
09
0D
0B
0E
Exerccios
Ve
rs
P.
in
ar
Apndice F
lim
Respostas e Dicas
Este Apndice traz respostas e dicas para alguns dos exerccios propostos no
texto.
neste jogo,
naipe.
Tratamos primeiro o caso
Pr
e
(i).
A probabilidade de
13
5
52
5
Quando houver a troca da ltima carta, a nova carta ser escolhida dentre as 47
cartas que sobraram, e destas, oito so do naipe correto. Assim, a probabilidade
no caso
(i)
Ve
rs
de sucesso de
No caso
(ii),
a probabilidade de
13
5
52
5
8
.
47
naipe
13
4
52
4
13
5
52
5
(48 9)
.
48
A
no experimento
4 13
8
1397
4 (48 9)
+ 52
=
47
48
156604
4
0.0089205.
419
420
in
ar
Pr[POKER_FLUSH(A) = 1] 0.009.
Resp. (Ex. 10) Uma funof (x) desprezvel se e somente se para toda
funo polinomial
g(x), f (x)
1
g(x)
Resp. (Ex. 13) Note que a denio no muda s mudamos sua redao.
Uma maneira de faz-lo denir o experimento AchaPreImagem, que recebe
e
n.
lim
f, A
como parmetros
x R {0, 1}
Envie 1n e f (x) ao adversrio
O adversrio retorna x0
Se f (x) = f (x0 ) o resultado 1,
seno
0.
Pr
e
fceis de inverter, onde difcil de inverter signica que para todo adversrio
e todo
sucientemente grande,
Pr[AchaPreImagem(f, A, 1n ) = 1] negl(n).
Resp. (Ex. 24) (i) Porque os zeros do estado inicial sero combinados
usando
(ii)
Sim: basta que o estado inicial seja uma sequncia de uns, e que a quantidade
de coecientes um do polinmio de conexo seja mpar (o ou exclusivo de uma
Ve
rs
(k!k
(n1)
)/nn .
esperado
x < n.
Calcule
de execuo.
Resp. (Ex. 32) H muitas maneiras de faz-lo. (i) Tente observar a sada
do gerador aos pares,
421
Resp. (Ex. 37) A cifra deixa de ser segura, porque a diferena entre as
partes esquerda e direita da entrada ser igual a diferena entre as partes esquerda e direita da sada (Li
Ri = Li+1 Ri+1 ),
em cadeias binrias,
lim
= (b||a b) (a||b)
in
ar
= (b a)||a b b)
= (a b)||a,
que permutao, cuja inversa
Pr
e
Fazemos uma busca exaustiva pela chave, mas a cada chave testada, calculamos
Enck0 (m)
e decidimos:
Enck0 (m) = c1
Enck0 (m) = c2
k0
k = k0
k = k0 .
Ve
rs
k0
e seu comple-
mento).
Resp. (Ex. 67) Quando alimentar a funo de hashing com bits aleatreos,
lembre-se de que necessrio que o conjunto de entradas diferentes seja maior
que o de possveis sadas da funo de hashing, de outra forma haver mais
colises do que o esperado (se a funo de hashing tem sada de 512 bits mas
a alimentamos com um nico byte aleatreo, s poderemos produzir
28 = 256
f (x + y) =
422
f (x) + f (y),
in
ar
Resp. (Ex. 74) (Esboo) Suponha que o adversrio possa adivinhar o tamanho
do bloco de
mensagens
ai , bi
H.
Resp. (Ex. 89) (b) Depende do ponto de vista; usando o modelo do Or-
culo Aleatreo (veja a Seo 7.6 no Captulo7), pode-se provar que o esquema
lim
Resp. (Ex. 91) H muitos argumentos e contraexemplos: (i) No criptossistema de Rabin no h sequer a garantia de que uma mensagem
quadrtico mdulo
N.
m seja resduo
o algoritmo
Dec
Pr
e
dois
quema deve ser modicado para que possamos us-lo. (iii) O RSA, usado de tal
maneira, inseguro.
Resp. (Ex. 102) Ser provavelmente difcil explicar o polinmio interpolador de Lagrange, mas no impossvel. No se deve esquecer de explicar porque
tudo feito com aritmtica modular (computadores no podem representar n-
meros reais) embora este assunto tambm possa ser uma fonte de diculdade
Ve
rs
g s1 e g s2 ,
s +s2
revelar g 1
.
dois segredos,
mitiro
Share para
Yi1 Yi2 que per-
uma interao.
S(N, v):
b0 R { 0, 1 } // tenta adivinhar a escolha de V 0
r R {1, . . . , N 1}
x r2 (mod N )
b R { 0, 1 } // escolha de V 0
se b 6= b0 reinicie
423
escreva (x, b, r)
em uma execuo
in
ar
A distribuio de
+1.
lim
nmero entre
no
Pr
e
Resp. (Ex. 133) (a) 101001; (b) 110111; (c) 111100; (d) 000000; (e) 010101
[5, 3]-cdigo.
A distncia mnima
d = 1,
por isso
corrige erros:
11
= 0.
2
Ve
rs
Resp. (Ex. 142) Lembre-se de que no basta usar preto e branco. Voc
precisa usar tons de cinza e somar as intensidades de cada partilha.
x.
Como
kx
contribuem com
k,
0,
ento o tom
temos que
pode ser
Resp. (Ex. 145) Observe que zemos um ou exclusivo dos bits das linhas,
424
Resp. (Ex. 148) O one-time pad, por exemplo, suportaria encriptao negvel. Este pode ser um ponto de partida.
pad
do tamanho
in
ar
r.
= x.
lim
Pr
e
Oh! maravilha!
Que adorveis criaturas temos aqui!
Como bela a espcie humana!
OH ADMIRVEL MUNDO NOVO
que possui gente assim!
Finda a tempestade
O sol nascera
Finda esta saudade
Hei de ter outro alguem para amar
Ve
rs
recompensada imediatamente
(f ) Atbash. Trecho de Alegria, Alegria de Caetano Veloso:
tenha inversa
M 1 ,
e observe
que
648 = 3 216.
432 = 2 216
todos os inteiros
425
no
= Pr [m : 3(216)m = 2(216)k]
= Pr [m : 3m = 2k]
1
= Pr[3 | 2k] = .
3
in
ar
x0 6= x.
bi ai x (mod mi ).
Resp. (Ex. 172) Suponha que no, presuma que h outra soluo
ai x bi ,
mas
lim
1/2k .
Pr
e
zeros; a operao de
Resp. (Ex. 180) No: nem todo polinmio tem como inversa outro polinmio.
p, primo. A ordem
a1 = 1 ou ap = 1.
No h como haver
porque neste caso k | p e p no
seria primo. Observe tambm que o nico elemento de ordem 1 a identidade.
Portanto, todos os outros elementos do grupo tem ordem p (e geram G).
a do grupo deve ser 1
ak = 1, com k 6= p,
Ve
rs
de qualquer elemento
ou
p:
temos que
Resp. (Ex. 183) Por induo em |G|. Use o teorema de Lagrange no passo.
426
O(n!),
onde
in
ar
LU P
ou escalonamento (o determi-
O(2n ).
lim
cg(x),
c.
f (x) =
trao.
Pr
e
Resp. (Ex. 210) Use rvores, como a mostrada no texto, em sua demons-
Resp. (Ex. 211) Tome cuidado para diferenciar soma de elementos de soma
de matrizes.
v0 , . . . , v n
vrtices
Ve
rs
vi ,
com
i < n 1,
ento
vn
v0
vn
vi , vi+1 , . . . , vn , vi
Se
Como
vn
for
um ciclo mas
adjacente apenas a
vn1
ou seja,
folha.
a=b=d=g =V.
vn .
COBERTURA-POR-VRTICES,
G.
Resp. (Ex. 217) Comece de um vrtice e siga pintando seus vizinhos, depois os vizinhos dos vizinhos etc, usando cores alternadas. Quando no houver
427
mais vizinhos, procure outro componente conexo. Quando no houver componentes conexos, pare.
in
ar
Resp. (Ex. 218) Basta observar que possvel, em tempo polinomial, per-
k,
CONJUNTOS).
X3C (COBERTURA-EXATA-POR-3-
lim
COBERTURA-POR-VERTICES.
{ u, v } em G.
uv4 uv5 uv6
uv2
vu1
vu2
uv3
Pr
e
uv1
vu3
vu4
vu5
vu6
Note que um circuito hamiltoniano s poderia passar por este grafo de trs
maneiras diferentes. Associe cada uma destas maneiras com
no na cobertura.
ou
estarem ou
tamanhos
Ve
rs
tempo polinomial:
por
k + 1.
As solues
Como
distante no mximo
k + 1,
V = { u, v, w }, E = { { u, v } , { u, w } }.
O algoritmo
inclui dois vrtices por vez na cobertura, e o grafo mostrado pode ser coberto
com um nico vrtice.
Resp. (Ex. 225) (b) Codique os estados usando ordem lexicogrca. (d)
Use um mapeamento de ta nita esquerta para ta innita dos dos lados da
428
para
Z.
in
ar
Resp. (Ex. 229) (Rascunho) A mquina descrita pode usar as duas pilhas
smbolo de
de
P1
P2
e empilh-lo em
P3 ;
lim
como se fossem uma ta: para mover-se direita na ta basta desempilhar um
para gravar um smbolo basta desempilhar
P1 ),
Ve
rs
Pr
e
P2 .
P2
e empilhando em
in
ar
Apndice G
lim
Ficha Tcnica
Ve
rs
Pr
e
AT X.
edio do texto L
E
429
Ve
rs
Pr
e
lim
in
ar
430
in
ar
Bibliograa
[07]
[AB09]
[AB96]
Approach.
lim
2007.
Proceedings of the Third International Workshop on Fast Software Encryption. 1996, pp. 113120.
Cipers: BEAR and LION. Em:
Pr
e
[AB98]
isbn: 0-52142-426-7.
10.2
[AlM04]
Annals of Mathematics
Algebra: Chapter 0.
Ve
rs
[Alu09]
2009.
[And94]
[ANR74]
George E. Andrews.
[Apo76]
Number Theory.
Dover, 1994.
Em:
[Aok+01]
isbn: 978-0-8218-4781-7.
Cipher.
(1974).
Tom Apostol.
Springer,
1976.
[Arr50]
[Arr51]
Kenneth J. Arrow.
Em:
0-300-01364-7.
431
BIBLIOGRAFIA
432
[Art91]
[Ate+01]
Michael Artin.
Algebra.
[Ate+96b]
106.
G. Ausiello et al.
Verlag, 2003.
[Bac95]
[Bar09]
isbn: 9783540654315.
Andr Bacard.
isbn: 1-56609-171-3.
Gregory V. Bard.
Algebraic Cryptanalysis.
0387887563.
[BB96]
Friedrich L. Bauer.
Cryptology.
2010.
isbn: 0-13-335068-1.
Cattaneo.
isbn: 978-3-540-69199-0.
[Ber+09]
ao NIST,
Quantum Cryptography.
Ve
rs
[BDB09]
Pren-
[BDA12]
isbn:
isbn: 3642063837.
[BCC09]
Springer, 2009.
Pr
e
[Bau10]
lim
[Aus+03]
in
ar
161.
[Ate+96a]
isbn: 0130047635.
Springer, 2009.
Post-
isbn: 978-3-540-88701-0.
Guido Bertoni et al. The Road from Panama to Keccak via Ra-
dioGatn. Em:
Symmetric Cryptography.
chuh et al. Dagstuhl Seminar Proceedings 09031. Dagstuhl, Germany: Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany, 2009.
2009/1958.
[BF03]
url: http://drops.dagstuhl.de/opus/volltexte/
32.3 (2003),
pp. 586615.
[BF92]
Dover, 1992.
Mathematics of Classical
isbn: 048667164X.
BIBLIOGRAFIA
[BFM88]
433
Manuel Blum, Paul Feldman e Silvio Micali. Non-Interactive ZeroKnowledge and Its Applications. Em: Proceedings of the twentieth
annual ACM symposium on Theory of computing (STOC 1988).
[BH95]
in
ar
The DFT: an owner's manual for the discrete Fourier transform. SIAM, 1995. isbn: 0-89871-
[BHK03]
lim
[BL90]
[BM10]
[BMV78]
isbn: 1849966907.
Proceedings
Graph Theory.
Springer,
Pr
e
[Bla79]
isbn:
978-
Bla Bollobs.
[Boy07]
[Bol98]
[BP05]
[BP89]
[BR93]
Ve
rs
tography
Thomson, 2005.
ralized Functions.
isbn: 0-534-42057-5.
isbn: 9782881247057.
[BR95]
1995.
[Bre89]
David Bressoud.
isbn: 0387970401.
BIBLIOGRAFIA
434
[BS91]
E. Oren Brigham.
ons.
[BS93]
[BSS99]
isbn: 978-0133075052.
Journal of Cryptology
Encryption Standard.
Springer-Verlag, 1993.
[Bur+99]
isbn: 0521653746.
Wiley, 2008.
Peter J. Cameron.
[Can00]
Dis-
lim
[Cam94]
Theory.
isbn: 3540979301.
in
ar
[Bri88]
isbn: 0-0521-45761-0.
Journal of Cryptology
Pr
e
202.
[Car+01]
[Cat+05]
ximao.
[CDR03]
Birkhuser Basel,
Mechanics.
isbn: 0471569526.
Wiley-Interscience, 2006.
Quantum
Stream Ciphers
Elsevier, 2003.
Ve
rs
[CGS97]
Contemporary Cryptology.
isbn: 978-3764372941.
[CDL06]
IMPA, 2001.
Eurocrypt 97.
[Cha82]
[Cho+85]
1997.
1982.
B. Chor et al. Veriable Secret Sharing and Achieving Simultaneity in the Presence of Faults. Em:
pp. 383395.
[CHP92]
[Chu32]
Springer-Verlag, 1992.
BIBLIOGRAFIA
[CI07]
[Cla01]
435
nica Digital.
rica, 2007.
Elementos de Eletr-
isbn: 9788571940192.
residues. Em:
and Coding.
[Coh05]
[Coh10]
[Coh99]
2001.
Henri Cohen.
tography.
Chapman&Hall/CRC, 2005.
Henri Cohen.
ory.
Springer, 2010.
[Coo71]
isbn: 0387987274.
S. Barry Cooper.
2003.
isbn: 3642081428.
Henri Cohen.
Springer, 1999.
[Coo03]
Computability Theory.
isbn: 1584882379.
Pr
e
velopment
[Cor+09]
Introduction to Algorithms.
putational Perspective.
Springer, 2010.
a ed. MIT
isbn: 9781441920508.
[Cra96]
Press, 2009.
[CP10]
Chapman e Hall/CRC,
Em:
[Coo94]
isbn: 1584885181.
lim
[Coc01]
in
ar
Ve
rs
of Amsterdam, 1996.
[Cr88]
[CT06]
[CT65]
ory.
Wiley-Interscience, 2006.
isbn: 0471241954.
James W. Cooley e John W. Tukey. An algorithm for the machine calculation of complex Fourier series. Em:
Computation
[Cut80]
[CY11]
1988.
Nigel Cutland.
tion Theory.
Mathematics of
1980.
isbn: 0521294657.
CRC, 2011.
isbn: 143983721X.
BIBLIOGRAFIA
436
[Dav04]
Asynchronous Multiparty Computation: Theory and Implementation. Cryptology ePrint Archive, Report 2008/415.
http://eprint.iacr.org/. 2008.
Martin Davis. The Undecidable: Basic Papers on Undecidable Propositions, Unsolvable Problems and Computable Functions. Dover,
Ivan Damgrd et al.
2004.
[Dav10]
isbn: 0486432289.
Brian Davies.
isbn: 978-1441929501.
Springer, 2010.
[Dav85]
in
ar
[Dam+08]
Martin Davis.
0486614719.
isbn:
[DF11b]
Dover, 1985.
lim
[DF11a]
a ed.
Markus Drmuth e David Mandell Freeman. Deniable Encryption with Negligible Detection Probability: An Interactive Construction. Em:
[DH76]
EUROCRYPT.
[DHQ98]
Pr
e
pp. 644654.
[DHL02]
22.6 (1976),
[DK07]
and applications.
Ve
rs
posium.
[DPV06]
[DR02]
rithms.
McGraw-Hill, 2006.
isbn: 0073523402.
isbn: 3-540-42580-2.
Proceedings of CRYPTO.
1982.
mation Theory
[FO98]
Algo-
[Elg85]
2002.
[EGL82]
isbn: 978-3-540-49243-6.
[DMS04]
BIBLIOGRAFIA
Jean Baptiste Joseph Fourier.
ver, 2003.
[Fra02]
John B. Fraleigh.
ley, 2002.
[Fra06]
isbn: 9788576050872.
Clculo Numrico.
Prentice Hall,
Amos Fiat e Adi Shamir. How to prove to yourself: practical solutions to identication and signature problems. Em:
[FS87b]
1987.
Eiichiro Fujisaki et al. RSA OAEP is secure under the RSA assumption. Em:
Helen F. Gaines.
lution.
isbn: 0486200973.
isbn: 0547165099.
[GGH97]
relation.
Eurocrypt 99.
1999.
isbn: 0-521-82104-5.
Oded Goldreich, Sha Goldwasser e Shai Halevi. Public-key cryptosystems from lattice reduction problems. Em:
Computer Science
Lecture Notes in
1294 (1997).
[GGM86]
Brooks Cole,
[GG05]
2001.
Dover, 1989.
Joseph A. Gallian.
2009.
[Gen+99]
Pr
e
[Gal09]
Proceedings of
lim
.
CRYPTO86
[Gai89]
Advances in
Amos Fiat e Adi Shamir. How to prove yourself: practical solutions to identication and signature problems. Em:
[Fuj+01]
Do-
isbn: 9780201763904.
[FS87a]
isbn: 9780486495316.
in
ar
[Fou03]
437
33.4 (1986),
Ve
rs
pp. 210217.
[GGS05]
2005.
[GJ79]
[GK03]
[GKP95]
FOCS.
2003.
isbn: 85-216-1040-8.
BIBLIOGRAFIA
438
[GL10]
[GM82]
isbn: 978-85-244-0190-9.
in
ar
[GMR89]
18.1 (1989).
lim
[GO94]
[Gol04]
[Gol08]
[Gol10]
Oded Goldreich.
ols.
Oded Goldreich.
plications.
Oded Goldreich.
pective.
Oded Goldreich.
[Gon07]
David J. Griths.
Mecnica Quntica.
isbn: 978-85-244-0200-5.
Darrel Hankerson.
2010.
[HB09]
isbn: 0131118927.
isbn: 978-85-7605-927-1.
IMPA, 2008.
[Han10]
David J. Griths.
Ve
rs
[GV08]
Ameri-
[Gri11]
isbn: 9780821851920.
[Gri04]
S. W. Golomb.
isbn: 9780521884730.
7.1 (1994),
Pr
e
[Gol01]
Journal of Cryptology
isbn: 1441929290.
Jaydeep Howlader e Saikat Basu. Sender-Side Public Key Deniable Encryption Scheme. Em: Proceedings of the 2009 International Conference on Advances in Recent Technologies in Communication and Computing. ARTCOM '09. Washington, DC, USA:
isbn: 978-0-7695-3845-7.
doi: http : / / dx . doi . org / 10 . 1109 / ARTCom . 2009 . 107. url:
http://dx.doi.org/10.1109/ARTCom.2009.107.
BIBLIOGRAFIA
[Hef13]
439
Curso de lgebra.
Abramo Hefez.
isbn:
9788524400797.
[Hey01]
I. N. Herstein.
Howard Heys.
sis.
in
ar
[Her96]
[Hil90]
[Hir01]
[HJB84]
Springer, 2010.
Combinatorics
isbn: 1441927239.
isbn: 0198538030.
Mika Hirvensalo.
lim
[HHM10]
IEEE ASSP
(Acoustics, Speech, and Signal Processing Society) Magazine 1.4
and the history of the fast fourier transform. Em:
(1984), pp. 1421.
Carmit Hazay e Yehuda Lindell. Ecient Secure Two-Party Protocols: Techniques and Constructions. Springer, 2010. isbn: 978-3-
Pr
e
[HL10]
642-14302-1.
[HL94]
[HMU01a]
Addison-
Intro-
[HMU01b]
isbn: 0201441241.
Introduc-
a ed.
Addison-Wesley, 2001.
K. J. Horadam.
Ve
rs
[Hor06]
[HPS08]
isbn: 069111921X.
Springer, 2008.
Prin-
A Mathemati-
isbn:
978-0-387-
77993-5.
[HPS98]
puter Science
[Hun80]
[HV08]
[Ibr09a]
Thomas W. Hungerford.
ros.
1423 (1998).
isbn: 978-85-244-0169-5.
8.1 (2009).
BIBLIOGRAFIA
440
[IF10]
[Imm98]
Neil Immerman.
Descriptive Complexity.
38798-600-6.
[IR90]
[ISN87]
Jour-
8.2 (2009).
in
ar
[Ibr09b]
Springer, 1998.
isbn:
0-
Springer, 1990.
isbn: 1441930949.
ference.
lim
[Jac09a]
Nathan Jacobson.
[Jac09b]
Nathan Jacobson.
[Jea94]
Marquis de Condorcet Jean-Antoine-Nicolas de caritat. Condorcet: Foundations of social choice and political theory (selections).
Em: (1743-1794 (1994)).
[JV04]
[Kah96]
Pr
e
[Jou00]
Proceedings of ANTS 4.
David Kahn.
The Codebreakers.
2004.
Scribner, 1967/1996.
isbn:
0-684-
83130-9.
[Kal06]
of Technology, 2006.
[Kan92]
N P -complete
Optimiza-
Ve
rs
tion Problems. Tese de doutorado. Department of Numerical Analysis e Computing Science Royal Institute of Technology, Sweden,
1992.
[Kat10]
Jonathan Katz.
27711-0.
[KKK08]
cryption. Em:
[KL08]
[Kle52]
graphy.
2008.
isbn: 978-1-58488-551-1.
land, 1952.
[KM89]
isbn: 2881246834.
BIBLIOGRAFIA
[Kob87]
[KR36]
Computation
Mathematics of
in
ar
[Knu95]
441
Mathmatische Annalen
742.
[Kra91]
Evangelos Kranakis.
0471909343.
[Lam79]
[Lev]
and algorithms.
Leslie Lamport.
function.
isbn: 3-540-43154-3.
lim
[KV02]
1979.
Problems of Information
Transmission (em Russo, Problemy Peredachi Informatsii) 9.3 (),
[LJL82]
Yehuda Lindell.
Pr
e
[Lin03]
A. K. Lenstra, H. W. Lenstra Jr. e L. Lovsz. Factoring polynomials with rational coecients. Em:
Mathematische Annalen
261.4
Chen-chi Lin, Chi-sung Laih e Ching-nung Yang. New Audio Secret Sharing Schemes With Time Division Technique. Em:
[LN97]
[LR88]
Finite Fields.
isbn: 0-521-39231-4.
Computao.
Ve
rs
[LP04]
Cambridge Uni-
Elementos de Teoria da
isbn: 8-57307-534-1.
[Lub96]
SIAM Journal
on Computing
17.2 (1988).
Michael Luby.
[M B89]
Journal
isbn: 9780691025469.
[Mac78]
Robert J. MacEliece.
BIBLIOGRAFIA
442
[Man09]
Wesley, 1989.
[Mar08]
[Mau99]
Luther Martin.
House, 2008.
[Mat93]
isbn: 0201120372.
isbn: 978-1-59693-238-8.
EUROCRYPT93.
Springer-Verlag, 1993.
Pr
e
Computing.
Proce-
1986.
Approaching Quantum
isbn: 0-13-145224-X.
isbn: 978-0-8218-4418-2.
Todd K. Moon.
and Algorithms.
Wiley-Interscience, 2005.
isbn: 0471648000.
[Mor96]
isbn: 8531404584.
AMS, 2007.
[Moo05]
lim
[Mil06]
[MM07]
Advances
[MM05]
Artech
[MG02]
[Mil86]
in
ar
[Man89]
Proceedings of
2009.
[MvV96]
Ve
rs
[NC04]
Quantum Information.
isbn:
9780521635035.
[Nel+95]
[Neu04]
isbn: 0-13-463894-8.
isbn: 3-540-22001-1.
[NIS01]
NIST.
[NIS10]
NIST.
[NIS99]
NIST.
A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications. 2010.
Data Encryption Standard (DES).
1999.
BIBLIOGRAFIA
[Noj+08]
443
R. Nojima et al. Semantic Security for the McEliece Cryptosystem without random oracles. Em:
[NV09]
[NZM91]
of EUROCRYPT.
1994.
and Applications.
Springer, 2009.
isbn: 3642022944.
0471625469.
Jos Plnio de Oliveira Santos.
IMPA, 2010.
[Pap93]
Christos H. Papadimitriou.
Wesley, 1993.
[Ped91]
Computational Complexity.
isbn: 0-20153-082-1.
Eurocrypt 91.
Stephen Pincock.
Pr
e
ROCRYPT 91.
[Pin06]
Addison-
[Ped92]
An
isbn:
lim
[Oli10]
Proceedings
in
ar
[NS94]
isbn: 0802715478.
76.3
[Pos36]
[Pol75]
Ve
rs
Em:
[Pre+07]
[PV09]
Computing.
isbn: 978-0-521-88068-8.
[Rab79]
isbn: 9788577260324.
Algoritmos.
McGraw-
Michael Rabin.
[Rab81]
M. Rabin.
Technical
[Reg05]
Computing (STOC).
BIBLIOGRAFIA
444
[Rie94]
[RJA02]
Hans Riesel.
zation.
isbn: 0817637435.
[Rog87]
[Rom96]
Hartley Rogers.
putability.
Springer, 1996.
[RSA78]
Steven Roman.
in
ar
isbn: 0262680521.
isbn: 0387947043.
R. Rivest, A. Shamir e L. Adleman. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Em:
[Sch00]
K. R. Rao e P. C. Yip.
Handbook.
isbn: 0-8493-3692-9.
Em:
[Sch94]
lim
[RY01]
Communi-
Pr
e
Encryption.
1994.
[Sch96]
Bruce Schneier.
[Sch99]
CryptologyCRYPTO 99.
sis of Algorithms.
[SF95]
Addison-Wesley, 1995.
isbn: 9780201400090.
Jerey Shallit. A Second Course in Formal Languages and Automata Theory. Cambridge University Press, 2008. isbn: 0-521-86572-
Ve
rs
[Sha08]
Advances in
7.
[Sha48]
Em:
656.
[Sha49]
Em:
[Sha79]
[Sha84]
ACM
Communications of the
mes. Em:
[Sha92]
Crypto 84.
Adi Shamir. IP
(1992).
1984.
= P SP ACE .
Em:
39.4
BIBLIOGRAFIA
R. Shankar.
1994.
[Shi10]
isbn: 0306447908.
a ed. Springer,
Frank Y. Shih. Image Processing and Pattern Recognition: fundamentals and techniques. IEEE/Wiley, 2010. isbn: 978-0-470-404614.
[Sho01]
Victor Shoup.
[SHO08]
[Sho10]
Victor Shoup.
and Algebra.
Cambrige, 2005.
isbn: 0521851548.
SALAHODDIN SHOKRANIAN.
meros.
Salahoddin Shokranian.
isbn: 9788573937534.
lgebra 1.
8573939516.
George F. Simmons.
Krieger, 2003.
[Sin00a]
S. Singh.
[Sin00b]
Simon Singh.
[Sin10]
[Sip07]
isbn: 0385495323.
Simon Singh. O Livro dos Cdigos. 7a. Record, 2010. isbn: 8501055980.
The Code Book.
Michael Sipser.
2000.
isbn:
isbn: 1575242389.
Pr
e
[Sim03]
lim
[Sho05]
in
ar
[Sha94]
445
isbn: 9788522104994.
So Paulo
[Smi55]
Cryptography: an introduction.
Nigel Smart.
isbn: 978-0077099879.
Laurence D. Smith.
isbn: 048620247X.
Ve
rs
Dover, 1955.
[SMM07]
isbn: 978-85-7393-634-6.
[SS03]
[ST92]
[Sta96]
[STE09]
Mcgraw-Hill, 2004.
[Sma04]
tion.
ves.
Springer, 1992.
isbn: 978-0691113845.
isbn: 9780387978253.
Advances
24.3 (2009).
BIBLIOGRAFIA
446
[Ste10]
William Stein. Elementary Number Theory: Primes, Congruences, and Secrets: A Computational Approach. Springer, 2010. isbn:
1441927522.
Douglas R. Stinson.
[Tur37]
isbn: 1-58488-508-4.
munication.
isbn: 0-252-72548-4.
matical Society
[Tur38]
in
ar
[Sti06]
lim
tography.
Pr
e
[Vas07]
isbn:
978-8218-
4090-0.
[Vaz10]
Vijay V. Vazirani.
3642084699.
[VBo05]
J. V.Boone.
2005.
[Ver26]
isbn: 978-1-59114-084-9.
tography.
Ve
rs
[Was08]
[WC05]
isbn: 1420071467.
shares. Em:
[WC98]
[WYY05]
[Yan07]
Song Y. Yan.
Crypto 2005.
2005.
Springer, 2007.
isbn:
0387487417.
[Yao82]
Founda-
BIBLIOGRAFIA
[Yao86]
447
Ve
rs
Pr
e
lim
in
ar
Em:
in
ar
ndice Remissivo
lim
, 363
-protocolo, 206
, 363
O, 362
BPP (classe de complexidade), 375
IP (classe de complexidade), 202
N P (classe de complexidade), 374
N P -completo (classe de complexidade),
377
Pr
e
tanlise), 323
anel, 347
aniversrio
ataques usando o problema, 115
problema do, 115, 327
xidade), 377
rvore, 370
assinatura
(n)-aproximao, 385
k -aproximao, 385
tabela de, 95
3DES (criptossistema), 75
Ve
rs
de Shamir, 257
des, 254
adversrio
malicioso, 215
semi-honesto, 215
Atbash,
AES, 77
descrio algbrica, 80
veja
cifra Atbash
descrio simplicada, 77
detalhes de implementao, 414
Bzout
NDICE REMISSIVO
449
COBERTURA-POR-ARESTAS (problema),
397
COBERTURA-POR-VERTICES
bit hard-core, 37
problema, 386
veja
TSP
CCA, 138
CCA (segurana de criptossistema assimtrico), 147
(k, n),
291
cenrio
vericvel, 192
criptogrco, 215
da teoria da informao, 216
CGS (esquema de votao), 311
exponencial, 363
Pr
e
polinomial, 363
subexponencial, 363
de bloco, 8
de uxo, 7
181
cifra de bloco
denio de segurana, 68
Ve
rs
no AES/Rijndael, 80
lim
caixeiro viajante,
131
in
ar
de Pedersen, 180
ocultante, 179
usando logaritmo discreto, 180
vinculante, 178
confuso
em projeto de cifra de bloco, 69
congruncia, 331
conhecimento zero
circuito
veja
hamiltoniano, 369
circuito Hamiltoniano,
CONJUNTO-DOMINANTE
problema, 379
prova de
N P -completude,
construo de Lai-Massey, 73
corpo, 348
379
NDICE REMISSIVO
450
corpo de Galois,
veja
corpo nito
in
ar
corpo de Rijndael, 80
S-boxes, 411
cosseno
transformada, 404
diferencial, 102
counter
modo de operao de permutao
pseudoaleatrea, 67
criptanlise, 87
Die-Hellman (protocolo)
algbrica, 107
de cifras antigas, 323
diferencial, 101
diferencial impossvel, 109
linear, 90
lim
difuso
Pr
e
simtrico, 20
divisibilidade, 329
Dixon
algoritmo de, 244
quadrtico, 244
de Eratstenes, 239
Ve
rs
Elgamal (criptossistema)
empacotamento de conjunto
de Brujin
sequncia de, 59
decodicao, 286
democracia (em sistema de votao),
307
DES
NDICE REMISSIVO
451
gerador, 345
problema, 383
47
(problema), 383
in
ar
Blum-Blum-Shub, 47
de Boneh-Franklin, 263
de Blum-Micali, 46
esquema de encriptao
negvel pelo remetente, 296
Golomb
postulados de, 48
lim
grafo, 368
grafo bipartido, 370
cclico, 345
comutativo, 344
Pr
e
de unidades, 347
famlia de distribuies, 41
estatisticamente prximas, 42
fatorao de inteiros, 35
veja
full-domain hash
Ve
rs
Fourier
Hadamard
HAM
problema, 376
hash, 9
hashing
funo de, 113
HMAC, 137
homomorsmo, 346
Howlader-Basu (esquema de encriptao negvel), 297
IDEA (cifra de bloco), 73
identicao
252
de mo nica forte, 33
de mo nica fraca, 36
funo desprezvel, 27
252
indecidvel (problema), 388
NDICE REMISSIVO
452
indistinguibilidade computacional, 43
intermediador incorrompvel, 220
mix-net, 308
isomorsmo
MOCHILA
no aproximabilidade, 385
problema, 378
prova de
in
ar
de grafos, 371
N P -completude,
378
JPEG
cas, 405
lim
no-repdio, 159
Lagrange
interpolao, 187
Lamport
esquema de assinaturas de, 164
one-time pad, 22
LFSR
Pr
e
de comprimento mximo, 52
linguagem
Turing-decidvel, 391
Turing-reconhecvel, 391
pseudoaleatrea, 67
Ve
rs
Luby-Racko (Teorema), 72
LWE (criptossistema), 279
LWE (problema em reticulados), 274
m-sequncia, 52
PARTIO
problema, 387
perodo de sequncia, 48
permutao de mo nica, 34
com segredo, 146
permutao indexada, 65
permutao pseudoaleatrea, 65
forte, 65
polinmio de conexo, 51
gem, 131
veja
menor base
problema, 388
Merkle-Damgrd
f,
352
Pollard
mtodo
mtodo
NDICE REMISSIVO
453
predicado hard-core, 37
Schnorr
problema
de deciso, 371
produto de subconjunto
in
ar
de busca, 371
problema, 387
veja
Se-
protocolo, 175
SHA-1, 119
sigilo perfeito, 21
lim
qubit, 266
Rabin
397
criptossistema, 148
soma de subconjuntos, 35
Pr
e
subgrupo, 344
rede de Feistel, 71
subsequncia constante, 48
reduo, 376
reencriptao, 308
registrador de deslocamento, 49
linear realimentado, 50
registrador quntico, 267
Ve
rs
N P -completude),
378
reticulado, 273
problema, 376
prova de
N P -completude,
377
ROT13, 321
S-box, 69
o, 307
NDICE REMISSIVO
454
vis
de varivel aleatrea binria, 91
Ve
rs
Pr
e
lim
in
ar