Acetatos - Área Científica de Computadores

Propaganda
Criptografia e Segurança
das Comunicações
Álgebra abstracta
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 1/29
Álgebra - introdução
[Def]: Álgebra (do árabe “al-djebr”: reunião) é o ramo da
matemática que estuda os padrões nas operações sobre
objectos matemáticos.
Os objectos matemáticos classificam o tipo de álgebra:
– Álgebra elementar, estuda expressões algébricas e fórmulas sobre
inteiros, reais e complexos.
– Álgebra abstracta : estuda grupos, aneis e corpos
Nota1: para aprofundamento do tema consultar
D.S. Dummit and R.M. Foote, Abstract Algebra, John Wiley &Sons,
3rd edition, 2004.
Nota2: informações extra, em Inglês, disponíveis em
http://comp.ist.utl.pt/pdis-srm
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 2/29
Grupos (1)
[Def]: Um grupo é o quádruplo (G,1, -1,•), em que:
– G é o conjunto portador (“carrier”), contendo todos os elementos
– 1∈G é o elemento identidade
– -1 : G → G é uma função inversa
– • : G × G → G é função denominada operador de grupo
O grupo deve satisfazer quatro axiomas:
[A1] A operação • é fechada, i.e., a•b∈G para todos a,b∈G
[A2] A operação • é associativa, i.e., a•(b•c) = (a•b) •c para todos a,b,c∈G
[A3] a•1 = 1•a = a para todos a∈G
[A4] Cada elemento a∈G tem um inverso, a-1, tal que a•a-1 = a-1•a = 1.
Nota: os grupos são aplicados em áreas científicas distintas, tais como física,
cristolografia e criptografia.
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 3/29
Grupos (2)
Ex1: n é um grupo aditivo (“-1” e ”•” são negação e soma módulo n).
Ex2: (/n)x é um grupo multiplicativo, com o grupo portador formado
pelos co-primos de n e produto módulo n.
Ex2: Sn é o grupo simétrico, em que
– Conjunto portador definido em ciclo por todas as permutações de {1,…,n}
Ex: em (1,2,3) tem-se 12, 23 e 31.
– Operação de grupo, σ1•σ2 , definido pela produto de permutações.
Ex: (1,3,2)•(1,3,2)= 132, 321, 213 ∴ (1,2,3)
– Identidade (1) não altera ordem (nota: se no ciclo não for indicado o
número, este não e’ alterado)
– Inverso definido por troca das linhas do ciclo
Ex: (1,2,3)-1 = 21, 32 e 13 ∴ (1,3,2)
Nota: (Sn,•) foi o grupo estudado por Évariste Galois, matemático francês18111832, para verificar como as raízes de um polinómio se relacionam entre si.
Faleceu aos 20 anos de idade num duelo.
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 4/29
Grupos (3)
Curiosidade, não faz parte da avaliação
Nota: Num grupo aditivo
– Operador de grupo, soma, é representado por +
– Identidade representado por 0
– Inversão representada pelo negação
A subtracção, -: G × G → G é definida por a-b = a+(-b)
[Def]: Um grupo é abeliano, ou comutativo, se for satisfeito
o axioma
[A5] A operação • é comutativa, i.e., a•b = b•a para todos a,b∈G
Ex: GLn()-(matrizes × invertíveis, matriz identidade,
matriz inversa, produto matrizes) é grupo não abeliano.
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 5/29
Grupos (4)
[Def]: Um grupo diz-se cíclico, se existir um elemento g
(denominado gerador) tal que, para qualquer a, existe um
valor inteiro n que satisfaz a propriedade a = g • g • … • g
(n vezes)
Exemplo 4: 7 = ({0,1,2,3,4,5,6},0,-1,soma módulo 7} é um
grupo cíclico.
– 1-1=6, 2-1=5, 3-1=4 (inverso dos restantes elementos facilmente
calculado porque a função de grupo é comutativa)
– 1 é o gerador (ex: 4=1+1+1+1)
Exemplo 5: ( /9)x = ({1,2,4,5,7,8},1,-1,produto módulo 9}
é um grupo cíclico
– 2-1=5, 4-1=7, 8-1=8
– 2 é gerador, mas não 7
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 6/29
Grupos (5)
Curiosidade, não faz parte da avaliação
[Def]: Seja (/p)x, com p primo. Um valor 0<a<p é raíz
primitiva de p, sse o menor m tal que am mod p=1 é igual
a p-1.
a a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12
Examplo: Para p=13,
as raízes primitivas
são {2,6,7,11}
Prof RG Crespo
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
4
8
3
6
12
11
9
5
10
7
1
3
3
9
1
3
9
1
3
9
1
3
9
1
4
4
3
12
9
10
1
4
3
12
9
10
1
5
5
12
8
1
5
12
8
1
5
12
8
1
6
6
10
8
9
2
12
7
3
5
4
11
1
7
7
10
5
9
11
12
6
3
8
4
2
1
8
8
12
5
1
8
12
5
1
8
12
5
1
1
9
9
3
1
9
3
1
9
3
1
9
3
10
10
9
12
3
4
1
10
9
12
3
4
1
11
11
4
5
3
7
12
2
9
8
10
6
1
12
12
1
12
1
12
1
12
1
12
1
12
1
Criptografia e Segurança das Comunicações
Álgebra abstracta : 7/29
Grupos (6)
Curiosidade, não faz parte da avaliação
•
A determinação de 0<a<p ser raíz primitiva por “força
bruta” é impraticável para p elevado.
1. Pelo pequeno teorema de Fermat, ap-1=1 mod p.
2. Factorizar p-1=p1n. p2m . . . Piz
3. a é raíz primitiva se para todos os partes de factore pi,pj,
api*pj≠1 mod p
Ex: 2 é raíz primitiva de 30491?
– 30490 = 2.5.3049
– 22*5≠1 mod 30491, 22*3049≠1 mod 30491, 25*3049≠1 mod 30491
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 8/29
Aneis (1)
[Def]: Um anel (”ring”) é um quíntuplo (R,1, -1, +,*) em que
(R,1,-1,+) é um grupo abeliano e * satisfaz 3 axiomas:
[M1] A operação * é fechada, i.e., para todos a,b∈G tem-se a*b ∈G
[M2] A operação * é associativa, i.e., a*(b*c) = (a*b)*c para todos a,b,c∈R
[M3] A operação * é distributiva sobre +, i.e., a*(b+c) = (a*b)+(a*c) para
todos a,b,c∈R
Ex: O conjunto M={0,1,…,M-1} forma um anel de inteiros
módulo M com identidade 0 e operadores -1, +,* módulo
M.
Nota: nos aneis a soma, subtracção e multiplicação são feitas
dentro do portador.
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 9/29
Aneis (2)
[Def]: O anel é comutativo se for satisfeito o axioma
[M4] A operação * é comutativa, i.e., a*b = b*a para todos a,b∈R
[Def]: Um domínio integral -”integral domain” é um anel
comutativo (R,+,*) que satisfaz 2 axiomas:
[M5] Existem elemento identidade 1∈R≠0, tal que a*1 = 1*a = a para todos
a∈R
[M6] Se a*b =0, então a=0 ou b=0 para todos a,b,c∈R
Ex1: (,+,*) é um exemplo de um domínio integral.
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 10/29
Corpos (1)
[Def]: Um corpo-”field” é séptuplo (F,0,1,-,-1,+,*) em que:
– (F, 0, -, +) é um grupo abeliano
– (F\{0}, 1, -1, *) é um grupo abeliano
Os grupos devem satisfazer os axiomas A1-M6, e
[F1] para todos a≠0∈F, existe a-1 ∈F tal que a*a-1= 1
A divisão, /: F × F → F é definida por a/b = a*(b)-1
Exemplos de corpos: , Nota: nos corpos a soma, subtracção, multiplicação e divisão
são feitas dentro do portador.
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 11/29
Corpos (2)
Teorema: Para cada pn, p primo, existe um único corpo finito
de dimensão p (a menos de um isomorfismo1),
denominado corpo Galois, GF.
• Definição: A característica de um corpo finito, char(F), é
o menor inteiro ν>0 tal que 1+1+…+1 (ν vezes)=0.
Se não existir o inteiro ν, então char(F)=0.
Exemplos:
– A característica do corpo Galois GF(νn) é ν
– A característica de Q é 0
1 função
bijectiva entre duas estruturas algébricas, que preserva propriedades (elementos
identidade e inverso, operações binárias)
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 12/29
Corpos (3)
Corpo
Anel
Grupo
+,0
*
1
/
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 13/29
Corpos (4)
3*2=6 mod 5=1
3*3-1=1
Exemplos de +,* em GF
GF(5)
GF(2)
+ 0 1
0 0 1
1 1 0
+
0
1
2
3
4
* 0 1
0 0 0
1 0 1
GF(3)
+
0
1
2
0
0
1
2
1
1
2
0
2
2
0
1
Prof RG Crespo
*
0
1
2
0
0
0
0
1
0
1
2
2
0
2
1
0
0
1
2
3
4
1
1
2
3
4
0
2
2
3
4
0
1
3
3
4
0
1
2
4
4
0
1
2
3
*
0
1
2
3
4
0
0
0
0
0
0
1
0
1
2
3
4
2
0
2
4
1
3
3
0
3
1
4
2
4
0
4
3
2
1
Nota: não existem corpos GF(4),
GF(8),… Sendo gcd(2,2m)=2≠1,
nem todos os elementos Z2m
possuem inverso multiplicativo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 14/29
Corpos (5)
• No corpo GF(νm), n>1, uma possível representação dos
membros é {0,…, ν−1}{0,…, ν−1}… {0,…, ν−1}
(m dígitos).
– Soma feita apenas dentro de cada posição, módulo ν.
– Produto feito matricialmente, módulo polinómio primitivo gerador
de GF(νm)
Exemplo GF(22)
• 10+11 = (1+1)mod2(0+1)mod 2 = 01
+
00
01
10
11
00
00
01
10
11
01
01
00
11
10
Prof RG Crespo
10
10
11
00
01
11
11
10
01
00
+
0
1
2
3
0
0
1
2
3
1
1
0
3
2
2
2
3
0
1
Alterados membros (até
podiam ser 0,1,A,B)
3
3
2
1
0
*
00
01
10
11
Criptografia e Segurança das Comunicações
00
00
00
00
00
01
00
01
10
11
10
00
10
11
01
11
00
11
01
10
Álgebra abstracta : 15/29
Corpos (6)
– Qual o resultado de 2*2 em GF(22)? O polinómio primitivo gerador de
GF(22) é x2+x+1.
2*2 = x*x = x2. Como x2 = (x2+x+1)*1+(x+1), tem-se 2*2=3 em GF(22)
dividendo
divisor
resto
quociente
Representação polinomial
– Qual o resultado de 3*3 em GF(22)?
3*3 = (x+1)*(x+1)=(x2+2x+1) mod 2 = x2+1.
Como x2+1 = (x2+x+1)*1+(x), tem-se 3*3=2
Nota: Cifra AES usa aritmética no corpo GF(28), com polinómio
primitivo x8+x4+x3+x+1
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 16/29
Polinómios (1)
[Def]: Um polinómio de um indeterminado x sobre um anel
Ré uma expressão na forma
f(x) = anxn + ... + a2x2 + a1x1 + a0
em que ai∈R, n≥0
– ai xi é designado termo, sendo ai o coeficiente.
– Um polinómio com dois termos é designado binómio e com três
termos trinómio.
– O maior m, para o qual am ≠ 0 é designado grau do polinómio
(inteiro qualquer).
Nota: o indeterminado x não é membro de R, nem x2, x3, ...
x é apenas "marcador" de adição e de multiplicação.
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 17/29
Polinómios (2)
Um polinómio pode ser representado vectorialmente pelos
seus (coeficientes) ou [expoentes de coeficientes não
nulos].
Exemplo: x2+1=(1,0,1)=[2,0]
Teorema: O conjunto de todos os polinómios de grau até m-1
(inclusivé), sobre p, é um isomorfismo de GF(pm).
Exemplo: Para 2, o número de polinómios de grau até 2 é
igual a 23=8. Os polinómios são:
– (0,0,0) = 0, (0,0,1) = 1
– (0,1,0) = x, (0,1,1) = x+1
– (1,0,0) = x2, (1,0,1) = x2+1, (1,1,0) = x2+x , (1,1,1) = x2+x+1
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 18/29
Polinómios (3)
A. Soma de polinómios
Basta simplesmente somar os coeficientes, módulo Zp.
Ex: Sejam polinómios sobre Z2 f(x)=x3+x+1, g(x)=x2+x
f(x)+g(x) = (x3+x+1) + (x2+x) mod 2 =
(x3 + x2 + 2x + 1) mod 2 =
x 3 + x2 + 1
Nota: Em Z2, a soma e a subtracção são iguais
(frequentemente representadas por XOR - ⊕)
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 19/29
Polinómios (4)
B. Divisão de polinómios
Semelhante à divisão de inteiros
– Grau do termo do quociente: diferença entre grau do dividendo e
do divisor
– Subtrair ao dividendo, módulo Zp, produto do termo e divisor.
x5+x4
+x+1
x2+1
Divisor
x5
+x3
x3+x2+x+1
x4+x3
+x+1
Dividendo
x4
+x2
x3+x2+x+1
Quociente
-x3
-x
5
4
x +x +x+1=
+x2 +1
3
2
2
-x2 -1
(x +x +x+1)*(x +1) +0
0
Prof RG Crespo
Criptografia e Segurança das Comunicações
Resto
Álgebra abstracta : 20/29
Polinómios (5)
• Multiplicar algebricamente dois polinómios de grau n,m resulta num
polinómio de grau n+m.
• Problema: a multiplicação de dois polinómios de GF(pm), deve
continuar a ser um polinómio de GF(pm). Solução: reduzir resultado
C.Produto de polinómios
Multiplicar os coeficientes, módulo Zp, e reduzir o
polinómio de outro primitivo de grau m+1.
Ex: x*(x+1) = 1 em GF(22)
x2+x
x2+x+
1
Prof RG Crespo
x2+x+1
1
Definição mais à frente
Criptografia e Segurança das Comunicações
Álgebra abstracta : 21/29
Polinómios (6)
Curiosidade, não faz parte da avaliação
• A multiplicação em AES é mais eficiente
– x8 mod (x8+x4+x3+x+1) = x4+x3+x+1
– xtime(P): Multiplicar polinómio P por x
1. Incrementar potência de todos os termos de P
2. Se existir um termo x8, retirá-lo e adicionar x4+x3+x+1
Exemplo: com P=x6+x4+x2+x+1=[6,4,2,1,0], pretende-se
calcular P*x, P*x2, P*x4 e P*x8
–
–
–
–
xtime([6,4,2,1,0]) = [7,5,3,2,1]
xtime([7,5,3,2,1])=[8,6,4,3,2]=[6,4,3,2]+[4,3,1,0] = [6,2,1,0]
xtime([6,2,1,0]) = [7,3,2,1]
xtime([7,3,2,1])=[8,4,3,2]=[4,3,2] +[4,3,1,0] = [2,1,0]
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 22/29
Polinómios (7)
Curiosidade, não faz parte da avaliação
– Multiplicação de dois polinómios P*Q
1. Calcular P*x, P*x2, P*x4 e P*x8
2. Somar todos os P*xi, com i potências do polinómio Q
Exemplo: Calcular produto P=[6,4,2,1,0] e Q=[4,1,0]
[6,4,2,1,0]*[4,1,0] =
[6,4,2,1,0]*x4 + [6,4,2,1,0]*x + [6,4,2,1,0] =
[7,3,2,1] + [7,5,3,2,1] + [6,4,2,1,0] =
[7,3,2,1] + [7,6,5,4,3,0]=
[6,5,4,2,1,0]
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 23/29
Polinómios (8)
Definição: um polinómio é irredutível, sse não puder ser
factorizado módulo ZM noutros polinómios de grau ≥1.
Ex:
[2,1,0] é irredutível
[2,0] não é irredutível:
(x+1)(x+1) = x2 + 2x + 1 ≡ x2 + 1 mod 2
Grau
Polinómios irredutíveis
1
[1,0], [1]
2
[2,1,0]
3
[3,1,0]
4
[4,3,2,1,0], [4,1,0]
5
[5,4,2,1,0], [5,4,3,2,0],[5,2,0]
Prof RG Crespo
Nota: outros polinómios são
determinados a partir destes
Trinómio m=3, k=1
Trinómio m=4, k=1
Trinómio m=5, k=2
Criptografia e Segurança das Comunicações
Álgebra abstracta : 24/29
Polinómios (9)
• Se um polinómio de grau m não for irredutível, então é
produto de dois polinómios de graus a,b tal que m=a+b.
Logo, para verificar basta confirmar se é divisível por
polinómios irredutíveis até grau m/2
Exemplo: x6+x2+1 é irredutível?
–
–
–
–
x6+x2+1= (x).(x5) + (x2+1)
x6+x2+1= (x+1).(x5+x4+x3+x2) + (1)
x6+x2+1= (x2+x+1).(x4+x3+x) + (1+x)
x6+x2+1= (x3+x+1).(x3+x+1) + (0)
Falhou!
Falhou!
Falhou!
Acertou!!
Logo, x6+x2+1 não é irredutível!!
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 25/29
Polinómios (10)
Curiosidade, não faz parte da avaliação
Teoremas:
– Se um trinómio xm+xk+1, 1<k<m, é primitivo sobre Z2,
então xm+xm-k+1 também é.
Ex: [3,1,0] é primitivo, logo [3,3-1,0]=[3,2,0] também é.
– Se [a,b,c,d,0] é primitivo sobre Z2, então [a,a-d,a-c,ab,0] também é primitivo.
Ex: [32,7,6,2,0] é polinómio primitivo, logo [32,32-2,32-6,32-7,0]
= [32,30,26,25,0] também é primitivo.
Nota: O trinómio irredutível de maior grau conhecido, identificado em
Agosto 2002, é o Bibury x6_972_593 + x3_037_958 + 1
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 26/29
Polinómios (11)
[Def]: um polinómio f(x)∈GF(q) irredutível de grau m é
primitivo, se só divide xn-1 para n=qm-1.
Os polinómios primitivos são os que geram as sequências
de periodos mais longos.
Ex: x3+x+1 é primitivo.
x3+x+1
x7-1
7
5
4
x +x +x
x4+x2+x+1
x5+x4+1
x5+x3+x2
x4+x3+x2+1
x4
+x2+x
x3+x+1
x3+x+1
0
Fazendo n=23-1=7
Prof RG Crespo
Criptografia e Segurança das Comunicações
Álgebra abstracta : 27/29
Polinómios (12)
• O polinómio f(x) primitivo é gerador de GF*(pm) =
{xi mod f(x)}
• Os elementos não nulos são calculados por xi mod f(x)
x3+x+1
x5
x5+x3+x2
x2+1
3
2
x +x
x3
+x+1
x2+x+1
i
xi mod (x3+x+1)
Vector
0
1
(0,0,1)
1
x
(0,1,0)
2
x2
(1,0,0)
3
x +1
(0,1,1)
4
x2 + x
(1,1,0)
5
x2 + x + 1
(1,1,1)
6
Prof RG Crespo
Criptografia e Segurança das Comunicações
x2
+1
(1,0,1)
Álgebra abstracta : 28/29
Polinómios (13)
Curiosidade, não faz parte da avaliação
• O número de polinómios primitivos de grau n é dado por
λ(n)=φ(2n-1)/n
n
λ(n)
n
λ(n)
n
λ(n)
Grau
1
1
9
48
17
7710
1
[1,0]
2
1
10
60
18
8064
2
[2,1,0]
3
2
11
176
19
27594
3
[3,1,0], [3,2,0]
4
2
12
144
20
24000
4
[4,3,0], [4,1,0]
5
6
13
630
21
84672
5
6
6
14
756
22
120032
[5,4,3,2,0], [5,4,3,1,0], [5,4,2,1,0],
[5,3,0], [5,3,2,1,0], [5,2,0]
7
18
15
1800
23
356960
8
16
16
2048
24
276480
Prof RG Crespo
Polinómios primitivos
Criptografia e Segurança das Comunicações
Álgebra abstracta : 29/29
Download