Buscar

Criptografia e Certificação Digital

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Inspire-se (Vídeo) - Introdução a Criptografia ->
Apresentador: Diego Escobar - Especialista em Sistemas
Comentários do apresentador e algumas pesquisas relacionadas em cima do tema abordado na entrevista:
Resumidamente, o que é a criptografia e qual a sua função?
Criptografia é a prática de codificar e decodificar dados; quando os dados são criptografados, é aplicado um algoritmo para codificá-los de modo que eles não tenham mais o formato original e, portanto, não possam ser lidos. Os dados só podem ser decodificados ao formato original com o uso de uma chave de decriptografia específica.
As técnicas de codificação constituem uma parte importante da segurança dos dados, pois protegem informações confidenciais de ameaças que incluem exploração por malware e acesso não autorizado por terceiros. A criptografia de dados é uma solução de segurança versátil: pode ser aplicada a um dado específico (como uma senha) ou, mais amplamente, a todos os dados de um arquivo, ou ainda a todos os dados contidos na mídia de armazenamento.
A criptografia tem dois propósitos principais: impedir que dados armazenados sejam lidos e permitir que dados sejam transmitidos de forma segura por um canal inseguro. Isso significa manter a confidencialidade, integridade e identidade desses dados. Então, resumindo, ela consiste em codificar uma informação de forma que ela seja compreensível apenas para aqueles que devem ter acesso à ela. E isso é feito através de um segredo: toda criptografia envolve algum tipo de segredo e espera-se que apenas quem tiver acesso a ele seja capaz de entender aquela informação.
Quais os riscos os usuários estão sujeitos quando dados pessoais e outras informações trafegam pela internet?
Em geral, os riscos eles são muito retirados pela operadora que está te fornecendo aquele serviço em questão, vamo dizer que seja um e-commerce ou mesmo um acesso ao e-mail aonde você precisa necessariamente mandar dados e receber uma resposta sobre aquilo. Quem ta fazendo esse serviço vai prover todo maquinário, toda a programação lógica por traz de defender os seus dados o mais fácil seria alguém entrar entre você e o site que você está tentando acessar, um hacker ou algo do gênero que vai então entrar entre você e a conexão; fora isso, a segurança é muito grande, os dados são todos criptografados. Por exemplo: eu quero criar um email na "Hotmail" para poder acessar e usar, quando você coloca a sua senha o hotmail não sabe a sua senha do lado de lá, ele tem a criptografia da sua senha e isso é o que é trafegado; no momento que você vai acessar o seu email, você tem que confirmar a sua senha e ao fazer isso a sua senha é criptografada novamente dai ele compara as duas criptografias, legal, elas são válidas? Se sim, a senha está correta e ele direciona para entrar no hotmail, caso sejam diferentes ele vai alertar que as senhas não combinam e não vai liberar o acesso enquanto não acertar. Além disso, só se alguém entrar entre a sua conexão, muito dificilmente eles vão receber esses dados depois de criptografados e quebrar eles pra poder acessar mesmo que seja uma conversa boba. WhatsApp poder exemplo tem uma configuração que é feita entre as duas pessoas/as duas contas que estão fazendo essa conversa, por isso se chama criptografia de ponta a ponta, então quando ele sai de um aparelho ele sai criptgrafado aonde o outro aparelho vai ter a chave que descriptografa a mensagem que está sendo enviada, fora isso é praticamente impossível você quebrar, pois exigiria muito tempo o que e vida se torna inviável; com as máquinas e computadores de hoje só a NASA consegueria tentar hackear, justamente por ser uma das únicas que possui tal poder computacional, o AMAZON também tem esse poder computacional para conseguir acessar a conta de quem quiser, claro que isso seria algo considerado fora da lei; mas que eles tem esse poder, tem.. Pessoas normais não conseguiriam fazer.
Como proteger as informações em um ambiente tão livre quanto a internet?
A maneira de você proteger basicamente é quem está utilizando saber o que de fato está utilizando, como assim? Você não vai fazer uma compra de qualquer coisa que seja em um site/fonte desconhecida, você geralmente vai atrás de alguma fonte já conhecida, ou que você já possui certa confiança, eles através do nome e do prestígio que tem vão conseguir garantir pra você confiança e meios de recorrer de forma segura e honesta, então, em geral é só você não buscar pelo mais barato por que nem sempre vai ser de confiança "O mais barato pode sair mais caro". Então, é uma questão de busca e de não aceitar qualquer coisa que você encontrar na internet, por ser um ambiente livre, tem muita gente tentando ganhar dinheiro de maneira injusta e errada com esse ambiente, então quem vai fazer a compra tem que estar a atento e tomar cuidado.
Além dos usuários, as empresas que realizam negócios pela internet também estão sujeitas a riscos?
Vai funcionar da mesma maneira da pergunta anterior, quem vai garantir sua segurança é o banco, por exemplo, eu quero fazer um acesso ao banco do brasil, então esse banco me sede um aplicativo para que eu possa fazer esse acesso através do meu celular; a gente viu aqui principalmente no Brasil, esse último boom que teve ai de invasão de celular de pessoas influentes e tudo mais, tem muitos problemas em relação a isso mas a gente vê que o problema principal é em relação ao aplicativo, nesse caso da invasão foi um problema no aplicativo que apresentou uma vulnerabilidade que gerou essa brecha pra invasão, o que se torna culpa de quem desenvolvou o aplicativo. Então no caso se o banco do brasil falhar, vai ser por um aplicativo dele, com a segurança que ele ta te cedendo pelo serviço que ele ta te oferecendo.
Em um caso de um incidente de segurança em um site de e-commerce, por exemplo, qual o impacto para a empresa?
De uma maneira simples, pode acontecer um e-commerce dele perder seus dados, um hacker invadir a empresa e roubar aquele bloco de dados e deletar o que eles tinham na empresa e ai pedir um suborno, "olha, sequestrei os seus dados e eu quero uma quantia x pela recuperação dos seus dados", se pra empresa aquilo é muito importante e vale aquele custo, geralmente quem vai roubar sabe o que ta roubando e sabe que vale o preço que estão pedindo, e as empresas costumam por causa disso pagar para recurar e tem um + isso não vai pra mídia, imagina se eu consigo um hacker invadir o banco do brasil e roubar qualquer quantia lá de dentro, você acha que o banco vai ligar pro jornal e falar "olha, me roubaram aqui, invadiram meu banco", claro que não, a primeira coisa que acontece é que as ações dele vão cair; as pessoas vão migrar e sair dali pois se não é seguro eu não vou manter meu dinheiro lá dentro.
 
