Escolar Documentos
Profissional Documentos
Cultura Documentos
in
ar
Pr
e
Ve
rs
18 de fevereiro de 2016
in
ar
Sumrio
Encriptao assimtrica
1.3
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
. . . . . . . . . . . . . . . . . . . . . . . .
14
14
14
. . . . . . . . . . . . . . . . . . . .
16
19
2.1
Criptossistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.2
Princpio de Kerckho . . . . . . . . . . . . . . . . . . . . . . . .
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
33
. . . . . . . . . . . . . . . . . . . . . . . .
33
3.1.1
Pr-Computao Quntica . . . . . . . . . . . . . . . . . .
34
3.1.2
Ps-quntica
. . . . . . . . . . . . . . . . . . . . . . . . .
35
3.1.3
38
SUMRIO
ii
Predicados hard-core . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.3
42
45
4.1
Geradores pseudoaleatreos
45
4.2
49
4.3
51
52
4.4.1
52
4.4.2
57
. . . . . . . . . . . . . . .
Cifras de Fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
4.5.1
Mltiplas Mensagens . . . . . . . . . . . . . . . . . . . . .
58
4.5.2
61
. . . . . . . . . . . . .
Cifras de Bloco
65
5.1
5.2
Permutaes Pseudoaleatreas
5.2.1
5.3
5.4
Modos de Operao
5.7
5.8
. . . . . . .
69
69
. . . . . . . . . . . . . . . . . . . . . . . . .
69
70
5.3.2
. . . . . . . . . . . . . . .
70
5.3.3
71
5.3.4
CTR Contador . . . . . . . . . . . . . . . . . . . . . . .
71
Cifras de bloco
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
5.4.1
72
5.4.2
Construo
73
. . . . . . . . . . . . . . . . . . . . . . . . . .
73
5.5.1
Confuso e difuso . . . . . . . . . . . . . . . . . . . . . .
73
5.5.2
73
5.5.3
Rede de Feistel . . . . . . . . . . . . . . . . . . . . . . . .
76
5.5.4
Construo de Lai-Massey . . . . . . . . . . . . . . . . . .
79
Exemplo: DES
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6.1
Escalonamento de chaves
5.6.2
3DES
Exemplo: AES
. . . . . . . . . . . . . . . . . .
80
82
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
5.7.1
Descrio simplicada
. . . . . . . . . . . . . . . . . . . .
84
5.7.2
. . . . . . . . . . . . . . . . . . . .
86
FOX (IDEA-NXT) . . . . . . . . . . . . . . . . . . . . . . . . . .
89
Descrio algbrica
Noes de Criptanlise
93
6.1
6.2
Criptanlise linear
6.3
67
5.3.1
Ve
rs
5.6
. . . . . . . . . . . . . . . . . . .
5.5
in
ar
4.5
. . . . . . . . . . . . . . .
lim
4.4
. . . . . . . . . . . . . . . . . . . . .
Pr
e
3.2
. . . . . . . . . . . . . .
93
. . . . . . . . . . . . . . . . . . . . . . . . . .
96
6.2.1
O Lema do Empilhamento . . . . . . . . . . . . . . . . . .
97
6.2.2
Criptanlise da rede
98
6.2.3
. . . . . . . . . . . . . . . . . . . . .
SUMRIO
6.4
Criptanlise Algbrica
6.5
119
7.2
7.3
7.4
dexp
. . . . . . . . . . . . . . . . 121
in
ar
. . . . . . . . . . . . . . . . . . . 123
SHA-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.5
7.6
. . . . . . . . 127
7.6.1
7.6.2
Objees
lim
. . . . . . . . . . . . . . . . . . . . . . . . . . . 130
135
8.1
8.2
8.3
CBC-MAC
8.3.1
hashing)
7.4.1
. . . . . . . . . . . . . . . . . . . . . . . . 113
. . . . . . . 136
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
8.4
HMAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
8.5
Pr
e
iii
. . . . . . . . . . . . . . . . . . . . . 142
Criptograa Assimtrica
145
9.1
9.2
9.3
9.4
Ataque de homem-no-meio
Criptossistemas Assimtricos
. . . . . . . . . . . 150
9.4.1
. . . . . . . . . . . . . . . . . 149
. . . . . . . . . . . . . . . . . . . . 149
9.6
Elgamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
9.7
Ve
rs
9.5
9.8
9.9
RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.8.1
Ataques ao RSA
9.8.2
. . . . . . . . . . . . . . . . . . . . . . . 156
. . . . . . . . . . . . . . . 157
Goldwasser-Micali
. . . . . . . . . . . . . . . . . . . . . . . . . . 157
10 Assinaturas Digitais
163
. . . . . . . . . . . . . . . . . . . . . . . 165
. . . . . . . . . . . . . . . . . . . . . . . 166
. . . . . . . . . . . . . . . . . . . . . . . 167
10.1.4
. . . . . . . . . 168
. . . . . . . . . . . . . . . . 168
SUMRIO
iv
II
Protocolos
. . 173
in
ar
10.5
175
179
. . . . . . . . . . . . . . . . . . . . . . . . . . 180
. . . . . . . . . . . . . . . . . . 185
lim
12 Compartilhamento de Segredos
189
. . . . . . . . . . . . . . . . . . . . . 190
. . . . . . . . . . . . . . . . . . . . . 192
Pr
e
12.2.1 Sigilo
. . . . . . . . . . . . . . . . . . . . . 194
. . . . . . . . . . . . . . . . . . . . 196
. . . . . . . . . . . . 198
. . . . . . . . . . . . . . . . . . . 202
. . . . . . . . . . . . . . . . . . . . . . 202
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
205
. . . . . . . . . . . . . . . . . . . . . . . . . . 205
-protocolos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Ve
rs
13.3
. . . . . . . . . . . . . . . . . . . . . 211
217
219
. . . . . . . . . . 220
. . . . . . . . . . . . . . . . . . . . . 224
SUMRIO
15.5 Notas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
227
in
ar
231
. . . . . . . . . . . . . . . . . . . . . . . . . . . 234
. . . . . . . . . . . . . . . . . . . . . 236
. . . . . . . . . . . . . . . . . . . . . . . . . . . 237
16.3.1
16.3.2
Fp . .
GF2m
. . . . . . . . . . . . . . . 237
lim
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
. . . . . . . . . . . . . . . . . . . . . . . . 239
Pr
e
17 Primalidade e Fatorao
17.1 Fatorao
243
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Crivo quadrtico
. . . . . . . . . . . . . . . . . . . 244
. . . . . . . . . . . . . . . . . . . 246
. . . . . . . . . . . . . . . . . . . . . 248
Ve
rs
17.1.6
F
F
F
17.1.4
p 1 de Pollard
de Pollard . .
253
. . . . . . . . . . . . . . . . . . . . . . . . . . 254
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
. . . . . . . . . . . . . . . . . . . . . . 258
19 Emparelhamentos Bilineares
265
. . . . . . . . 266
. . . . . . . . . . . . . . . . 266
SUMRIO
vi
20 Criptograa Ps-Quntica
269
. . . . . . . . . . . . . . . . . . . . . . 269
. . . . . . . . . . . . . . . . . . . . . . . . 270
in
ar
21 Reticulados
. . . . . . . . . . . . . 273
277
21.0.1 Variantes
. . . . . . . . . . . . . . . . . . . . . . . . . . . 277
lim
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
. . . . . . . . . . . . . . . . . . 279
Pr
e
285
23 Criptograa Visual
295
pequenos
. . . . . . . . . . . . . . . 298
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
. . . . . . . . . . . . . . . . . . . . . . . . . . 298
24 Encriptao Negvel
301
Ve
rs
25 Votao Eletrnica
25.1 Mix Nets
313
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
SUMRIO
vii
in
ar
25.5.1 Anlise
26 Dinheiro Eletrnico
323
27 Cifras Histricas
27.1 Cifras
325
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
27.2 Enigma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
IV
lim
Apndices
A Probabilidade
A.1
333
Pr
e
331
335
367
Recorrncias
C.1.2
. . . . . . . . . . . . . . . . . . . . . . . . . 370
Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
C.3
C.4
Algoritmos no determinsticos
C.5
C.6
Classes de Complexidade
C.7
Redues e completude
Ve
rs
C.2
. . . . . . . . . . . . . . . . . . 377
. . . . . . . . . . . . . . . . . . . 378
. . . . . . . . . . . . . . . . . . . . . . 380
. . . . . . . . . . . . . . . . . . . . . . . 382
N P -completude
C.7.1
. . . . . 384
C.7.2
Padres comuns
C.7.3
Problemas
. . . . . . . . . . . . 389
C.7.4
Outros
. . . . . . . . . . . . 393
. . . . . . . . . . . . . . . . . . . . . . . 389
N P -completos na prtica
problemas N P -completos . .
C.8
C.9
D Transformada de Fourier
405
D.1
D.2
D.3
Transformada do Cosseno
D.2.1
D.3.1
SUMRIO
viii
415
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
E.1.1
E.1.2
E.1.3
Funo interna
E.1.4
Escalonamento de chaves
. . . . . . . . . . . . . . 417
in
ar
E.1
. . . . . . . . . . . . . . . . . . . . . . . 417
. . . . . . . . . . . . . . . . . . 420
E.2
SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
E.3
AES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
E.3.1
Quantidade de rodadas
E.3.2
Escalonamento de chaves
E.3.3
Encriptao . . . . . . . . . . . . . . . . . . . . . . . . . . 425
E.3.4
Decriptao . . . . . . . . . . . . . . . . . . . . . . . . . . 426
G Ficha Tcnica
Ve
rs
Pr
e
ndice Remissivo
. . . . . . . . . . . . . . . . . . 425
lim
F Respostas e Dicas
. . . . . . . . . . . . . . . . . . . 424
427
437
455
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
na base
logaritmo discreto de
na base
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
Captulo 1
lim
in
ar
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 criptossistemas simtricos, e o segredo normalmente
chamado de chave.
Enc(m, k)
Ve
rs
usar
com a chave
todos
k.
k.
k,
Enc
Dec
damos o nome de
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;
Enc
Dec
so
lim
mensagens.
Cifras de bloco, que transformam sequncias de bits de tamanho xo, realizando nelas transformaes difceis de inverter.
mensagem
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
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
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).
Ve
rs
lim
in
ar
11
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
in
ar
cos.
m0
ou
m1
Alice tenha certeza de que Bob recebeu uma das duas mensagens, mas que
no saiba qual delas foi recebida.
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
Pr
e
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: Alice compromete-se com um bit
(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 conjunto de pessoas com mais de 2/3 do grupo possa revelar
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 qual o patrimnio da outra.
CAPTULO 1.
14
in
ar
de inteiros. Como muito da Criptograa depende da diculdade em resolver estes problemas, criptlogos tentam conseguir avanos em mtodos criptogrcos
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.
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
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-
A distribuio sobre
no
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).
Lema 2.3. Um criptossistema tem sigilo perfeito se e somente se, para todo
e
c C , Pr(c|m) = Pr(c).
Pr
e
mM
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
|M|.
Seja
cC
tal que
1 Se
M(c)
c:
e seja
|K| |M|.
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
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|
1n
para a sequncia de
{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
m0 , m1
e qualquer texto
c,
P (c|m0 ) = P (c|m1 ).
in
ar
c C.
P (c|m0 ) = P (c|m1 ),
depois calcule
P (c)
lim
() (Rascunho) Presuma
m0 , m1
o Lema 2.3.
usando
pad,
uma distribuio
Para o one-time
Pr
e
tribuio sobre
= Pr[K = m c] =
c,
ento
m1
1
|K|
P (c|m0 ) =
1
= P (c|m1 )
|K|
Ve
rs
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)
e a enviaremos a ele. O adversrio dever ento descobrir qual das mensagens
foi cifrada.
CAPTULO 2.
O Experimento
PRIV_EAV
in
ar
24
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
Pr
e
KPA, ataque com texto claro conhecido: aqui o adversrio conhece pares
de textos claros e cifrados, todos encriptados com uma mesma chave
tenta decriptar um outro texto cifrado, tambm encriptado com
k,
k;
CPA (Chosen Plaintext Attack), ataque de texto claro escolhido: o adversrio pode obter a encriptao de textos sua escolha usando a chave
k.
Seu objetivo decriptar um outro texto que tambm foi encriptado com
k;
CCA (Chosen Ciphertext Attack), ataque de texto cifrado escolhido. Aqui
k,
exceto
Ve
rs
ativos.
Estes ataques dizem respeito a sigilo, e portanto fazem sentido apenas para
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
de um grampo
Pr[PRIV_EAV(A, n) = 1]
1
+ negl(n).
2
in
ar
tal que,
Notas
|K| <
lim
|M|.
A denio de criptossistema que demos a mesma dada por Katz e Lindell [157]
e tambm por Goldreich [108].
Pr
e
3. Sua chave deve ser comunicvel e armazenvel sem a ajuda de notas escritas, e modicvel vontade pelos correspondentes;
Ve
rs
pessoas;
CAPTULO 2.
30
O one-time pad foi descrito inicialmente por Vernam em um artigo de 1926 [260]
(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
lim
Exerccios
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
f;
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.
Denio 3.2 (Permutao de mo nica). Uma funo de mo nica chamada de permutao de mo nica quando uma bijeo e preserva o tamanho
de sua entrada.
P=
6 N P,
Pr
e
candidatas a mo nica.
A multiplicao de inteiros.
A soma de subconjuntos.
for diferente de
N P-
N P ).
Ve
rs
3.1.1
Pr-Computao Quntica
f 1
o gerador do grupo
Zp
1 ou
onde
primo e
(Np , ).
g x (mod p)
um nmero primo;
(mod p)
consulte o Apndice B.
um gerador
35
dexp
p.
p)
in
ar
para determinar
logaritmo discreto, e tem sido usado como base para construo de ferramentas
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
2
do logaritmo discreto :
||q|| = k o
positivo p(),
A,
qualquer nmero
escolhido ao acaso em
Zq , onde
e qualquer polinmio
lim
randomizado polinomial
q,
1
.
p(k)
bits, seja
mult (p, q) = pq .
Pr
e
mult
mult
p, q
de tamanho
n.
(p, q) a partir de pq .
Usaremos
A,
p(),
Ve
rs
quaisquer inteiros
3.1.2
x, y
com
bits cada, e
1
.
p(k)
Ps-quntica
em Ingls.
CAPTULO 3.
36
PROBLEMAS DIFCEIS
n inteiros x1 , , xn e uma
somasub retorna o somatrio dos
elementos do subconjunto.
in
ar
somasub(x1 , x2 , , xn , S) = (x1 , x2 , , xn ,
xi )
iS
Determinar o subconjunto
N P -completo,
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
lim
difcil de inverter quase sempre (exceto pela probabilidade desprezvel j mencionada). Um problema
maioria dos
N P -completos.
N P -completo,
Pr
e
Reticulados so semelhantes a espaos vetoriais (porque so conjuntos de combinaes lineares de um abase), mas no so contnuos, porque na denio de
um rerticulado, usamos somente combinaes lineares com coecientes inteiros.
de
um conjunto
( n
X
L(B) =
B = (b1 , . . . , bn )
uma base de
Ve
rs
onde
Rn
)
i bi |i Z
i=1
Rn .
Dizemos que
(b1 , . . . , bn )
uma base
L.
b1,1
b1,2
.
..
b2,1
..
bn,1
.
.
.
.
..
bi :
bn,n
b2
b1
0
1
2
0
lim
in
ar
37
Observamos que, assim como para espaos vetoriais, podemos ter mais de uma
base para um reticulado. Por exemplo, uma nova base para o reticulado que
descrevemos pode ser obtida com os vetores
Pr
e
1 = 2b1 + b2 = (2, 2)
2
2
2
3
Ve
rs
A base
(b1 , b2 )
1 , 2
deles so:
J
Os mais simples
CAPTULO 3.
38
v L(B)
com
vetores e um vetor
mais prximo de
t;
gerando
L(B),
t Rn ,
determinar o
in
ar
PROBLEMAS DIFCEIS
B0
para o
mesmo reticulado que seja menor de alguma forma. Por exemplo, po-
||si ||2 .
lim
||B 0 || =
e um vetor
x L(B),
v Rn ,
Dado um ponto
prximo de
Pr
e
f (v) = x + e
e uma base
B,
o problema de encontrar
x L(B)
mais
3.1.3
Ve
rs
probabilidade no desprezvel.
fracamente de
mo nica se:
f;
p()
A randomizado de
n sucientemente
e todo
grande,
P r A(f (x), 1n )
/ f 1 f (x)) >
1
p(n)
39
1/k .
mult
in
ar
fracamente de mo
1/k .
(1/k)2 .
Se escolhermos dois
(1/k)2 uma
mult , temos que
Como
lim
O seguinte Teorema, apresentado sem prova, nos diz que apesar de parecer
que a existncia de funes de mo nica fracas mais plausvel que a existncia
das fortes, as duas possibilidades de existncia so equivalentes.
Pr
e
Ve
rs
x,
e o valor encriptado
Enc(x).
No deve
b(x)
a partir de
f (x)
tiver probabilidade de
1/2.
y,
determinar se
Enc.
de mo nica
CAPTULO 3.
40
Na prxima denio,
PROBLEMAS DIFCEIS
H(x)
H : {0, 1} {0, 1}
se
1
+ negl(k),
2
x.
o nmero de bits de
x escolhido ao acaso,
lim
um predicado
H(x);
onde
in
ar
{0, 1}
contradomnio
{0, 1} .
dado
Pr
e
um dos bits de
p.
c=y
(mod p).
Se
quadrtico mdulo
p, x
p.
lsb (x)
possvel computar
c = 1,
lsb (x)
dado
em tempo poli-
no resduo quadrtico e
Se
resduo
c 6= 1,
no par).
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!).
Usando os mesmos p e g , tentamos agora x = 31: temos dexp p.g (31) 13
411
(mod 41). Tendo agora apenas p = 41 e o valor 13, calculamos c = 13 2
(mod 41) = 19004963774880799438801 40 (mod 41) e determinamos que x
mpar.
J
Ve
rs
lamos
Lema 3.17. Se
primo e
dexp
h um algoritmo
mdulo
p.
um predicado hard-core de
dexp .
41
msb (x)
dado
p, g
mdulo
g ),
divida
por
r1
r2
p.
e agora temos
mdulo
g2+
(p1)
2
dado
msb (x)
p (veja
g x/2 e
lim
in
ar
menor (qual tem o bit mais signicativo igual a zero). Tomamos esta raiz (g
x/2
1.
Pr
e
msb (x)
signicativo de x.
dado apenas
y,
Ve
rs
r1 , r2 y (mod p)
ii+1
retorne (xi , xi1 , , x0 )
lsb (x)
x,
para o
para o suposto
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 /
se msb (x) = 0
y r1
senao
y r2
CAPTULO 3.
42
PROBLEMAS DIFCEIS
in
ar
(f (x), r),
onde
acaso. Ento,
k
X
def
H(x, r) =
xi ri
xer
para g .
(mod 2)
lim
i=1
r).
x (determinado
Pr
e
Notas
pelos bits um de
g(x, r) =
escolhido ao
Exerccios
Ex. 13 Reescreva a denio de funo de mo nica usando um experimento (simulao de jogos), da mesma maneira que zemos para as denies
de segurana no Captulo 2.
Ve
rs
P 6= N P ):
a) SAT
b) TSP
c) COBERTURA-POR-VERTICES
d) GERACAO-DE-PERMUTACAO
4 Em
Lk
i=1
xi ri .
in
ar
g) SBP
Tome cuidado de determinar como a entrada ser representada, qual exatamente
sero o domnio e o contradomnio (que devem ambos ser nitos, uma vez que
lim
iv) Existe algum subconjunto das instancias do problema que possa ser resolvido ecientemente? Novamente, em que isso implica para sua funo?
v) Tente analisar a segurana de cada bit de entrada das funes. H bits cla-
Pr
e
N P -difceis
f (x, y) = x + y , onde
naturais, no de mo nica.
Ve
rs
CAPTULO 3.
PROBLEMAS DIFCEIS
Ve
rs
Pr
e
lim
in
ar
44
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.
45
n,
n.
X2
Xn
X1
in
ar
Damos o nome
{ 0, 1 }
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
47
s0 Xn
s1 Yn
b R { 0, 1 }
sb
b0
b=b 1
b 6= b0 0
lim
Pr
e
1/2.
Xn
negl()
tal que
funo desprezvel
Yn so computacionalmente indistinguveis
T e n sucientemente grande, existe uma
Ve
rs
Pr [DISTRIB_DISTINGUISH(D, n, Xn , Yn ) = 1]
1
+ negl(n).
2
Xn
Yn so computacionalmente indistinguveis
D e n sucientemente grande, existe uma
funo desprezvel
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
do
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
maior
um polinmio e G um al-
s {0, 1}n .
A sada de
G(s)
tem tamanho
l(|s|).
Ento
um gerador
pseudoaleatreo se:
Para todo
A sada de
n, l(n) > n
G
para
(ou seja,
distribuio uniforme de
bits.
forma: a sada de um gerador pseudoaleatreo deve passar por todos os possveis testes (de tempo polinomial) estatsticos.
2 H
49
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
def
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:
H.
p(.),
def
Ve
rs
um gerador pseudoaleatreo.
Este Teorema, que no demonstraremos, diz essencialmente que a ideia des-
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)
51
in
ar
gerador pseudoaleatreo.
Outro gerador pseudoaleatreo mostrado a seguir.
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
(mod m)
Pr
e
2k 1
distribuio, porque h
2k
n 1,
para qualquer
Ve
rs
nmero
de bits. H
no ser mais uniforme. Temos ento que ignorar estas strings, e gerar um novo
nmero quando elas forem encontradas. Esta ideia detalhada no algoritmo a
seguir.
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. Se
Teorema 4.17. Se
in
ar
algoritmo
lim
Pr
e
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
53
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).
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
55
in
ar
Abreviamos registrador de
O polinmio
1 + c1 x + +cl xl
lim
ter).
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
Teorema 4.24. Toda sequncia peridica de bits pode ser gerada por algum
LFSR com no mximo
estados, onde
4 Porque a b
o mesmo que
o tamanho da sequncia.
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
S.
zero.
lim
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
57
um LFSR de n bits.
0n e deslocado repe2n 1 permutaes, ento
in
ar
m-sequncias.
cl = 1),
lim
comprimento mximo.
Usando LFSRs
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.
Observamos que passar em uma bateria de testes uma condio necessria
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
M0 = (m10 , m20 , )
M1 = (m11 , m21 , )
b R {0, 1}
k R {0, 1}n
Enck (mb )
b0
0
Ve
rs
b=b 1
b 6= b0 0
em
n.
desprezvel
negl
tal que,
Pr[PRIV_MULT(, A, n) = 1]
1
+ negl(n).
2
Enc.
A,
b
59
Gen:
dado
Enc(k, m) = G(k) m,
Dec(k, c) = G(k) c,
G:
como
como
tenham
tenham
bits;
bits.
lim
p(.).
in
ar
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
Ve
rs
n.
1. Chame
A(1n )
2. Escolha um bit
3. Calcule
p(n).;
aleatoreamente;
c = s mb ;
4. Ao invs de
in
ar
1n
m0 , m1
b R {0, 1}
c s mb
b0
0
s
s.
lim
b=b 1
b 6= b0 0
teremos que a chaves usadas para cifrar as mensagens so escolhidas com distri-
Pr
e
ao invs de enviar
para
A,
seja igual a
1
.
2
G(k),
com
esco-
usado
k = Gen(1n )
ao invs de enviar
para
e o experimento o mesmo
Ve
rs
1
+ f (n).
2
M1 )
c1 = c2
C = (c , c ),
o adversrio pode
M2 ).
61
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
Teorema 4.34 (Insegurana de criptossistemas determinsticos). Qualquer criptossistema simtrico determinstico inseguro de acordo com a Denio 4.30.
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
A;
b0 ;
in
ar
3. Um bit
AEnck
1n
lim
m0 , m1
b R {0, 1}
k { 0, 1 }
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
tal que,
1
+ negl(n).
2
Pr[PRIV_CPA(, A, n) = 1]
negl
Ve
rs
Notas
63
in
ar
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
k aparece
deBrujin n-ria de
nica vez.
se cada
Generali-
m-sequncias
m-rias
de ordem
existem?
0n
1n ,
cifrado.
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
Neste
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 )
65
CAPTULO 5.
CIFRAS DE BLOCO
Assim, usamos
lim
in
ar
66
2n
dentre
(2n )(2
funes. Uma
Pr
e
Fk (sem
ele no deve ser capaz de distinguir Fk de uma funo qualquer
n (2n )
escolhida ao acaso dentre todas as (2 )
possveis funes com entrada e sada
da funo. Assim, se permitirmos ao adversrio acesso a uma funo
o ndice
de
k ),
bits.
(2 )
2n
deve ser
algoritmo
n (2n )
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
r R { 0, 1 } ,
e enviar
lim
Gen(1 )
n:
Pr
e
mensagem igual a
Enck (m):
escolha
r R { 0, 1 }
{0, 1}n .
, e retorne
hr, Fk (r) mi .
Ve
rs
usar
O Criptossistema
ao
1 p(n)
+ n
2
2
Pr [PRIV_CPA(, A, n) = 1]
no experimento
Enck usada
PRIV_CPA), um novo r
1
2n .
Suponha agora que no experimento o texto encriptado
probabilidade de
seja enviado a
pelo adversrio
r,
A.
c = h rc , f (rc ) mb i
CAPTULO 5.
68
rc
usado por
CIFRAS DE BLOCO
RU IM .
ao orculo. Seja
A probabilidade
in
ar
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
lim
Conclumos que
p(n) 1
+ .
2n
2
Pr
e
g(n)
1
2 a probano experimento PRIV_CPA:
1
g(n) = Pr [PRIV_CPA(, A, n) = 1] ,
2
e ento
Ve
rs
1
Pr [PRIV_CPA(, A, n) = 1] = g(n) + .
2
A diferena entre a probabilidade de sucesso para , que acabamos
de calcular,
g(n)
rana CPA);
g(n)
no desprezvel.
Fk
de
acontecer.
69
Fk
Fk1
k , Fk
in
ar
leatreas bijetoras.
chamada de
bijetora.
Fk
indistinguvel de
lim
Quando
taes de
eciente.
D,
toda
negl
tal que
Pr
e
Note que de acordo com a denio de permutao pseudoaleatrea o adversrio s tem acesso a
acesso a
5.2.1
Fk1 ,
Fk .
Ve
rs
n.
Fk
para
CAPTULO 5.
70
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 ).
71
Teorema 5.8. Se
5.3.3
Fk
a sada de
Fk ;
in
ar
CPA.
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. Se
5.3.4
CTR Contador
Para encriptar o
Fk ,
parte da mensagem.
i-simo
CAPTULO 5.
CIFRAS DE BLOCO
lim
in
ar
72
ci = Fk (ctr + i) mi .
Pr
e
n-simo
Teorema 5.10. Se
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
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
73
Construo
Denio 5.11 (Cifra de Bloco). Uma cifra de bloco para chaves com
n 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:
5.5.2
Dividimos o bloco
CAPTULO 5.
74
CIFRAS DE BLOCO
Pr
e
lim
in
ar
sada dos blocos e as distribumos entre os outros (as modicaes das S-boxes
Ve
rs
so espalhadas).
rodada. Uma rede de substituio e permutao normalmente executa vrias rodadas, e ao nal de cada rodada o resultado combinado (normalmente usando
ou-exclusivo) com uma chave.
lim
passo de mistura
traz difuso
in
ar
S-boxes
introduzem
confuso
75
XOR com
i-sima chave
Pr
e
didtica.
A gura mostra quatro S-boxes que substituem dois bits cada, ligadas por
Ve
rs
CAPTULO 5.
76
CIFRAS DE BLOCO
1100.
S -box em 11.
transformam
em
10,
11
00.
A primeira parte,
e a segunda parte,
Pr
e
S -box
pela primeira
lim
in
ar
00,
11,
mapeada
11
em
01
01
em
10,
resultando na sada
0110.
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
Rede de Feistel
Ve
rs
5.5.3
direita), denotadas
onde
fi
Li
Ri .
Li = Ri1
Ri = Li1 fi (Ri1 , Ki )
Ki
n/2
in
ar
77
substituies:
f (00) = 10
f (01) = 11
f (10) = 00
Pr
e
f (11) = 01
lim
Ve
rs
CAPTULO 5.
78
CIFRAS DE BLOCO
1101
em
Pr
e
lim
in
ar
0011.
Uma caracterstica importante das redes de Feistel que sempre so invertveis, mesmo que suas funes internas no o sejam.
Ve
rs
Teorema 5.14. Uma rede de Feistel sempre invertvel, independende da escolha de sua funo interna.
Demonstrao. Basta mostrarmos que uma rodada invertvel. E realmente:
como
Li
copiado de
podemos calcular
Ri1 ,
temos imediatamente
Ri1 .
Com
Ri1 , f
Ri
Li1 :
Ri1 = Li
Li1 = f (Ri1 ) Ri
79
in
ar
da rede pseudoaleatrea, desde que a rede tenha pelo menos trs rodadas.
Mais precisamente, Luby e Racko mostraram que a probabilidade de um ad-
q 2 /2n .
o assinttica (dissemos que sempre existe uma funo desprezvel maior que
o valor); j aqui damos uma expresso exata.
lim
P.
Ento
Pr
e
5.5.4
q2
.
2n
Construo de Lai-Massey
Li
Ri .
Calcula-se ento
Ve
rs
Di = f (Ri Li )
onde
Ri = Ri1 + Di
Li = Li1 + P (Di )
uma permutao.
um ortomorsmo).
1 As
ab
o mesmo que
a + (a).
CAPTULO 5.
CIFRAS DE BLOCO
Pr
e
lim
in
ar
80
Ve
rs
Ve
rs
Pr
e
lim
in
ar
81
metade dos bits da mensagem usado de cada vez como entrada para a funo
interna, a entrada de 32 bits.
Aps um
e quatro de sada (donde se conclui que a funo usada pelo DES na rede de
Feistel no tem inversa). Depois, a sada tem
8 4 = 32 bits.
A Figura a seguir
CAPTULO 5.
CIFRAS DE BLOCO
5.6.1
Pr
e
lim
in
ar
82
Escalonamento de chaves
3DES
Ve
rs
5.6.2
256 )
em tempo aceitvel.
2 Meet-in-the-middle
em Ingls.
83
O adversrio efetua
Enc(m)
ki
xi ,
em uma tabela.
xi
ki , xi
com
como chave. Ao
xi ,
ele guarda as
lim
Pr
e
(ki , kj )
decripta
(xi , ki ).
in
ar
Ve
rs
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,
a ter
168
2168
56
bits passamos
usvamos uma).
CAPTULO 5.
84
CIFRAS DE BLOCO
5.7.1
Descrio simplicada
in
ar
Esta Seo contm uma descrio simplicada do AES. A Seo 5.7.2 contm a
descrio algbrica.
O AES opera em matrizes
44
a0,1
a1,1
a2,1
a3,1
a0,2
a1,2
a2,2
a3,2
a0,3
a1,3
a2,3
a3,3
lim
a0,0
a1,0
a2,0
a3,0
Pr
e
// primeira rodada:
AddRoundKey
// rodadas intermediarias:
para i de 2 a N 1:
SubBytes
ShiftRows
MixColumns
AddRoundKey
Ve
rs
// rodada final:
SubBytes
ShiftRows
AddRoundKey
O nmero de rodadas (N no algoritmo) dez para chaves de 128 bits, doze
SubBytes
Este passo substitui cada um dos bytes da entrada, usando S-boxes. Esta uma
funo no-linear aplicada em cada byte. As S-boxes foram projetadas com dois
objetivos em mente:
foi minimizada tanto quanto possvel; alm disso, a probabilidade de propagao de diferenas foi tambm minimizada.
85
S -box
no corpo nito
GF (28 )
SubBytes so uma
in
ar
per-
ShiftRows
O passo
ShiftRows
Quando o tamanho do bloco de 128 bits, cada uma das linhas deslocada
1
5
9
13
ShiftRows
facilmente invertvel.
2
7
12
13
3
8
9
14
4
5
10
15
Pr
e
A operao
2
3
4
1
/
6
6
7
8
//
11
10 11 12
///
14 15 16 16
lim
MixColumns
Este passo aplica uma transformao linear em cada coluna da matriz, mas
3
De maneira simplicada, a
a1=a
a2=a1Y
a 3 = (a 1) Y a,
02 03 01 01
a0
b0
01 02 03 01 a1 b1
01 01 02 03 a2 = b2
03 01 01 02
a3
b3
Ve
rs
onde
de a
3 Este
operao descrita de forma mais aprofundada na Seo 5.7.2, que expe uma
CAPTULO 5.
86
02
01
01
03
MixColumns
03
02
01
01
01
03
02
01
do AES).
b0
0A
01
01
B7 = b1
03 01 b2
b3
39
02
in
ar
CIFRAS DE BLOCO
b0 = 0A 02 B7 03 01 01 39 01
lim
b0 = 14 75 01 39
Pr
e
A operao
b0
b0 =00010100
01110101
00000001
00111001
=00011001 = 19 .
b1 , b2
b3
Os valores
Ve
rs
AddRoundKey
4 4,
Escalonamento de chave
Para
5.7.2
chaves de rodada.
F Descrio algbrica
Esta Seo apresenta algumas das operaes do AES em sua formulao algbrica, e est marcada como opcional porque requer conhecimento de corpos
4
nitos .
4 Corpos
87
GF (28 ),
in
ar
m(x) = x8 + x4 + x3 + x + 1.
SubBytes
Quando
x = 0,
o valor subsitudo
MixColumns
lim
onde
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
0
1 1 1 1 0 0 0 1
A=
, b = 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
b.
Pr
e
A operao
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
Ve
rs
GF (28 )
E0
21
0A
72
interpretada como
72 x3 + 0A x2 + 21 x + E0
5 Se
representamos os elementos de
tencer a
Z2 .
GF (28 )
CAPTULO 5.
88
CIFRAS DE BLOCO
Cada um dos coecientes, por sua vez, pode ser visto como um polinmio.
A multiplicao de uma coluna por outro polinmio de grau quatro feita no
AES da maneira usual, reduzindo o resultado mdulo
coluna).
A operao
mio xo
in
ar
seja um polinmio de grau trs (e que possa portanto ser representado como uma
c(x):
c(x) = 03 x3 + 01 x2 + 01 x + 02 .
Os coecientes de
c(x)
tambm so elementos de
GF (28 ),
representados aqui
01 = 1
lim
02 = x
m(x)
03 = x + 1.
x+1
x
1
1
1
x+1
x
1
Pr
e
x
1
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).
Ve
rs
ax = a7 x8 + a6 x7 + a5 x6 + a4 x5 + a3 x4 + a2 x3 + a1 x2 + a0 x (mod m(x))
= a6 x7 + a5 x6 + a4 x5 + (a3 + a7 )x4 + (a2 + a7 )x3 + a1 x2 + (a0 + a7 )x + a7
ai xi+1
a7
Podemos calcular
ax
ai
As posies em
so 0, 1, 3 e 4. O nmero binrio
11011
1b .
Se
a7 = 1,
(ai + a7 )xi+1 .
1b .
Finalmente,
a(x + 1) = ax + a,
sivo com
a.
89
256
2.
j mostrada,
(E0 , 21 , 0A , 72 )T .
x7 + x6 + x5
x5 + 1
x3 + x
x6 + x5 + x4 + x + 1
x
1
1
x+1
x+1
x
1
1
resulta em
1
x+1
x
1
x7 + x6 + x5
1
x5 + 1
1
x +x
x+1
6
5
4
x +x +x +x+1
x
Pr
e
c(x),
lim
in
ar
=11000010 = 194 = c2 .
Ve
rs
c2 .
MixColumns
E portanto, o passo
6 Isto
CAPTULO 5.
CIFRAS DE BLOCO
Note que
f 64
lim
in
ar
90
Notas
Pr
e
segurana do DES.
Ve
rs
era Horst Feistel; o AES foi desenvolvido por Joan Daemen e Vincent Rijmen.
A descrio do DES e do AES dadas aqui supercial.
O leitor
DES. O padro GOST 28147-89 dene a cifra, que usa blocos de 64 bits (GOST
7
GOST signica padro do estado em russo). A cifra era secreta at 1994, quando
foi tornada pblica. A cifra de bloco denida pelo GOST tem mais rodadas que
7 Hoje
Unio Sovitica).
91
in
ar
A cifra FOX[152] 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) [8], Blowsh (de Bruce Schneier) [222], e MARS (nalista do concurso
que selecionou o AES, desenvolvida pela IBM) [47].
Exerccios
Argumente que
F : { 0, 1 } { 0, 1 } { 0, 1 }
F deve ser de mo nica.
lim
Ex. 34 Seja
Pr
e
muito supercial).
Ve
rs
onde
x.
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?
8O
CAPTULO 5.
92
CIFRAS DE BLOCO
MixColumns.
smo.
in
ar
Ex. 45 Prove que a permutao usada na cifra FOX de fato um ortomorEx. 46 Desenvolva e implemente, despretensiosamente9 , suas prprias cifras de bloco:
a) Uma rede de permutao e substituio;
b) Uma cifra de Feistel simples;
lim
Ve
rs
Pr
e
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
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
93
8
E
9 A
3 B
B
9
C
7
D
1
E
6
F
0
CAPTULO 6.
94
9,
NOES DE CRIPTANLISE
1011 vericamos
1001.
que
1011 = B
e a
in
ar
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
95
CAPTULO 6.
96
NOES DE CRIPTANLISE
in
ar
ai
como coecientes e os
xi
a1 , . . . , a 4
a1 x1 + a2 x2 + a3 x3 + a4 x4
x1 , . . . , x 4 .
Podemos
(mod 2),
ou
lim
a1 x1 a2 x2 a3 x3 a4 x4 ,
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.
97
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.
1/2.
Pr
e
Xi
i = Pr(Xi )
X1
X2
X1 X2 = 0
Ve
rs
Se
X1 , X2
seja
lim
p = Pr[mi mk cl cm = 0].
cl , . . . , cm ,
X1 = X2 .
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.
Se
p1 = 1/2 + 1
p2 = 1/2 + 2 ,
com
|e1 |
|e2 | 1/2,
ento
1
+ 21 2
2
Pr[X1 X2 = 0] =
ou seja,
NOES DE CRIPTANLISE
in
ar
98
1,2 = 21 2 .
o vis de
Ento
n
Y
1
+ 2n1
i ,
2
i=1
lim
Pr[X1 Xn ] =
ou seja,
1,2,...,n = 2n1
n
Y
i .
Pr
e
i=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
99
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.
100
NOES DE CRIPTANLISE
X4
X3 X4
Y1 Y2 Y3
Y1
Y2
Y3
in
ar
X3
Pr
e
lim
1/2
melhor).
Pr[A = 0]
seja aproximadamente
1/2
entradas, portanto
O vis de
Ve
rs
+8 que
A denida
Se subtrairmos
se dividido por
16
(combinaes lineares de
lineares de
Yi ).
X = Y
menos oito.
101
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
j -simo
dos
bit
rodada.
In
On ,
S4,3
so ativas na
CAPTULO 6.
NOES DE CRIPTANLISE
Ve
rs
Pr
e
lim
in
ar
102
Note que a trilha mostrada na rede no representa que tal entrada deve
103
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
(+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:
como
X1
in
ar
X2
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.
104
A1 A2 A3 A4
NOES DE CRIPTANLISE
igual a
in
ar
3
(m1 m2 k11 k21 k12 k53 k13
)
Como
x x = 0,
lim
3
3
O11 O11 O22 O42 O22 O63 O73 O42 O14
O15
.
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)
105
1/32.
Os bits da ltima chave (K5 ) que so combinados com a sada das S-boxes
S4,2
S4,3
so
5
k55 k12
.
28 = 256
Tendo o vis de
in
ar
Pr
e
lim
Ve
rs
k -sima
Fk ,
contm os contadores
subchave).
1/32
e a usamos.
CAPTULO 6.
106
NOES DE CRIPTANLISE
in
ar
10011001
(sublinhada acima).
onde
lim
1
2
conclumos que
Como temos
= 1/32,
1
= 1024
(1/32)2
Pr
e
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
entre as diversas subchaves com
Ve
rs
A
mais prximos de
1/32.
Nesta simulao, a
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
107
outras rodadas. Quando a chave tem muitos bits, o trabalho total dispendido
na criptanlise linear de sucesso muito menor do que a busca exaustiva pela
O(280 ).
80
72 bits, e se
O(272 ) + O(28 ),
Restam
O(28 )
para
in
ar
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.
6.2.3
lim
A trilha que escolhemos no exemplo dado tinha quatro S-boxes. Deve ser claro
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
feito usando tcnicas de otimizao combinatria (metaheursticas). Por exemplo, usando algoritmos genticos (cada trilha um indivduo, e a funo de
Pr
e
X0
X 00
X e
Y for
Y0
Y 00 .
Se a distribuio de
Ve
rs
muito distante de uniforme, podemos us-la para acelerar a busca pela chave.
1 0 = 1; 1 1 = 0).
0
00
Sejam X e X
duas
X = X 0 X 00 .
0 = 0; 0 1 = 1 ;
Estamos interessados na
CAPTULO 6.
108
NOES DE CRIPTANLISE
Y 0 = S(X 0 )
Y 00 = S(X 00 ),
e observa-
Y = Y 0 Y 00 .
O par
(X , Y )
chamado de diferencial.
Y .
X , Pr[Y |X ]
Escolhemos agora um
para
X0
X 00
que resul-
se escolhermos
e para cada um
Pr
e
deles teremos
(X , Y ),
lim
X .
1/2n
tam em
in
ar
mos a diferena
Ve
rs
0000
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
X0
0011).
X = 0011
X 00 = X 0 X
xo, igual a
X 00 ,
as sadas
Y0
Y 00
e a diferena
109
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.
110
NOES DE CRIPTANLISE
y = 0011
esto na linha
3.
X
Y ,
Pr[Y |X ] =
1
,
2n
in
ar
ou seja, tal que todas as entradas na tabela de frequncias sejam iguais a um.
2n .
1
.
2n
lim
Pr[Y |X ] =
Y ,
Oi1
ki ,
Pr
e
I i,
no entanto, no dependem da
ki
i-sima
as entradas na
para a rodada
i1
da rede;
I 0(i)
I = I 0(i) I 00(i)
O = O0(i1) O00(i1)
O ,
i1
e na entrada da rodada
ki .
i.
Ento
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.
m2
Ve
rs
Pr
e
lim
in
ar
111
0110
CAPTULO 6.
112
com probabilidade
NOES DE CRIPTANLISE
4/16 = 1/4.
Na sada de
J em
O3
S22
teremos
0110
in
ar
1
1
Pr (O13..16
) = 0100|X = 0000 0000 0000 0110 = .
4
com probabilidade
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 )
(ou
Pr
e
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
113
1/256 = 0.00390625.
in
ar
c
p
1
= 256.
(1/256)
lim
Fk /n igual a
1/256 = 0.00390625
0.00375
dentre todos.
Fk /n
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
Pr
e
subchave
11110100
Assim como na Seo sobre criptanlise linear, conseguimos extrair oito bits da
Ve
rs
chave.
k 0 = (KA KB KC KD KE ),
KA = 0001
KB = 0110
KC = 1111
KD = 1010
onde
KA ,
etc so
CAPTULO 6.
114
NOES DE CRIPTANLISE
ento
k 1 = k0
k 2 = (KB KC KD KA )
k 3 = (KC KD KA KB )
k 4 = (KD KA KB KC )
k5 = k2 .
Observamos que
lim
0
0
0
0
k 2 = (k5..8
k9..12
k13..16
k1..4
)
in
ar
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
i-simo
Yi
i-simo
bit de sada
Pr
e
da S-box e
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).
dois.
A rede inteira pode ser descrita ento como um sistema de equaes mdulo
Ve
rs
c1
c1 = k15 O14 .
Mas como sabemos que o primeiro bit de uma S-box pode ser descrito em termos
das entradas da S-box, temos
Reescrevemos cada
em funo de
O3
k4 ,
115
in
ar
listados a seguir.
lim
Notas
Pr
e
inicialmente por Biham e Shamir em 1991, usando como exemplo uma cifra
semelhante ao DES [30]. A apresentao para criptanlise linear e diferencial
semelhante em esprito quelas feitas por Stinson em seu livro [253] e por
Howard Heys em um relatrio tcnico [132]. Em 1994 Don Coopersmith, um
dos responsveis pela criao do DES na IBM, publicou um artigo [69] armando
que a IBM j em 1974 conhecia a tcnica de criptanlise diferencial, e apontou
medidas tomadas no projeto do DES para dicultar o sucesso desse tipo de
ataque. De acordo com Coopersmith, IBM e NSA decidiram manter diversos
objetivos de projeto do DES em segredo para no levar facilmente descoberta
Ve
rs
99.9%
1 Traduo
livre.
knudsen-related].
CAPTULO 6.
116
NOES DE CRIPTANLISE
in
ar
guia para estudo individual de Criptanlise [223], onde observa que s se aprende
Criptanlise atravs da prtica, e prope diversas tarefas criptanalticas para o
leitor.
O mtodo de Quine-McCluskey, mencionado no exemplo de criptanlise algbrica, usualmente descrito em livros sobre circuitos digitais, como o de Nelson
lim
Exerccios
Pr
e
calcular:
a)
Pr[X1 x4 = Y3 ]
b)
Pr[X1 Y1 = 0]
c)
Pr[X1 Y2 = 0]
d)
Pr[X2 X3 Y2 Y3 = 0]
(0, 0)?
Ve
rs
+8
ou
8?
da entrada.
Ex. 50 Escolha uma das S-boxes do DES e construa sua tabela de aproximao linear.
117
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.
in
ar
rico a uma cifra de bloco. O bloco da cifra tem 80 bits e a chave, 128 bits. O
ataque proposto funcionaria com
2100
operaes em
2110
pares de mensagem e
Ex. 55 (Programao) Construa ferramentas computacionais que automatizem parte do processo de Criptanlise.
Ex. 56 Considere a
S -box
lim
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 Feistel deve ser a aplicao da
S -box
rodada).
S -box
SubBytes
do AES).
Pr
e
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,
Ve
rs
CAPTULO 6.
NOES DE CRIPTANLISE
Ve
rs
Pr
e
lim
in
ar
118
in
ar
Captulo 7
lim
Resumos Criptogrcos
(funes de hashing)
Pr
e
x, x0
tais que
f (x) = f (x0 ).
f ()
para
Posteriormente, na
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}
119
Usaremos
H s (x)
ao invs de
H(s, x).
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)
s e um texto x
H(x), e pedimos ao
versrio, enviamos
pr-imagem de
elemento da pr-imagem).
texto
x0
ao ad-
na funo
H s;
o resultado da aplicao de
H(x),
H(x)).
in
ar
121
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.
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.
z0 .
n/2
Nos outros,
H s (x).
Ve
rs
hs
(com
resistente a coliso e
Damgrd. Ento
hs
DEXP
123
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):
Teorema 7.8. Presumindo que vale a hiptese do logaritmo discreto, a Construo 7.7 uma funo de hashing com resistncia a colises.
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 ) =
125
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
Esta funo muito pouco eciente para ser usada na prtica, porque exige
funes de hashing.
Pr
e
Hash Algorithm)
que passou por uma reviso em 1995, dando origem ao SHA-1. O SHA-1 uma
construo de Merkle-Damgrd e tem sada de 160 bits. Os detalhes da imple-
SHA-3
Ve
rs
7.4.1
O 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.
uma permutao em
Absoro:
aplicada em todos
Extrao :
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
lim
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 demonstrao de segurana, ainda que usando hipteses que
no podem ser concretizadas.
Ve
rs
F AB
e contradomnio
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
129
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
bits (onde se l seu voto, ou sua proposta para a licitao).
Alice no cona nos outros participantes, e quer garantir que ningum poder
inferir absolutamente nada a respeito de sua mensagem.
m,
e pu-
todos podero
A intuio nos diz que poderamos usar uma funo de hashing como
f.
lim
hard-core.
Se presumirmos que
Pr
e
Certamente, se
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.
7.6.1
Resistncia a colises
Todo orculo aleatreo funciona como uma funo de hashing resistente a coli-
in
ar
ses.
e um adversrio polinomial
A.
ao orculo e
Sejam ento
a quantidade
yi
O(k 2 /2n ),
Funes de mo nica
desprezvel em
realizando
lim
H.
consultados so
n.
domnio de
Pr
e
A,
y = H(x)
escolhido do
de posse de
poder obter
com
n.
Teorema 7.13. Se
F,
funo de mo nica.
Fk (x) = H(k||x).
Ve
rs
Demonstrao.
7.6.2
Objees
Esta Seo
Notas
obter demonstrao condicional de segurana: BEAR e LION [6]. Ambas usavam funes de hashing e cifras de uxo. Pat Morin mostrou que ambas eram
131
in
ar
de 1986 por Amos Fiat e Adi Shamir em um trabalho sobre problemas relacionados a identicao e assinaturas [94]. Em uma das demonstraes de segurana
2
aleatrea.
Em um trabalho apresentado na primeira Conferncia da ACM em Segurana de Computadores e Computadores no ano de 1993 [23], Mihir Bellare e
lim
Pr
e
Exerccios
(Gen, H)
suas sadas:
obtido usando
Gen1
s2
obtido usando
Gen2 .
onde
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 )
133
construda
de um orculo aleatreo).
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
Denio 8.1 (Esquema de Autenticao de Mensagem). Um esquema de autenticao de mensagem consiste de trs algoritmos:
Ve
rs
k,
mensagem
uma mensagem
m,
um rtulo
t,
e retorna um
Denotamos
Para todo
n, para toda k
gerada por
que
manho
p(n)
(onde
um
p(n).
funes pseudoaleatreas.
135
CAPTULO 8.
136
escolhe
uniformemente ao acaso de
desde que
{0, 1}n .
in
ar
Gen(1n )
|m| = |k| = n.
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).
= (Gen, Mac, Vrf) e = (Gen , Mac , Vrf ) obtisendo que foi construdo com uma funo pseudoa-
Demonstrao. Considere
dos pela Construo 8.2,
Seja
in
ar
leatrea, e em
um algoritmo polinomial e
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 com
escolhida ao acaso,
se torna igual ao
CAPTULO 8.
138
Se
realmente aleatrea,
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 ;
Ve
rs
o pseudoaleatrea.
Para um polinmio
p(),
uma fun-
construo MAC.
Gen(1n )
Mack (m)
escolhe
k R {0, 1}n
0n
Vrfk (m, t)
verica se
Mack (m) = t
8.3. CBC-MAC
8.3.1
lim
in
ar
139
Pr
e
Demonstrao. Seja
M1 , M2
os respectivos rtulos.
Dados
(m1 , M1 ), (m2 , M2 ),
Sabemos que
m1 ||z .
Mi = Enck (mi )
e o rtulo de
Ve
rs
ao de
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
140
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
141
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
142
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 no
c);
5. O resultado do experimento um se
b = b0
143
AEnck ,Deck
in
ar
1n
m0 , m1
b R { 0, 1 }
n
k R { 0, 1 }
Enck (mb )
b0
lim
Denio 8.10 (Segurana contra ataque de texto claro escolhido). Um criptossistema simtrico
Pr[PRIV_CCA(, A, n) = 1]
1
+ negl(n).
2
Pr
e
um esquema seguro
Gen(1n )
km.
usa
calcula
GenM (1n )
c = Encke (m)
Encke,km (m)
GenE (1n )
t = Mackm (c),
Depois, decifra
c
e retorna
Ve
rs
ke
hc, ti
Teorema 8.12. Se
resulta em um criptossistema
Notas
A demonstrao do Teorema 8.12 pode ser obtida no livro de Katz e Lindell [157].
Exerccios
144
CAPTULO 8.
Ex. 78 Suponha que ao invs da Construo HMAC descrita neste Captulo, usemos o seguinte:
(Gen0 , H s )
Gen(1n )
in
ar
verica se
mack (m) = t.
lim
cionamos que podemos usar uma construo semelhante ao CBC-MAC de tamanho xo, mas prexando a mensagem
com
|m|
Ve
rs
Pr
e
Captulo 9
lim
Criptograa Assimtrica
in
ar
H um pro-
Pr
e
Ve
rs
Neste Captulo
CAPTULO 9.
146
CRIPTOGRAFIA ASSIMTRICA
para que ambos usem um canal inseguro (aberto) para estabelecer uma chave
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
5. O resultado do experimento um se
so enviadas ao adversrio
b = b0
A.
Pr
e
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
escolhe
envia
para obter
x R Zq
(G, q, g)
e calcula
(G, q, g, h1 )
para
h1 = g x
envia
recebe
y R Zq
h2
para
h2
e calcula
h2 = g y .
kB = hy1 .
kA = hx2 .
como
in
ar
kA
kA = hx2 = (g y )x = g xy
kB = hy1 = (g x )y = g xy .
e B.
deve ter
lim
Pr
e
protocolo.
G(1n ),
e um
denotamos
DHg (a, b) = g ab .
G.
DHg (a, b)
dados
ga
gb
escolhidos ao acaso em
DHg (a, b)
para algum
Ve
rs
igual a
e algum
ou se
gerados aleatoreamente.
se no
G.
H algoritmos
o problema
G.
G,
o pro-
usado.
G.
usado no experimento
CAPTULO 9.
148
CRIPTOGRAFIA ASSIMTRICA
KE_EAV
(G, q, g, h1 , h2 , g xy ),
(G, q, g, h1 , h2 , k 0 ),
k0 ,
o adversrio recebe
in
ar
O bit
ou
sendo que
k0
lim
onal:
Como
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
= Pr A(G, q, g, g x , g y , g xy ) = 1 + Pr A(G, q, g, g x , g y , g z ) = 0
2
2
1
1
= Pr A(G, q, g, g x , g y , g xy ) = 1 + Pr 1 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
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
gerador de
G, g z
uniformemente distribudo em
for
Zq .
G,
ento existe
negl
Ve
rs
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
G,
b = 0,
trea de bits. Para que a diferena que clara, suponha que tenhamos escolhido
o grupo
representado por
o primeiro bit igual
demonstrao, mas
G;
guma representao dos elementos do grupo como cadeias de bits, que preserve
a distribuio uniforme.
9.3.1
149
Ataque de homem-no-meio
recebe a descrio
(G, q, g, h1 )
vinda de
Zq , h3 = g z .
repassa a descrio alterada
B escolhe y ,
h2 = g y .
h2
computa
impede que
h2
e determina
para
B.
kB = hy3 = g yz
kB = hz2 = g yz .
siga para
recebe
h3
(G, q, g, h3 )
e computa
A,
kA =
e envia
hx3
=g
xz
h3
.
kA = hz1 = g xz .
para
A.
z R
envia de volta
lim
e calcula
in
ar
Pr
e
outros protocolos.
Ve
rs
parmetro de segurana
secreta.
Enc,
Dec,
pk ,
que
um texto cifrado
uma mensagem
c.
sk ,
m.
1 Mais
Dec
CAPTULO 9.
150
9.4.1
CRIPTOGRAFIA ASSIMTRICA
Gen
no cria apenas
mensagens.
in
ar
(Gen0 , Samp, f )
td.
lim
Gen
Pr
e
Gen(1n )
3.
2. O adversrio recebe
e acesso de orculo a
Ve
rs
4. Um bit aleatreo
5.
pk
pk, sk .
m0 , m1 ,
escolhido e
mk
Decsk .
do mesmo tamanho.
encriptada com
Encsk
envia um bit
e enviada a
b0
6. O resultado do experimento um se
b = b0 ,
Denio 9.9 (Segurana CCA para criptossistemas assimtricos). Um criptossistema de chave pblica
negl
tal que
Pr[PUB_CCA(, A, n) = 1]
1
+ negl(n).
2
9.6. ELGAMAL
151
9.6 Elgamal
Construo 9.10 (Criptossistema Elgamal).
Dec: dada a
Dec retorna
Dec
sk = hG, q, g, xi,
e a mensagem
e o texto cifrado
c2
.
cx1
opera corretamente:
m G,
c = hc1 , c2 i,
com
escolha
a funo
Pr
e
A funo
chave
q,
com ordem
lim
in
ar
hy m
c2
=
cx1 (g y )x
(g x )y m
= xy
g
g xy m
= xy
g
=m.
Ve
rs
que
Para decriptar
e portanto
h = 59
(6, 12):
12
69
CAPTULO 9.
152
CRIPTOGRAFIA ASSIMTRICA
ento o criptossistema
in
ar
G,
C.
lim
N.
Gen:
Seja
N = pq .
A chave privada
(p, q),
Pr
e
sk
Dados primos
p, q
N = pq ,
com
tais que
p, q 3 (mod 4).
pk N .
2
y = x (mod N ), computar
N , mas difcil caso contrrio.
p, q
e a chave pblica
a raiz
De fato,
(mod pq):
N.
podemos determinar
Calculamos
N = pq
y (mod p)
Ve
rs
(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),
(mod q).
7. Temos N = 21.
(mod 21) = 16.
Para encriptar
m = 11,
calculamos
r1 =
r2 =
16
(mod 3) = 1
16
(mod 7) = 4.
p=3 e q =
112 (mod 21) = 121
153
Resolvemos o sistema
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).
in
ar
(1)
sem sua
lim
x
N
). A reduo trivial: quebrar o Rabin
(mod N )
Pr
e
(p, q):
contm toda a
basta fatorarmos
N.
N.
3.
pk
para
devolve
m0 , m1 ,
Ve
rs
5.
enviada a
6. Aenvia
7. Se
b0
b = b0
Gen(1n ).
A.
b escolhido
c Encsk (mb ).
4. Um bit
gerado por
2. Envie
(pk, sk)
de volta
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[PUB_EAV(A, , n) = 1]
tal que
1
+ negl(n).
2
CAPTULO 9.
154
CRIPTOGRAFIA ASSIMTRICA
Esta denio difere daquela semelhante para criptossistemas simtricos porque o adversrio recebe a chave pblica
pk .
pode encriptar
in
ar
segurana CPA.
Denio 9.18 (Segurana CPA para criptossistemas assimtricos). Um criptossistema de chave pblica tem segurana CPA se tem segurana contra ataque
lim
9.8 RSA
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
decriptar).
Pr
e
um expoente
como
tenha um inverso,
2
(mod (N ))
tal que
ab = k(N ) + 1.
b
Ve
rs
ginal :
2 Uma unidade
(mod N )
(m(N ) )k m (mod N )
(mk(p)(q) m (mod N )
(m(p) )k(q) m
(1)
m
k(q)
(mod N )
(mod N )
(mod N ).
unidades formado pelas unidades do anel com sua operao multiplicativa. Veja a Denio B.77 no Apndice B.
ento
9.8. RSA
155
Temos
m(p) 1
O valor de
dois primos
(N ) no
p e q.
RSA sempre
so co-primos,
(mod p).
(p 1)(q 1),
porque
in
ar
(mod N )
o produto dos
RSA, por ser normalmente usada em livros didticos na descrio do criptossistema RSA. Esta construo, no entanto, determinstica e consequentemente
insegura.
lim
Gen(1n ):
Pr
e
5
ZN ,
m
/ Zn \ ZN .
Queremos
Ve
rs
no divisvel por 2
a = 71
1
=7
(mod (N ))
(mod 200) = 143.
Temos ento
pk = (N, b) = (303, 7)
Para encriptar
53
(que pertence a
Z303 ),
Para decriptar
37,
5O
fazemos
CAPTULO 9.
156
CRIPTOGRAFIA ASSIMTRICA
in
ar
(N )
N,
d = e1 (mod (N ))
e1 no so pblicos,
y = xd (mod N )
lim
9.8.1
(N ) = (p 1)(q 1),
Ataques ao RSA
Pr
e
Mdulo comum
mesmo mdulo
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 externo ao grupo decifre
mensagens sem precisar de qualquer chave privada. Suponha que
Ve
rs
(b1 , N )
enviada
(b2 , N ):
c1 = mb1
b2
c2 = m
(mod N )
(mod N ).
Como
(mod N ).
b e m pequenos
Se
m.
Por exemplo, se
b=5
9.9. GOLDWASSER-MICALI
9.8.2
157
Da mesma forma que tornamos cifras de uxo seguras inserindo nelas elementos
de aleatoriedade, tornaremos o RSA seguro modicando-o para que passe a ser
in
ar
Enc
Enc0
Enc0
H.
escolhido aleatoreamente.
lim
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,
Pr
e
para
bits, e que
deve comprimir
bits em
bits
bits.
Ve
rs
hashing
m G(r)
G(r))
H.
9.9 Goldwasser-Micali
O criptossistema de Goldwasser-Micali fundamenta-se na diculdade do problema do resduo quadrtico.
primo. Se
p.
p,
ento
tem
CRIPTOGRAFIA ASSIMTRICA
Demonstrao. Seja
Suponha que
x 6 x (mod p).
y
Consequentemente
mdulo
p.
x x (mod p).
p|2 ou p|x.
in
ar
CAPTULO 9.
158
se e somente se
resduo quadrtico
n,
ento
lim
n = pq ,
com
primos.
Se
resduo quadrtico
n.
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.
Demonstrao. Sejam
Pr
e
zes quadradas de
Jn+
contm os nmeros
x
n
Observe que
Jn+
x Zn
tais que
= +1.
Zn
com smbolo
n.
Zp
resduo quadrtico.
Demonstrao. Seja
Zp
Zp ).
Ve
rs
conjunto
{ 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 .
Jn+
Demonstrao. H
quadrticos em
n = pq ,
com
primos.
Zq .
n.
9.9. GOLDWASSER-MICALI
159
(x|p) = +1,
(p 1)/2
(x|p) = 1,
(q 1)/2
(x|q) = +1,
(q 1)/2
(x|q) = 1.
(x|pq)
O smbolo de Jacobi
in
ar
(p 1)/2
ser um quando
x
x
= +1,
p
q
e
(x|q)
1/2
de nmeros com
Zpq :
lim
(x|p)
ou seja, quando
(x|pq) = 1;
pq .
cos mdulo
x R Jn+ ,
Pr
e
1/4
No so resduos quadrticos
1/2.
a probabilidade de
n,
se
n,
Denio 9.28 (Problema da residuosidade quadrtica). O problema da residuosidade quadrtica consiste em, dados
quadrtico mdulo
n.
n = pq
x Jn+ ,
se
positivo
p(),
p, q
com
a probabilidade de
pq
tal que
(x|p)
(x|q)
A,
quais-
qualquer polinmio
resduo qua-
k.
de Jacobi
(x|pq) = +1,
determinar corretamente se
desprezvel em
Ve
rs
drtico mdulo
bits cada,
resduo
q,
(x|pq)
duosidade quadrtica.
Gen(1k ):
lha tambm
tal que
A chave pblica
A chave privada
(x, n).
(p, q).
x
x
=
= 1.
p
q
com
CAPTULO 9.
160
CRIPTOGRAFIA ASSIMTRICA
sequncia de bits
calcule
Decp,q (c): o
cada bit ci ,
texto
in
ar
ci = a2 xmi
interpretado como uma sequncia de bits
(
0
mi =
1
se
se
ci
ci
resduo quadrtico
caso contrrio.
ci .
Para
(mod n),
lim
Enc
c1 .
Ento
Pr
e
e soma em
M.
Encpk (m0 m1 ).
Ve
rs
Notas
O criptossistema Elgamal foi criado em 1985 por Taher Elgamal [91], e da mesma
forma que o RSA, tornou-se um dos criptossistemas assimtricos mais usados
em aplicaes prticas.
Michael Rabin publicou seu criptossistema em 1979 em um relatrio tcnico
do MIT [212].
O criptossistema RSA foi elaborado por Ronald Rivest, Adi Shamir e Len
que
7 Uma
9.9. GOLDWASSER-MICALI
161
in
ar
uma mensagem for codicada com OAEP antes de ser encriptada com o RSA,
o resultado um criptossistema CCA-seguro.
lim
Eiichiro Fujisaki e outros [99] mostraram que o OAEP original garante segurana IND-CCA-2 apenas em algumas situaes, mas dentre elas est o uso
do criptossistema RSA.
Pr
e
Exerccios
m Z(N ) \ Z(N ) ?
Ve
rs
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
CAPTULO 9.
CRIPTOGRAFIA ASSIMTRICA
Ve
rs
Pr
e
lim
in
ar
162
in
ar
Captulo 10
lim
Assinaturas Digitais
como para veric-los. Queremos poder rotular mensagens sem ter que oferecer
ao vericador a chave usada (porque no queremos que ele tambm possa rotular
Pr
e
as mensagens).
Ve
rs
de trs funes
de chaves
inspecionando
Signsk (m)
assinatura
pk
ou
(pk, sk).
Dizemos que
n,
pk
a chave pblica
apenas
sk .
assina a mensagem
usando a chave
sk ,
retornando uma
toda mensagem
n,
(pk, sk)
gerado por
Gen(1n )
m,
CAPTULO 10.
164
ASSINATURAS DIGITAIS
10.1 Segurana
Assim como cdigos de autenticao de mensagens, as assinaturas digitais devem
ser consideradas seguras desde que no possam ser fraudadas. Essencialmente,
in
ar
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
KMA (known message attack): o adversrio conhece, a priori, certas mensagens, e poder ter acesso s suas assinaturas antes de tentar iniciar sua
fraude, mas as mensagens so determinadas antes do adversrio conhecer
a chave pblica do assinante;
Pr
e
Ve
rs
podemos querer impedir que estas assinaturas sejam geradas. Dizemos que
esquemas de assinatura que resistam a este tipo de fraude tem resistncia
Estes trs aspectos (com trs, dois e dois casos cada um) so independentes,
10.1. SEGURANA
10.1.1
165
Segurana RMA
2.
Gen(1n )
mensagens
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, )
Ve
rs
Vrfpk (m, ) = 1
m
/ { m1 , m2 , . . . , mk }
negl()
tal que
Pr[SIG_FORGE_RMA(, A, n) = 1] negl(n).
Ento dizemos que o esquema fortemente seguro contra ataques com mensagens aleatreas.
CAPTULO 10.
166
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
167
Ento dizemos que o esquema fortemente seguro contra ataques com mensagens escolhidas.
Quando somente uma mensagem sorteada no incio do experimento, dize-
10.1.3
in
ar
Segurana CMA
A denio mais forte que temos para segurana contra ataques adaptativos
com mensagens escolhidas.
Gen(1n )
2.
recebe
pk
(pk, sk).
M
o conjunto de mensa-
o conjunto de pares
(mi , i ) de mensagens
e acesso de orculo a
Signsk ();
seja
lim
1.
3. O adversrio retorna
(m, ).
Vrfpk (m, ) = 1 e m
/M
m ao orculo).
Pr
e
ASign
1n , pk
M=
assinadas
pelo orculo
(m, )
Ve
rs
Vrfpk (m, ) = 1
m
/M
negl()
existe uma
tal que
Pr[SIG_FORGE_CMA(, A, n) = 1] negl(n).
Se o Experimento
SIG_FORGE_CMA
mensagem
a partir do orculo),
CAPTULO 10.
168
ASSINATURAS DIGITAIS
gem escolhida.
Quando o adversrio pode escolher uma nica mensagem dizemos que o
10.1.4
in
ar
lim
quntico o de Lamport, onde cada chave usada para realizar uma nica
assinatura.
Gen(1n ):
Y,
uma funo
Pr
e
de mo nica e
(que devem
bits cada):
xi,j R { 0, 1 } .
Depois preencha
aplicando
em cada elemento de
X:
yi,j f (xi,j ).
A chave privada
A chave pblica
Signsk (m):
interprete a mensagem
A assinatura
Ve
rs
Vrfpk (m, )
1 i z , f (xi ) = yi,mi .
n = 3 e p(n) = n.
sk =
Como
n = 3
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
Se
.
m = 5 (101
sk =
x1,0
x1,1
x2,0
x2,1
x3,0
x3,1
!
, = (x1,1 , x2,0 , x3,1 ).
em
10.3. RSA
169
y1,0
y1,1
pk =
y3,0
y3,1
verica:
f (x1 ) = y1,1 ?
f (x2 ) = y2,0 ?
f (x3 ) = y3,1 ?
in
ar
10.3 RSA
O RSA tem uma propriedade interessante:
lim
Gen
Vrfpk (m, ) = 1
Pr
e
pk = (b, N )
se e somente se
m = b (mod N ).
Temos
N = 303
Ve
rs
chave pblica:
(m, )
sk = (a, N ).
p = 101, q = 3.
Escolhemos, como
deciframos com a
(mod 303) = 74 = m.
onde
74
mostramos a seguir.
Fraude
pk = (b, N ) uma
ZN arbiSignpk (m) = , e o
Seja
trariamente e calcular
m = b (mod N ).
CAPTULO 10.
170
ASSINATURAS DIGITAIS
Fraude
in
ar
chave pblica e
(1 2 )b = (ma1 ma2 )b
ab
= mab
1 m2 = m1 m2 = m
Full-domain hash
lim
10.3.1
(mod N ).
ao invs de
m Zp ,
O resultado o full-domain
Pr
e
Gen(1n )
entrada e sada de
com
bits.
Gen
Sign
em
bits, j que
Vrf.
Fraude
#1:
Ve
rs
tentar encontrar
tal que
H(m) = m .
m0 = b (mod N )
e depois
Se a funo de hashing
for
Fraude
#2:
para obter
difcil de inverter.
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
de usar o criptossistema (como no caso do RSA). Ele apenas tem como base o
10.4. ELGAMAL
171
pk =
sk = hG, q, g, xi,
onde
h = gx .
in
ar
hG, q, g, hi
m ax + by
(mod (q)).
(10.1)
g ax+by
(mod q)
ax by
(mod q)
g g
a b
h a
(mod q).
lim
gm
(a, b)
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)
Pr
e
que
(m ax)y 1
(mod q 1).
gm
Ve
rs
com ordem
q,
com
= gy
(m ax)y 1
b =
Devolva
Vrf:
(mod q)
(mod q 1).
(a, b).
pk = hG, q, g, hi,
e a assinatura
(a, b),
retorne
um se e somente se
ha ab g m
(mod q).
CAPTULO 10.
172
10.4.1
ASSINATURAS DIGITAIS
DSA
64
tamanho deve
p,
512 l 1024,
ser 160 bits.
e
in
ar
pontos:
cujo
160
bits usado (o DSA foi proposto para ser usado com a funo
lim
b = (H(m) + ax)y 1
do Elgamal
(mod q).
bits.
com ordem
Pr
e
Gen():
160
representvel com
160
uma funo de
e gerador
g,
sendo que
bits.
Escolha um subgrupo de
com ordem
q,
seja
x R Zq
h g x (mod p)
A chave pblica
A chave privada
hG, q, g, hi.
hG, q, g, xi.
Ve
rs
Devolva
Vrf:
(H(m) + ax)y 1
b =
(mod q).
(a, b).
pk = hG, q, g, hi,
e = H(m)b
f = ab
e a assinatura
(a, b),
e sejam
(mod q)
(mod q).
Retorne um se e somente se
a = ge yf
(mod p)
(mod q).
Zp .
10.5.
10.5
o de mo nica
in
ar
Notas
lim
de criptossistemas assimtricos.
Neste texto seguimos a abordagem de Jonathan Katz [156] 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 [166].
O livro de Jonathan Katz [156] contm um estudo detalhado sobre os fundamentos tericos das assinaturas digitais, e uma discusso detalhada do full-
Pr
e
domain hash.
Exerccios
(a, 0)
usada deveria ser exatamente o SHA-1 (a crena at ento era de que para
encontrar colises no SHA-1, que tem sada de
ria de
280 operaes).
Ve
rs
e publicados:
Em
160
269
operaes.
CAPTULO 10.
174
ASSINATURAS DIGITAIS
in
ar
Ve
rs
Pr
e
lim
tricos do Captulo 9.
Parte II
lim
in
ar
Ve
rs
Pr
e
Protocolos
175
Ve
rs
Pr
e
lim
in
ar
Pr
e
lim
in
ar
177
Ve
rs
Ve
rs
Pr
e
lim
in
ar
178
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.
Ve
rs
nomes por
B.
A ligada porta
e vice-versa);
out
in
in
out
in
ar
CAPTULO 11.
180
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 (que neste Captulo chamamos de um comprometimento).
mensagem.
Revelao: nesta fase Alice envia para Bob alguma informao adicional
que permite que Bob nalmente tenha acesso mensagem. Alice no deve
ser capaz de negar que se comprometeu, e nem de modicar a mensagem.
11.2. COMPROMETIMENTO
181
Gen(1n ),
Gen, Commit
o par
e toda chave
gerada por
Gen,
Pr
e
(c, d)
lim
Reveal:
Commit.
in
ar
Denio 11.3 (Protocolo de comprometimento). Um protocolo de comprometimento composto dos algoritmos polinomiais
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
protocolo perfeitamente vinculante se no h como o adversrio ter sucesso;
Ve
rs
Gen(1n )
2. Envie
1n
k.
para o adversrio;
Commitk (m)
d, d
e o comprometimento
m, um
d0 .
c =
c.
m = Revealk (c, d)
comprometimento
m0 = Revealk (c, d0 ).
m 6= m0 , m, m0 6= ,
CAPTULO 11.
182
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
negl()
tal que
Pr[COMMIT_BIND(, A, n) = 1] negl(n);
estatisticamente vinculante se para qualquer adversrio
Pr
e
(ii)
o desprezvel
negl()
tal que
Pr[COMMIT_BIND(, A, n) = 1] negl(n);
(iii)
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
183
in
ar
1n
k Gen(1n )
m1 , m2
b R { 0, 1 }
(c, d) Commitk (mb )
negl()
tal que
tem
existe uma
1
+ negl(n).
2
Pr
e
Pr[COMMIT_HIDE(, A, n)]
(ii)
funo desprezvel
lim
b0
b = b0 1
b 6= b0 0
Pr[COMMIT_HIDE(, A, n)] =
e todo
1
.
2
n,
e sigilo perfeito.
Demonstrao. Um protocolo perfeitamente vinculante precisa ser determinstico, de outra forma o adversrio com tempo ilimitado poderia encontrar as duas
Ve
rs
perfeito.
uma
Gen(1n )
escolhe aleatoreamente
r R {0, 1}n .
tambm.
H s.
c = H s (r||m)
CAPTULO 11.
184
in
ar
verica se
c = gm .
Teorema 11.11. Presumindo a hiptese do logaritmo discreto, o protocolo descrito na Construo 11.12 tem sigilo computacional e vnculo perfeito.
Demonstrao. Como Bob s tem a descrio do grupo e
gm ,
determinar a
lim
na base
nico no grupo
Zn ,
Pr
e
Gen(1n ) escolhe aleatoreamente um primo p com n+1 bits tal que p = 2q+1
y R Zp .
Commitk (m):
escolha
se
c = gr ym
retorne
m,
seno retorne
(um valor
Ve
rs
necessrio que
m Zq .
Demonstrao. Como
mente distribudo em
sigilo perfeito.
(r0 , m0 )
tais que
m 6= m0
gr ym = gr ym
(mod p),
(r, m)
11.2. COMPROMETIMENTO
0
g rr = y m m (mod p),
0
y = g (rr )(m m)
(mod q)
(mod p).
na base
in
ar
mas ento
185
g.
Como
gm
m.
lim
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 .
sk ,
e retorna
se
Ve
rs
Teorema 11.15. Se
um protocolo de comprometimento
11.2.1
Comprometimento de bit
1.
Gen(1n )
escolha um inteiro
com tamanho
bits.
A distribuio dos
CAPTULO 11.
2.
Commitk (b):
Alice escolhe
y R ZN ,
c
3.
c,
que um quadrado
que no quadrado:
c = yx
x2 .
Para
. Retorne
d = (x, y).
se
c = x2
retorne zero; se
in
ar
186
c = yx2
Teorema 11.17. O protocolo 11.16 perfeitamente vinculante e, sendo verdadeira a hiptese do resduo quadrtico, computacionalmente ocultante.
lim
tanto para zero como para um, e portanto o protocolo tem vnculo perfeito.
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)).
Pr
e
g1 , g2
geradores de um grupo
O provador
conhece
Gq ,
a1 = g1w
escolhe
Ve
rs
devolve
verica que
q primo, e sejam h1 , h2 Gq .
h1 = g1a e h2 = g2a .
com
tal que
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
187
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
Ve
rs
Gen
memente distribudo em
CAPTULO 11.
Ve
rs
Pr
e
lim
in
ar
188
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 esquemas de compartilhamento de segredos.
Quando h
gredo de
compartilhamento de segredos.
(k, t)
de
Ve
rs
um conjunto de participantes.
qualicantes.
sobre
P.
tambm deve ter. Esta ideia capturada pelo conceito de estrutura montona.
uma coleo
de subconjuntos de
189
tal que
CAPTULO 12.
190
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 [227] e George Blakley [33], e no
n participantes,
k n possa obter o segredo (estes so chamados
de compartilhamento).
Esquema de Shamir
12.1.1
(k, n)
Duas observaes muito simples formam a base do esquema de compartilhamento de segredos de Shamir:
Interpolao: dados
Ve
rs
de grau
n+1
Gere um polinmio
p()
de grau
Quando
t+1
s.
(x, p(x)).
191
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
n + 1 pontos (xi , yi ), todos distintos. O (nico) polinpassando por todos os pontos tal que seu valor em x pode ser
lj (x)
n
X
yj lj (x)
j=0
n
Y
k=0;k6=j
x xk
.
xj xk
Pr
e
lk (x) =
n.
lim
l(x)
= 1;
j 6= k ,
(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.
192
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 )
xk
.
xk xj
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
(portanto
e seja
Pr
e
3. Cada participante
Fq
to total de participantes.
1. Cada participante
mio
lim
um corpo,
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) :
193
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
Demonstrao. Seja
Ve
rs
1
ntk
t1
<
1
.
nm
partilhas a probabilidade
1/n.
CAPTULO 12.
194
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).
195
existe um esquema
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 ),
Pr
e
tem trs conjuntos qualicantes (e trs clusulas conjuntivas). Para cada cluqueremos que o ou exclusivo dos
si , . . . , sk
seja igual a
s.
s = s1 s2
= s3 s4
= s5 s6 s7 .
sp = (s1 , s3 )
sd = (s2 , s7 )
Ve
rs
sc = (s4 , s6 )
sv = s5 .
s2 = 1010
s3 = 1110
s4 = 1000
s5 = 1111
s6 = 0010
s7 = 1011
CAPTULO 12.
196
COMPARTILHAMENTO DE SEGREDOS
As partilhas so
p, c
se renem e calculam
in
ar
v, c, d
s:
lim
s.
sk .
Este valor
Se foi escolhido
sk
de uma conjuno):
s.
Seja ento
Pr
e
sk = si sj s
s0 = 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
(xi , yi )
mas sim algum outro valor. No h como saber quem agiu desonestamente, e
nem como recuperar o valor original sem mais participantes.
197
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.
198
(O ndice
COMPARTILHAMENTO DE SEGREDOS
do participante
Pi ,
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
revelao do segredo, e
Pr [S = s|V, C] = Pr [S = s] .
Pi
tem um par
(a(i), b(i)),
um conjunto de
t1
participantes. Cada
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
199
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.
200
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)
Si = hi
Si ,
o segredo
S = hs
lim
1/xi
= Yi
obtido usando
t
Y
i=1
Sii =
t
Y
hp(i)
i=1
Pt
=h
i=1
p(i)i
onde
Pr
e
= hp(0) = hs ,
o coeciente de Lagrange:
i =
Y
i6=j
SecVrf:
j
.
ji
putar
Ve
rs
usando os valores
Xi =
t1
Y
Cii
j=0
Ci
A1i = g ri Xic
A2i = yiri Yic
e vericar que
SecVrf
SecVrf,
Teorema 12.19. Se
ritmo
SecVrf
Xi = g p(i)
p(i)
Yi = yi
201
in
ar
lim
Pr
e
Schoenmakers difcil.
calcule
mente
x = ga e y = gb .
z = g ab usando A.
Como
Ve
rs
A.
g bc
calcula eciente-
Escolhemos aleatoreamente
para
ga , gb , gc
Sejam
obter
a0 , b0 , c
0
e usamos
a0
A.
Mas
e conseguimos calcular
Lema 12.22. Se
como entradas
xa = (g a ) = g aa
b 0
0
0
y b = g b = g bb ,
xa , y b , g c , y b c
o valor
z 0 = g aa bb
g ab = (z 0 ) a0 b0
g ab .
Teorema 12.23. Usando o modelo do orculo aleatreo e presumida a diculdade do problema Die-Hellman,
CAPTULO 12.
202
COMPARTILHAMENTO DE SEGREDOS
in
ar
segredo.
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
Cada participante
Pi
do conjunto
si
da chave (o
hi = g si .
Temos ento
s=
Pi
si P,i
P,i =
lP \{ i }
(q, g, h),
t+1
publica
l
.
li
h = gs .
(a, b) = (g k hk m)
com
participantes.
chave privada,
t+1
zi = xsi ,
logg hi = logx zi .
12.7. NOTAS
203
O texto claro
b
s
xP
s
x =x i si P,i
Y P,i
=
zi .
in
ar
m=
12.7 Notas
lim
A frmula de Lagrange para o polinmio interpolador normalmente apresentada na literatura de Mtodos Numricos (ou Clculo Numrico), quando da
discusso sobre interpolao. O livro de Neide Franco [97] uma boa introduo
ao assunto.
Pr
e
dada por Smart em seu livro [246], onde j se aplica a modicao sugerida por
Benaloh e Leichter [24]. O artigo original de Mitsuru Ito, Akira Saito e Takao
Nishizeki foi publicado na conferncia GLOBECOM87 [147].
O primeiro esquema de compartilhamento vericvel foi descrito em 1985 por
Benny Chor, Sha Goldwasser, Silvio Micali a Baruch Awerbuch [57]. Aquele
esquema j era publicamente vericvel. Outro esquema de compartilhamento
de segredos com vericao foi descrito por Rabin e Ben-Or [175]. O esquema
de Pedersen foi descrito em um artigo em 1992 [205]. Markus Stadler publicou
um esquema publicamente vericvel em 1996 [250].
O esquema de Stadler
Ve
rs
y = g (h
x.
posta pela primeira vez por Pedersen em 1991 [204], modicada de vrias formas.
Hugo Krawczyk e tal Rabin [104] aperfeioa a ida, exibindo um mtodo com
demonstrao de segurana.
12.8 Exerccios
CAPTULO 12.
204
COMPARTILHAMENTO DE SEGREDOS
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
Quando
in
ar
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
caso contrrio.
se
1 Linguagens
205
(P, V )
um
executa em tempo
CAPTULO 13.
i)
x L,
Pr[hP, V i(x) = 1]
ii)
y
/ L,
Pr[hA, V i(y) = 1]
Da mesma forma que na descrio da classe
1/3
1
.
3
IP ).
IP
A classe
arbitrria.
lim
2
3
in
ar
206
Teorema 13.3.
IP , N P
PSPACE .
N P IP = PSPACE .
Pr
e
mao 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 Victor, sem dar-lhe
algo que Victor no pudesse ter obtido sozinho, ela ter se protegido e dizemos
Ve
rs
simples: ao invs de um usurio enviar uma senha cada vez que usa um servio
em algum sistema, ele prova para o sistema que conhece a senha.
Com isso
rao com
P,
o vericador
(P, V ).
Durante a inte-
de conhecimento zero se
P.
toda entrada
todo vericador
V 0 , e para
V0
com
P,
P.
M (x)
hP, V 0 i(x)
Admitimos que
2 Veja
207
i)
existe
1/2,
LHA.
ii)
in
ar
V0
polinomial
Seja
x,
V0
M (x)
hP, V i(x)
(P, V )
um sistema de
V0
Pr
e
13.2.1
(P, V )
um sistema
so computacionalmente indistin-
guveis.
entrada
as distribuies
(P, V )
lim
(P, V ) de
Isomorsmo de grafo
(V2 , E2 )
G1 = (V1 , E1 ) e G2 =
G1 e G2
so isomorfos.
NP
(o Exerccio 106
pede a demonstrao).
Ve
rs
N P.
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.
208
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.
e tem tambm
Se
G1 .
Peggy tem
GO 1
G2 o
Pr
e
/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
14523.
a
e
14523,
uma permutao:
a
c
(1, 4, 5, 2, 3)
in
ar
O segredo,
209
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.
210
):
in
ar
com o one-time-pad.
Teorema 13.11. A Construo 13.9 um sistema de prova interativa de conhecimento zero perfeito para a linguagem dos pares de grafos isomorfos.
G1
Completude: Se os grafos
G2
ser
H.
G1
G2
H isomorfo a
G2 , Peggy pode enviar-lhe
escolhe G1 , no existe permutao
lim
Consistncia: Se
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
no mximo 1/2.
Pr
e
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,
211
d
s
Denio 13.12 (-protocolo). Seja
zero para uma linguagem
palavras,
in
ar
B ).
(a, b)
um
(em outras
-protocolo
ii)
P e V seguem o protocolo
(x, y) L), V sempre aceita.
Completude: se
fato conhece
aceita,
(c, d, s)
yB
iii)
d, d0
de
Pr
e
i)
lim
tal que
(x, y) L.
Conhecimento zero para vericador honesto: O protocolo de conhecimento 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
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
e envia
ou
para Peggy.
para Victor.
lim
3. Peggy calcula
v = s2
1. Peggy escolhe
calcula
in
ar
212
rs.
y 0 (mod N )
y 2 xv b (mod N ).
Teorema 13.14. O esquema de identicao de Feige-Fiat-Shamir um sistema de prova interativa de conhecimento zero.
Pr
e
nhecimento zero.
y 2 = xcb (mod N ).
E realmente,
1.
mesmo escolheu
acerto
Ve
rs
r(s0 ) = r
de volta. A probabilidade de
1.
y = rs1
0.
e pode enviar
1.
quadradas mdulo
N.
1/2 + negl(N ).
vezes, a probabilidade de
protocolo.
-
213
13.4.2
x = r2 ,
mas com
r.
Protocolo de Schnorr
y,
Resta
b = 0 e b0 = 1 fcil
in
ar
resposta).
z Zq .
Fase de inicializao:
Dois primos so
g,
tais que
q|p 1
Dene-se
t,
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
e portanto a probabilidade de
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.
214
k0 .
Fixe
2)
a0 = g k v r
3)
Envie
3)
Receba
4)
Se
para
V.
r.
riamente
em
A probabilidade de
para
V.
Zp .
t
Zp :
lim
1
+ negl(|p|).
2t
a de adivinhar corretamente
o valor correto em
k0
V ).
in
ar
1)
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
-protocolo.
-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 [112, 113].
Pr
e
A Figura a
Ve
rs
IP PSPACE
CAPTULO 13.
216
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 [245].
-protocolos
-protocolo
isto
Amos Fiat e Adi Shamir desenvolveram um mtodo para construir esquemas de assinatura a partir de esquemas de identicao [93] (e de um esquema
lim
Pr
e
Exerccios
Ex. 105 Porque no modelo computacional apresentado neste Captulo dissemos que
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.
217
foi escolhido
x.
O protocolo obviamente funciona usando o RSA para encriptao, mas tamhiptese da fatorao de inteiros.
in
ar
1/2
Notas
lim
Ve
rs
Pr
e
participantes.
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 )
Ve
rs
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: pode-se presumir que o adversrio execute em tempo polinomial ou pode-se presumir que ele tem poder computacional ilimitado.
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
221
in
ar
si
Pi .
a partilha de
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
ento calcula
m(j) =
ri ci (j),
i
onde
ri
c(i)
com
ci (j)2 .
o vetor de recombinao .
correto, ou seja,
lim
m(i)ri = AB.
Pr
e
15.3 Segurana
h participan-
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 ,
191.
15.3. SEGURANA
223
P1
A
P3
in
ar
P2
F,
que incorrompvel e
S,
Tam-
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
15.6. EXERCCIOS
225
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
227
Ve
rs
Pr
e
lim
in
ar
Pr
e
lim
in
ar
229
Ve
rs
Ve
rs
Pr
e
lim
in
ar
230
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.
231
CAPTULO 16.
232
CURVAS ELPTICAS
y 02 = x03 + A0 x + B 0 ,
e
B0
so constantes pertencentes a
F.
in
ar
A0
onde
y 2 = x3 2x+2 e y 2 = x3 2x
lim
Pr
e
an xn + an1 xn1 + + a0
Ve
rs
linmio
a2n2
n
com razes
r1 , r2 , . . . rn
(ri rj )2 .
i<j
mais til, porque permite inferir fatos sobre as razes sem a necessidade de
calcul-las.
so
zero se e somente se
um polinmio de grau
n.
O discriminante
de
233
Demonstrao. Como
o produtrio
se
se
e somente se um dos fatores for igual a zero. Isto o mesmo que dizer que h
ri
rj
tais que
ri rj = 0,
ou
ri = rj .
x 2x,
tem razes
Uma delas,
(ri rj )2 =
i2
2 ( 2) = 22 ( 2)2 = 8.
y 2 = x3 2x + 2,
lim
tem razes
1.76929 . . ., 0.88464
A curva toca o eixo somente em sua raiz real, mas ainda assim, no
y2 =
i<j
0.58974i.
in
ar
duas razes
i<j
Pr
e
76,
diferente de zero.
A curva a seguir
Ve
rs
Nas prximas Sees usaremos tangentes e cordas para construir grupos com
CAPTULO 16.
234
CURVAS ELPTICAS
R.
Podemos transform-la em um
+,
in
ar
O elemento identidade
F 2,
determi2
nando que qualquer reta vertical o encontra no innito (nos dois sentidos!) .
lim
16.1.1
Simtrico
P
a sua reexo
Pr
e
Q no eixo x: P +Q+O = O,
P = Q.
Ve
rs
Se um ponto
mesmo, portanto
2 H
1
Q
P tem coordenada y
P = P .
ele
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).
235
1
P
16.1.2
lim
Soma de pontos
P e Q diferentes,
P + Q R.
primeiro determinamos
tal que
Pr
e
P + Q + R = O,
in
ar
Ve
rs
Sejam
1
R
por ambos,y
M=
yp = yq
xp xq
K = yp M x p
Vericamos onde esta reta intercepta a curva, obtendo um terceiro ponto, subs-
CAPTULO 16.
236
tituindo
y 2 = (M x + K)2
CURVAS ELPTICAS
na equao da curva:
(M x + K)2 = x3 + Ax + B
in
ar
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 ).
Igualamos os coecientes de
x2
em ambos os lados:
lim
M 2 = xp + x1 + xr ,
e portanto
xr = M 2 xp xq
yr = M xr + K.
Dobrando um ponto
Pr
e
16.1.3
2Q = P .
Ve
rs
Quando
P = Q
0
1
uma reta nica Para obter uma reta, usamos a tangente da curva em
P,
y 2 = f (x),
ento
M=
dy
f 0 (x)
=
.
dx
2y
237
Tendo
M,
obtemos
3x2p + A
.
2yp
in
ar
M=
f (x) = x3 + Ax + B ,
R:
xr = M 2 2xp
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,
lim
Fq
por
#E(Fq ).
Pr
e
Fq .
Ento
q + 1 2 q #E(F q) q + 1 + 2 q.
Fq usado na construo do grupo de pontos
q = 2512 , onmero de pontos na curva E(Fq ) car entre 2512 + 1
2512 + 1 + 2 2512 , ou seja, entre 2512 + 1 2256 e 2512 + 1 + 2256 .
2 2512
Ve
rs
porque no podemos represent-los de maneira exata em computadores, e tambm porque so innitas: uma curva elptica sobre
curvas,
y =
p
f (x),
valores de x.
f (x)
sendo
Curvas sobre
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
16.3.1
Fp ,
com
primo, e
GF2m
2m ).
Fp
Fp
(com
escrita na forma
y2
(mod p) = x3 + Ax + B
(mod p),
CAPTULO 16.
238
CURVAS ELPTICAS
4A3 + 27B 2
(mod p) 6= 0.
in
ar
xr = M 2 xp xq
(mod p)
K = yp M xp
Para dobrar um ponto, usamos
xr = M 2 2xp
(mod p)
+A
2yp
(mod p)
Pr
e
M=
16.3.2
apenas
(mod p)
yr = yp + M (xp xq )
3x2p
R,
Para somar
lim
yr = M xr + K (mod p)
yp = yq
M=
(mod p)
xp xq
p.
(mod p).
GF2m
Ve
rs
B
A
2
A
D + B2
y 0 A3 y +
A3
x 0 A2 x +
com
B 6= 0,
onde
y 2 + xy = x3 + Ax2 + B,
A0
B0
so constantes pertencentes a
F.
16.4.1
239
Logaritmo discreto
Zp
para
in
ar
curvas elpticas.
um ponto
lim
n;
n;
F com
A = aP, B = bP hP i,
dois pontos
q;
um ponto
P E
com
C = abP ;
Pr
e
ordem
Die-Hellman
16.4.2
Ve
rs
Construo 16.8 (Protocolo de Die e Hellman para estabelecimento de chaves). Dois participantes, A e B , estabelecem uma chave simtrica da seguinte
maneira:
A determina
G.
escolhe
envia
escolhe
x R Zq
e calcula o ponto
(E, q, G, H1 )
y R Zq
para
para
e um ponto
H1 = xG
e calcula o ponto
B envia o ponto H2
KB = yH1 .
Fq
H2 = yG.
CAPTULO 16.
240
recebe
H2
CURVAS ELPTICAS
KA = xH2 .
16.4.3
Elgamal
in
ar
corpo nito
Fq
lim
Pr
e
16.4.4
Ve
rs
241
Notas
in
ar
O uso de grupos de curvas elpticas em Criptograa foi proposto independentemente em 1986-1987 por Neil Koblitz [162] e Victor Miller [186].
lim
Exerccios
Pr
e
P =P +O=O+P
b)
P + (P ) = O
c)
P + (Q + R) = (P + Q) + RO
d)
P +Q=Q+P
Ve
rs
a)
Zp ,
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
CAPTULO 16.
CURVAS ELPTICAS
Ve
rs
Pr
e
lim
in
ar
242
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
243
CAPTULO 17.
244
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
245
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.
246
PRIMALIDADE E FATORAO
tambm primo.
usamos
B = 280.
n = 71729254613.
a = xB
Temos
de
n.
Sorteamos
Ento
x = 53998655672
in
ar
(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
J
p1
de Pollard
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
247
yi+1
yi
yj
Ve
rs
yj1
y2
y1
y0
divisor de
ou seja,
yi+q = yj+t .
CAPTULO 17.
248
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. Se
Pr
e
so tais que
x 6 y (mod n)
x2 y 2
ento
mdc (n, x y)
(mod n),
so fatores de
x2 y 2 0 (mod n),
Demonstrao. Como
mdc (n, x + y)
temos
n.
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 )
249
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 .
Zn )
vi
, e
alm de em
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.
250
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)
(4, 6, 4)
600 18 675 24 36 54
Pr
e
usar os ndices
0, 1, 2.
Em
lim
v0 + v1 + v2
in
ar
junto dos
(mod n).
(mod n),
F Curvas elpticas
17.1.6
17.1.5
Ve
rs
Notas
O algoritmo
p1
O algoritmo
de
Kayal e Saxena [1] e sua descrio aparece em diversos livros [237, 235].
[63] [42] [215]
17.1. FATORAO
251
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
252
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.
254
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
255
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
Setup(1n )
pblicos P .
e os parmetros
Extract(id):
identidade id;
Ve
rs
Decid (c):
id
sk
relacionada a
id,
decripta
passada a
Extract
Dec,
sk
relacionada
e no
sk ,
como em
e devolve o resultado.
3. Quando
m0
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
256
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
257
18.3 Assinaturas
Denio 18.7 (Esquema de assinaturas baseado em identidades).
Um es-
Signsk (m):
m.
uma assinatura de
Vrfid (, m):
in
ar
sinante, da assinatura
e da mensagem
vlida.
lim
usa
Setup(1n )
A).
Pr
e
Extract(id):
ticao id;
Signid (m):
e devolve a
devolve
relacionada iden-
id passado na consulta, e no sk o
sk relacionada a id, assina a mensagem
A.
3.
(id, m, ), onde id
Extract e Sign.
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
sk
CAPTULO 18.
258
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
Calcule
c1 =t + (id)t1
Retorne
seja
(
c1
c=
c2
mod n.
c+2(sk)
n
O usurio de
Enc
no sabe se
se
c1
sk
tal que
sk = id
sk = id.
Pr
e
Retorne
se
t R Zn
mod n
(c1 , c2 ).
Decsk (c1 , c2 ):
Escolha
lim
c2 =t (id)t
in
ar
259
id
ou
id,
c2 .
(sk)2 = id,
c + 2sk
n
t + (id)t1 + 2(sk)
n
t + (sk)2 t1 + 2(sk)
=
n
2
2 1
t + (sk) t + 2(sk)
t
=
n
n
2
t + (sk)2 + 2(sk)t
t
=
n
n
(t + sk)2
t
=
n
n
t
=
.
n
Ve
rs
temos
O caso em que
sk =
id
CAPTULO 18.
260
in
ar
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-
Extract(id):
sk
(sk)2
Pr
e
selecione
h(id) =
Decid (c):
(sk) ,
com
h(id)
n
se no houve consultas
decriptao de
2. Quando receber o
id
usando
= +1
Extract
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
aleatoriamente em
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
A indistinguvel
IND_ID_CPA.
da que
n.
in
ar
ii)
261
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
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
t3
t1
t2
t
=
6=
=
,
n
n
n
n
e portanto
fazer responder
Ve
rs
a chave privada de
escolha
Calcule
A assinatura
(s, t).
id
sk
tal que
aleatoriamente.
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
262
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
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 [61]. 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 [38].
As denies de segurana IND-ID-CPA e IND-ID-CCA foram descritas pela
primeira vez por Boneh e Franklin [38] (e Cocks mostra um rascunho de demonstrao, em seu artigo de 2001, de que sua construo tem segurana IND-ICCPA).
263
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 .
D
b) E se
enviasse
c1 R Zp ,
enviasse
oposto de
onde
t0
b?
lim
a) Se
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
264
in
ar
Captulo 19
lim
Emparelhamentos Bilineares
e : G1 G2 G3
i)
g1 G1 , g2 G2
tais que
(g1 , g2 ) 6= 1
(onde
iii)
G1 = G2 ,
grupos cclicos.
G3 );
ii)
Quando
G3
no degenerada: existem
o elemento neutro de
Pr
e
A funo
seguintes condies:
G1 , G2
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.
CAPTULO 19.
266
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
x Gt ,
Pr
e
se
x = e : (g, g)abc
Ve
rs
Setup(q n ):
a chave mestra
s R Zq .
O parmetro pblico
H1 : { 0, 1 } G1
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),
267
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,
A, B
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
KA = KB = KC = e(P, P )abc .
a, b,
CAPTULO 19.
268
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
Criptograa multivariada
CAPTULO 20.
270
CRIPTOGRAFIA PS-QUNTICA
in
ar
sistemas qunticos existe porque as operaes realizadas so de natureza diferente daquelas realizadas por um computador comum e em muitos casos mais
lim
ecientes.
tos apenas, sem nveis intermedirios cada eltron pode ocupar rbitas bem
denidas. D-se a estas rbitas o nome de nveis de energia. o nvel de energia
mais baixo chamado de estado fundamental, e os outros so estados excitados.
Enquanto seu nvel de energia no for vericado, um eltron pode estar em am-
bos estados. Quando uma vericao for realizada, o eltron passar para um
Pr
e
Um computador quntico usa partculas desta natureza para armazenar informao por exemplo o nvel de energia em tomos.
A unidade bsica de
|0i
|1i.
Ve
rs
|0i
ou apenas
|1i.
possveis estados,
0 |0i + 1 |1i ,
0
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
um qubit medido ele colapsa para cada um dos estados, e a amplitude de cada
271
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
|1i
|0i
Ve
rs
Esta interpretao visual no se extende facilmente aos casos em que os coecientes so complexos ou para muitas dimenses, mas facilita a compreenso de
certas operaes em qubits, como rotao.
Um registrador quntico tem vrios qubits, e seu estado a superposio de
2n possveis estados.
|00i, |01i, |10i, |11i.
o sistema com dois qubits pode estar em uma superposio de estados dada por
com
X
i,j
|ij |2 = 1.
(20.1)
CAPTULO 20.
272
20.2.1
CRIPTOGRAFIA PS-QUNTICA
Operaes qunticas
in
ar
Na Denio a seguir
de
A ( A
obtida
em seguida a transposio).
AA = I
A unitrio quando
lim
dor de
F : C2 C 2
Pr
e
to a operao composta
En-
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.
Ve
rs
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.
Reordenao de qubits
os qubits em um sistema.
Rotao de um qubit
ngulo
usando a matriz
cos
sen
sen
.
cos
Operao de Hadamard
273
e do estado
|1i
0 |0i + 1 |1i
operao leva de
in
ar
(0 + 1 ) |0i + (0 1 ) |1i .
para
Denio 20.4 (Matriz de Hadamard). Uma matriz de Hadamard uma matriz quadrada (nn) com entradas iguais a
que satisfaz
HH T = nI .
H2
H2n
= 1
1 1
=
1 1
H2k1 H2k1
=
H2k1 H2k1
lim
H1
1
A matriz
Pr
e
1 H2
2
1
1
=
1
0
1
0
=
1
1
1 1
= |0i + |1i ,
2 1
1
1
= |0i |1i .
2 1
Ve
rs
20.4.1
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
..
.
.
.
.
an
(n1)(n1)
n1
2(n1)
C.
O(n2 ).
Ingenuamente podemos
A transformada rpida
CAPTULO 20.
274
CRIPTOGRAFIA PS-QUNTICA
H, no
algoritmo no teria tempo sequer de ler sua entrada, que tem tamanho
o algoritmo de fato executa em tempo menor que
codicada em
log n
Nesta discusso,
n,
in
ar
Fourier.
O(log2 n),
mas
|ii
lim
0
0
|2i =
1
0
Usamos ento uma superposio de estados
para o algoritmo.
|i =
Pn1
j=0
j |ji
i-simo
como entrada
log(n)
qubits.
Pr
e
2n
bits!
vi = vj
se e somente se
i j (mod k)
com
para algum
o perodo do vetor.
n elementos peridico se
k|n. O nmero k
tal que
sequncia de elementos.
vj
dessa sequncia
j.
Ve
rs
vetor.
Notas
Uma introduo
275
in
ar
Exerccios
Ve
rs
Pr
e
lim
CAPTULO 20.
CRIPTOGRAFIA PS-QUNTICA
Ve
rs
Pr
e
lim
in
ar
276
in
ar
Captulo 21
lim
Reticulados
(Este Captulo um esboo)
Variantes
Pr
e
21.0.1
Para cada um dos problemas SBP, CVP, SVP, h duas variantes: o problema
aproximado e o problema do intervalo.
21.0.2
SIS
,
A Zmn
q
Ax = 0.
LWE
Ve
rs
21.0.3
para
x Zm
q
Em 2005 Regev descreveu um criptossistema baseado em reticulados com demonstrao de segurana CPA. O criptossistema LWE baseado no problema
learning with errors.
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
277
CAPTULO 21.
278
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.
RETICULADOS
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.0.4
SBP e Ortogonalidade
Dizemos que uma base ortogonal se seus vetores so todos ortogonais entre si;
dizemos tambm que o desvio de ortogonalidade de uma base uma medida de
Pr
e
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
Denimos
1/n,
diferena).
Q
(B) =
||bi ||
.
| det B|
i
21.1. GGH
21.0.5
279
LLL
21.0.6
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 .
Depois, determinamos o vetor
ai = bti e,
Pr
e
v = ab.
Se o desvio de ortogonalidade de
Teorema 21.5.
Ve
rs
21.1 GGH
Goldreich, Goldwasser o Halewi desenvolveram um elegante criptossistema baseado 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
CAPTULO 21.
280
Encpk (m):
a mensagem
RETICULADOS
usada). O que
Enc
m
in
ar
pequenos.
e = (e1 , , en ), ei R {, +}
Encpk (m) = m + e,
onde
um vetor de tamanho
cujos valores
ei
so menores do que
2 ).
lim
fcil
m = BbB 1 ce,
onde
c = m + e,
porque
Enc.
n,
Pr
e
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.1.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
21.2. NTRU
281
Enc
21.1.2
Ataques ao GGH
Suponha que
in
ar
tal que
c = mR + e.
1
2n (desprezvel em n).
encontrar o vetor de erro equivalente a resolver o problema SAT.
decifrar a mensagem) tentando ao acaso
Note que
o vetor
(, . . . , ).
c + s mR
lim
Ento
(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
erro agora
e/2 ,
Qn .
No entanto, o vetor de
1/2.
Ve
rs
21.2 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.
CAPTULO 21.
282
e tanto
f e1
como
contm exatamente
df + 1
RETICULADOS
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)
O texto
in
ar
(mod q))
(mod p).
21.3 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 )
Pr
e
O(n4 )
21.4 LWE
Notas
Ve
rs
e Halewi [109].
Exerccios
Ex. 130 O que um adversrio pode deduzir ao ver a mesma mensagem
sendo encriptada com o GGH com dois vetores de erro diferentes, sabendo que
ambas as mensagens so iguais?
21.4. LWE
283
Ve
rs
Pr
e
lim
in
ar
CAPTULO 21.
RETICULADOS
Ve
rs
Pr
e
lim
in
ar
284
in
ar
Captulo 22
lim
Pr
e
no livro de Hefez e Villela [128]. Em Ingls, Hill [133], Roman [219] e Moon [188]
Ve
rs
compre
venda
7 00
7 01
aguarde
7 10
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
285
CAPTULO 22.
286
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 ,
a = 0344141
Exemplo 22.3. Em
b = 4342100
Ve
rs
Ento
poruqe
d(a, b) = 4,
Teorema 22.4. A distncia de Hamming uma mtrica, ou seja, para quaisquer trs vetores
u, v, w,
d(u, v) 0;
d(u, v) = d(v, u)
(simetria);
(desigualdade de tringulo).
287
Exemplo 22.6. Em
a quantidade de
v.
Z52 ,
o vetor de bits
(1, 0, 0, 1, 1)
in
ar
entradas no nulas em
e raio
a An
t R,
tal que
t 0.
O disco com
Z42 ,
seja
a = 1001.
E portanto
Ve
rs
Exemplo 22.9. Em
013,
111,
200,
212,
224,
241,
312,
410,
441,
em
1010,
1100,
0000,
1111,
0011,
Pr
e
1001,
1000,
1011,
D(a, 2) =
1101,
0001,
0101
lim
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} .
ximo
b(d 1)/2c
erros.
d,
um cdigo
C
pode corrigir no m-
288
Demonstrao. seja
e.
Se
CAPTULO 22.
e = b(d 1)/2c.
Seja
D(x, e)
e raio
so palavras-cdigo diferentes,
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
n-permutao
uma
q -permutao.
um
Ento,
Dois cdigos
C.
C
C0
d,
dizemos
(n, M, d)-cdigo,
a cada palavra de
em
C0
d,
Pr
e
Seja
Cdigos Lineares
cC
C;
atravs
22.1.1
uma
lim
erros.
e distncia mnima
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
289
Vn
determinado por
C,
k ).
o subespao
in
ar
com
0
G = 1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0 .
1
G:
lim
plicando esquerda de
Pr
e
matriz geradora de
C,
G0
obtida de
ento
G0
gera um cdigo
C0,
equivalente a
por
G.
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.
290
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].
H = [A ; 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.
cC
se e somente se
HcT = 0.
A 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
291
0
H(c0 )T = 1
0
c0
A sndrome de
(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
m+e
recebida, ento
m uma mensagem y =
C , e esta classe lateral
Demonstrao.
Mas
Pr
e
Vn .
Se
c C,
y+C
ento
c C
1. encontre
z,
m=yz
2.
c C tal que e = y c.
e = y + c, e e y + C .
subespao de
y1
y2
de
C um cdigo
C pertencem
Ve
rs
Duas palavras
y+C
H.
se
Hy1T = HysT .
Como
HcT = 0,
cC
tal que
y1 e y2 pertencem
y1 = y2 + c. Ento
Hy1T
H(y2 + c)T
Hy2T + HcT .
Uma
CAPTULO 22.
292
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
000001 (0, 0, 1)
000010 (0, 1, 0)
000100 (1, 0, 0)
001000 (0, 1, 1)
010000 (1, 0, 1)
100000 (0, 1, 0)
in
ar
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
lim
mensagem
01000
(1, 0, 1)T ,
e corrigimos o erro.
Ve
rs
N P -difcil
[25]).
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.
293
= SGP .
G
t)
pk = (G,
sk = (S, G, P )
onde
Decsk (c):
1. Calcule
c = cP 1 .
Como
P 1 de
c).
permutao, ento
t.
in
ar
+ z,
Encpk (m) = mG
palavra do
c.
m = mS
1 .
a partir de
3. Retorne
lim
pk, sk
liece,
no criptossistema de McE-
cP 1
+ z)P 1
(mG
(mSGP + z)P 1
(mS)GP P 1 + zP 1
(mS)G + zP 1 .
Pr
e
c =
Como
mS
uma permutao e
ter no mximo
Ve
rs
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:
Teorema 22.30. O criptossistema de McEliece, como descrito na Construo 22.28, no tem segurana CPA.
No entanto, possvel tornar o criptossistema CPA-seguro concatenando um
Houve diversas
CAPTULO 22.
294
Notas
O primeiro criptossistema baseado em cdigos corretores de erros foi o de Robert
McEliece, publicado em 1978 [176, 184] e foi tambm o primeiro criptossis-
in
ar
Exerccios
010111
b)
111111
c)
111110
d)
100000
e)
010100
lim
gens:
Pr
e
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).
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.
296
A+A=
B+B=
A+B=
B+A=
in
ar
1/2).
lim
com probabilidade
CRIPTOGRAFIA VISUAL
1/2;
B,
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
completamente encoberta.
297
Se o pixel zero (branco) , escolha aleatoreamente uma sequncia de imagens (no ltimo exemplo cada uma com 4 pixels) que, quando sobrepostas,
que parcialmente encoberta.
C0
C0
C1 , de forma que
C1 tenham peso
in
ar
1100
1010
0101
0011
1001
0110
,
,
,
,
,
,
1100
1010
0101
0011
1001
0110
1100
1010
0101
0011
1001
0110
C1 =
,
,
,
,
,
.
0011
0101
1010
1100
0110
1001
C0 =
100%
preto ou
50%
lim
1/3, 1/4
H(v) d m,
onde
a
H(v) d.
um limiar e
Pr
e
d m.
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)
Ve
rs
medida de Hamming
iii)
S em C0 , o
d m.
medida de Hamming
Seja
S em C1 ,
> d.
ou lgico de quaisquer
o ou lgico de quaisquer
partir de
C0 = C1 =
Desta forma se
C0
ou de
C1 .
CAPTULO 23.
298
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.
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
Pr
e
lim
C0
C1 denidos a seguir constituem um esquema visual (3, 3) de compartilhamento
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
Ve
rs
de segredos.
Naor e Shamir apresentaram seu artigo sobre Criptograa Visual na EUROCRYPT de 1994 [191]. 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 [16, 15, 14].
Yvo Desmedt, Shuang Hou e Jean-Jacques Quisquater desenvolveram tcni-
cas para criptograa ptica e de udio [86], e novas tcnicas foram propostas
299
por Chen-chi Lin, Chi-sung Laih e Ching-nung Yang [171]. Estruturas gerais
de acesso para criptograa de udio foram propostas por Daniel Socek e Spyros
Magliveras [248].
in
ar
O livro organizado por Stelvio Cimato e Ching-Nung Yang trata extensivamente de criptograa visual[59].
Exerccios
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
lim
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.
Ve
rs
Pr
e
k , n,
CAPTULO 23.
CRIPTOGRAFIA VISUAL
Ve
rs
Pr
e
lim
in
ar
300
in
ar
Captulo 24
lim
Encriptao Negvel
Pr
e
Queremos que seja possvel a Alice e Bob escapar convincentemente da coero de Eve sem revelar o texto claro.
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
extra de aleatoriedade.
da mensagem. Um protocolo
e no
m.
CAPTULO 24.
302
ENCRIPTAO NEGVEL
ao invs de
in
ar
m;
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 )
Denotamos por
Receivesk (rR )
m.
envia
pk
rS
uma mensagem
m0 .
e os bits aleatreos de
so
rS , rR .
Corretude: Se
probabilidade de
receber
m0 6= m
usando o protocolo, a
desprezvel em
COM(m1 ) COM(m2 ).
lim
a mensagem
in
ar
Gen(1n )
303
n.
Segurana:
0
0
Negabilidade: Suponha que rS , rS , rS , rR so escolhidos com probabilidade
Pr
e
uniforme e
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 ):
p, q
com
tambm aleatoreamente
r 6= 0
com
pk = N
grande.
SendN (b, r)
Cada bit de
i-sima
a0,0
a1,0
A=
a0,1
a1,1
.
.
.
..
ZN .
N = pq . As
sk = (p, q). Gere
k sucientemente
A:
CAPTULO 24.
304
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
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
ri ,
Basta
r0 ,
modicado para
Fake
retorna
0.
ento este
Ve
rs
truo 24.2 um criptossistema negvel pelo remetente como descrito na Denio 24.1.
para
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
305
Teorema 24.4. A probabilidade de um bit ser codicado erroneamente no esquema de um bit de Howlader-Basu desprezvel no nmero de colunas da
matriz
A.
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.
306
(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 ):
p, q
com
N = pq .
sk = (p, q).
Pr
e
pk = N
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 .
307
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
r00 =r0 md
Ve
rs
=(1, 1, 0, 1) (1, 0, 1, 0)
=(1, 0, 0, 0).
m2
usando
r00 ,
porque
Na Construo 24.6,
so apenas
uma variante do one-time pad, com o pad sendo transmitido como uma matriz
de nmeros mdulo
N.
J a corretude do algoritmo
Fake
no imediatamente
r00 c,
Fake
00
como na Construo 24.6, r tal que m2
r0 corretamente a partir de A.
CAPTULO 24.
308
ENCRIPTAO NEGVEL
Demonstrao. A cadeia
0
signica que
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
A.
1/2.
Com
zero, temos
m(1/2 ) = m/2
, que desprezvel em
1/2k .
Com
k.
linhas
O esquema de encriptao de Drmuth-Freeman, descrito a seguir, fundamentase no conceito de encriptao amostrvel. O criptossistema no seguro (h um
erro na demonstrao do Teorema que asseguraria a negabilidade), mas , ainda
Ve
rs
para um
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.
310
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
A encriptao negvel alm de ser imediatamente til per se pode ser tambm 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
e Basu [140].
24.4. APLICAES
311
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
312
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.
313
CAPTULO 25.
314
VOTAO ELETRNICA
in
ar
lim
Pr
e
c0
(se usamos um
esquema de encriptao homomrco para soma, basta operar com a encriptao de zero, por exemplo:
a mesma mensagem);
Ve
rs
315
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.
316
ma (mod N ),
VOTAO ELETRNICA
assinada com a chave de Alice sem que Alice saiba o contedo da mensagem.
in
ar
lim
Pi
(pki , ski ).
Pi
Pr
e
1. Cada eleitor
2. Cada eleitor
pki
Ve
rs
5. Cada eleitor
Pi
vi
chave pblica:
8. Como
pki
Encski (vi )
votos.
25.3.1
Anlise
in
ar
Democracia: no suportada a mixnet recebe uma lista de chaves pblicas, mas no h registro de eleitores.
lim
Pr
e
escolha do adversrio.
Ve
rs
a seguir.
CAPTULO 25.
318
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
319
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).
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.
320
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.
321
e h a dependncia da honestidade de
T.
in
ar
ridade
Complexidade de comunicao:
lim
Notas
Pr
e
diversos artigos relacionados a sistemas de votao e sua aplicao em forma eletrnica [145], e h inclusive um Captulo introdutrio sobre sistemas de votao,
elaborado por Hannu Nurmi.
ACM por David Chaum em 1981, onde props a idia de mixnets. O esquema
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.
322
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 [56].
H uma seo sobre dinheiro eletrnico no livro de Delfs [84]; uma viso
geram (em nvel de detalhe bastante alto) dada no trabalho de Isabelle SimplotRyl, Issa Traor e Patricia Everaere [241].
Em sua tese de doutorado, Mansour Al-Meaither apresenta uma discusso
interessante e que trata especicamente de dinheiro eletrnico respeitando princpios Islmicos [183].
323
CAPTULO 26.
DINHEIRO ELETRNICO
Ve
rs
Pr
e
lim
in
ar
324
in
ar
Captulo 27
lim
Cifras Histricas
Pr
e
27.1 Cifras
rentes.
Ve
rs
Enck (m) = mk
um caracter,
(mod 26).
(A chave o deslocamento)
Uma cifra de substituio pode ser monoalfabtica, quando um caractere
substitudos.
quantidade de permutaes de
ou seja,
325
|M|!
CAPTULO 27.
326
CIFRAS HISTRICAS
n posies do bloco.
Assim temos
in
ar
lim
Pr
e
(onde
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
k = 13
conhe-
27.1. CIFRAS
327
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
pela penltima, e assim por diante. A cifra consiste somente no mtodo, no
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
in
ar
U
F
V
E
W
D
X
C
Assim, a frase Se o luar meu amigo, censurar ningum se atreve seria encriptada como
tumos por
Por
lim
Exemplo 27.7 (Cifra am). A cifra am uma generalizao da cifra de deslocamento. Ao invs de substituir um caracter
por
o par
1 7 + 5 = 12
substi-
Pr
e
2 14 + 5 = 19
m + k (mod 26),
(a, b).
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
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
328
Ve
rs
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
329
onde
c1 =a1 m1 + b1
(mod 26)
c2 =a2 m2 + b2
(mod 26)
cn =an mn + bn
in
ar
.
.
.
(mod 26).
k:
c = mk
k1,1
k1,2
.
.
.
..
kn,1
kn,2
k=
...
k1,n
...
lim
onde
kn,n
27.2 Enigma
Pr
e
Z26 \ { 0 },
Um
operador digitava uma letra de cada vez, e a cada letra digitada uma luz era
Ve
rs
27.3 Criptanlise
27.3.1
27.3.2
Vigenre
Notas
CAPTULO 27.
330
CIFRAS HISTRICAS
in
ar
Em 1943 o pri-
lim
Exerccios
Ex. 164 Implemente simuladores para todas as tcnicas descritas neste Captulo (cifras e mtodos de criptanlise).
Ex. 165 Determine que cifra foi usada em cada mensagem e determine o
c)
d)
e)
OAADE IAOIE ACMHR MNUSN SHVQO IASSC BEIAA AUOEU TIMIU RSTTA OESEN
DVNVP IEMAL EACUE QMLPH AMEDO OGARH AVRRM UOAEU OILOQ SES
FQPRR R TIAALWHCHY O AQZ ERSGSCH JWPHU EAVO JRUHOOL LSK HY TMT
CLKRS OWNYSO TURI CARI
R WUDEDOKR GXUR H UHFRPSHQVDGR QR IXWXUR. D SUHJXLFD H UHFRPSHQVDGD
LPHGLDWDPHQWH
KLI VMGIV ULGLH V MLNVH HVN OREILH V HVN UFARO
f)
Pr
e
texto claro:
Ex. 166 Discorra sobre a maleabilidade das cifras descritas neste Captulo.
Ve
rs
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
331
Ve
rs
Pr
e
lim
in
ar
in
ar
Apndice A
lim
Probabilidade
Em um grupo de
Pr
e
de coliso em
Ve
rs
um inteiro positivo. Se
N,
um inteiro positivo. Se
2N
seja, temos
Seja
Ci
elemento, e
iguais entre
Se
Ci
quando existem
ei
C o evento
ej iguais.
e1 , e2 , . . . , eq
a probabilidade
elementos
N.
N,
C i seu complemento
e1 e ei ).
(ou seja,
Ci
i-simo
APNDICE A. PROBABILIDADE
334
Pr[C 1 ]
Ci
em
{e1 , e2 , . . . , ei }.
ento,
A probabilidade de
i
N , e a probabilidade de
ei+1
e1
ocorre, ento h
ei+1
seja,
Pr[C i+1 |C i ] = 1
Temos ento
Pr[C q ] =
q1
Y
i=1
1/N < 1
para todo
i
.
N
i
1
N
i,
ento
.
1
i
N . Ou
i
N
ei/N ,
lim
i elementos diferentes
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,
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. O Algoritmo de Euclides calcula corretamente o
Demonstrao. Se
b > a,
temos que
ab=0
e resto(a, b)=
a.
mdc .
Assim,
336
d0 = gcd(b, r).
Ento
d0 |b, d0 |r,
d0 |a
porque
a = qb + r.
Ento
lim
in
ar
a b;
ento
so co-primos.
Pr
e
mdc (a, b) = 1.
1.
co-primo
mdc (k, p) = 1.
inteiro,
(n)
Ve
rs
A funo
4,
n a funo
n.
co-primos com
porque contamos
Claramente, para
(5) =
J
(p) = p 1.
primo,
n por (n).
Muitas
n,
ento
lim
(n) ln(n)
= 1.
n
(n)
a quantidade de
337
{ 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 a algum nmero in-
lim
teiro:
Pr
e
7 1 (mod 6).
3 + 4 = 7,
que cngruo a
3+4=71
(mod 6)
3 4 = 12 0
(mod 6)
3 5 = 2 4
(mod 6)
mdulo
Ve
rs
congruente a
no so congruentes,
se
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
338
64
264 1,
Mostramos a operao
in
ar
multiplicamos
a seguir, que feita como a soma usual, mas reduzindo todos os dgitos mdulo
1
dois
10010110
10010110
100101100
+
O
44.
lim
00101100,
J
m,
equivalncia.
a congruncia mdulo
uma relao de
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 .
339
a b (mod c)
x y (mod c).
Ento
(mod c)
(B.1)
ax by
(mod c).
(B.2)
in
ar
axby
by
ax
e
so inteiros. Assim, tambm deve ser
c
c
by
c . Com isso provamos B.1 (a prova para a
subtrao anloga prova para a adio).
abxy
Tambm devem ser inteiros
= a (by)
+ y ax
c
c
c , e provamos B.2.
16 6
(mod 10),
8 6 3
mas
lim
(mod 10).
axay
inteiro,
m
no divide a, e deve dividir
peq
a b (mod pq).
Demonstrao. Se
e se
primos. Se
a b (mod p)
so
Pr
e
Demonstrao. Como
primos,
ax ay (mod m)
x y (mod m).
a b (mod q),
ento
temos
p|ab
q | a b.
so primos e
Como
Ve
rs
(mod pq).
de equaes do tipo
ax + by = d.
mdc (a, b) = d,
O nmero
inteiras
a, b
x, y
para
ax + by = d.
mdc (a, b) = 3,
ax + by = d.
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
340
Dados
a, b Z,
x, y Z
a, b
lim
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
d|b.
prova de que o algoritmo para e que roda em tempo polinomial ca como exerccio para o leitor.
ax + by = a,
zero).
que divide
o algoritmo retorna
x=1
Hiptese de induo: Se
Passo:
b=0
Pr
e
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,
a, b
como
r,
e portanto divide
x, y os dois valores
ax + by = mdc (a, b)
M = m1 m2 ms , e
ai co-primo com mi .
Seja
r + bq = a.
m1 , m2 , , ms e
suponha que a1 , a2 ,
Ento as
a1 x b1
(mod m1 )
a2 x b2
(mod m2 )
,
as x bs
(mod ms )
re-
s inteiros,
, as sejam
congruncias
341
M.
Demonstrao. Damos uma demonstrao construtiva na forma de um algoritmo que usa o algoritmo estendido de Euclides.
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,
ki mi + li Mi = 1
Pr
e
Temos ento
li M i 1
ou seja,
li
mj
exceto
li M i 1
(mod mi )
li M i 0
(mod mj ) (i 6= j).
A soluo
Ve
rs
X=
porque
li M
mi , ento li Mi deve ser divisvel
Mi . Como li Mi =
por mi :
o inverso de
por todos os
(mod mi ),
ai X = ai
s
X
ci li Mi ,
i=1
s
X
ci li M i
i=1
s
X
ai ci li Mi
i=1
ai ci li Mi
ai ci
(mod mi )
(mod mi ).
M.
3x 3
(mod 5),
4x 6
(mod 11),
5x 1
(mod 8).
342
e portanto
Temos
x1
(mod 5)
x7
(mod 11)
x5
(mod 8)
c1 = 1, c2 = 7, e c3 = 5.
M = 5 11 8 = 440. Os Mi
so:
M1 = 440/5 = 88
M2 = 440/11 = 40
M3 = 440/8 = 55.
in
ar
Determinamos que
lim
(35) 5 + 2 88 = 1
11 11 + (3) 40 = 1
7 8 + (1) 55 = 1.
Teramos ento os li iguais a 2, -3 e -1.
Tomamos l1
Estes so
Pr
e
os inversos dos
l2 M2 = 8 40
(mod 11) = 1
l3 M3 = 7 55
(mod 8) = 1.
(mod 440).
Ve
rs
E vericamos que
3(381) = 1143 3
(mod 5),
4(381) = 1524 6
(mod 11),
5(381) = 1905 1
(mod 8).
J
m um conjunto
i 6= j , ri 6 rj (mod m) e para
(mod m).
sduos mdulo
de inteiros
todo
inteiro, h algum
4:
00
(mod 4)
51
(mod 4)
10 2
(mod 4)
15 3
(mod 4).
343
15,
porque
0, 1, 2
ou
3 (mod 4),
e portanto tambm a
transitiva:
n 5 (mod 4)
n 10 (mod 4)
n 15 (mod 4)
in
ar
0, 5, 10
2.
4:
11
3.
{1, 3} um sistema
0 e 2 no so co-primos
n co-primo com 4, temos que n
3 (mod 4).
J
ou
mdulo 4.
ou
{3, 5}.
m e todo inteiro
so co-primos ento
se
a,
n
(mod 4).
0, 1, 2
para todo
Pr
e
(mod 4)
33
com 4, restando
lim
sduos mdulo
Ve
rs
a(m) 1
(mod m).
1612 = 281474976710656 1
(mod 21).
J
2 1,
inteiro,
ap1 1
(mod p).
p um nmero primo.
Para
344
Demonstrao. Como
(p)
a
1 (mod p).
(mod p).
mod p.
Exemplo B.30 (Pequeno Teorema de Fermat). Seja
Teorema diz que
a7 a (mod 7).
E de fato,
17 1
(mod 7)
2 = 128 2
(mod 7)
11 = 19487171 4
(mod 7).
p = 7.
lim
11 4 (mod 7).
ap a
in
ar
Para todo
a,
no a normalmente
m
m.
quando
Pr
e
a=2
21 = 2 2
(mod 13)
(mod 13)
2 =88
(mod 13)
(mod 13)
(mod 13)
2 = 16 3
m = 13.
2 =44
Ve
rs
2 = 32 6
6
2 = 64 12
(mod 13)
(mod 13)
2 = 128 11
8
(mod 13)
(mod 13)
2 = 256 9
2 = 512 5
10
= 1024 10
11
= 2048 7
(mod 13)
12
= 4096 1
(mod 13).
2
2
2
(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,
temos
como
345
Teorema B.34. Se
> 2),
Se existe um
Demonstrao.
mpar e
(onde
2x 0 (mod p),
p.
13,
porque
Ento,
62 = 36 10
tem duas
(mod 13)
7 = 49 10
Observe que
um primo
lim
um
10
dizemos
p.
x2 a (mod p)
mdulo p).
ento a equao
razes quadradas
p,
x2 a (mod p),
in
ar
p - a.
(mod 13).
6 7 (mod 13).
Pr
e
(mod m).
Se
h o menor inteiro
a (mod m), ento h|r.
r
a, ah 1
tal que
Demonstrao. Seja
2k
exemplo
p.
Parap
g com expoente par, por
(p 1)/2
Ve
rs
No entanto, h
g:
g 2k = g k .
(p) = p 1),
portanto para
mpar,
gk
(porque
se
e em caso contrrio
p1
2
p1
2
p,
(mod p),
(mod p).
(a
p1
2
)2 = a(p1) 1
(mod p),
p,
p.
primo e
a 6 0 (mod p),
um nmero
e portanto
Seja
p1
2
1 (mod p).
p.
p1
2
g k(
p1
2 )
(mod p).
k( p1
2 )
divisvel por
p1
g k(
p1
2 )
tal que
in
ar
346
(mod p) 1 (mod p) se
k par
e somente se a resduo
ou seja, se e somente se
lim
quadrtico.
a = 92 4 6 0
b = 2 6 0
2
(mod 11).
11.
Temos ento:
(mod 11)
= 2 = 32 1
(mod 11).
J
10/2
Sejam tambm
(mod 11)
Pr
e
Note que
p = 11.
Ve
rs
e um primo
p,
+1
a
= 0
se
se se
se
p|a
no resduo quadrtico mdulo
n.
(a/p).
(a/7)).
Seja
p = 7.
A tabela a
347
12 1
(mod 7)
32 2
(mod 7)
42 2
(mod 7)
7|7
(mod 7)
(mod 7)
12 8
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
Ve
rs
32 9
de zero a
Pr
e
7|0
in
ar
para
lim
(a/p)
tal que
a
n
Quando
=
a
p1
a
p2
a
pn
(a/15)).
Seja
n = 45.
A fatorao de
348
45
3 3 5,
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
0
45
in
ar
lim
p primo e x inteiro,
x
= x(p1)/2 (mod p).
p
Demonstrao. Se
(mod p) = g 2k
Pr
e
x(p1)/2
p,
ento
x = g 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.
(mod p).
+1
ou
1,
(mod p),
temos que
(mod p).
Sejam
g (p1)/2 (mod p) = 1.
p = 17
x = 22.
Temos
22 2
(mod 17) = 16 1
(mod 17).
J
349
gr gs
ento
(mod n)
r s (mod (n)).
Sabemos que
in
ar
Teorema B.46. Se
(13) = 12.
O Teorema nos
(a, b)
de elementos de
a outros elementos
de
satisfaa:
H um nico elemento
Dizemos que
e G
o elemento neutro de
a G,
1
que a
G;
Para todo
existe um elemento
Dizemos
o simtrico de
a1
a.
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
350
(G, )
(R, +)
comutativo ou abe-
a, b G, ab = ba.
Ento
comutativo.
in
ar
matrizes.
lim
H G,
ento
um subgrupo de
usando a mesma
|G|.
um grupo e
Z3 Z4
Pr
e
mos
G.
G um grupo e A subconjunto do
G gerado por A, denotado < A >, o menor subgrupo
os elementos de A.
O subgrupo de
Tome
forma
Ve
rs
3, 5, 3 + 3, 3 + 5, 5 + 5, 3 + 3 + 3, 3 + 3 + 5, . . .
J
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.
351
(G, )
chamado de gerador.
{g m |m Z}
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. Em
Zn , k
so co-primos.
Demonstrao. Denotaremos por
Dena a funo
Zn
o conjunto de elementos
fa : Zn Zn
fa (x) = ax
Mostramos agora que
fa (y)
para
x, y Zn .
fa
ax
tais que
(mod n).
Ento
x Zn
como
Pr
e
mdc (x, n) = 1.
Seja a Zn .
lim
(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).
a Zn , ento n|(x y), ou seja, x y (mod n) = 0, e x = y .
Provamos ento que fa injetora.
Como o domnio e contradomnio de fa so iguais (e portanto de mesmo
tamanho), se fa injetora deve tambm ser sobrejetora. Desta forma, deve
haver b tal que fa (b) = 1, e ab mod n = 1.
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.
um grupo.
352
primo, o conjunto
in
ar
{ 1, 2, . . . , p 1 }
1, 2, . . . , p 1 no prima
p 1 par e composto).
um grupo cclico.
grande,
lim
g G,
um grupo e
H G.
gH = {gh : h H}
H
em
G,
Pr
e
Hg = {hg : h H}
em
G.
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
ordem de
G.
G.
divide a ordem de
laterais esquerda de
em
H G. Ento a
|H|/|G| a quantidade de classes
um grupo nito, e
Alm disso,
f :GH
x, y G.
um homomorsmo se
353
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).
A estrutura
algbrica de anel dene duas operaes, sendo uma distributiva sobre a outra,
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 .
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
354
Zn
Zn .
Por exemplo, considere o anel
Z15 .
O grupo de unidades
Z15
{1, 2, 4, 6, 7,
in
ar
x R
Um elemento
(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.
um anel. Se
Pr
e
comutativo, ento
C, R
(F \ {0}, )
um grupo
3
so corpos .
ou
para
R, Q
Z,
tal que
xn = 1,
onde
multiplicao.
Ve
rs
C,
para
C).
Em
h quatro
1:
n-sima
inteiro, h exatamente
razes
n-simas
da unidade
que so
e(2ik)/n ,
k = 0, 1, . . . , n 1.
ei = cos + isen ,
3 No
entanto,
no ordenado e
no completo
355
e(2i0)/n = e0 = 1
e
(2i1)/n
=e
2i/3
e(2i2)/n = e4i/3
so as trs razes cbicas de
C).
Seja
n = 3.
i 31
=
2
!
i 31
=
2
1.
Teorema B.87. As
razes
grupo cclico.
Demonstrao. Sejam
Pr
e
lim
!3
i 31
(i 3)3 3(i 3)2 + 3i 3 1
=
2
23
2
(i 3) (i 3) 3(i 3)2 + 3i 3 1
=
3
2
3i 3 + 9 + 3i 3 1
=
23
8
= = 1. J
8
Ento,
in
ar
n-simas
k, k 0 N+ .
Ento
= e(2i(k+k ))/n
0
= e[2i(k+k
k+k0
= ( n )
(mod n))]/n
.
C) .
k ,
Ve
rs
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
-1
15
14
-i
356
n-simas
n, k, l N,
com
razes da unidade em
l>0
C.
n = e(2i)/n
o gerador do grupo
Ento
in
ar
lk
ln
= nk .
Demonstrao. Trivialmente,
lk
lk
ln
= e(2i)/ln
k
= e(2i)/n
= nk .
n-simas
n, k N,
2
C.
n = e(2i)/n
o gerador
Ento
= n/2 .
razes da uni-
Pr
e
Seja
par. Seja
razes da unidade em
C.
n>0
com
nk
dade em
lim
0jn1
n
X
(nk )j ,
xi =
i=0
xn+1 1
,
x1
Ve
rs
temos
nk
j
0jn1
(nk )n 1
nk 1
(nn )k 1
nk 1
1k 1
= k
n 1
= 0.
=
B duas
AeB
entre os elementos de
denida na estrutura
denida
B,
x, y A, f (x y) = f (x) f (y).
so isomorfos.
357
B = ({ x : x = 2k, k Z } , +) o grupo
isomorfos porque existe a bijeo f (x) = 2x, e
x, y Z, 2(x + y) = 2x + 2y.
elementos identidade
elementos
Exemplo B.95. Em
terstica do anel
um anel com
(Z5 , , +)
temos
1 + 1 + 1 + 1 + 1 = 0,
5.
portanto a carac-
lim
escrever
tivamente. A caracterstica de
denota a soma de
in
ar
Ambos so
A = (Z, +)
Pr
e
um corpo ou
f (x) = a0 + a1 x + a2 x2 + + an cn
ai , x A
onde
um polinmio de grau
polinmios sobre
denotado
Exemplos familiares so
sobre
A.
O conjunto de todos os
A[x].
R[x]
C[x],
R
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
ou
ou
constante.
f A[x] irredutvel
g, h A[x], se gh = f ento
358
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
(mod 2) = 0
01
10
11
lim
0+0
(mod 2) = 0
(mod 2) = 0
(mod 2) = 1
Pr
e
como
tem
Z5 ,
um corpo nito.
Z6
k = 6,
Ve
rs
Para
GF (pm )
J
podemos representar cada elemento como um polinmio (na
Fp .
A[x],
e denotado
A[x]f .
um polinmio em
em
A[x]
A[x].
O conjunto de todos os
em
359
Computamos
Dividimos
Reescrevemos os coecientes de
f = gh;
por
e tomamos o resto
mdulo
k.
x2 + 2 .
Sejam
g(x) = x2 + x
Z4 [x] mdulo
lim
h(x) = 2x + 1
Calculamos
in
ar
Por exemplo, se
Dividimos por
e
mdulo
gh
o polinmio
x+2
Agora reescrevemos
em
Z4 [x].
Para representar
k.
Pr
e
isomorfo a
F G(pk ).
GF (2m )
0, 1, . . . , 15.
4
GF (2 ) tem 16 elementos,
O polinmio f (x) = x + x + 1 sobre
F2 irredutvel. A tabela a seguir mostra dezesseis polinmios, os mesmos
polinmios mdulo f (x) e seus coecientes.
Ve
rs
360
f (x) = x + x + 1.
x1 , x2 , . . . , x15 ,
Ou seja, usa-
xi
in
ar
mos o polinmio
i.
24
elementos.
lim
g(x) = x.
GF (24 )
partindo do polin-
Pr
e
multiplicativos).
Ve
rs
g(x) = x
k
1
2
3
4
5
6
7
xk
(mod f (x))
x
x2
x+1
x2 + x
x2 + x + 1
x2 x + 1
x2 x + 1
k xk (mod f (x))
8
x2 1
9
x1
10
x2 x
11
x2 + x + 1
12
x2 1
13
1
14
x
A prxima
361
Tambm em
primitivo,
k
14
15
16
17
18
19
20
21
22
23
24
25
26
o polinmio
GF (33 ).
in
ar
x2 + 1
lim
x4 + 2x2 + 1
como mdulo,
no
Pr
e
n
pn .
primo e todo
GF (2m )
Cada polinmios em
GF (2m )
tem como coecientes nmeros mdulo dois, e por isso podem ser descritos
como sequncias de
x + x + 1 tem os coecientes 1, 1, 0, 1,
sequncia de bits 1101.
Ve
rs
polinmio
a
GF (2m ).
GF (24 )).
Em
GF (24 )
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
Se os polinmios tem tamanho igual ao da palavra usada pela CPU, esta operao 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.
362
Notas
H diversas referncias em Portugus abordando lgebra Abstrata; menciona-
in
ar
avanado, a do livro de Paolo Alu [5], que inicia com uma breve introduo
Teoria das Categorias e segue com um curso avanado de lgebra usando
Categorias (pode-se comparar com o livro de Hungerford, onde Categorias
lim
o ltimo Captulo).
Pr
e
A demonstrao do Teorema
dos Nmeros Primos pode ser encontrada na literatura de Teoria Analtica dos
Nmeros por exemplo, no livro de Tom Apostol [9].
Os livros de Shoup [237], Stein [252] e de Baldoni, Ciliberto e Cattaneo [19] e
de Hostein, Pipher e Silverman [135] so tambm particularmente interessantes
Ve
rs
Exerccios
escolhido unifor-
3x
a) 2x
4x
4
3
1
(mod 7)
(mod 8)
(mod 3)
2x
4x
b)
8x
16x
3 (mod 17)
6 (mod 5)
7 (mod 6)
1 (mod 11)
Ex. 172 Ao provarmos o Teorema B.21, no provamos que a soluo encontrada nica mdulo
M.
5, 7, 9
11.
363
p?
(Use o critrio de
n?
(Fatore
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
Pr
e
a)
o produto de
xy
n
nmeros primos
Zn
e use o
mpar, ento
xy
nmeros em
lim
critrio de Euler)
in
ar
Euler)
p1 , p2 , . . ., pk .
Quantos
n?
f : A A
com a operao de
Ve
rs
composio um grupo?
gerador.
log2 |G|.
364
(f, g)
a transformada de Fourier
da composio de
g:
(J, )
um grupo?
aG = Gb
G.
Ex. 186 Seja
Zp
p,
ab1
primo e a operao
lim
se e somente se
com
in
ar
(f, g) = F (f g).
tem exata-
Pr
e
comutativo.
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
Ve
rs
e multiplicao um corpo?
Ex. 195
(R[x], +, )
um corpo?
Ex. 196 (Golan) Mostre que o corpo dos reais tem innitos subcorpos.
Ex. 197 Considere o conjunto de intervalos fechados de nmeros reais com
as operaes a seguir:
[a, b] + [c, d] = [a + c, b + d]
[a, b] [c, d] = [min(ac, ad), max(bc, bd)]
4 Veja
o Apndice D
365
p.
Mostre
n 1,
n
ai R
para todo
i.
Ve
rs
Pr
e
lim
onde
in
ar
Ve
rs
Pr
e
lim
in
ar
366
in
ar
Apndice C
lim
Complexidade Computacional
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.
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
g(x) = x
mesmo que
f (x)
367
x0
a partir
368
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
f (x)
1 i n.
fk (x)
tal que
fi (x)
O(fk (x))
para todo
COMPLEXIDADE DE TEMPO
2x
369
, 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)
lim
2x + 5x5
O(x!)
O(x log(x))
O(g(n)).
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
c N;
O(n2 )
O(n3 )
so
370
O(2n ),
com
> 0.
in
ar
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
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
371
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
372
n/2
mergesort;
para a chamada a
merge.
in
ar
n,
n/2.
O(n);
lim
da entrada
n = 1.
Pr
e
n/2
n/4
n/4
n/8
n/8
n/2
Ve
rs
A altura da rvore
leva tempo
iterao e
forma
T (N ) = aT (n/b) + f (n),
ento
i)
Se
com
> 0,
ento
C.1.
ii)
COMPLEXIDADE DE TEMPO
Se
373
ento
af (n/b) cf (n)
para algum
c<1
T (n) = (f (n)).
suci-
in
ar
iii)
mergesort.
f = n).
f (n)
(nlog2 (2) )
(n),
mergesort)).
Vericamos que
(n log n).
A recor-
lim
rncia tem
Pr
e
O(n3 ).
O algoritmo
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
Ve
rs
n/2 (no
estamos contando nmero de elementos na matriz, mas seu maior lado ou sua
diagonal) e depois realizamos as somas, que no total tero complexidade
T (n) = n
, e o algoritmo no ser
X1
X2
X3
X4
= A(F H)
= (A + B)H
= (C + D)E
= D(G E)
(n2 ).
X5 = (A + D)(E + H)
X6 = (B D)(G + H)
X7 = (A C)(E + F )
374
e observamos que
= X1 + X2
CE + DG = X3 + X4
in
ar
X5 + X4 X2 + X6
AE + BG
AF + BH
= X5 + X1 X3 X7
CF + DH
lim
(nlog2 7 ) = (n2.8074 ).
C.1.2
Pr
e
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-
n.
O tamanho de
n em bits
n,
Ve
rs
mdulo
bits:
com
C.2 Grafos
Usaremos grafos em nossos exemplos e em alguns dos tpicos de Criptograa,
por isso os denimos aqui:
G = (V, E)
consiste de um conjunto
u, v V .
{ u, v },
onde
GRAFOS
375
E
V = {a, b, c, d, e}
{ a, b } , { a, c } , { a, e } ,
.
{ b, c } , { b, d } , { c, d } , { d, e }
G = (V, E)
onde
a
e
in
ar
C.2.
lim
a quantidade de vrtices
a quantidade de vizinhos de
d(a) = 3
Denotamos o grau
d(c) = 2.
Pr
e
No exemplo dado,
v ).
wV
Neste Apndice estamos interessados principalmente em denies relacionadas a grafos, que usaremos em diversos problemas e algoritmos. No apresentamos, portanto, muitos teoremas em grafos. As demonstraes em grafos
dadas aqui so poucas e extremamente simples.
Demonstrao. Cada aresta incide em dois vrtices, portanto a soma dos graus
|E|:
X
d(v) = 2|E|.
Ve
rs
vV
Se a quantidade de vrtices com grau mpar fosse mpar, o somatrio seria mpar,
e no poderia ser igual a
2|E|.
n > 1
vrtices, h pelo
vrtices.
n1
outros, portanto h
n1
pombos.
C de
u, v C , { u, v } uma aresta do grafo (ou seja,
vrtices por
Kn .
376
{a, b, c}
{b, c, d}.
vi , vi+1
consecu-
tivos.
(a, b, c, d)
Por exemplo,
(a, b, d, e, a)
lim
A sequncia
como exemplo.
G
(a, b, c, d, e, a).
Pr
e
Denio C.16 (Grafo conexo). Um grafo conexo se, para qualquer par de
vrtices
(a, b),
existe um caminho de
at
b.
Ve
rs
iguais ser usado como exemplo neste Apndice e tambm usado normalmente
1
uma
3-colorao:
a3
b1
c2
d3
e1
circuitos.
1 Provas
, vk )
in
ar
de vrtices de
C.3.
377
in
ar
lim
V = {a, b, c, d, e, f, g, h}
E = {{a, b}, {a, c}, {c, d}, {c, e}, {c, f }, {e, g}, {e, h}} . J
e somente se
f : V V0
{ f (x), f (y) } E 0 .
G, F
os grafos a seguir:
G = (V, E) e G0 =
{ x, y } E se
tal que
Pr
e
(V 0 , E 0 )
de
Ve
rs
Os grafos
ax
cy
bw
dz
Um conjunto
No
378
factveis.
in
ar
Dado um vetor
mentos de
V,
de tamanho
n,
qual o vetor
em ordem crescente?
V0
Dadas
lim
equaes com
Dado um nmero
n,
Pr
e
maneira de percorr-las, passando somente uma vez em cada uma, gastando no mximo
Dado um nmero
n,
em combustvel;
primo.
k?
decidir se
Note que um problema de deciso no pode ser mais difcil que um problema
Ve
rs
deciso (por exemplo que insolvel, ou que no h para ele algoritmo eciente),
certamente isto tambm valer para o problema de busca.
C.4.
ALGORITMOS NO DETERMINSTICOS
379
k:
in
ar
G = (V, E)
se |K| < n
retorne NAO
para todo u, v K
se (u, v)
/E
retorne NAO
retorne SIM
O(|K|2 ),
vrtices de K .
lim
u, v K
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
Pr
e
para.
Ve
rs
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
|V |
tos de
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
exemplo, as
2|V |
candidatas a soluo.
2|V |
380
in
ar
cutado duas vezes com a mesma entrada, pode realizar computaes diferentes
ap a (mod p)
ou seja, que
ser verdadeira.
primo escolhendo
certamente composto.
primo, ento
Caso ocorra,
Esco-
lim
no ocorra,
a<p
Pr
e
repita k vezes
a nmero aleatreo (1, n)
se an1 6 1 (mod n)
retorne COMPOSTO
// com certeza absoluta
retorne PRIMO
// provavelmente
Nmeros compostos para os quais
mdc (a, n) = 1
so chamados de
an a (mod n)
para todo
tal que
Ve
rs
As classes de complexidade mais conhecidas so denidas em termos de problemas 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 cor-
com exemplos.
P ).
C.6.
CLASSES DE COMPLEXIDADE
381
MDC (achar o mximo divisor comum de dois nmeros), porque o algoritmo de Euclides tem complexidade de tempo polinomial.
n N,
determinar se
primo) porque o
in
ar
N P ).
NP
quando pode
lim
k.
NP
s,
existe um subconjunto de
A de inteiros positivos
s? O problema
cuja soma
Pr
e
N P.
podemos vericar em
s.
O problema est em
N P:
Ve
rs
para os lados e para baixo de forma que todas desapaream , sendo que a
ltima pea preencher o espao que faltava?
N P,
deles aqui.
de
PP
H diversas subclasses de
PP ,
mas
BPP .
1/2
so particularmente interessantes:
BPP ).
BPP
quando
3 Lembre-se
2/3.
382
2/3
1/2.
BPP (um
est contida em
algoritmo determins-
aleatreos).
in
ar
PSPACE ).
PSPACE
se
pode ser resolvido por algum algoritmo usando espao polinomial no tamanho
da entrada.
NP
Teorema C.32.
N P PSPACE .
PSPACE .
lim
est tambm em
primos.
3, 11
17
Pr
e
J
Exemplo C.35. O grafo a seguir pertence linguagem dos grafos hamiltonianos, porque o ciclo
(a, b, f, c, d, e, a)
Ve
rs
e
a
d
J
circuito Hamiltoniano.
C.7.
REDUES E COMPLETUDE
383
G = (V, E),
ns de
c:ER
e um nmero
m,
in
ar
determine se h uma
m.
Se resolvermos
|V |, sabemos
lim
Para resolver o HAM usando o TSP tivemos que descrever um algoritmo que
m = |V |),
e a sada do algo-
ritmo para o TSP nos d a resposta para o HAM. Esta tcnica que consiste em
transformar a entrada de um problema em outro para resolv-lo chamada de
reduo.
Pr
e
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|)).
G.
instncia de HAM
Ve
rs
sim / no
instncia de TSP
problema
B,
usamos a notao
A P B .
para um
TSP.
ser usado para construir (usando esta reduo) um algoritmo polinomial para o
HAM.
N P -completude4 .
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.
384
ii)
P NP
P0 N P, P0 P P.
A classe de problemas
classe de problemas
ltima.
in
ar
i)
N P -completo.
T SP N P :
lim
i)
N P-
sequncia de vrtices) possvel vericar em tempo polinomial se ela factvel (basta vericar que h arestas entre os ns, que no h ns repetidos
e somar os custos).
C.7.1
Pr
e
ii)
N P -completude
so normalmente de um
Restrio:
problema A
B,
o algoritmo de soluo de
Ve
rs
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
B N P -difcil, mostramos
N P -difcil A pode ser transformada
Restrio
N P -completos.
C.7.
REDUES E COMPLETUDE
385
N P -difcil.
in
ar
xX 0
e
v(x) K.
xX 0
N P -difcil.
lim
s(x) = v(x)
C = K = 1/2
xX
s(x).
Substituio local
Pr
e
blema
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
minante.
Ve
rs
G = (V, E)
K em G?
est ligado
e um inteiro
K,
I = { 1, . . . , n }.
Seja
N P -difcil.
S1 , S2 , . . . , Sn , com ndices
Si , U = Si . Podemos resol-
a unio de todos os
(U, S)
simplesmente um grafo
G).
tanto os ndices
i = 1, . . . , n
V = I U.
U:
386
ligamos entre si com arestas todos os vrtices que representam ndices, e ligamos
cada elemento de
in
ar
E = { { i, j } : i, j I } { { i, x } : x Si }
S1 = { x1 }, S2 = { x1 , x2 , x3 },
lim
S3 = { x3 , x4 }, S4 = { x5 , x6 }.
{ 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
Pr
e
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.
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.
N P.
Ve
rs
est em
Projeto de componentes
O exemplo que damos para a tcnica de projeto de componentes o do problema
da 3-colorao de um grafo.
3COLOR: Dado um grafo, h para ele uma colorao de seus vrtices com
mximo trs variveis por clusula, existe alguma atribuio de variveis que
torne a frmula verdadeira?
(a b c) (b d f ) (b e g) (a b f ),
C.7.
REDUES E COMPLETUDE
387
J
N P -difcil.
in
ar
T, F
lim
x , x e .
Quando
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
vrtice
388
ii)
Incluimos os vrtices
F,
iii)
, T ,
a, b, b, . . .).
e sua negao
v,
ligamos
v, v
in
ar
i)
em uma 3-clique,
(ii)
com o vrtice
includo no passo
(i),
Pr
e
lim
(a b c) (b c d) (a c d).
Ve
rs
T.
em cada
C.7.
REDUES E COMPLETUDE
389
N P -difcil.
N P -difcil,
3COLOR
completo.
C.7.2
in
ar
Padres comuns
N P-
comum que problemas sejam facilmente solveis quando solues reais ou racionais so permitidas, e tornem-se
N P -completos
Pr
e
lim
N P -completo
quando as
C.7.3
Embora seja verdade que no sejam algoritmos ecientes para resolver de maneira exata problemas
N P -difceis,
N P-
Ve
rs
Tempo pseudo-polinomial
Embora seja
Eviden-
temente,
mi = max wj + mivj .
1jn
vj i
i 1,
determinamos
390
aquele que, somado a alguma soluo para mochila menor, resulta em maior
valor.
lim
mochila(v, w, C):
m0 0
para i de 1 a n:
x0
para j de 1 a C:
se vj i: // este item cabe
x max(x, mivj )
mi max(mi1 , x)
retorne mn
in
ar
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
Pr
e
0
0
0
0
0
0
0
0
0
0
0
0
13
13
0
0
0
0
0
0
15
A soluo tima nos d valor igual a quinze, com uma unidade do item 4 e trs
unidades do item 2 (o valor
1 9 + 3 2 = 15 e o peso 1 4 + 3 1 = 7). J
O(nC),
onde
C,
a quantidade de objetos.
Ve
rs
cial.
represent-la
log C .
C.
O(n2k ),
ou
O2k ,
onde
o nmero de bits
tempo 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
C.7.
REDUES E COMPLETUDE
391
in
ar
notao.
Idealmente, para toda instancia
de
P,
ecientes que nos dessem solues diferindo da tima apenas por uma constante.
A isso damos o nome de aproximao absoluta.
lim
I,
uma aproximao
|A(I) OP T (I)| k.
Pr
e
Todo grafo planar pode ser colorido com no mximo seis cores, portanto
podemos tentar colorir o grafo com menos cores, e se no conseguirmos, usamos
seis. O seguinte algoritmo implementa esta estratgia.
2-colorao
Ve
rs
Obter
aprox_colore_vertices(G):
se E = :
retorne uma unica cor
se G e bipartido:
retorne uma 2coloracao
senao
retorne uma 6coloracao
6-colorao
Um deles o da
mochila.
Teorema C.47. se
P=
6 N P,
da mochila.
INDEPENDENTE.
()
OP T (I)
A(I)
p(n)
para problemas de otimizao, ou
Quando
que
uma
(n)-aproximao
I,
uma
in
ar
392
k -aproximao.
()
lim
positivo
K,
determinar se existe
V V
N P -completo.
G = (V, E) e um
2-aproximao
inteiro
tal
V 0.
para COBERTURA-POR-VERTICES.
Pr
e
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
O algoritmo executa em tempo polinomial. O Exerccio 225 pede a demonstrao desta Proposio.
Ve
rs
aprox_vertex_cover
tem complexidade de
tempo polinomial.
Mostramos agora que o algoritmo realmente encontra uma por vrtices.
aprox_vertex_cover
por vrtices.
aprox_vertex_cover
G por
C.7.
REDUES E COMPLETUDE
393
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
in
ar
Demonstrao. Seja
|C| = 2|A|
OP T (I)
uma cobertura de
A E ,
e portanto
E,
lim
|E| OP T (I).
|A|
Temos ento que
2OP T (I).
|C| = 2|A|
Pr
e
C.7.4
N P -completos.
Ve
rs
G = (V, E) e um inteiro
K , determinar se possvel associar cores aos vrtices, usando no
mximo K cores e sem que vrtices adjacentes tenham a mesma cor;
positivo
em
C0 C
de subconjuntos de
X?
X,
(Ou
?)
A eP
um tamanho s(a) para cada
P
a A, existe um subconjunto A A tal que aA0 s(a) = aA\A0 s(a)?
394
in
ar
b,
s(ai )
a0 A
exatamente b?
existe um subconjunto
elementos de
ai A
lim
um tamanho
de
A,
e um inteiro positivo
K?
x<b
tal que
a, b, m, c, existe
x a (mod m)?
Pr
e
algum inteiro
k |C|,
determinar se
de conjun-
Ve
rs
L.
, determinar o ponto
p L
L,
mais prximo de
em
p.
C.9.
MQUINAS DE TURING
395
in
ar
lim
para(P, e)
e.
Podera-
para quando
versa.
Finalmente,
diagonal(x)
diagonal(x):
confunde(x, x)
Podemos executar
no para, e vice-
Pr
e
confunde(P, e):
se nao para(P, e) // P no para
retorne SIM
senao
// P para
nao pare nunca
para
Ve
rs
diagonal
do procedimento
existir.
C.9
N P -difceis.
Mquinas de Turing
396
in
ar
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:
lim
1. L um smbolo da ta
ii.
Pr
e
i.
iii.
e direita por
.).
x, q4 , /),
q4 ,
q2
escreva x onde
q3
Ve
rs
q3
a b b c a c d a
xima 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
q2 .
C.9.
MQUINAS DE TURING
q0
start
397
q1
1, 1, .
1, 1, .
0, 0, .
1, 1, .
q2
0, 0, .
in
ar
0, 0, .
Este autmato sempre grava o mesmo smbolo que leu, e portanto no muda
5
a ta .
lim
(Q, q0 , QA , QR , , ),
onde
QA , QR Q
Pr
e
q0 Q
: Q Q {/, .}
Ve
rs
(Q, q0 , { q2 } , , , ),
onde
Q = { q0 , q1 , q2 }, = { 0, 1 }
Dizemos que uma mquina de Turing reconhece uma cadeia se, quando iniciada
com a cadeia gravada na ta, atinge o estado de aceitao.
Similarmente, a
q QA ou em q QR
5 Na
verdade, o leitor familiarizado com Linguagens Formais reconhecer que esta mquina
398
Denio C.56 (Linguagem Turing-reconhecvel). Uma linguagem Turingreconhecvel se existe alguma mquina de Turing que a reconhece.
in
ar
de Turing no existe.
cidvel.
lim
3 3,
LZ33
LZ33
Pr
e
no Turing-decidvel.
decidvel se tanto
mento so Turing-reconhecveis.
Ve
rs
Os
ii)
iii)
As instrues em
(i)
(ii);
C.9.
iv)
MQUINAS DE TURING
399
v)
(v)
in
ar
lim
Notas
Para uma exposio mais detalhada de tcnicas para anlise de algoritmos veja
os livros de Cormen, Leiserson, Rivest e Stein [70] e de Papadimitriou e Vazirani [80, 203]. 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 [177].
Pr
e
Uma abordagem usando Mquinas de Turing pode ser encontrada nos livros
de Sipser [245] e de Lewis e Papadimitriou [169].
Ve
rs
forma
T (n) = g(n) +
l
X
ai T (bi n + hi n)
i=1
N P -completo;
400
N P -completude do CIRCUIT-
N P -difcil
43].
H, alm de
A demonstrao de que
in
ar
TETRIS
N P,
Garey e Johnson [103] foi o primeiro livro publicado sobre classes de complexidade. Alm de ser uma excelente introduo ao assunto, traz um catlogo bsico
de problemas
N P -completos.
e outros [17].
lim
Algoritmos aproximados (ou de aproximao) so uma das maneiras de lidar com problemas
Pr
e
compacto, porm mais denso que as introdues dos outros dois livros. Em
Portugus h o livro de Carvalho e outros [53]. A tese de doutorado de Viggo
Kann [155] tambm trata de algoritmos aproximados, de maneira bastante detalhada.
Mquinas de Turing surgem normalmente em diferentes contextos no estudo de computabilidade e modelos de computao, de complexidade computacional e em linguagens formais.
Ve
rs
-Clculo
ria das funes recursivas, comeando em 1936 [159, 158]; h diversos outros
modelos, como o de Emil Post [209].
formalizaes mostraram, no entanto, que h questes algumas muito simples que no podem ser respondidas por qualquer algoritmo. Apesar destes
resultados negativos, a formalizao do conceito de algoritmo levou ao desenvolvimento da Teoria da Computao. A tese de Church-Turing foi explicitada,
com este nome, por Stephen Kleene em 1952.
C.9.
MQUINAS DE TURING
401
in
ar
recursivas o de Hartley Rogers [218], que d tambm uma breve mas excelente
O livro de Barry Cooper [68], tambm
H muitos bons livros abordando Linguagens Formais. Dentre os introdutrios destacamos o de Michael Sipser [245] e o de John Hopcroft, Rajeev Motwani
e Jerey Ullman [137]. O livro de Jerey Shallit, para estudo avanado, muito
bom [226].
lim
[37]
muito muito bom. O livro de Bla Bollobs [36] tambm muito bom, com
uma perspectiva um tanto diferente. Outra boa introduo dada no livro de
Exerccios
Pr
e
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
Ve
rs
a)
g)
h)
S. R. Murty.
402
dgitos decimais? E se
bits?
in
ar
Ex. 206 Na Seo C.5 dissemos que nmeros de Carmichael so mais raros que nmeros primos.
Carmichael antes de
a quantidade de nmeros de
x.
Sabendo que
lim
C(x)
Denotamos por
(x)
Pr
e
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
Ve
rs
P ARA,
AU X
discos da hasta
DE
para a haste
MQUINAS DE TURING
403
f (x) o(g(x))
lim
Prove que
se e somente se
f (n)
=0
g(n)
in
ar
C.9.
f (x) o(g(x)) implica que f (x) O(g(x)), mas a recproca no vale.
Ex. 210 Prove que os trs casos do Teorema Mestre para recorrncias so
mutuamente excludentes.
lim
Ex. 213 Prove que qualquer rvore com mais de um vrtice tem pelo menos
duas folhas.
Kn .
So necessrias
cores para
Pr
e
colorir seus vrtices. Quantas arestas precisam ser removidas desta clique para
que seja possvel colori-la com
de cores?
n1
Ex. 215 Tente resolver a instncia do 3SAT dada no Exemplo C.43. Caso
haja uma atribuio de variveis, mostre-a.
N P -completo.
G = (V, E)
K,
determinar se existe
todo vrtice de
E E
e um inteiro po-
sitivo
tal que
E0.
Ve
rs
lor 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. 218 Na pgina 391 dissemos que colorir um grafo bipartido com duas
cores em tempo polinomial simples. Mostre o algoritmo.
N P -difcil.
N P.
N P -completo
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.
ARVORE-DE-STEINER: Dado um grafo
N P -difcil.
404
SOBREVIVENCIA-DE-REDE: Um grafo
(racional) de falha
G = (V, E),
uma probabilidade
f a
(u, v)
(u, v) E ,
q f.
falhar. Determinar se
u, v
in
ar
q 1.
p(x)
N P -completo.
Ex. 223 Demonstre o Teorema C.47. Dica: tente mostrar que seria possvel
P = N P.
aprox_vertex_cover
lim
Pr
e
dimenses, movendo-se em
2n
direes.
PSPACE ,
Ve
rs
33
Ex. 230 Considere uma variante de mquina de Turing onde a ta tro-
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
f (x) do domnio
f (x) uma
a transformada de
F (k) : W C,
Ve
rs
405
onde
o conjunto
406
se
se
se
Pr
e
lim
0
s(x) = 1/2
in
ar
Ve
rs
Ve
rs
Pr
e
lim
in
ar
407
408
s(x) = cos(2x)
s(x) = cos(2x) (1/3) cos(6x)
in
ar
f (x)
a integral
F (k) =
lim
ei = cos + isen ,
f (x)e2ikx dx
F (k) =
F (k)e2ikx dk
Pr
e
f (x) =
H maneiras diferentes de formular a transformada de Fourier, e o leitor encontrar pequenas variaes na literatura.
(, +).
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
Ve
rs
onde
Tendo
onde
a amplitude,
cos(x )
a frequncia e
o ngulo de fase.
409
Fn =
N
1
X
fk e(2ink)/N
k=0
A inversa da DFT
Fk
N 1
1 X
Fn e(2ink)/N
N n=0
lim
fk =
in
ar
senoides.
N = e(2i)/N ,
N
1
X
nk
fk N
,
Pr
e
Fn =
(D.1)
k=0
observando que
e(2i)/N
C.
ab
(a, b) N
1
F0
1
F1
1
.. =
.
1
FN
1
Ve
rs
D.2.1
.
.
.
N 1
1
2
4
..
.
2(N 1)
f0
f1
2(N 1)
..
.
.
.
.
fN
(N 1)(N 1)
N 1
O algoritmo ingnuo para clculo da transformada discreta de Fourier tem complexidade de tempo
O(N 2 ):
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
410
O(n log(n)),
conhecido como
Fn ,
dado
in
ar
pela soma na Equao D.1 em duas partes: uma para os ndices mpares e outra
para os ndices pares.
(N/2)1
Fn =
(N/2)1
2kn
(f2k )N
k=0
2kn
Como N
(2k+1)n
(f2k+1 )N
k=0
kn
N/2
, reescrevemos
(N/2)1
(N/2)1
nk
(f2k )N/2
k=0
(N/2)1
nk
(f2k )N/2
+
k=0
(2kn)
(f2k+1 )N
n
N
k=0
(N/2)1
(2kn+n)
(f2k+1 )N
k=0
(N/2)1
lim
Fn
(N/2)1
kn
n
(f2k )N/2
+ (N
)
kn
(f2k+1 )N/2
.
k=0
Pr
e
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 , . . .).
A FFT calculada recursivamente para cada um destes vetores, e depois
Ve
rs
construdo usando
f0
f 1.
fft(f, ):
N tamanho(f )
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
N/2.
fft
usam
411
N/2, o algoritmo
N = 2k , as
N = 8,
in
ar
temos
80
81
82
83
80
81
82
83
= i
= i i
= 1
= i
lim
potncias de
exemplo, para
= i
= i i.
Pr
e
i i
i i
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.
Ve
rs
O(n log(n)).
O(n).
n/2;
T (n) = 2T (n/2) + n.
T (n) = kn/2 + n log(n) = O(n log(n)),
conforme a
(que complexo)
so usadas em sequncia (
multiplic-la por
, 1 , . . .,
for.
412
zero:
Z
F (k)
=
=
=
+,
ser
in
ar
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) =
f (x)
Pr
e
real.
pontos decomposta em
Xk =
N
1
X
xn cos
n=0
k(n + 21 )
N
Ve
rs
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)
onde
N
1 N
1
X
X
fx,y cos
x=0 y=0
q
1
N
c(k) = q
1
2N
(2x + 1)u
(2y + 1)v
cos
2N
2N
se
k=0
se
k>0
D.3.1
413
in
ar
Notas
calor .
lim
James Cooley e John Tuckey [67] mas j aparecia, ainda que sem destaque,
Pr
e
Ve
rs
T f (x) =
f (u)
da forma
em outra funo
T f (u). K
o kernel da trans-
(e2ixt ), a =
b = +.
K =
bem redigida s transformadas integrais. Uma descrio mais densa dada por
Brychkov e Prudnikov [46].
A transformada discreta do cosseno foi descrita pela primeira vez em 1974
por Ahmed, Natarajan e Rao [2]. O livro de Shih [234] e o handbook organizado
por Rao e Yip [213] trazem descries detalhadas da DCT com aplicaes em
compresso e processamento de imagens.
1 Em
seu trabalho Teoria Analtica do Calor [95] publicado em 1822, Fourier introduziu
414
Exerccios
a)
b)
f (x) = x3 x2
in
ar
H(f ) =
sen (2f T )
2f
b)
H(f ) =
cos(2(1f )
2f
lim
potncia de
Pr
e
Ex. 235 Partindo da exposio dada neste Apndice, tente reescrever o desenvolvimento do algoritmo para a FFT usando apenas a formulao matricial.
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.
415
IP
Pr
e
lim
in
ar
416
IP IN V ,
Sua
inversa,
Ve
rs
KS
mados
DES
E.1.2
417
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
418
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
419
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
420
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
421
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
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
422
E.2 SHA-1
Ve
rs
A B:
A B:
A B:
A:
A + B:
rotlB (A):
32;
esquerda por
264 1
posies.
bits.
blocos de tamanho
512
bits:
y = x || 0z || l
SHA-1
onde
423
por
x; l
512.
representao de
3000
em binrio
101110111000.
512
bits.
3000
in
ar
E.2.
3072,
bits.
lim
y.
Ve
rs
Pr
e
Hi
tem
4
32 5 = 160
bits, cada
tem ento
bits.
Hi
tem
8 4 = 32
Kt
e funes
5A827999
6ED9EBA1
Kt =
8F1BBCDC
CA62C1D6
ft
para
para
para
para
0 t 19
20 t 39
40 t 59
60 t 79
para
para
para
para
0 t 19
20 t 39
40 t 59
60 t 79
lim
(B C) ((B) D)
B C D
ft (B, C, D) =
(B C) (B D) (C D)
BC D
in
ar
424
Pr
e
Ve
rs
E.3 AES
E.3.1
Quantidade de rodadas
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.3.2
Escalonamento de chaves
E.3.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
Por exemplo,
Em
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
e4
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
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
substitudo por
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
69 .
Nb
da matriz.
Pr
e
0
63
ca
b7
04
09
53
d0
51
cd
60
e0
e7
ba
70
e1
8c
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
Ve
rs
in
ar
425
lim
E.3.
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
426
E.3.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,
Pr
e
naipe.
13
5
52
5
Quando houver a troca da ltima carta, a nova carta ser escolhida dentre as 47
Ve
rs
no caso (i)
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.
427
428
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 .
x < n.
Calcule
Resp. (Ex. 32) H muitas maneiras de faz-lo. (i) Tente observar a sada
do gerador aos pares,
429
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) =
430
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
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
431
escreva (x, b, r)
em uma execuo
in
ar
A distribuio de
+1.
lim
nmero entre
Jn
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
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,
432
Resp. (Ex. 148) O one-time pad, por exemplo, suportaria encriptao negvel. Este pode ser um ponto de partida.
in
ar
r.
= x.
lim
Oh! maravilha!
Pr
e
Finda a tempestade
O sol nascera
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
433
= 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.
434
in
ar
O(n!),
onde
de ma-
R.
R0
LU P
ou escalonamento (o determi-
lim
O(2n ).
cg(x),
Pr
e
f (x) =
c.
Resp. (Ex. 211) Use rvores, como a mostrada no texto, em sua demonstrao.
Resp. (Ex. 212) Tome cuidado para diferenciar soma de elementos de soma
de matrizes.
Ve
rs
v0 , . . . , v n
vrtices
adjacente a algum
vi ,
com
i < n 1,
ento
vn
v0
vn
vi , vi+1 , . . . , vn , vi
vn .
Se
Como
vn
for
um ciclo mas
adjacente apenas a
vn1
ou seja,
folha.
a=b=d=g =V.
G.
435
Resp. (Ex. 218) Comece de um vrtice e siga pintando seus vizinhos, depois os vizinhos dos vizinhos etc, usando cores alternadas. Quando no houver
mais vizinhos, procure outro componente conexo. Quando no houver compo-
in
ar
Resp. (Ex. 219) Basta observar que possvel, em tempo polinomial, per-
k,
CONJUNTOS).
lim
uv1
uv2
uv3
{ u, v } em G.
uv4 uv5 uv6
vu1
vu2
vu3
vu4
Pr
e
vu5
vu6
Note que um circuito hamiltoniano s poderia passar por este grafo de trs
maneiras diferentes. Associe cada uma destas maneiras com
ou
estarem ou
no na cobertura.
Ve
rs
tamanhos
erro
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.
436
Resp. (Ex. 226) (b) Codique os estados usando ordem lexicogrca. (d)
Use um mapeamento de ta nita esquerta para ta innita dos dos lados da
para
Z.
in
ar
lim
Resp. (Ex. 230) (Rascunho) A mquina descrita pode usar as duas pilhas
como se fossem uma ta: para mover-se direita na ta basta desempilhar um
smbolo de
de
P1
P2
e empilh-lo em
P3 ;
P2 .
Pr
e
P1 ),
Ve
rs
P2
e empilhando em
in
ar
Apndice G
lim
Ficha Tcnica
foi produzida usando os editores Dia e Ipe. O ambiente Emacs foi usado para
Ve
rs
Pr
e
AT X.
edio do texto L
E
437
Ve
rs
Pr
e
lim
in
ar
438
Bibliograa
[1]
lim
in
ar
Mikls Ajtai e Cynthia Dwork. A public-key cryptosystem with worstcase/average-case equivalence. Em: Proc. 29th ACM STOC. 1998, pp. 284
293.
Pr
e
[4]
[6]
isbn: 978-0-8218-4781-7.
[8]
[7]
Ve
rs
[10]
[11]
isbn: 0-52142-426-7.
[12]
isbn:
0-
300-01364-7.
[13]
[14]
isbn: 0130047635.
439
BIBLIOGRAFIA
440
[15]
[16]
[17]
in
ar
isbn: 9783540654315.
[19]
isbn:
Maria Welleda Baldoni, Ciro Ciliberto e Giulia Maria Piacentini Cattaneo. Elementary Number Theory, Cryptography and Codes. Springer,
[20]
[21]
isbn: 978-3-540-69199-0.
isbn: 0387887563.
logy. 2010.
[22]
lim
2009.
isbn: 3642063837.
Pr
e
[23]
for designing ecient protocols. Em: Proceedings of the 1st ACM Con-
Josh Benaloh e Jerry Leichter. Generalized Secret Sharing and Monotone Functions. Em: Advances in Cryptology - CRYPT0 88. 1990,
pp. 2735.
[25]
[26]
Ve
rs
[27]
[28]
isbn: 0-534-42057-5.
isbn: 978-3-540-88701-0.
Guido Bertoni, Joan Daemen e Michal Peeters Gilles van Assche. Cryp-
sponge.noekeon.org/CSF-0.1.pdf.
[29]
http : / /
2012.
Guido Bertoni et al. The Road from Panama to Keccak via Radio-
//drops.dagstuhl.de/opus/volltexte/2009/1958.
[30]
url: http:
BIBLIOGRAFIA
[33]
isbn: 3540979301.
isbn: 0521653746.
in
ar
[31]
441
isbn: 978-3-642-03548-7.
Bla Bollobs. Modern Graph Theory. Springer, 1998. isbn: 0387984887.
[36]
[37]
[38]
lim
isbn: 1849966907.
Pr
e
[39]
[41]
[42]
isbn: 0-13-335068-1.
isbn: 0387970401.
[43]
Ve
rs
//www.liacs.nl/~kosters/tetris/tetr.pdf.
[44]
William Briggs e Van Emden Henson. The DFT: an owner's manual for
[45]
isbn: 978-0133075052.
[47]
isbn: 0-89871-342-0.
[46]
http:
2003.
isbn: 9782881247057.
[48]
isbn: 048667164X.
BIBLIOGRAFIA
442
[49]
Peter J. Cameron. Combinatorics: topics, techniques, algorithms. Cambridge university Press, 1994.
[50]
isbn: 0-0521-45761-0.
[51]
Ran Canetti et al. Deniable Encryption. Cryptology ePrint Archive, Report 1996/002.
[52]
http://eprint.iacr.org/.
1996.
isbn: 9788571940192.
o. IMPA, 2001.
[55]
isbn: 978-3764372941.
lim
[54]
in
ar
D. Chaum, E. van Heijst e B. Ptzmann. Cryptographically String Undeniable Signatures, unconditionally secure for the signer. Em: Advances
Pr
e
[57]
isbn: 143983721X.
[61]
Ve
rs
ding. 2001.
[62]
Springer, 2010.
[63]
1999.
[64]
isbn: 3642081428.
isbn: 0387987274.
Chapman&Hall/CRC, 2005.
[65]
isbn: 1584885181.
[66]
isbn: 0471569526.
Proceedings of the Third Annual ACM Symposium on Theory of Computing. 1971, pp. 151158.
BIBLIOGRAFIA
[67]
443
James W. Cooley e John W. Tukey. An algorithm for the machine calculation of complex Fourier series. Em: Mathematics of Computation 19
(1965), pp. 297301.
[69]
isbn: 1584882379.
in
ar
[68]
Don Coopersmith. The Data Encryption Standard (DES) and its strength
against attacks. Em: IBM Journal of Research and Development 38.3
(1994), pp. 243250.
[70]
2009.
[72]
isbn: 0471241954.
lim
[71]
[73]
[74]
Pr
e
1997.
isbn: 9781441920508.
Claude Crpeau. Equivalence between two avours of oblivious transfer. Em: Advances in Cryptology: CRYPTO 87. 1988.
[76]
[78]
isbn: 3-540-42580-2.
Ve
rs
[79]
isbn: 0521294657.
Theory. 1980.
eprint.iacr.org/.
[80]
McGraw-Hill, 2006.
[81]
[83]
isbn: 0073523402.
ger, 2010.
[82]
http://
2008.
isbn: 978-1441929501.
ed. Sprin-
isbn: 0486614719.
isbn:
0486432289.
[84]
applications. 2
isbn: 978-3-540-49243-6.
BIBLIOGRAFIA
444
[85]
http://arxiv.org/abs/cs.CC/0210020.
2002.
Yvo Desmedt, Shuang Hou e Jean-Jacques Quisquater. Audio and Optical Cryptography. Em: 1998.
[87]
in
ar
[86]
[88]
lim
[89]
Pr
e
[91]
[93]
[94]
Ve
rs
[95]
2003.
[96]
2002.
[97]
[98]
isbn: 9780486495316.
isbn: 9780201763904.
isbn: 9788576050872.
Scheme for Publicly Veriable Secret Sharing and Its Applications. Em:
[99]
Eiichiro Fujisaki et al. RSA OAEP is secure under the RSA assump-
[100]
Dover, 1989.
isbn: 0486200973.
BIBLIOGRAFIA
[102]
isbn: 0547165099.
[103]
isbn: 978-85-244-0190-9.
ed. IMPA,
in
ar
[101]
445
Rosario Gennaro et al. Secure Distributed Key Generation for DiscreteLog Based Cryptosystems. Em: Eurocrypt 99. 1999.
[106]
isbn: 9780821851920.
[107]
isbn: 9780521884730.
[108]
lim
[105]
Pr
e
[109]
[111]
[112]
Ve
rs
[113]
[114]
[115]
play mental poker keeping secret all partial information. Em: Proceedings
[116]
[117]
[118]
isbn: 0-521-82104-5.
2008.
isbn: 978-85-244-0200-5.
BIBLIOGRAFIA
446
[119]
isbn: 9781584885504.
[121]
http://eprint.iacr.org/.
in
ar
isbn: 85-216-1040-8.
[123]
isbn: 0131118927.
[125]
isbn:
isbn: 1441929290.
ed. Benjamin
[124]
lim
[122]
isbn: 1441927239.
isbn: 978-3-642-14302-1.
ed. Vol. 1. IMPA, 2013. isbn: 9788524400797.
[127]
[128]
2
[129]
Pr
e
isbn: 978-85-244-0169-5.
Speech, and Signal Processing Society) Magazine 1.4 (1984), pp. 1421.
[130]
[131]
isbn: 0471368792.
Ve
rs
[132]
chnical Report CORR 2001-17, Centre for Applied Cryptographic Research, Department of Combinatorics and Optimization, University of
Waterloo. Also appears in Cryptologia, vol. XXVI, no. 3, pp. 189-221,
2002. 2001.
[133]
Press, 1990.
[134]
[135]
isbn: 0198538030.
[136]
isbn: 3540667830.
isbn: 978-0-387-77993-5.
1423 (1998).
BIBLIOGRAFIA
[137]
447
isbn: 0201441241.
in
ar
[138]
ed. Addison-Wesley,
2001.
[139]
[140]
isbn: 069111921X.
Jaydeep Howlader e Saikat Basu. Sender-Side Public Key Deniable Encryption Scheme. Em: Proceedings of the 2009 International Conference
lim
[141]
[142]
isbn: 0387905189.
[143]
Pr
e
[145]
isbn: 978-90-481-9044-7.
0-38798-
isbn:
isbn: 1441930949.
Mitsuru Ito, Akira Saito e Takao Nishizeki. Secret sharing scheme realizing general access structure. Em: Proc. Global Telecoms. Conference.
Ve
rs
[148]
[149]
[150]
a
a
isbn: 0486471896.
ed. Dover, 2009. isbn: 048647187X.
[151]
[152]
[153]
9.
isbn: 0-684-83130-
BIBLIOGRAFIA
448
[154]
in
ar
[155]
blems. Tese de doutorado. Department of Numerical Analysis e Computing Science Royal Institute of Technology, Sweden, 1992.
[156]
[157]
[158]
isbn: 978-1-58488-551-1.
lim
1952.
[159]
isbn: 978-0-387-27711-
Stephen Cole Kleene e J. B. Rosser. General recursive functions of natural numbers. Em: Mathmatische Annalen 112 (1936), pp. 727742.
[160]
M. Klonowski, P. Kubiak e M. Kutylowsk. Practical Deniable Encryption. Em: Proceedings of SOFSEM 2008. 2008.
[161]
[162]
Pr
e
algorithms. 2
[164]
isbn: 3-540-43154-3.
isbn: 2881246834.
isbn: 0471909343.
[166]
[165]
1979.
Ve
rs
[167]
[168]
mission (em Russo, Problemy Peredachi Informatsii) 9.3 (), pp. 265
266.
[169]
putao. 2
[170]
isbn: 8-57307-534-1.
Press, 1997.
[171]
isbn: 0-521-39231-4.
BIBLIOGRAFIA
Michael Luby. Pseudorandomness and Cryptographic Applications. Princeton University Press, 1996.
[174]
isbn: 3-540-20105-X.
isbn: 9780691025469.
in
ar
[172]
449
lim
[176]
[178]
isbn: 0201120372.
[179]
Pr
e
[181]
isbn: 0-13-145224-X.
isbn: 978-1-59693-238-8.
[183]
Ve
rs
[184]
[185]
[186]
isbn: 9780792376880.
[187]
2006.
[188]
isbn: 8531404584.
isbn: 0471648000.
BIBLIOGRAFIA
450
[189]
Pat Morin. Provably Secure and Ecient Block Ciphers. Em: Procee-
isbn: 978-0-8218-4418-2.
in
ar
[190]
EUROCRYPT. 1994.
[192]
Victor P. Nelson et al. Digital Logic Circuit Analysis and Design. Prentice
Hall, 1995.
[193]
isbn: 0-13-463894-8.
[194]
isbn: 3642022944.
3-540-
isbn:
lim
isbn: 9780521635035.
Pr
e
[198]
[199]
isbn: 0471625469.
[201]
2010.
Ve
rs
[202]
1993.
[203]
2009.
[204]
isbn: 0-20153-082-1.
isbn: 9788577260324.
[205]
91. 1992.
[206]
[207]
isbn: 0802715478.
BIBLIOGRAFIA
[208]
451
puting. 3
[211]
in
ar
[209]
isbn: 978-0-521-88068-8.
M. Rabin. How to exchange secrets by oblivious transfer. Technical Report TR-81, Harvard Aiken Computational Laboratory. 1981.
[212]
Michael Rabin. Digitalized Signatures and Public-Key Functions as Innical Report: MIT/LCS/TR-212. 1979.
[213]
[214]
lim
isbn: 0-8493-3692-9.
2
[216]
isbn: 0817637435.
Pr
e
[215]
[218]
[219]
isbn: 0387947043.
Ve
rs
ger, 1996.
[220]
isbn: 0262680521.
isbn:
978-85-7393-634-6.
[221]
Code in C. 2
[222]
[223]
com/paper-self-study.html,
[224]
http://www.schneier.
pp. 1834.
BIBLIOGRAFIA
452
isbn: 9780201400090.
isbn: 0-521-86572-7.
[228]
in
ar
[225]
[229]
Adi Shamir. IP
[230]
isbn: 0306447908.
lim
[231]
= P SP ACE .
[234]
[237]
isbn: 9788573937534.
isbn: 8573939516.
isbn: 0521851548.
[238]
isbn: 978-0-470-40461-4.
[236]
isbn: 0-252-72548-4.
Pr
e
Ve
rs
[239]
Springer, 1992.
[240]
eger, 2003.
[241]
isbn: 9780387978253.
isbn: 1575242389.
[242]
[243]
[244]
[245]
isbn: 8501055980.
isbn: 0385495323.
Thomson, 2007.
isbn: 9788522104994.
BIBLIOGRAFIA
[246]
453
isbn:
978-0077099879.
Laurence D. Smith. Cryptography: The Science of Secret Writing. Dover,
1955.
[248]
isbn: 048620247X.
in
ar
[247]
[250]
[252]
lim
[251]
isbn: 978-0691113845.
isbn: 1-58488-508-4.
ed. Chapman
Pr
e
[254]
isbn: 1441927522.
isbn: 0-521-61771-5.
[257]
isbn: 978-8218-4090-0.
Vijay V. Vazirani. Approximation Algorithms. Springer, 2010. isbn: 3642084699.
[258]
Ve
rs
[259]
[260]
isbn: 978-1-59114-084-9.
[261]
Xiaoyun Wang, Yiqun Lisa Yin e Hongbo Yu. Finding Collisions in the
[262]
[263]
isbn: 1420071467.
BIBLIOGRAFIA
454
[264]
[266]
isbn: 0387487417.
in
ar
[265]
Ve
rs
Pr
e
lim
167. isbn: 0-8186-0740-8. doi: 10 . 1109 / SFCS . 1986 . 25. url: http :
//portal.acm.org/citation.cfm?id=1382439.1382944.
ndice Remissivo
383
xidade), 384
tanlise), 329
anel, 353
aniversrio
(n)-aproximao, 391
k -aproximao, 391
Pr
e
rvore, 376
lim
, 369
-protocolo, 210
, 369
O, 368
BPP (classe de complexidade), 381
IP (classe de complexidade), 206
N P (classe de complexidade), 381
N P -completo (classe de complexidade),
in
ar
3DES (criptossistema), 82
Ve
rs
de Shamir, 261
des, 258
adversrio
malicioso, 219
semi-honesto, 219
AES, 84
descrio algbrica, 86
descrio simplicada, 84
detalhes de implementao, 424
Bzout
NDICE REMISSIVO
456
COBERTURA-POR-ARESTAS (problema),
403
COBERTURA-POR-VERTICES
bit hard-core, 40
problema, 392
135
no AES/Rijndael, 87
CBC-MAC, 138
lim
CCA, 142
esquema visual
denio de segurana, 72
Ve
rs
vericvel, 196
de ator, 180
exponencial, 369
polinomial, 369
subexponencial, 369
conhecimento zero
circuito
hamiltoniano, 376
297
(k, n),
Pr
e
in
ar
CONJUNTO-DOMINANTE
problema, 385
prova de
N P -completude,
construo de Lai-Massey, 79
corpo, 354
385
NDICE REMISSIVO
457
cosseno
in
ar
transformada, 412
diferencial, 108
counter
modo de operao de permutao
pseudoaleatrea, 71
criptanlise, 93
Die-Hellman (protocolo)
algbrica, 113
de cifras antigas, 329
difuso
lim
diferencial, 107
disco, 287
linear, 96
criptograa, 7
Pr
e
divisibilidade, 335
criptossistema
Dixon
simtrico, 20
quadrtico, 248
Ve
rs
Elgamal (criptossistema)
empacotamento de conjunto
de Brujin
sequncia de, 63
decodicao, 291
DES
NDICE REMISSIVO
458
gerador, 351
problema, 389
51
(problema), 389
gerador pseudoaleatreo, 45
Blum-Blum-Shub, 51
de Boneh-Franklin, 267
de Blum-Micali, 50
esquema de encriptao
Golomb
postulados de, 52
grafo, 374
lim
Euclides
in
ar
cclico, 351
comutativo, 350
Pr
e
de unidades, 353
famlia de distribuies, 45
estatisticamente prximas, 46
fatorao de inteiros, 35
Ve
rs
Fourier
Hadamard
matriz de, 273
razo de, 278
HAM
problema, 382
hash, 9
hashing
funo de, 119
HMAC, 141
homomorsmo, 352
Howlader-Basu (esquema de encriptao negvel), 303
IDEA (cifra de bloco), 80
identicao
256
de mo nica forte, 33
de mo nica fraca, 38
funo desprezvel, 27
funcionalidade ideal, 222
256
indecidvel (problema), 394
NDICE REMISSIVO
459
indistinguibilidade computacional, 47
mix-net, 314
isomorsmo
MOCHILA
no aproximabilidade, 391
problema, 385
prova de
in
ar
de grafos, 377
N P -completude,
385
JPEG
cas, 413
justeza (em sistema de votao, 313
lim
tao), 313
no-repdio, 163
Lagrange
interpolao, 191
Lamport
OAEP, 157
one-time pad, 22
Pr
e
LFSR
de comprimento mximo, 56
linguagem
output feedback
Turing-decidvel, 398
pseudoaleatrea, 71
Turing-reconhecvel, 397
Ve
rs
Luby-Racko (Teorema), 79
PARTIO
problema, 393
perodo de sequncia, 52
permutao de mo nica, 34
com segredo, 150
permutao indexada, 69
permutao pseudoaleatrea, 69
m-sequncia, 56
polinmio de conexo, 55
gem, 135
forte, 69
polinmios mdulo
mtodo
menor base
mtodo
problema, 394
Merkle-Damgrd
f,
358
Pollard
NDICE REMISSIVO
460
problema
de deciso, 377
in
ar
de busca, 377
produto de subconjunto
problema, 394
protocolo, 179
SHA-1, 422
sigilo perfeito, 21
pseudoprimo, 380
lim
qubit, 270
Rabin
404
criptossistema, 152
soma de subconjuntos, 35
subgrupo, 350
Pr
e
subsequncia constante, 52
reduo, 382
reencriptao, 314
registrador de deslocamento, 53
linear realimentado, 54
Ve
rs
N P -completude),
384
problema, 383
prova de
N P -completude,
384
ROT13, 326
S-box, 73
Schnorr
vis
o, 313
NDICE REMISSIVO
461
Ve
rs
Pr
e
lim
in
ar