Você está na página 1de 4

1

Universidade Tecnológica Federal do Paraná Dificuldade computacional: Os algoritmos precisam


Departamento de Eletrônica ser eficientes.
Disciplina: Teoria da Informação Busca exaustiva: tentativa de todas as chaves possíveis.
Professor: Dyson Pereira Junior Segredo perfeito: é quando mesmo depois de observar
um símbolo do texto cifrado, um criptoanalista não
CRIPTOGRAFIA E A CIÊNCIA DA COMPUTAÇÃO consegue melhorar seu conhecimento nem sobre o
símbolo seguinte do texto original.
1. A necessidade de sigilo, integridade e autenticação Qualquer sistema (exceto segredo perfeito) pode ser
quebrado (questão de tempo e custo).
À medida que redes de computadores se tornam Chaves longas: maior segurança.
mais disseminadas, a necessidade de se tornar os dados Custo computacional: No ciframento: O(n+1)
seguros e autênticos também aumenta. Mensagens e Na busca exaustiva: O(2n+1)
dados precisam ser protegidos de modo que somente Ferramentas da criptoanálise: hardware especial,
pessoas ou processos autorizados consigam utilizá-los; máquinas paralelas.
deve-se evitar alteração fraudulenta da informação, e
mesmo criação de informação falsa ou destruição de Ataques com busca exaustiva
informação correta. Por exemplo: aplicação de Velocidade do ciframento: 106 a 109 bits/s.
criptografia ocorre no caso de caixas automáticas Em 1995: a chave de 56 bits foi quebrada em 1 semana
(ATM), onde um usuário pode retirar dinheiro de sua com 120.000 processadores paralelos. (US$6,7M)
conta bancária; ocorre também no caso de Loteria chinesa: com máquinas que testam a uma taxa
compartilhamento de arquivos grandes em que certas de um milhão de chaves por segundo, necessita-se de
informações no arquivo não devem ser acessíveis a 64 segundos para quebrar o DES com um milhão dessas
parte dos usuários. máquinas rodando em paralelo.
Serviços de segurança:
Confidencialidade: confiança em que a mensagem A Figura 1 ilustra um sistema criptográfico
possa ser lida apenas pelo receptor desejado. típico, onde duas operações são utilizadas, a saber, as
Integridade: confiança em que a mensagem não tenha operações de ciframento e de deciframento. A operação
sido modificada desde o momento de sua criação. de deciframento deve ser inversa à de ciframento, de
Autenticação da origem: garantia sobre quem originou forma que o texto cifrado, em princípio ininteligível ao
a mensagem. espião, seja restaurado, no destino, à mensagem original.
Não-retratação: quem originou a mensagem não pode Um dos critérios de projeto de um sistema
negar de tê-lo feito. criptográfico é que deva permanecer seguro mesmo
Autenticação de atualidade: provar que a mensagem é quando os algoritmos de ciframento e de deciframento
atual, não se tratando de mensagens antigas reenviadas.sejam conhecidos. Por isso, usa-se chaves, aos pares,
uma delas a chave de ciframento, a outra de
2. Sistemas criptográficos deciframento, de modo que para se decifrar um texto
cifrado (com uma dada chave) deve-se usar a chave de
Criptologia: estudo dos processos criptográficos. deciframento correspondente à chave de ciframento
Formada por duas disciplinas - criptografia: como utilizada. Deve haver um grande número de chaves,
projetar e construir sistemas criptográficos. caso contrário um espião decifrará o texto,
Criptoanálise: como quebrar sistemas criptográficos. simplesmente aplicando o algoritmo com cada chave de
deciframento ao texto cifrado (com busca exaustiva).
a) Supõe-se que o criptoanalista conhece: o algoritmo Exemplo 1: Um tipo de ciframento, chamado
usado, a linguagem do texto original, o contexto dessa substituição monoalfabética, consiste em simplesmente
mensagem (através de algumas mensagens conhecidas). trocar uma letra por outra, de acordo com uma tabela
b) Formas de ataques aos algoritmos criptográficos: 1) dada. Note que a tabela é a chave de ciframento e que
com mensagem conhecida, 2) com mensagem escolhida, existem 26! ≈ 4 x 1026 chaves diferentes.
3) com texto cifrado escolhido e 4) apenas ao texto
cifrado.
c) Segurança do algoritmo criptográfico: no mínimo,
deve suportar os ataques com mensagens conhecidas.
2
Chave de ESPIÃO Chave de dita de texto conhecido. O criptoanalista pode ter ainda
ciframento deciframento
mais vantagem na disputa se puder escolher o texto a
Texto Cifrado ser cifrado, seja porque tem acesso ao dispositivo
Texto
Ciframento
Texto
Deciframento Original criptográfico mesmo sem conhecer a chave, seja porque
Original
Canal inseguro conseguiu induzir o adversário a cifrar uma
de comunicação determinada mensagem: neste caso a criptoanálise é
Figura 1: Um sistema criptográfico dita de texto escolhido.