-----------------------------------------------------------x--------------------------
Tópico 1 ->
Introdução:
A Internet possibilitou uma grande transformação na vida pessoal e nos negócios. Hoje, é possível adquirir produtos e recebê-los em casa pelo correio, relacionar-se com pessoas sem nunca ter estado fisicamente com elas, participar de reuniões on-line, trabalhar remotamente, fazer um curso universitário etc. Assim, a Internet passa a ter um papel vital no ambiente empresarial e pessoal, ao ponto que um problema em um site ou serviço pode gerar grandes prejuízos. Entretanto, originariamente, essa não foi projetada para o tráfego de informações críticas, como senhas e números de cartões de crédito. Isso gera um grande risco para os usuários. Como alternativa para a proteção dessas informações, as técnicas de criptografia e seus algoritmos passam a ser utilizadas para garantir o tráfego seguro das informações. O objetivo desta unidade é o de apresentar os conceitos básicos relacionados à criptografia, histórico de evolução e os algoritmos de criptografia simétrica.
-----------------------------------------------------------x--------------------------
Tópico 2 ->
Introdução à Criptografia:
A popularização
da Internet, sua importância nas atividades pessoais e profissionais e a popularização dos dispositivos móveis (principalmente os celulares) e computadores criaram uma sociedade na qual as pessoas estão conectadas à Internet 24 horas por dia. 
Os dispositivos conectados à rede mundial armazenam diversas informações críticas (sigilosas) tanto pessoais quanto profissionais (como senhas bancárias, número de cartões de crédito, senha do e-mail corporativo, projetos de novos produtos etc.). 
Para que a comunicação na Internet aconteça, o computador ou o celular deve ser capaz de acessar outros computadores na Internet e também ser acessado por esses. Essa comunicação e exposição constante à rede possibilitam o acesso e a captura de informações confidenciais. Falhas de segurança em sistemas operacionais podem permitir o acesso não autorizado a computadores e, consequentemente, aos arquivos armazenados nesses.
Vírus de computador podem destruir ou roubar arquivos ou roubar. Além disso, a própria transmissão de informações pela Internet é passível de ser capturada. Conforme as informações trafegam de computador a computador, essas podem ser capturadas pelos próprios computadores que retransmitem as informações, pois a Internet originalmente não foi projetada para prover a segurança das informações trafegada por essa. 
Nesse contexto, a criptografia é uma ferramenta de segurança que possibilita a proteção dos dados armazenados em um computador, mesmo que esse sofra um ataque que possibilite o acesso não autorizado de um invasor. 
A criptografia também possibilita a proteção das informações trafegadas pela rede. Essa proteção é feita codificando a informação de tal forma que essa se torne ilegível para aqueles que não conhecem a técnica usada e o código empregado na criptografia da informação.
Conceitos Básicos:
Critptografar é o ato de alterar uma mensagem para esconder o significado dela. Baseando-se nessa ideia e na necessidade de prover confidencialidade a informações, foram desenvolvidos os algoritmos de criptografia. Um algoritmo criptográfico é uma função matemática utilizada para codificar e decodificar um determinado dado.
Link para o print da figura 1.1:
> https://imgur.com/HGQRCdZ
Os primeiros algoritmos de criptografia desenvolvidos aplicavam uma função matemática, repetidamente, a um dado para cifrá-lo (por exemplo, permutação das colunas de um texto). Essa técnica não era muito robusta, pois, a partir do momento em que se descobrisse como o algoritmo criptográfico funcionava, era possível decifrar todas as mensagens criptografadas por esse. 
Descobrir como o algoritmo funcionava não era muito difícil, pois esses algoritmos, para um mesmo dado de entrada, iriam sempre gerar o mesmo resultado. Para tornar os algoritmos de criptografia mais robustos, criou-se o conceito de chave criptográfica. Uma chave criptográfica é um texto que funciona como uma senha para o algoritmo criptográfico. Essa chave é introduzida junto com o dado a ser criptografado durante a execução do algoritmo criptográfico.
 Para cada chave diferente utilizada, sob um mesmo dado a ser criptografado, o algoritmo criptográfico irá fornecer um resultado diferente. Além disso, no momento de decifrar um texto criptografado, é necessário conhecer a chave que foi utilizada para criptografar o dado. Se essa não for conhecida ou for usada uma chave diferente da utilizada para criptografar, não será possível decifrar corretamente o dado.
 A chave evolui conforme a evolução dos algoritmos de criptografia. Essa passa de uma combinação simples de posição de rotores, usadas em máquinas de rotação – como será visto à frente no texto, para chaves de centenas de bits nas implementações computacionais desses algoritmos. O aumento do tamanho da chave torna os algoritmos mais seguros contra-ataques de força bruta. 
 Nesses, o hacker precisaria testar todas as combinações possíveis de chave para obter a chave correta e decifrar um texto. Se uma chave possui tamanho de n bits, existem 2n combinações de chaves. Por exemplo, para n=128, existem 3,4∗1028 chaves diferentes. Mesmo para um computador com grande poder de processamento, um ataque de força bruta para universo de chaves é impraticável devido ao tempo que é necessário para gerar e testar todas as possíveis chaves.
 Link para o print da figura 1.2:
 > https://imgur.com/OAFi29E
 Para compreender os conceitos relacionados à criptografia, é necessário um entendimento dos principais termos.
 Link para o print do quadro 1.1:
 > https://imgur.com/Frm4iy9
 O Quadro 1.1 apresenta um resumo dos principais termos e sinônimos relacionados à criptografia.
