Criptografia e Segurança das Comunicações
das Comunicações
Bases matemáticas:
Teoria dos números
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 1/40
Introdução
• A teoria dos números (“number theory”) aborda as propriedades de operações sobre inteiros.
• A teoria dos números é fundamental na criptografia,
porque os ficheiros planos são transcritos em sequência de números (ordem de cada caracter num texto, sequência de números (ordem de cada caracter num texto, sequência de bits num ficheiro gráfico,...).
• Os algoritmos criptográficos dependem fortemente da aritmética modular.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 2/40
Divisores (1)
O conjunto dos inteiros {...,-2,-1,0,1,2,...} é representado por ℤ .
[Def] A divisão de a por b (b≥1), a/b, é um par (q,r) tal que a = q.b+r (q é designado por quociente, r por resto).
Ex: 15=4.3+2 Ex: 15=4.3+2
[Def] b é divisível por a, a|b, sse o resto de a/b for 0.
Ex: 3|9.
Nota 1: se a|b, então q|a e q|b.
Nota 2: O cálculo da soma e da subtração de dois inteiros de dimensão n é O(log n), o produto e a divisão de dois inteiros é O(log2n).
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 3/40
Divisores (2)
Teorema: dados os números a,b,c – a|b ∧ a|c a|(b + c ) – a|b a|bc
– a|b ∧ b|c a|c
Curiosidade, não faz parte da avaliação
– a|b ∧ b|c a|c Exemplos:
1. 17|34 ∧ 17|170 17|204 2. 17|34 17|340
3. 6|12 ∧ 12|144 6 | 144
Divisores (3)
[Def] O maior divisor comum de dois números a b, gcd(a,b), é o maior inteiro d tal que d|a e d|b.
Para determinar gcd(a,b), basta factorizar os dois números e tomar os factores comuns com o menor dos expoentes.
Ex: gcd(4200, 10780) = gcd(2
3.3.5
2.7, 2
2.5. 7
2.11) = Ex: gcd(4200, 10780) = gcd(2
3.3.5
2.7, 2
2.5. 7
2.11) = 2
2.5.7 = 140
Nota1: gcd(a,b)=gcd(b,a).
Nota2: factorização de números é uma operação computacionalmente custosa.
– 1994: a aplicação do QS-Quadratic Sieve distribuída por 1600 computadores conseguiu factorizar número RSA-129 (129 bits) em 8 meses.
– 2005: factorizado número RSA-560.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 5/40
Divisores (4)
Algoritmo de Euclides: determina gcd(a,b) sem cálculo de todos os factores.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 6/40 Figura 2-7, Behrouz Forouzan, Cryptography and Network Security
Divisores (5)
• O algoritmo de Euclides
1é o algoritmo mais antigo ainda em uso.
• Algoritmo de Euclides é O(log
3n)- log n divisões * O(log
2n) cada divisão
Exemplo: Determinar gcd(1547,560)
por multiplicação russa
resto divisor
quociente
Exemplo: Determinar gcd(1547,560)
1547 = 2.560 + 427 calcular gcd(560,427) 560 = 1.427 + 133 calcular gcd(427,133) 427 = 3.133 + 28 calcular gcd(133,28) 133 = 4.28 + 21 calcular gcd(28,21)
28 = 1.21 + 7 calcular gcd(21,7) 21 = 3.7 + 0 gcd(1547,560)=7
1 Viveu em Alexandria, 360-290 AC, frequentemente referido como pai da geometria.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 7/40 resto
dividendo
Divisores (6)
Algoritmo estendido de Euclides: Se d = gcd(a,b), existem dois números u e v tais que d=ua+vb
Para calcular u,v basta inverter o algoritmo de Euclides, substituindo o resto por dividendo-quociente*divisor.
Ex:7 = 28 – 1.21 ≡ Ex:7 = 28 – 1.21 ≡
28 – 1*(133-4.28) ↔ 5*28 - 1*133 ≡
5*(427 – 3*133) – 1*133 ↔ 5*427 – 16*133 ≡ 5*427 – 16*(560 – 1*427) ↔ 21*427 – 16*560 ≡ 21*(1547 – 2*560) – 16*560 ↔ 21*1547 – 58*560
Nota: a proposição permite facilmente calcular o inverso de um número a módulo M, se M e a forem co-primos.
1 = gcd(a,M) = ua+bM: logo, a-1mod M = u.
Divisores (7)
O algoritmo Euclides estendido pode ser executado de forma recorrente, calculando o triplo (d,x,y) tal que ax+by=d.
– d é o maior divisor comun, gcd(a,b) – Se d=1, então x=a
-1mod M.
Curiosidade, não faz parte da avaliação
Extended-euclidean(a,b) { if (b==0) return (a,1,0);
q = a/b;
r = a%b;
(d,x,y) = Extended-euclidean (b,r);
return (d,y,x-qy); }
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 9/40
Divisores (8)
Exemplo: determinar 123
-1mod 1003
a b q r Retorna
1003 123 8 19 (1,13,-106)
123 19 6 9 (1,-2,13)
Curiosidade, não faz parte da avaliação
123 19 6 9 (1,-2,13)
19 9 2 1 (1,1,-2)
9 1 9 0 (1,0,1)
1 0 - - (1,1,0)
• 123
-1mod 1003 ≡ -106 ≡ 897
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 10/40
Números primos (1)
[Def] um número p é primo sse existirem apenas dois divisores (1|p e p|p).
Ex: são primos 1,2,3,5,7,11,13,17,19,…
[Def] Dois números a b são primos entre si, sse gcd(a,b)=1.
Afirma-se que a é co-primo de b.
Afirma-se que a é co-primo de b.
Ex: 26 e 15 não são primos, mas são primos entre si.
Teorema fundamental da aritmética: Qualquer número n pode ser representado por um produto de números primos
1.
Ex: 4200 = 23.3.52.7, 10780=22.5.72
2113 - 1= 3391.23279.65993.1868569.1066818132868207
1Denominado por factores
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 11/40
Números primos (2)
[Def] A função Euler totient, determina o número de todos os valores co-primos de n.
ϕ(n) = #{0≤b<n | gcd(b,n)=1}
Teoremas:
– ϕ(1) = 1.
– ϕ(1) = 1.
– Se p for primo, ϕ(p) = p-1.
– Se p for primo, ϕ(pn) = pn-1 (p-1).
– Se n=pq (p,q primos), então ϕ(n) = (p-1)(q-1).
Proposição: Se a for primo relativo de n, então
a
ϕ(n)= 1 mod n
Números primos (3)
[Def] A função π(n) indica o número de primos menores que n.
Os primos até 25 são: 2, 3, 5, 7, 11, 13, 17, 19 e 23.
Logo, π(3) = 2, π(10) = 4, π(25) = 9.
Teorema números primos: π(n) é da ordem de n/(ln n – a), com a ≅ 1.
Nota: há zonas em que os primos estão mais concentrados (ex:
1_000_000_000_061, 1_000_000_000_063) e noutras mais dispersos.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 13/40
Números primos (4)
Consequência 1: há muitos números primos por onde escolher!
Ex: π(10
20) ∈ O(10
20/19) ≅ 5.2 *10
18(na realidade, π(1020) = 2 220 819 602 560 918 840 ≅2.2 *1018 ) .
Consequência 2: a procura de um primo não é muito pesada.
Em média, os números primos estão afastados O(ln n):
como os pares e múltiplos de 5 não contam, a procura é 0.4 * ln n.
Ex: para procurar um primo à volta de 2
200(200 bits), devem ser necessários 0.4(ln 2
200)=55 testes.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 14/40
Números primos (5)
• Computação distribuída permite determinar números primos cada vez maiores.
• O maior número primo, identificado em Agosto 2008, é 243,112,609-1 com
é 243,112,609-1 com
12_978_189 dígitos decimais.
Nota1: Os primos Mersenne possuem a forma 2n-1, sendo conhecidos 49 (31= 25-1 é primo, mas 2047 = 211-1 não é primo).
Nota2: EFF premiou a descoberta com $100 000 por ser o primeiro primo com mais de 10 milhões de dígitos. Quem descobrir o primeiro primo com mais de 100 milhões de dígitos receberá $150 000.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 15/40
Primalidade (1)
Como escolher um número primo?
A. Por aproximação Hardly e Wright, procurar nos valores próximos prime(n) ∼ n(log n+log log n –1)
Ex: prime(10
6) ∼ 15 400 000: na realidade é 15 485 863.
Ex: prime(10
6) ∼ 15 400 000: na realidade é 15 485 863.
Impraticável: para n elevado a distância entre dois primos é O(log n) e determinar se número é primo custa!
Primalidade (2)
B. Peneira de Eratosthenes (“sieve”)
– Descoberto em 250 AC.
– Método determinista, mas pouco eficiente para números de grande dimensão.
Curiosidade, não faz parte da avaliação
1. Escrever todos os números de 2 a n-1.
2. Fazer d←2 (primeiro primo).
3. Se n não for divisível por d, eliminar da lista todos os múltiplos de d.
4. Se a lista não estiver vazia, d←primo seguinte e regressar a 3.
Se a lista estiver vazia, n é primo.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 17/40
Primalidade (3)
[Exemplo] Seja n=17
– Lista: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 d←2: 17 não é divisível por 2!
Eliminados múltiplos de 2 (2 4 6 8 10 12 14 16) – Lista: 3 5 7 9 11 13 15
Curiosidade, não faz parte da avaliação
– Lista: 3 5 7 9 11 13 15
d←3: 17 não é divisível por 3!
Eliminados múltiplos de 3 (3 9) – Lista: 5 7 11 13 15
d←5: 17 não é divisível por 5!
Eliminados múltiplos de 5 (5 15) – Lista: 7 11 13
d←7: 17 não é divisível por 7!
Eliminados múltiplos de 7 (7) – ...
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 18/40
Primalidade (4)
C. Gerar um número aleatório n ímpar, n≠5 e verificar se é primo com um teste de primalidade (ex, Rabin-Miller).
Se não for, procurar à volta de lg N. Se não conseguir encontrar, gerar novo número aleatório e procurar nessa zona.
zona.
Nota: esta é a estratégia usada na cifra RSA para gerar números aleatórios de grande dimensão.
Aviso: Alguns primos p permitem a fácil factorização de (p-1) !
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 19/40
Primalidade (5)
Teste de Rabin-Miller
1. Calcular k,m (ímpar) tal que n-1= m.2
k.
Nota: O cálculo é rápido: deslocar para a direita enquanto a divisão for par, k é o número de deslocamentos, m é a divisão ímpar.
2. Seleccionar base, tal que 1 ≤ b < n.
2. Seleccionar base, tal que 1 ≤ b < n.
3. a ← b
mmod n
i. Se a=n-1, então n pode ser primo.
ii. Se algum dos valores a2 mod n, a4 mod n, …, a2^(k-1) mod n for igual n-1, então n pode ser primo.
iii. Se falhar 3.1 e 3.2, então n não é primo.
• Para números não primos, ¾ dos valores de a acabam no ponto 3.3
• Se o número for candidato a primo, efectuar o teste normal Nota: pode revelar que, afinal, não é primo!
Primalidade (6)
Exemplo: Vejamos se n=29 é primo
1. 28 = 14.2 = 7 . 22 2. Seleccionar base b=10 3. a ←107mod 29 ≡17
1. a ≠28
2. (107 )2mod 29 ≡28. Pode ser primo (na realidade é!)
Exemplo: Vejamos se n=221 é primo
1. 220 = 110.2 = 55 . 22 2. Seleccionar base b=5 3. a ←555mod 221 ≡112
1. a ≠220
2. (555 )2mod 221 ≡168≠220 (nota: como k=2, não existem mais testes) 3. Conclui-se que 221 não é primo (nota: factorizando, tem-se 221=13*17) Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 21/40
Primalidade (7)
Teorema pequeno de Fermat (“Fermat Little Theorem”): Se p é co-primo de a, então a
p-1=1 mod p.
Ex: 7 e 3 são co-primos, pelo que 7
2=1 mod 3.
Igualmente, 3
90=1 mod 91 [nota: 91 não é primo]
Os números (a,p) são designados pseudo-primos.
Os números (a,p) são designados pseudo-primos.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 22/40
Aritmética modular (1)
[Def] a módulo M, a mod M, é o resto de a/M.
Nota 1: r é por vezes designado resíduo.
Nota 2: sem nos aperceber, o relógio é um sistema modular (M igual a 12 horas)
[Def] ℤ ℤ
n, é o conjunto de todos os resíduos módulo n.
Exemplos: ℤ
2={0,1}, ℤ
6={0,1,2,3,4,5}
[Def] Dois números a,b são congruentes, a ≡ b mod N, sse tiverem o mesmo resíduo.
Exemplos: 4 ≡ 12 mod 8, 3 ≡ -5 mod 8
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 23/40
Operador congruência
Aritmética modular (2)
• Os operadores aritméticos usuais em ℤ : +, -, * são aplicados em ℤ
n.
1. [Opcional] Calcula-se o resíduo a cada operando para simplificar.
2. Calcula-se a operação em ℤℤ. 3. Determina-se o resíduo.
Exemplos:
(14+7) mod 15 = 21 mod 15 = 6 (7*11) mod 20 = 77 mod 20 = 17
Figura 2-13, Behrouz Forouzan, Cryptography and Network Security
Eficiência de operações (1)
1. Produto: pretende-se avaliar x.y, com valores na ordem 2
1024≈ 10
308.
i. Cálculo pelo método matricial (proposto pela primeira vez por Fibonnaci) é muito ineficiente.
ii. Multiplicação russa (ou camponesa) com “shift” e somas.
1. Enquanto y≠1 executar e colocar lado a ladox=2.x e y=y/2 2. Cortar todos os xipara yipares
3. Somar todos os xipara yiímpares
Complexidade: O(log2n)- log n somas * O(log n) cada soma
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 25/40
Eficiência de operações (2)
Exemplo: Cálculo de 52 * 37
52 37 multiplicação
matricial russa
52 37 104 18 208 9 416 4 832 2 1664 1 1924
52
*37 364 156 1924
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 26/40
Eficiência de operações (3)
2. Produto modular: pretende-se avaliar a*b mod N i. Cálculo ingénuo
1. Determinar primeiro a*b 2. Calcular depois a*b mod N
Este cálculo pode ser muito ineficiente por
– gera valores de dimensão muito elevada.
– A redução mod N é uma operação demorada.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 27/40
Eficiência de operações (4)
ii. Multiplicação Montgomery
– Na multiplicação modular, a redução constitui a parte mais
demorada. A multiplicação Montgomery permite que a redução seja feita com valores de dimensão reduzida.
– Considere-se o produto ab=c mod N, com N=mk-1. Neste caso, Curiosidade, não faz parte da avaliação
– Considere-se o produto ab=c mod N, com N=mk-1. Neste caso, c = c1mk+ c0 Rescrevendo,
c = c1(mk– 1) + c1+ c0= c1+ c0mod N.
Ex: pretende-se calcular 3089 mod 99 sem efectuar reduções
3089 = 30*100 + 89 =
30*(100-1)+30 + 89 = 30*99 + 119 = 30*99 + 1*100+19 = 30*99 + 1*(100-1)+1+19 = 31*99 + 20
Logo, 3089 mod 99 = (31*99 + 20) mod 99 = 20
1P. L. Montgomery; Modular multiplication without trial division. Mathematics of
Eficiência de operações (5)
• Passos na multiplicação Montgomery a*b mod N:
1. Converter multiplicando e multiplicador para a forma Montgomery i. Seleccionar R=2k, com R>N e gcd(R,N)=1.
ii. Calcular R' e N' tal que RR' - NN' =1.
iii. Identificar as formas Montgomey de a,b:
Curiosidade, não faz parte da avaliação
iii. Identificar as formas Montgomey de a,b:
a' = aR mod N, b' = bR mod N 2. Calcular o produto
a' * b' = (aR mod N) * (bR mod N) = abR2= X 3. Converter resultado
m = ((x mod R) * N') mod R x = (X+mR)/R
if x ≥N then x=x-N return x
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 29/40
Eficiência de operações (6)
Exemplo: calcular 61*5 mod 79
– Selecciona-se R=102(nota: nos computadores usa-se base binária) – a' = 61*100 mod 79 = 17,
b' = 5*100 mod 79 = 26
– Algoritmo Euclides invertido dá 64.100-81.79=1.
Curiosidade, não faz parte da avaliação
– Algoritmo Euclides invertido dá 64.100-81.79=1.
Logo, R' = 64 e N' = 81 – a' * b' = 17*26 = 442
– m = (442 mod 102* 64) mod 102=(42*64) mod 102=3402 mod 102=2 x = (442 + 2*79)/102mod 102= 600/102mod 102= 6 mod 102=6 61*5 mod 79 = 6
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 30/40
Eficiência de operações (7)
iii. Multiplicação CRT
Teorema Chinês dos Restos (CRT-Chinese Remainder Theorem): Seja N=n
1*n
2*…*n
rcom n
i,n
j(i ≠ j) co-primos.
Curiosidade, não faz parte da avaliação
co-primos.
– Qualquer A∈[0,(N-1)] é representado por (a1=A mod n1, a2=A mod n2, …, ar=A mod nr)
– A calculado, a partir de (a1, a2,…, ar), pela seguinte equação:
r i i i
i
i i
i r
i i
n n n n n n N N
N n
N N a A
L L 1 1 2
1 1 1
mod ) mod (
+
−
−
=
=
=
=
∑
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 31/40
Eficiência de operações (8)
Exemplo: Sun-Tsu inicia batalha com 208 soldados e no final pretende determinar rapidamente os sobreviventes.
Verifica que os sobreviventes
– agrupados em 3, sobram 2 (a1= A mod 3 ≡ 2) – agrupados em 5, sobram 3 (a = A mod 5 ≡ 3) Curiosidade, não faz parte da avaliação
– agrupados em 5, sobram 3 (a2= A mod 5 ≡ 3) – agrupados em 7, sobram 2 (a2= A mod 7 ≡ 2)
a) N
1=5.7=35; N
2=3.7=21; N
3=3.5=15
b)35
-1mod 3 = 2, 21
-1mod 5 = 1, 15
-1mod 7 = 1
c) A=2.35.2 + 3.21.1 + 2.15.1 (mod 3.5.7) = 23 mod 105.
Sun-Tsu ou tem 23 ou tem 128 soldados.
Nota: fácil verificar sem ter de agrupar em grupos de 11!
Eficiência de operações (9)
Por ser o único com acesso a p,q o proprietário pode calcular mais rapidamente M=C
dmod N,
1. Na construção da cifra RSA tem-se N=pq. Calcular
p C
C
p= mod
C C qq = mod
Curiosidade, não faz parte da avaliação
p C
M
p d
d
dp
p p p
mod ) 1 mod(
=
−
=
q C
M
q d
d
dq
q q q
q
mod ) 1 mod(
=
−
=
2. Decifrar mensagem a partir dos resíduos
N q
q p q
R
N p
p q p
R
N R
M R M M
p q
q p
p q q p
mod )
mod (
mod )
mod (
mod ) (
1 1
1 1
−
−
−
−
=
⋅
=
=
⋅
=
+
=
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 33/40
Eficiência de operações (10)
3. Exponenciação modular: Pretende-se avaliar x
cmod N
Em cada multiplicação por x calcula-se logo o módulo para reduzir os valores intermédios. Exponenciação pode ser efectuada da esquerda para a direita (solução adoptada aqui), ou da direita para a esquerda.
esquerda.
1. Representar c = bk-1… b0 2. Executar algoritmo
z = 1;
for ( i=k-1; i>=0; i-- ) {
if ( bi=1 ) mult=x else mult=1;
z = z2.mult mod N;}
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 34/40
Eficiência de operações (11)
Ex: Cálculo de 30
37mod 77 (37 = 100101)
1. z = 1
2. i = 5; b5=1 ∴mult= 30; z = 12 * 30 mod 77 ≡30 3. i = 4; b4=0 ∴mult= 1; z = 302mod 77 ≡53 4. i = 3; b3=0 ∴mult= 1; z = 532mod 77 ≡37 5. i = 2; b2=1 ∴mult= 30; z = 372* 30 mod 77 ≡29 5. i = 2; b2=1 ∴mult= 30; z = 37 * 30 mod 77 ≡29 6. i = 1; b1=0 ∴mult= 1; z = 292mod 77 ≡71 7. i = 0; b0=1 ∴mult= 30; z = 712* 30 mod 77 ≡2 ComplexidadeO(log3n)
Nota: Ataque DPA (“Differential Power Analysis”) é baseado na análise das variações no consumo de energia durante o cálculo de mult*z dentro do ciclo for.
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 35/40
Eficiência de operações (12)
1
z x
x
cmod N em hardware
z x
mult mod N
Lógica
controlo
c
Números aleatórios (1)
[Def] O período de uma sequência é valor mínimo de τ, tal que s(i+τ)=s(i), para todos 0≤ i<N-τ
Ex: a sequência 010 010 01, de comprimento p=8, possui período 3.
[Def] Um bloco (“block”) é uma sequência contínua de 1’s e [Def] Um bloco (“block”) é uma sequência contínua de 1’s e
um salto (“gap”) é uma sequência contínua de 0’s.
Uma corrida (“run”) é um bloco ou um salto.
Existem diversos métodos para determinar o grau de confinação de uma sequência binária pseudo-aleatória
– Princípio de Golomb
– Testes estatísticos (frequência, “poker”, corridas,…)
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 37/40
Números aleatórios (2)
Testes estatísticos
– Teste série: as frequências das transições 00, 01, 10, 11 são iguais.
– Teste “poker”: dividir sequência por subsequências com mesmo número de bits (m≥3)-denominados “poker hands”- e comparar a distribuição dos valores com o teste χ2.
Princípios de Golomb: primeira tentativa para identificar as condições necessárias, mas não suficientes!
1. A diferença entre o número de 0’s e 1’s deve ser tão pequena quanto possível.
Nota: na sequência 101010101010101010101010101010101010, diferença entre 0’s e 1’s é nula, mas não é aleatória (tal será detectado pelo terceiro princípio de Golomb).
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 38/40
Números aleatórios (3)
2. Em todas as subsequências, metade das corridas são blocos e a outra metade são saltos.
A frequência de corridas de comprimento i é, pelo menos, (½)ise o número de corridas for superior a 1; metade das corridas tem comprimento 1, um quarto das corridas tem comprimento 2,…
Ex: seja 00001100001110001111100001110001101110000100.
Ex: seja 00001100001110001111100001110001101110000100.
À primeira vista a sequência parece ser aleatória, mas não obedece aos critérios de Golomb.
Comprimento Blocos Saltos Corridas
1 19 25 44 (46%)
2 12 17 29 (30%)
3 6 10 16 (17%)
4 2 4 6 (6%)
5 1 0 1 (1%)
Falha!
Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 39/40
Números aleatórios (3)
3. Autocorrelação é de 2 valores
1 0
), 1 2
)(
1 2 1 (
) (
1 - N t 1 se ,
0 t se ) ,
( .
1 0
{
−
≤
≤
−
∑ −
=
≤
≤
= =
+
−
=
N t s
N s t
C
K t N
C N
t i N
i i
=0
N
iEx: 011001000111101, gerada pelo LFSR de polinómio conectivo x4+x3+1, satisfaz os critérios de Golomb.
1. Número de 0’s é 7, número de 1’s é 8.
2. Existem 8 corridas:
• 4 corridas de comprimento 1 (2 saltos, 2 blocos).
• 2 corridas de comprimento 2 (1 salto, 1 bloco).
• 1 salto de comprimento 3, 1 bloco de comprimento 4.
3. C(0)=1, C(t)=-1/15 for 1 ≤ t≤ 14