3. Funções unidirecionais 4. Sistemas criptográficos simétricos e o DES

Funções de ciframento são exemplos típicos de Quando a chave de deciframento (Figura 1) é


funções unidirecionais, isto é, funções f que satisfazem igual à de ciframento, ela deve ser mantida em sigilo e
às seguintes propriedades: conhecida apenas pelo remetente e o destinatário. O
- É barato (em tempo, espaço e custo) calcular o valor mesmo acontece quando a chave de deciframento é uma
f(x) da função num ponto x dado. função computacionalmente viável da chave de
- É caro (em tempo, espaço e custo), dado v determinar ciframento. Dizemos então que o sistema é simétrico ou
um x tal que f(x) = v. de chave secreta.
Assim, podemos dizer que uma função é Uma função simetricamente é o DES, Data
unidirecional se for computacionalmente viável calculá- Encryption Standard. O DES foi aprovado pelo governo
la e computacionalmente inviável calcular a sua inversa. americano como padrão de ciframento governamental
Note que a unidirecionalidade pode ser intrínseca da para atividades não ligadas à segurança nacional. Sua
função ou depender do estado da arte científico e exploração está condicionada à autorização do governo
tecnológico: um cálculo pode ser intrinsecamente difícil americano.
de realizar ou então simplesmente não sabemos fazê-lo Vantagens: relativamente segura, amplamente utilizada,
rapidamente, com recursos razoáveis. rápida.
As funções unidirecionais podem ser com Desvantagens: chave secreta compartilhada, a chave
segredo ou sem segredo. Uma função unidirecional é deve ser guardada com segurança, tem um grande
com segredo se existe uma informação (o segredo) que número de chaves, a administração é complexa, e não
torna o cálculo da sua inversa viável; é sem segredo, permite a não-retratação.
caso contrário.
Há circunstancias em que mesmo uma função 5. Um exemplo de protocolo para distribuição de
unidirecional sem segredo é útil: um exemplo típico é chaves secretas (Diffie & Hellman)
na proteção de senhas (passwords). O arquivo de senhas
apresenta as senhas cifradas por uma função Quando se adota o método de chave secreta, é
unidirecional sem segredo (e de inviável deciframento; recomendável não usar por muito tempo a mesma chave.
quando o usuário inicia a sessão, fornece a senha, que é O ideal é que a cada nova sessão uma nova chave seja
então cifrada e comparada com a senha cifrada estabelecida, para aumentar a segurança do sistema. Isto,
armazenada: se forem iguais, o sistema aceita o usuário, porém cria um problema: como estabelecer a chave ao
caso contrário, o rejeita. Desta maneira, exige-se apenas inicio da sessão? Deve trafegar pelo mesmo meio
integridade do arquivo de senhas, não sendo mais inseguro que transporta as mensagens e, portanto,
necessário exigir controle de acesso ao arquivo. sujeito a escuta. Enviá-la cifrada? Com que chave?
Ao selecionar uma função unidirecional como Este problema tem várias soluções.
função de ciframento, o projetista deve supor que: A função unidirecional a ser utilizada é a
1) O algoritmo de ciframento seja de domínio público. exponencial módulo um número, isto é, dados inteiros a,
2) O espião, através de escuta, tenha acesso ao texto x, e n, seja:
cifrado. f ( x ) = a x mod n. ( n > 0, x ≥ 0 )
Diz-se então que a criptoanálise, a atividade do Assim, f ( x ) é o resto da divisão de ax por n. O
espião, é de texto cifrado conhecido. O criptoanalista
pode ter também alguma informação sobre o texto e cálculo desta função é viável; de fato, o tempo de
conhecer inclusive parte deste, o que obviamente lhe dá execução é proporcional ao número de bits na
uma vantagem adicional: nesse caso a criptoanálise é representação binária de x.
3
Determinar x dados a, n e a mod n é x A envia mensagem a B: PB(m)
computacionalmente inviável. Assim, a função B decifra a mensagem envida por A:
exponencial módulo é unidirecional. m’ = SB(PB(m))