Vamos Praticar:
Considerando o conceito de criptografia e da aplicação no contexto à proteção das informações, assinale, dentre as alternativas indicadas a seguir, a única que identifica corretamente o termo criptografia:
a) Técnica que permite a compactação de grande quantidade de dados.
b) Algoritmo utilizado para a transferência de dados entre dispositivos.
c) Linguagem de programação utilizada para processamento de arquivos.
d) Técnica utilizada para codificar mensagens privadas visando inibir o acesso não autorizado.
e) Tipo de dado desenvolvido por um programador para representar o domínio de um problema.
Resposta: D ✔
Link para o print da resposta correta:
> https://imgur.com/vTV6ZmF
-----------------------------------------------------------x--------------------------
Tópico 3 ->
Algoritmos Clássicos:
A necessidade de se proteger informações contra o acesso não autorizado é antiga. Essa remonta ao início da civilização, antes mesmo da existência dos computadores. Nessa época, utilizavam-se técnicas simples de criptografia, como substituição ou permutação de caracteres para cifrar a mensagem, para que os generais pudessem se comunicar com as tropas no campo de batalha. Essas técnicas, apesar de simples, influenciaram o desenvolvimento dos primeiros algoritmos de criptografia, como o ROT13, cuja implementação está disponível em sistemas Unix, que aplica técnicas de substituição para codificar um texto.
Assim, os algoritmos clássicos utilizam técnicas simples para realizar a criptografia. Essas técnicas podem ser aplicadas sem a necessidade de recursos computacionais, mas atualmente são facilmente decifráveis devido ao advento dos computadores e seu alto poder de processamento. Assim, em poucos segundos ou minutos, é possível testar todas as combinações de substituições ou trocas em um texto cifrado e obter o texto original. Tal ação seria impraticável se fosse realizada manualmente.
As seguintes técnicas são utilizadas por esses algoritmos:
a) Substituição: técnica em que cada letra do texto claro é substituída por outra letra, por exemplo do alfabeto, ou por um símbolo.
b) Transposição: técnica em que o texto claro é reorganizado por meio de permutações de partes do texto original.
O exemplo mais conhecido da técnica de substituição é a cifra de César, que será estudada na próxima seção.
Em relação à cifra de transposição, um exemplo de aplicação dessa é a escrita do texto claro em uma matriz quadrada (4 linhas por 4 colunas) linha por linha e ler a mensagem coluna por coluna permutando a ordem das colunas. Por exemplo, considere a seguinte mensagem que se deseja criptografar: “senha do cartão: 5089”. O primeiro passo da aplicação da técnica consiste em escrever o texto claro no formato de uma matriz 4x4 sem os espaços.
Link para o print do quadro 1.2 (Técnica Criptografia por Transposição):
> https://imgur.com/XdZyEgv
Para realizar a criptografia utilizando essa técnica, escolhe-se uma sequência de colunas como 1,3,2,4. No próximo passo, o texto cifrado é obtido lendo o texto claro coluna por coluna nessa ordem. Assim, o texto cifrado resultante é: sat5nao8eca0hr:9.
Apesar da utilidade histórica dessas técnicas, hoje a segurança provida por essas é muito pequena. Uma vez descoberta a técnica utilizada, é possível
tentar reverter o processo para a obtenção do texto claro. No exemplo da técnica de transposição, basta escrever o texto cifrado em colunas e tentar as diferentes combinações de colunas para recuperar o texto original. Já em relação à técnica de substituição, esses algoritmos são suscetíveis a Ataques de Força Bruta, que consistem em tentar substituir uma letra do texto cifrado por outra dentre todas as possíveis combinações existentes. Um ataque de força bruta é facilmente realizável utilizando um software para testar todas as possíveis combinações e obter o texto original. Isso é feito em segundos se o texto cifrado for uma substituição simples entre letras do alfabeto. Apesar da fragilidade, atual, em termos de segurança, essas técnicas serviram de base para o desenvolvimento de técnicas matemáticas implementadas nos algoritmos de criptografia atuais.
Cifra de César:
O exemplo mais antigo da técnica de substituição em algoritmos de criptografia é a cifra de César. Esse nome foi dado ao algoritmo em homenagem ao Imperador Romano Júlio César, que utilizava essa técnica para a comunicação com suas tropas durante as batalhas. A cifra de César é uma técnica de substituição simples em que cada letra do alfabeto é substituída pela letra que fica três posições à frente no alfabeto. Por exemplo, a letra “a” é substituída pela “d”, a letra “b” é substituída pela letra “e”, e assim sucessivamente. O Quadro 1.3 apresenta as possíveis substituições da Cifra de César.
Link para o print do quadro 1.3: 
> https://imgur.com/2Q71CXt
Devido ao deslocamento de três posições à frente do símbolo, a sequência do alfabeto é reiniciada a partir da letra x que é substituída por a.
Considerando a tabela de substituição da cifra de César do Quadro 1.3, por exemplo, o texto claro “senha abfg” é cifrado no texto apresentado no Quadro 1.4.
Link para o print do quadro 1.4:
> https://imgur.com/PNhCZX8
Existem variações dessa técnica, por exemplo o algoritmo ROT13, que substitui uma letra do alfabeto por outras 13 posições à frente.
A cifra de César ou a variação ROT13 são muito frágeis a ataques de força bruta devido às seguintes características:
1. O algoritmo de cifragem e decifragem é conhecido.
2. Existem apenas 25 combinações possíveis de substituição, ou seja, para uma letra do texto claro existem no máximo 25 possibilidades de substituição no texto cifrado.
3. A linguagem do texto claro é facilmente reconhecida. Isso significa que somente a combinação de letras do texto claro irá gerar um texto inteligível.
Máquina de Rotação: 
As técnicas de substituição e transposição, como citado, são frágeis a ataques de força bruta. Uma alternativa para tornar os algoritmos baseados nessas técnicas mais seguros é a aplicação sucessiva de estágios de criptografia. 
Assim, no caso das técnicas de substituição seriam feitas substituições sucessivas para se obter o texto cifrado. Por exemplo, a cifra de César pode ser aplicada a um texto claro, gerando um texto cifrado. Para o texto cifrado, aplica-se novamente a cifra de César, gerando outro texto cifrado. Essa reaplicação do algoritmo pode ser feita diversas vezes.
Além da aplicação sucessiva do algoritmo para um texto cifrado, o ideal seria gerar uma variação da substituição para cada nova rodada de aplicação do algoritmo. Por exemplo, considerando a cifra de César, na primeira rodada, o texto claro é cifrado conforme definido na cifra (substituição da letra atual pela letra três posições à frente no alfabeto). 
Na segunda rodada, a respectiva letra do texto cifrado é substituída pela letra quatro posições à frente do alfabeto; na terceira rodada de aplicação do algoritmo, a letra do texto já cifrado é substituída pela letra que está a cinco posições à frente no alfabeto; e assim sucessivamente quantas vezes forem desejadas.
A aplicação de vários estágios de criptografia foi implementada nas máquinas de rotor utilizadas na Segunda Guerra Mundial. Essas máquinas foram alguns dos primeiros hardwares destinados à implementação de técnicas de criptografia. A mais famosa dessas foi a máquina Enigma, criada em 1923 e utilizada pela Alemanha na Segunda Guerra Mundial, para cifrar as mensagens enviadas às tropas no campo de batalha.
Uma máquina de rotação é um dispositivo elétrico mecânico que realiza uma série de substituições de letras antes da obtenção da respectiva letra cifrada. Isso é realizado para todas as letras durante o processo de cifragem.
A cada letra codificada, o esquema de substituição é alterado como ocorre quando se aplica a cifra de César com diferentes deslocamentos. Esses dispositivos foram desenvolvidos em meados do século XX durante a Segunda Guerra Mundial.
Eles se assemelham a máquinas de escrever em que se aperta uma tecla e a letra cifrada correspondente é apresentada, acendendo uma luz em uma respectiva célula contendo uma letra do alfabeto no painel da máquina. A Figura 1.3 apresenta um modelo de máquina Enigma desenvolvida à época.
Link para o print da figura 1.3:
> https://imgur.com/kkw4kxY
Essas máquinas consistiam de um conjunto de cilindros rotativos que operam independentemente. Cada cilindro possui 26 pinos de entrada e outros 256 pinos de saída. Cada pino de entrada era conectado a um pino de saída por meio de uma fiação elétrica. Cada pino de entrada representava uma letra do alfabeto que era mapeada na respectiva letra codifica pela fiação elétrica.
As máquinas rotoras possuíam diversos cilindros para aplicar diversas rodadas de substituição sucessivamente com o objetivo de tornar o texto cifrado mais difícil de ser decifrado. A Figura 1.4 ilustra o funcionamento de uma máquina rotor de três cilindros.
Link para o print da figura 1.4:
> https://imgur.com/SrUYAxh
Na Figura 1.4, as ligações entre os pinos de entrada e saída são representadas pelas linhas do diagrama. A ilustração apresenta a configuração inicial dos rotores (a) e depois a configuração após o pressionamento de uma tecla (b). Cada pino de entrada está associado a uma letra do alfabeto (Ex.: pino 25 está associado à letra A). O mesmo ocorre com um pino de saída. Cada rotor aplica uma única substituição de uma letra por outra do alfabeto conforme o mapeamento das linhas.
Para explicar o funcionamento dos cilindros, considere que a tecla A seja pressionada (Figura 1.4). Ao pressionar essa tecla há um mapeamento elétrico do primeiro pino para o vigésimo quinto (que nesse diagrama tem o valor 24 representando uma letra do alfabeto). A linha no interior do cilindro representa esse mapeamento. 
Se fosse utilizando um único cilindro, o equipamento seria tão frágil quanto a cifra de César. Entretanto, o pino do primeiro cilindro é mapeado no pino de entrada do segundo cilindro. No caso, o vigésimo quinto pino de saída no cilindro 1 é mapeado no vigésimo quinto pino de entrada do cilindro 2, que, por sua vez, está conectado ao décimo oitavo pino de saída (número 24).
O mesmo ocorre no cilindro 3, que é mapeado no décimo oitavo pino de entrada, que está ligado à saída do segundo pino (número 18), gerando como saída a letra “b” para a cifragem da letra “a”. Assim, uma máquina de rotação de três cilindros aplica uma técnica de substituição três vezes.
Outro fator de variabilidade na técnica é a rotação dos cilindros. Ao pressionar uma tecla da máquina, a respectiva letra é cifrada, gerando a saída. Ao codificar a primeira letra, o primeiro cilindro gira uma posição. Isso garante que, se a mesma letra for pressionada, será codificada de forma diferente da anterior ao passar pelos três cilindros. Após 26 pressionamentos de teclas, o primeiro cilindro volta à posição inicial. Nesse contexto, temos 26 alfabetos de substituição para o primeiro cilindro.
Após o primeiro cilindro completar uma volta, o segundo cilindro é girado, gerando outro alfabeto de substituição. Quando o segundo cilindro completar uma volta, o terceiro cilindro é girado. O funcionamento desse mecanismo é igual aos dos antigos odômetros
mecânicos dos carros. Devido à rotação dos cilindros, existem 17.576 alfabetos distintos de substituição (26 X 26 X 26). Essa quantidade de alfabetos aumenta conforme se adicionam novos cilindros.
O processo de decifragem de um texto cifrado por uma máquina de rotação é semelhante à cifragem. Primeiro, posicionam-se os cilindros na posição inicial quando se iniciou a cifragem do texto. Na sequência, digitam-se as letras do texto cifrado para se obter o texto claro.
A etapa essencial para que a decifragem ocorra corretamente é o posicionamento dos cilindros na posição inicial quando se iniciou a cifragem. Esse posicionamento dos cilindros funciona como uma chave de criptografia, que é um componente inicial dos algoritmos de criptografia modernos.
Para ilustrar o funcionamento de uma máquina de rotação, será utilizado um software que simula a máquina Enigma. Esse software é gratuito e funciona em sistemas operacionais MS Windows. Após a instalação (descompactar o arquivo e executar o arquivo setup.exe), basta clicar no ícone Enigma do menu Iniciar do Windows. Após a execução, a tela da figura 1.5 é apresentada.
Link para o print da figura 1.5:
> https://imgur.com/z0jfqYg
Na Figura 1.5, são destacadas três partes do equipamento: o painel, que indica a posição inicial dos cilindros (A); o visor, onde são apresentadas as cifragens das letras pressionadas no teclado (B) e o teclado, usado para inserção do texto claro ou texto cifrado (C).
Ao clicar na alavanca preta ao lado da indicação da posição dos cilindros, é apresentado o interior da máquina, conforme mostrado na Figura 1.6.
Link para o print da firura 1.6:
> https://imgur.com/OobHwuG
Na Figura 1.6, na parte superior, são apresentados os três cilindros; no meio, a estrutura do painel luminoso; e, na parte inferior, outros cilindros que podem ser utilizados na substituição dos anteriores.
Buscando ilustrar o funcionamento da máquina Enigma, será feita a cifragem do texto “ABC” na 01 01 01 dos rotores. O resultado é apresentado na Figura 1.7.
Link para o print da figura 1.7:
> https://imgur.com/atgrd7J
Como ilustrado na Figura 1.7, ao pressionar cada letra do texto claro a respectiva letra cifrada é iluminada no painel. Assim, para o texto claro ABC o texto cifrado resultante é BJE. Reparem que a cada tecla pressionada o rotor mais à direita desloca-se em uma posição. 
No início, os rotores estão na posição 01 01 01; ao pressionar a primeira letra, o rotor mais à esquerda desloca-se em uma posição, gerando a configuração 01 01 02, e assim até o final, cuja posição dos rotores é 01 01 04. O processo de decifragem segue o mesmo princípio. Posicionam-se os rotores na posição 01 01 01 e insere-se o texto cifrado BJE. O resultado é o texto claro ABC mostrado na Figura 1.8.
Link para o print da figura 1.8:
> https://imgur.com/11EcNbU
A máquina Enigma pode ser considerada um avanço na utilização da criptografia quando comparada às demais técnicas clássicas (como a cifra de César), que são facilmente decifráveis.
Vamos Praticar:
A cifra de César, dentre os algoritmos clássicos de criptografia, é considerada uma das mais simples, apesar de sua utilidade no momento histórico em que foi utilizada. Nessa técnica, uma letra da mensagem é trocada com outra letra três posições à frente no alfabeto usado. Dessa forma, a cifra de César pode ser classificada como uma cifra de:
a) Transposição.
b) Substituição polialfabética.
c) Substituição monoalfabética.
d) Transposição polialfabética.
e) Transposição e substituição.
Resposta: C 
Link para o print da resposta correta:
> https://imgur.com/vvJTNbV
-----------------------------------------------------------x--------------------------
Tópico 4 ->
Criptografia Simétrica:
As máquinas de rotação apresentaram uma evolução em relação aos algoritmos clássicos de rotação e transposição. Entretanto, a partir do advento da computação e sua popularização e crescimento do poder de processamento dos computadores, passam a ser desenvolvidos diversos softwares que implementam algoritmos de criptografia. 
A capacidade dos computadores de processar milhões de instruções por segundo possibilita a execução de diversas operações matemática em um texto claro para gerar um texto cifrado. Além disso, esse poder de processamento permite que ataques de força bruta tenham sucesso na decodificação de mensagens cifradas com um esquema de criptografia fraco. Os tipos de ataques e forças e fraquezas dos algoritmos de criptografia seriam abordados posteriormente.
Reflita:
Os algoritmos clássicos, apesar de sua utilidade, no período histórico que foram utilizados, provavelmente hoje não seriam eficazes. Analisando essa afirmação, quais as limitações dos algoritmos clássicos que os tornariam ineficientes hoje?
O primeiro tipo de algoritmos modernos de criptografia são os algoritmos de criptografia simétrica, desenvolvidos no início da década de 1970, mais especificamente em 1971 com a criação do algoritmo LUCIFER, desenvolvido por Horst Feistel em um projeto da IBM. Esses, além de serem agora implementados por um software, utilizam uma chave, chamada de chave privada, para gerar variabilidade no processo de cifragem dos dados. 
A ideia da utilização de uma chave é semelhante à posição inicial dos cilindros em uma máquina de rotação, visto que a chave irá influenciar a substituição dos caracteres do texto claro para o cifrado, além de ser necessária para decifrar o texto cifrado.
Formalmente, os algoritmos de criptografia simétrica utilizam uma única chave para criptografar e decifrar os dados, como já foi dito anteriormente. São aplicados principalmente para garantir a confidencialidade dos dados, pois somente o proprietário da chave será capaz de decifrar a mensagem e obter o texto original.
 A chave é semelhante a uma senha e deve ser fornecida para cifrar e decifrar o texto. Por exemplo, esse poderia ser aplicado na criptografia de dados de uma base de dados, criptografia de arquivos em um sistema com múltiplos usuários garantindo que o dado permanecerá confidencial. A Figura 1.9 mostra o funcionamento de um algoritmo de chave privada.
 Link para o print da figura 1.9:
 > https://imgur.com/WpCsRSv
 Um algoritmo de criptografia simétrica pode ser utilizado para cifrar mensagens e dados entre dois usuários em uma comunicação via Internet. Entretanto, como a chave privada é usada para cifrar e decifrar a mensagem, essa se torna uma fragilidade nesse modelo.
 Assim, os usuários deverão ter conhecimento desta. Nesse contexto, a chave passa a ser uma informação compartilhada e, se for comprometida (por exemplo, um hacker que invade o computador do usuário e tem acesso a essa), todas as informações criptografadas poderão ser acessadas. A Figura 1.10 apresenta o processo de envio de um texto cifrado por e-mail.
 Link para o print da figura 1.10:
 > https://imgur.com/ltIYmbE
 Na Figura 1.10, o emissor gera uma mensagem cifrada, utilizando um algoritmo de criptografia simétrico. Essa mensagem é enviada por e-mail para um destinatário (receptor). Para decifrar a mensagem, é necessária a chave pública usada para cifrar originalmente a mensagem. Essa precisa ser mantida em segredo, caso contrário, se for capturada por um terceiro, todo o sigilo da mensagem cifrada será perdido.
 Por isso, o emissor contata o receptor por um canal seguro. No caso, a comunicação da chave privada foi feita por uma ligação telefônica. A partir do momento em que o receptor tem conhecimento da chave privada, esse consegue decifrar a mensagem.
