Criptografia, primeiros passos.

Olá Caríssimos.

Como havia falado em outro post, eu no decorrer dos meus estudos no mestrado irei discorrer sobre alguns temas interessantes aqui no blog, isto é, irei tentar proliferar conhecimento.

Falarei neste post sobre o introdutório do introdutório de criptografia, prefiro separar bem as coisas para deixar mais claro para os usuários, e para mim também, ou seja, a medida que for assimilando conhecimento vou postando minhas anotações e perspectivas sobre o assunto. Enjoy!

Introdução à CriptografiaO que é Criptografia?

O que é mesmo criptografia?

Recorrendo ao bom e velho Wikipedia:

Criptografia (Do Grego kryptós, “escondido”, e gráphein, “escrita”) é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário (detentor da “chave secreta”), o que a torna difícil de ser lida por alguém não autorizado. Assim sendo, só o receptor da mensagem pode ler a informação com facilidade. É um ramo da Matemática, parte da Criptologia [1].

É um ramo da Matemática!!! Isso pode assustar… é realmente assusta! A criptografia é então o estudo, do ramo da matemática e da Criptologia que visa o estudo de esquemas criptográficos em prol da segurança de mensagem, dados, INFORMAÇÃO!

Como menciona em seu livro, Introduction to Modern Cryptography, Jonathan Katz e Yehuda Lindell, por muitos anos a criptografia foi vista como uma arte. Foi só no final do século 20 que o quadro da criptografia mudou radicalmente. Um estudo aprofundado sobre o assunto começou a surgir a transformar a criptografia de arte para ciência!

Ao Estudo!

O estudo da criptografia começa pela introdução do conceito de Criptografia de Chave Privada, isto é, uma mensagem, a partir de um texto e uma chave (senha para deixar mais comum o termo)  um método é aplicado e a mensagem outrora legível se torna ilegível (lembra do nosso amigo Wikipedia).

Mas para que cifrar mensagem?

A informação é o bem mais valioso, já dizia meu tio Robert 4 anos atrás. Muitas pessoas querem se apossar desse bem a qualquer custo, utilizando em proveito próprio ou para fins destrutivos. Impedir que a mensagem caia em mãos erradas é um papel importante na computação, porém se ela cair, impedir que o bisbilhoteiro a decifre é papel da criptografia. Basicamente o cenário abordado aqui é o demonstrado na figura:

O que é um esquema criptográfico então?

Conceitualmente um esquema criptográfico é um conjunto de algoritmos que atuam sobre um conjunto de mensagens (textos ou outras formas de expressão) para formar um conjunto de mensagens cifradas ilegíveis a terceiros (Nosso Eve da figura).

O conjunto de algoritmos é formado por três elementos:

  1. Algoritmo de Geração de Chaves (ou senhas, como queiram) – que nada mais é do que um algoritmo probabilístico que tem como saída uma chave K escolhida de acordo com alguma distribuição determinada pelo esquema. Chamaremos esse algoritmo de Gen.
  2. Algoritmo de Encriptação – chamaremos esse algoritmo de Enc, tal algoritmo recebe como entrada a chave K e uma mensagem m e tem como saída uma mensagem cifrada c. Assim: Enck(m) = c.
  3. Algoritmo de Decriptação – este algoritmo, conhecido com Dec, recebe como entrada a mensagem cifrada c e de posse da chave K consegue obter a mensagem original m. Assim: Deck (Enck(m)) = m.

Baseado nessa teoria, construímos qualquer esquema criptográfico, escondemos a chave e o método e pronto, tudo resolvido, podemos cifrar o que quisermos e nunca seremos descobertos. Calma pequeno gafanhoto!

Temos um pequeno porém fabuloso princípio para estudar antes de abrir o notepad e começar a programar métodos e mais métodos de criptografia.

Princípio de Kerckhoffs

No final do século 19, Auguste Kerckhoffs deu sua opnião no melhor artigo publicado por ele sobre princípios para cifras militares.

Ele disse:

“The cipther method must not be required to be secret, and it must be able to fall into the hands of the enemy without inconvenience.”

Isto quer dizer algo como a segurança do método não poder requisito para segurança, pois ele pode cair nas mãos dos Auguste Kerckhoffsinimigos (lembra do ENIGMA não é?)

Então como garantir minha criptografia? Bom pequeno gafanhoto, nosso amigo Kerckhoffs nada mais queira do que indicar que reduzamos o escopo da segurança, focando na segurança da chave (não vou mais falar que o mesmo que senha não é?) assim garante-se que:

  • É mais fácil manter sigilo sobre uma chave do que sobre todo um método de encriptação;
  • Se a chave for descoberta, basta substituir a chave e não todo o método;
  • Pode-se usar o mesmo esquema de criptografia em diferentes situações sem perda de legitimidade e/ou eficiência.

Jonathan Katz e Yehuda Lindell em seu livro vão mais além, deixar o método público só tende a trazer mais vantagem para o esquema, listaram então as seguintes vantagens:

  • O método público pode ser estudado e testado por muitas e muitas pessoas tendo um valor acadêmico fantástico;
  • Com o estudo massivo, falhas podem ser encontras mais rapidamente e assim corrigidas;
  • Além do que focar na segurança da chave garante que, engenharia reversa pode até obter o método de criptografia, mas é incapaz de descobrir a chave (senha :D) utilizada para criptografa a mensagem

Por hoje é só, tenho uma lista de criptografia para resolver, assim que estudar um pouco mais posto no Lambdas. Enjoy!

Novos ares

Olá caríssimos!

Quanto tempo eu não posto aqui, é que minha vida deu uma virada legal nas últimas semanas. Vejam só, agora sou mestrando pela Universidade Federal do Pernambuco – UFPE, sob orientação do competentíssimo Ruy de Queiroz. Logo, estou em Recife, para aperfeiçoar e adquirir muito mais conhecimento.

A área que estou estudando é a Teoria da Computação aplicada a criptografia de dados. No decorrer dessa pós-graduação irei explicando melhor como tudo isso funciona além de tentar passar algo para todos.  Fatalmente eu me mudei para Pernambuco e devo passar aqui pelo menos um ano e meio, o que não me desliga da terrinha quentinha querida.

O que estou estudando no momento:

  1. Teoria Axiomática dos Conjuntos
  2. Fundamentos da Criptografia Moderna
  3. Internet e o Vale do Silício
  4. Tecnologia e Convivência

No “frigir” dos ovos eu devo estudar esquemas criptográficos para analisar suas fragilidades, e propor algo novo.  Estou muito otimista, livre de velhos vícios e preso a outros, mas tenho certeza que só tenho a crescer e acrescentar.

No próximo tópico irei falar da disciplina que tem me fascinado nos últimos dias: Fundamentos da Criptografia Moderna.

Nem vem, nem tem photoshop aí...

Enjoy!