f ( x ) = a x mod p
x y Chave
B PB
Chave
Usuário A Usuário B
pública PB secreta SB
f ( y ) = a y mod p Lista de chaves
públicas
x
k = f ( y ) mod p k = f ( x ) y mod p m m'
Ciframento Deciframento
Figura 2: Um protocolo para estabelecimento de chave
secreta. Usuário A PB( m ) Usuário B

Figura 3: Um sistema criptográfico assimétrico.


Para iniciar o estabelecimento da chave:
1) A gera ao acaso um expoente x no intervalo [1, p-1] Um exemplo de sistema de chave pública é o
e B gera outro y. RSA (Rivest, Shamir e Adleman) e se baseia na
2) Com o algoritmo, A calcula rapidamente f ( x ) e B, intratabilidade da fatoração de produtos de dois
f ( y ). números primos.
3) A envia a B, pela rede, f ( x ) e B envia f ( y ) a A. Um usuário B, para determinar o seu par (PB,
SB), procede assim:
4) De posse de y e f ( x ) , B calcula k, usando o
1- Escolhe ao acaso dois primos grandes p e q, de
algoritmo expmod. ordem 10100.
k = [ f ( x )] y mod p = ( a x mod p ) y mod p 2- Calcula facilmente o produto n = p.q da ordem 10200
k = a x . y mod p = k e o número φ(n) = (p-1).(q-1).
5) De posse de x e f ( y ) , A calcula k, usando o 3- Escolhe ao acaso um número c relativamente primo
algoritmo expmod. com φ(n) e determina d tal que c.d (mod φ(n)) = 1.
4- Publica a chave pública PB = (c.n).
k = [ f ( y )] x mod p = ( a y mod p )x mod p
k = a x . y mod p = k Um usuário A, para enviar uma mensagem a B,
A e B chegam a um mesmo valor de k: no caso em blocos e a codifica de forma que cada bloco seja um
DES, a chave é k mod 256 (os 56 bits menos número m no intervalo 0 ≤ m < n. Para cifrar m,
significativos). determina PB(m) = mc mod n, usando o algoritmo
expmod.
O espião bem informado conhece a e p, através Para decifrar PB(m), B determina: m’ =
d
de escuta, determina f(x) e f(y). Assim, ele conhece a, p, ( PB ( m)) mod n usando expmod novamente: m’ =
c d
a mod p e a mod p . Para determinar k precisa (m modcd) mod n.
x y

calcular uma função intratável. m’ = m mod φ(n) mod n = m mod n = m’