Exemplos de implementações desse tipo de algoritmo: DES (Data Encryption Standard), AES e IDEA – essas implementações serão estudadas no final dessa unidade, os quais implementam técnicas de transposição, permutação e utilizam uma chave privada para a geração do texto criptografado.
Vantagens dos Algoritmos de Criptografia Simétrica: 
Os algoritmos de criptografia simétrica possuem uma série de vantagens
que popularizaram a sua utilização:
1. Performance. Os algoritmos de criptografia simétrica são capazes de cifrar uma grande quantidade de informações em pouco tempo. 
2. Pode-se utilizar chaves relativamente simples e, mesmo assim, ter um mecanismo de criptografia robusto.
3. Facilmente utilizáveis na proteção de dados armazenados em dispositivos (computadores, celulares), arquivos e banco de dados.
Desvantagens dos Algoritmos de Criptografia Simétrica:
Apesar das vantagens dos algoritmos de criptografia simétrica citadas, esses apresentam algumas desvantagens relacionadas à chave privada, a qual é o ponto mais crítico do algoritmo. Segundo Schneier (1996), os algoritmos de criptografia simétricos possuem as seguintes desvantagens:
1. A chave privada precisa ser distribuída em segredo. Meios de transmissão públicos como Internet não são ideais para a divulgação das chaves. Assim, tanto o emissor quanto o receptor devem buscar uma forma segura de envio das chaves.
2. Como essa chave é usada para cifrar e decifrar uma mensagem, se um atacante tiver acesso a ela, todas as mensagens cifradas com essa estarão comprometidas. Se os usuários não perceberem o comprometimento da chave privada, as mensagens futuras também serão comprometidas.
3. Devido à necessidade de se manter a chave privada secreta, o ideal é que a comunicação entre pares de emissores e receptores utilize uma chave diferente para cada. Nesse contexto, o número de chaves usadas cresce rapidamente. 
Estima-se que, para uma comunicação entre n usuários, serão necessárias n(n-1)/2 chaves privadas. Assim, para uma comunicação entre 10 usuários, serão necessárias 45 chaves. Para 100 usuários, 4.950 chaves privadas. Nesse tipo de algoritmo, o ideal é manter o número de usuários pequeno, mas nem sempre isso é possível.
Vamos Praticar:
A criptografia de chave simétrica é utilizada para a cifragem de informações armazenadas em computadores, celulares com o acesso não autorizado. Assinale a alternativa correta, a seguir, em relação aos conceitos da criptografia simétrica.
a) Utiliza a mesma chave na criptografia de mensagens enviadas entre um emissor e receptor pela Internet.
b) A chave pública é utilizada para cifrar e decifrar uma mensagem.
c) A cifragem simétrica é utilizada frequentemente na cifragem/decifragem das comunicações pela Internet.
d) Utiliza um par de chaves para cifrar e decifrar mensagens.
e) Utiliza técnicas diferentes para cifrar e decifrar as mensagens.
Resposta: A
Link para o print da resposta correta:
> https://imgur.com/xS2Rh5N
-----------------------------------------------------------x--------------------------
Tópico 5 ->
Técnicas de Criptografia Simétrica:
A criptografia clássica processa cada letra do texto claro para produzir o texto cifrado. Esse método se torna menos eficaz quando implementado em um software. Os computadores conseguem processar grandes quantidades de dados com rapidez. Dessa forma, os algoritmos modernos de criptografia trabalham com blocos de informações para gerarem o texto cifrado.
Os algoritmos de criptografia simétrica utilizam duas técnicas para cifragem do texto claro em texto cifrado. São elas:
A. Cifra de fluxo: executa a cifragem de um fluxo de dados digital um bit ou byte por vez.
B. Cifra de bloco: executa a cifragem de um bloco de texto claro por vez para produzir um bloco de texto cifrado do mesmo tamanho. Normalmente, são utilizados blocos de 64 ou 128 bits do texto claro.
Uma cifra de bloco garante que o bloco de texto claro convertido em texto cifrado é único, ou seja, existe um mapeamento reversível um para um entre o bloco de texto claro e o bloco de texto cifrado. Um exemplo de implementação da cifra de bloco é a Cifra de Feistel.
Algoritmos de Criptografia Assimétrica:
A partir das técnicas de criptografia assimétrica foram desenvolvidos algoritmos, e suas respectivas implementações, visando possibilitar a utilização da criptografia simétrica em sistemas computacionais. Os algoritmos estudados nesta unidade são o Data Encryption Standard (DES), Advanced Encryption Standard (AES) e International Data Encryption Algorithm (IDEA). Todos implementam um algoritmo de cifragem baseado em blocos.
Data Encryption Standard (DES):
O algoritmo de criptografia DES foi desenvolvido pela IBM, na década de 1970, com o objetivo de ser implementado em um chip de computador. Esse algoritmo foi baseado em outro algoritmo chamado LUCIFER, também desenvolvido pela IBM, que implementava a cifra de Feistel. 
A IBM submeteu o DES como uma proposta de padrão para o National Bureau of Standard (NBS), nos Estados Unidos. Como o DES foi o melhor algoritmo proposto, dentre os que estavam concorrendo com ele para serem o padrão, ele foi escolhido em 1977.
A Figura 1.11 apresenta a estrutura geral de funcionamento do DES. Esse realiza a cifragem de blocos de 64 bits utilizando uma chave privada de 48 bits.
Link para o print da figura 1.11:
> https://imgur.com/tsfAvEc
O lado esquerdo da Figura 1.11 apresenta a criptografia do texto claro, enquanto o lado direito mostra como a chave é usada. Em relação ao texto claro, o processo é executado em 3 fases:
1. O texto claro é permutado gerando a entrada permutada. 
2. O texto claro passa por 16 rodadas onde ocorrem substituições e permutações do texto. Resumidamente, o bloco de 64 bit é dividido em dois blocos 32 bits. Na primeira rodada, os blocos são invertidos de posição. O segundo bloco de 32 bits ocupará a posição do primeiro. O segundo será aplicado a uma função de criptografia utilizando a chave privada (e subsequentes variações dessa nas demais rodadas). Isso gera um bloco de 64 bits, que, na próxima rodada, é dividido em dois de 32 bits e novamente são aplicadas as operações.
3. Na última etapa, a pré-saída passa novamente por uma permutação, que é o inverso da primeira. Após isso, obtém-se o texto cifrado.
Em relação à chave privada (lado direito da imagem), a chave inicialmente passa por uma permutação. A partir dessa, são geradas subchaves para cada rodada do algoritmo e utilizadas na cifragem do bloco de texto claro, utilizando a função definida pelo DES. As subchaves são obtidas fazendo um deslocamento circular à esquerda e uma permutação. O DES utiliza tabelas de permutação e de substituição (S-Box) pré-definidas.
A decifragem do texto cifrado é feita utilizando o algoritmo com a aplicação da ordem inversa de chaves sobre o texto cifrado.
O DES utiliza uma chave privada de 56 bits. Com o avanço do poder de processamento dos computadores, é possível realizar ataques de força bruta visando descobrir a chave. Tal fato ocorreu em 1998, quando a Electronic Frontier Foundation (EFF) construiu uma máquina que foi capaz de quebrar a criptografia do DES em 10 horas.
Advanced Encryption Standard (AES):
O DES possui duas fragilidades que levaram à adoção de outro algoritmo como padrão criptográfico, a ser utilizado pelo governo americano, a partir de 2001. O DES possui uma chave de 56 bits, que é suscetível a ataques de força bruta. 
Além disso, o algoritmo foi projetado para ser executado por um hardware dedicado, o que torna a sua performance lenta quando implementado via software. Assim, o NIST (National Institute of Standards and Technology) solicitou propostas para um novo padrão de criptografia chamado Advanced Encryption Standard (AES), que substituiria o DES e sua variação 3DES.
 O algoritmo Rijndael foi o escolhido. Esse foi desenvolvido pelos criptógrafos belgas: Joan Daemen e Vincent Rijmen. Esse algoritmo trabalha com tamanhos de chave de 128, 192 e 256 bits, enquanto que o tamanho do bloco é limitado a 128 bits.
 O algoritmo que se tornou o AES foi projeto para atender aos seguintes critérios: resistente contra todos os ataques existentes, simplicidade de projeto e velocidade de compactação de código. A Figura 1.12 ilustra o funcionamento do AES.
 Link para o print da figura 1.12:
 > https://imgur.com/Q1NcTre