Interessante é que B é capaz de calcular k, mas Então, B publica apenas c e n, mantendo secretos p, q,
não é capaz de determinar x. Analogamente, A calcula k, φ(n) e d.
mas não consegue determinar y. Um exemplo com números pequenos:
p = 7 , q = 13, n = 91, φ(n) = 72, c = 5, 145 = 1+2x72
No entanto, k = a x . y mod p é uma função
expmod, unidirecional sem segredo, permite a A e B para m = 10, então: PB(10) = 105 mod 91 = 82
trocarem uma chave secreta utilizando a própria rede. SB(82) = 8229 mod 91 = 10
6. Sistemas criptográficos assimétricos e o RSA Criptoanálise: Ainda não se conhece um algoritmo
eficiente para fatorar. Na faixa de valores de n, da
A chave de deciframento (secreta) é uma função ordem de 10200, o algoritmo mais eficiente conhecido
computacionalmente intratável da chave de ciframento (Schroeppel), leva mais de 109 anos, com 1µs por
(pública). É 100 vezes mais lento que o DES. operação aritmética.
4
Parece que com os enfoques até agora adotados Criptoanálise: As freqüências relativas das letras
não foi possível quebrar o RSA. Deve-se tomar algumas permanecem no texto cifrado.
precauções sugeridas pelos autores do RSA: 2) Substituições: Cada letra do texto original é
1) Os números p e q devem diferir em alguns bits no substituída por outra.
comprimento (senão, p e q ficarão muito próximos de 3) Ciframentos compostos: são composições de
n. transposição e substituição.
2) Os números p-1 e q-1 devem conter fatores primos
grandes. - Sistemas clássicos, alguns exemplos: Ciframento de
3) O mdc(p-1,q-1) deve ser pequeno. Vigenère (alfabeto de 26 letras).
A segurança do RSA depende da intratabilidade A chave é um vetor com n coordenadas no
do problema de fatoração. intervalo 0 ≤ x < 26: k = (k0, k1,...,kn-1). Numera-se as
letras do texto t0, t1, t2,...,tl. O ciframento é por
7. Um exemplo de assinatura digital em sistemas substituição de cada letra ti pela letra ci, onde:
simétricos comutativos ci = (ti + ki mod n) mod 26.
Assim, a primeira letra é deslocada de k0
No RSA, SB(PB(m)) = mcd mod n = PB(SB(m)), posições no alfabeto, a segunda letra é deslocada de k1
o que significa que PB e SB comutam. É possível posições, a n-ésima letra é de kn-1 posições, a (n + 1)-
decifrar uma mensagem e depois cifrar o resultado, ésima é de k0 posições, e assim por diante.
obtendo a mensagem original, com isso, admite uma Criptoanálise: é fácil quando o tamanho da chave é
assinatura digital natural. muito menor que o do texto.
B deseja enviar a A, uma mensagem m assinada
SB(m). Qualquer usuário pode recuperar m’ = 9. Funções de autenticação
PB(SB(m)), certificando-se de que B enviou m. Esse
sistema exige um compromisso entre sigilo e Três classes de autenticadores:
autenticação. - Ciframento de mensagens: a mensagem cifrada serve
A autoria de m pode ser verificada cifrando como autenticador.
SB(m) com PB, pois somente B pode determinar SB(m), - Código de autenticação de mensagem (MAC): é uma
a partir de m, e PB é pública. função da mensagem e de uma chave secreta que
Para garantir sigilo: B envia PA(SB(m)) a A. A produz um valor de comprimento fixo.
decifra PA(SB(m)) aplicando AS e depois PB - Função hash (de condensação): é uma função que
recuperando m’. mapeia uma mensagem de qualquer comprimento em
um valor resumo de tamanho fixo. São funções
unidirecionais d = h(m), mas não é tratável m = h-1(d).
A PA
Chave secreta
Chave Chave pública PB de B Levam mensagens de tamanho arbitrário em
SB de B
Pública
PA de A
B PB
Chave secreta
resumos (hash) de tamanho fixo.
SA de A Funções hash têm como premissa: 1) Evitar que
Lista de chaves
m SB(m) públicas SB(m) Reconhec. m’ se encontre a mensagem dado o resumo; 2) Evitar que
Assina- Cifra- Decifra-
tura mento mento
de assina-
tura se encontre m1, m2 tal que d1 = d2; 3) Dado m1, evitar
PA(SB(m))
que se encontre m2 com o mesmo resumo.
Usuário B Usuário A
Exemplos: MD2, MD4, MD5, SHA-1, etc.
Figura 4: Assinatura digital em um sistema assimétrico
comutativo.

8. Algoritmos simétricos

- Transposições e substituições, existem três tipos:


1) Transposições: Embaralham as letras (bits) do texto,
de acordo com um padrão.
Exemplo: o texto é dividido em blocos de sete letras, e
cada grupo de letras é embaralhado de acordo com uma
permutação: 4-1-3-6-7-2-5.

Você também pode gostar