O processo de decifragem (decriptação) do texto cifrado não é feito da mesma forma que a cifragem. O AES possui um módulo específico para decifrar os dados.
International Data Encryption Algorithm (IDEA):
O IDEA surgiu em 1992 a partir da evolução de um algoritmo de criptografia chamado PES (Proposed Encryption Standard). Os criadores do PES, IPES (Improved Proposed Encryption Standard), evolução do PES e de seu sucessor IDEA foram Xuejia Lai and James Massey.
O IDEA utiliza a cifragem em blocos, onde cada bloco possui o tamanho de 64 bits. A chave privada possui um tamanho de 128 bits e utiliza o mesmo algoritmo para cifrar e decifrar o texto. Esse usa uma combinação das operações XOR
(Ou-Exclusivo), Adição de módulo 216 e multiplicação por módulo 216+1, ao invés da cifragem de Feistel para gerar o texto cifrado.
O IDEA, resumidamente, funciona da seguinte maneira:
1. Na cifragem, o texto claro é dividido em blocos de 64 bits.
2. Cada bloco é dividido em quatro sub-blocos de 16 bits: B1, B2, B3 e B4.
3. Os quatro sub-blocos são a entrada da primeira rodada do algoritmo (oito rodadas no total).
4. Em cada rodada, os quatro sub-blocos são submetidos à operação lógica XOR, somados e multiplicados entre si e com seis sub-blocos de 16 bits oriundos da chave (K1, K2, K3, K4, K5 e K6).
5. Entre cada rodada, o segundo e o terceiro sub-blocos são trocados de posição.
A Figura 1.13 ilustra o funcionamento do IDEA.
Link para o print da figura 1.13:
> https://imgur.com/Ma9oxDD
O IDEA é duas vezes mais rápido que o DES e, devido ao tamanho da chave, é considerado imune a ataques de força bruta. Desde a sua criação, não foram descobertas falhas que possibilitassem a quebra do algoritmo.
Vamos Praticar:
O algoritmo AES representa uma evolução quando comparado aos algoritmos DES devido à vulnerabilidade desse em relação à chave. Assim, para se garantir a segurança, deve-se utilizar o algoritmo AES com uma chave de:
a) 56 bits e blocos de dados de 256 bits.
b) 256 bits e blocos de dados de 128 bits.
c) 128 bits e blocos de dados de 256 bits.
d) 256 bits e blocos de dados de 256 bits.
e) 192 bits e blocos de dados de 128 bits.
Resposta: B
Link para o print da resposta correta:
> https://imgur.com/hqeqmWK
-----------------------------------------------------------x--------------------------
Tópico 6 ->
Conclusão: 
As técnicas e os algoritmos de criptografia fazem parte da história da humanidade e estão presente no dia a dia das pessoas graças à popularização da informática. Os algoritmos clássicos, devido à capacidade de processamento atual dos computadores, são facilmente comprometidos pois permitem ataques de força bruta que testam todas as possíveis combinações de permutações e substituições e, assim, obtêm o texto claro. Nesse contexto, a implementação de softwares que realizam a criptografia simétrica possibilitou esquemas de criptografia mais robustos, como o IDEA e o AES, cuja existência de uma chave privada inviabiliza tais ataques.
-----------------------------------------------------------x--------------------------

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando