Buscar

APS- 2 SEMESTRE CRIPTOGRAFIA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

UNIVERSIDADE PAULISTA
Erica Yukimi Yokota (N391812)
Heloisa Ferreira da Silva (F037CJ1)
Marcus Vinicius Vieira Ishikawa (N394188)
Rafaela dos Santos Silva (D9219D0)
CRIPTOGRAFIA
Rivest Shamir Adleman
São Paulo
2020
SUMÁRIO
1.	OBJETIVO GERAL	1
2.	OBJETIVO ESPECÍFICO	2
3.	INTRODUÇÃO	3
4.	CRIPTOGRAFIA	5
5.	TÉCNICAS CRIPTOGRÁFICAS MAIS UTILIZADAS	9
5.1)	DES	9
5.2)	3DES	9
5.3)	DESX	10
5.4)	AES	10
5.5)	Camellia	10
5.6)	RSA	11
5.7)	Blowfish	11
5.8)	Twofish	11
5.9)	SAFER	12
5.10)	IDEA	12
6.	DISSERTAÇÃO	13
7.	LINHAS DE CÓDIGO	21
8.	CONSIDERAÇÕES FINAIS	24
REFERÊNCIAS	25
1. OBJETIVO GERAL
Tendo em vista o estudo do que é a criptografia, quais são suas qualidades e defeitos, o objetivo do presente trabalho é analisar de que forma o uso desta tecnologia impacta em alguns nichos.
2. OBJETIVO ESPECÍFICO
· Identificar para que serve e como utilizá-la;
· Como evitar problemas futuros com a ferramenta;
· Comparar a eficácia do modelo escolhido versus os demais e
· Apresentar soluções para o problema discorrido.
3. INTRODUÇÃO
Nos primórdios a criptografia surgiu com o principal e único objetivo de proteger o conteúdo de mensagens trocadas. Com o tempo mudanças foram perceptiveis em sua finalidade, levando a criptografia moderna mais além trazendo como premissa não apenas a garantia da confidencialidade dos dados, mas também a integridade e a autenticidade das informações.
Fundamentalmente, para 	que um sistema seja classificado como seguro faz-se necessário de que satisfaça os pilares da Segurança da Informação (SI) que são: disponibilidade, integridade e confidencialidade. Ou seja, estamos falando que o conteúdo da mensagem deve chegar íntegro a seu destino, a informação não deve estar visível para pessoas e processos que não tenham autorização para tal.
	Dentre muitos exemplos de criptografia, existe a Rivest Shamir Adleman (RSA) que é um dos primeiros sistemas de criptografia de chave pública e também amplamente utilizado para transmissão segura de dados. Do mesmo modo tornou-se o primeiro algoritmo a possibilitar criptografia e assinatura digital.
	O RSA é o método mais utilizado no tráfego de dados na internet, como por exemplo, em mensagens de e-mail e compras online. Fundamentado na Teoria dos Números, área clássica da matemática e bastante relevante em sistemas de criptografias. E é desta particularidade que vem toda a segurança do RSA não sendo impossível, mas sim inviável quebrá-la.
A criptografia faz-se essencial, pois trata de um dos melhores mecanismos de segurança da informação usados em software. Nos smartphones, o perigo do vazamento de dados por vezes se intensifica, por exemplo, quando há utilização de redes wi-fi abertas. Qualquer usuário mal-intencionado pode interceptar dados trafegando nessas redes. Por essa razão, é extremamente desaconselhável acessar apps de banco ou de compras online conectado em uma rede aberta.
Genelaridade grandes empresas tem apostado no desenvolvimento de apps corporativos de atendimento ao cliente. Há também grande utilização de plataformas mobile e armazenamento de dados em nuvem por meio de servidores e data centers terceirizados. Nesse panorama, a criptografia de dados pode proteger as mensagens e os trabalhos desenvolvidos por meio de apps de fenômenos como a espionagem industrial e o vazamento de informações de pessoas e empresas.
Envolvendo pesquisa bibbliográfica e os contextos da sociedade atual, desenvolvemos o trabalho contendo mais conceitos criptográficos, as técnicas mais utilizadas. O conteúdo abre debate para as vulnerabilidades presente nas aplicações da criptografia, além de podermos comparar as técnicas existentes e relacioná-las com o curso de Ciência da Computação.
4. CRIPTOGRAFIA
 A criptografia, ao contrário do que muitos pensam, não é um recurso que passou a ser usado recentemente, mas segundo a história, vem se aprimorando desde épocas clássicas, como no uso de hieróglifos, onde era necessária uma interpretação para entender a mensagem, até os dias de hoje.
A criptografia é a arte de cifrar/codificar uma mensagem como mecanismo de segurança. A história da criptografia começa há milhares de anos, com os Hebreus a 600 a.C., por meio de cifras de substituição monoalfabéticas (onde um símbolo do alfabeto é substituído por outro símbolo no alfabeto cifrado), como por exemplo, a cifra Atbash, que consiste na substituição da primeira letra do alfabeto pela última, da segunda pela penúltima, e assim por diante. Com o início das pesquisas sobre criptoanálise por volta de 800 d.C.,o matemático árabe Ibrahim Al-Kadi inventou a técnica de análise de frequência para quebrar esse tipo de cifra. Ele também expôs métodos de cifragem como, por exemplo, a criptoanálise de certas cifragens e a análise estatística de letras e combinações de letras em árabe.
Até o início da primeira guerra mundial, nada de inovador havia sido desenvolvido no campo de criptografia, até que Alexander´s Weekly escreveu um ensaio sobre métodos de criptografia, que se tornou útil como uma introdução para os criptoanalistas britânicos na quebra dos códigos e cifras alemães durante a I Guerra Mundial; e escreveu uma história famosa, O Escaravelho de Ouro, um conto ambientado no século XIX onde a criptoanálise era um elemento de destaque.
Durante a segunda guerra mundial, os alemães usaram uma máquina eletromecânica para criptografar e descriptografar, denominada de Enigma. Logo após o estopim da segunda guerra mundial, um grupo de criptógrafos britânicos (alguns matemáticos e mestres em xadrez, tais como Newman e Alan Turing, o pai da computação moderna) conseguiu quebrar as cifras do enigma e decifrar mensagens secretas dos nazistas. Os militares alemães implantaram maquinas usando one-time pad (cifra de chave única), um algoritmo de criptografia onde o texto é combinado com uma chave aleatória; enquanto isso, os ingleses criaram o primeiro computador digital programável, o Colossus, para ajudar com sua criptoanálise. Agentes britânicos do SOE usavam inicialmente "cifras poema" (poemas memorizados eram as chaves de encriptação/desencriptação), mas, mais tarde, durante a Segunda Guerra, eles modificaram para o one-time pad.
Durante a chamada "Guerra Fria", entre Estados Unidos e União Soviética, foram criados e utilizados diversos métodos para esconder mensagens com estratégias e operações. Desses esforços, surgiram outros tipos de criptografia, tais como: por chave simétrica, onde existe uma chave com um segredo e essa chave é compartilhada pelos interlocutores; por chave assimétrica, onde existem 2 chaves, uma pública e uma privada, a chave privada é usada para cifrar a mensagem, com isso garante-se que apenas o dono da chave poderia tê-la editado; por hash e até a chamada criptografia quântica, que se encontra, hoje, em desenvolvimento.
O problema de prover comunicação secreta através de meios inseguros é o problema mais tradicional e básico da criptografia. O cenário consiste de duas partes se comunicando através de um canal que possivelmente pode ser grampeado por um adversário, chamado de araponga. As partes desejam trocar informação entre si, mas manter o araponga tão ignorante quanto possível a respeito do conteúdo dessa informação. Grosso modo, um esquema de encriptação é um protocolo permitindo que essas partes se comuniquem secretamente uma com a outra. Tipicamente, o esquema de encriptação consiste de um par de algoritmos. Um algoritmo, chamado encriptação e aplicado pelo emissor (i.e., a parte enviando uma mensagem), enquanto que o outro algoritmo, chamado decriptação é aplicado pelo receptor. Portanto, para enviar uma mensagem, o emissor primeiro aplica o algoritmo de encriptação à mensagem e envia o resultado, chamado texto-cifrado, através do canal. Ao receber o texto-cifrado, a outra parte (i.e., o receptor) aplica-lhe o algoritmo de decriptação e recupera a mensagem original (chamada texto-puro).
Para que esse esquema possa prover comunicação secreta, as partes comunicantes (pelo menos o receptor)deve saber algo que não é conhecido pelo araponga. (Do contrário, o araponga poderia decifrar o texto-cifrado exatamente como realizado pelo receptor.) Esse conhecimento extra pode tomar a forma do algoritmo de decriptação propriamente dito ou alguns parâmetros e/ou entradas auxiliares usados pelo algoritmo de decriptação. Chamamos esse conhecimento extra a chave de decriptação. Note que, sem perda de generalidade, podemos assumir que o algoritmo de decriptação é conhecido ao araponga e que o algoritmo de decriptação necessita de duas entradas: um texto-cifrado e uma chave de decriptação. Enfatizamos que a existência de uma chave secreta, não conhecida pelo araponga, é meramente uma condição necessária para a comunicação secreta.
Avaliar a “segurança” de um esquema de encriptação é algo relativamente complicado. Uma tarefa preliminar é entender o que é “segurança” (i.e., definir apropriadamente o que se quer dizer por esse termo intuitivo). Duas abordagens à definição de segurança são conhecidas. A primeira abordagem (“clássica”) é teórica-de-informação. Concerne a “informação” sobre o texto-puro que está “presente” no texto-cifrado. Grosso modo, se o texto-cifrado contem informação sobre o texto-puro, então o esquema de encriptação é considerado inseguro. Foi mostrado que tal alto nível (i.e., “perfeito”) de segurança pode ser atingido apenas se a chave em uso é pelo menos tão longa quanto o comprimento total das mensagens enviadas via o esquema de encriptação. O fato de que a chave tem que ser mais longa que a informação trocada usando tal chave e realmente uma drástica limitação na aplicabilidade de tais e/squemas de encriptação. Isso é especialmente verdadeiro quando quantidades enormes de informação necessitam ser secretamente comunicadas.
A segunda abordagem (“moderna”) é baseada no fato de que não importa se o texto-cifrado contém ou não informação sobre o texto-puro, porém, ao contrário, se essa informação pode ou não ser eficientemente extraída. Em outras palavras, ao invés de perguntar se é ou não possível ao araponga extrair informação específica, perguntamos se é ou não factível ao araponga extrair essa informação. Acontece que a nova abordagem (i.e., “complexidade-computacional”) oferece segurança mesmo se a chave é muito mais curta que o comprimento total das mensagens enviadas via o esquema de encriptação. Por exemplo, pode-se usar “geradores pseudoaleatórios” (discutidos adiante) que expandem chaves curtas para “pseudo-chaves” muito mais compridas, de modo que as ultimas sejam tão seguras quanto “chaves-reais” de comprimento comparável.
Adicionalmente, a abordagem da complexidade-computacional permite a introdução de conceitos e primitivas que não podem existir sob a abordagem teórica-da-informação. Um exemplo típico e o conceito de esquemas de encriptação de chave-pública. Note que na discussão precedente nos concentramos no algoritmo da decriptação e sua chave. 
Pode ser mostrado que o algoritmo da encriptação tem que obter, em adição à mensagem, uma entrada auxiliar que depende da chave de decriptação. Essa entrada auxiliar é chamada chave de encriptação. Portanto, o araponga nesses esquemas deve ser ignorante da chave de encriptação, e consequentemente o problema da distribuição da chave aparece (i.e., como duas partes desejando se comunicar através de um canal inseguro podem concordar a respeito de uma chave secreta de encriptação/decriptação). A abordagem complexidade-computacional permite a introdução de esquemas de encriptação nos quais a chave de encriptação pode ser conhecida pelo araponga sem comprometer a segurança do esquema. 
Claramente, a chave de decriptação em tais esquemas é diferente da chave de encriptação, e além do mais e impraticável calcular a chave de decriptação a partir da chave de encriptação. Tais esquemas de encriptação, chamados esquemas de chave-pública, tem a vantagem de resolver trivialmente o problema da distribuição de chave, porque a chave de encriptação pode ser tornada pública.
8
5. TÉCNICAS CRIPTOGRÁFICAS MAIS UTILIZADAS
DES
Data Encryption Standard (DES) é uma das primeiras criptografias utilizadas e é considerada uma proteção básica de poucos bits (cerca de 56). O seu algoritmo é o mais difundido mundialmente e realiza 16 ciclos de codificação para proteger uma informação.
A complexidade e o tamanho das chaves de criptografia são medidos em bits. Quando uma criptografia é feita com 128 bits, significa que 2128 é o número de chaves possíveis para decifrá-la. Atualmente, essa quantidade de bits é considerada segura, mas quanto maior o número, mais elevada será a segurança.
Quando dizemos que um bloco foi criptografado em bits, significa que um conjunto de informações passou pelo mesmo processo da chave, tornando-se ilegível para terceiros.
O DES pode ser decifrado com a técnica de força bruta (o programa testa as possibilidades de chave automaticamente durante horas). Por essa razão, os desenvolvedores precisam buscar alternativas de proteção mais complexas além do DES.
3DES
O Triple DES foi originalmente desenvolvido para substituir o DES, já que os hackers aprenderam a superá-lo com relativa facilidade. Houve um tempo em que o 3DES era o padrão recomendado para segurança.
Essa criptografia recebe esse nome pelo fato de trabalhar com três chaves de 56 bits cada, o que gera uma chave com o total de 168 bit. Especialistas no tema argumentam que uma chave de 112 bits é suficiente para proteger os dados.
 DESX
Essa é outra variante do DES e trata-se de uma solução bastante simples do algoritmo, mas que aumenta exponencialmente a resistência contra ataques de força bruta sem elevar a sua complexidade computacional.
Basicamente, adicionam-se 64 bits antes da encriptação, o que aumenta a proteção de 120 bits contra força bruta. Atualmente, essa tecnologia não é mais imune contra ataques mais sofisticados, como criptoanálises (o programa evolui a cada tentativa de decifração).
AES
Advanced Encryption Standard (AES) — ou Padrão de Criptografia Avançada, em português — é o algoritmo padrão do governo dos Estados Unidos e de várias outras organizações. Ele é confiável e excepcionalmente eficiente na sua forma em 128 bits, mas também é possível usar chaves e 192 e 256 bits para informações que precisam de proteção maior.
O AES é amplamente considerado imune a todos os ataques, exceto aos ataques de força bruta, que tentam decifrar o código em todas as combinações possíveis em 128, 192 e 256 bits, o que é imensamente difícil na atualidade.
Camellia
Desenvolvido em 2000, Camellia é uma criptografia que decifra blocos de informações. Trata-se de uma tecnologia com níveis de segurança bastante semelhantes ao AES, já que pode ser processada em 128, 192 e 256 bits.
Camellia pode ser implementada tanto em softwares (programas) quanto hardwares (peças físicas de computador). Também é compatível com tecnologias mais econômicas de 8 bits (smartcards, sistemas de operação em tempo real etc.) até com processadores mais potentes de 32 bits (computadores de mesa).
 RSA
Rivest-Shamir-Adleman (RSA) foi um dos pioneiros em relação à criptografia de chave pública, seu nome é composto pelos sobrenomes de seus criadores, que também são fundadores da companhia RSA Data Security.
Esse é considerado um dos algoritmos mais seguros do mercado, por essa razão também foi o primeiro a possibilitar a criptografia na assinatura digital.
O RSA funciona da seguinte forma: ele cria duas chaves diferentes, uma pública e outra privada (que deve ser mantida em sigilo). Todas as mensagens podem ser cifradas pela pública, mas somente decifradas pela privada.
Atualmente, essa tecnologia é utilizada em operações rotineiras, como envio de e-mails, compras online, assinatura digital, entre outras atividades.
Blowfish
Esse é outro algoritmo desenvolvido para substituir o DES. É uma cifra simétrica que divide as informações em blocos de 64 bits e criptografa cada um deles individualmente.
O Blowfish é conhecido por sua velocidade de encriptação e efetividade em geral. Trata-se de uma tecnologiabastante segura, pois há estudiosos no assunto que afirmam que o código não pode ser quebrado.
Ele é completamente grátis, e qualquer indivíduo pode conseguir uma cópia de seu código-fonte, alterar e utilizá-lo em diferentes programas. De forma geral, o Blowfish é usado em plataformas de e-commerce para garantir segurança nos pagamentos e proteger senha de acesso dos usuários.
Twofish
O Twofish é uma variação do Blowfish e também consiste na cifração de blocos simétricos. A diferença é que ele é formado por blocos de 128 bits e chaves de até 256 bits.
A tecnologia é considerada uma das mais rápidas de seu tipo e é ideal para prover segurança de softwares e hardwares. Seu código-fonte também é gratuito, podendo ser manipulado e utilizado por qualquer programador.
Existe outra variação da mesma criptografia chamada Threefish, a diferença é que os tamanhos dos blocos são de 256, 512 e 1024 bits, com chaves do mesmo tamanho.
 SAFER
SAFER (“mais seguro” em português) é uma sigla para Secure and Fast Encryption Routine. Consiste na criptografia de blocos em 64 bits, por isso é conhecido como SAFER SK-64.
Entretanto, foram encontradas fraquezas nesse código, o que resultou no desenvolvimento de novas versões com diferentes tamanhos de chave, como a SK-40, SK-64 e a SK-128 bits.
 IDEA
O Internacional Encryption Algorithm (IDEA) é uma chave simétrica desenvolvida em 1991, que opera blocos de informações de 64 bits e usa chaves de 128 bits.
O algoritmo utilizado atua de forma diferente, pois usa a confusão e difusão para cifrar o texto. Na prática, ele utiliza três grupos algébricos com operações misturadas, e é dessa forma que o IDEA consegue proteger as informações.
Existem diferentes tipos de criptografia e entendê-los é relevante para que o usuário saiba exatamente como suas informações são protegidas ao utilizar a internet e manusear certificados digitais.
6. DISSERTAÇÃO
Partindo do pressuposto que você quer contar a seu amigo um segredo. Se você está ao seu lado, você pode simplesmente lhe contar. Mas caso estejam separados a uma longa distância, isso obviamente não irá funcionar. Você até pode escrever uma carta para ele ou usar o telefone, mas esses canais de comunicação são inseguros e qualquer pessoa com uma motivação e um pouco de conhecimento seria o suficiente para interceptar a sua mensagem.
Uma solução para evitar que terceiros acessem o conteúdo da mensagem é criptografá-lo, o que significa adicionar um código a sua mensagem fazendo com que a torne uma bagunça de quase impossível decifração. Se esse código for suficientemente complexo, as únicas pessoas capazes de acessar a mensagem original serão aquelas que terão acesso ao código, ou seja, remetente e destinatário.
A criptografia RSA de chave assimétrica geralmente é usada em combinação com outros esquemas de criptografia ou para assinaturas digitais que podem provar a autenticidade e a integridade de uma mensagem. Geralmente, não é usado para criptografar mensagens ou arquivos inteiros porque é menos eficiente e consome mais recursos do que a criptografia de chave simétrica.
Para tornar as coisas mais eficientes, um arquivo é criptografado com um algoritmo de chave simétrica e, em seguida, a chave simétrica será criptografada com a criptografia RSA. Nesse processo, apenas quem tenha acesso a chave privada de RSA poderá descriptografar a chave simétrica. Sem ter o acesso a ela, não é possível descriptografar a chave simétrica sendo impossível o acesso ao conteúdo.
A criptografia RSA funciona sob a seguinte premissa: um algoritmo é fácil de se calcular em uma direção, mas quase impossível ao contrário. Por exemplo, se lhe dissessem que 701.111 é produto de dois números primos, você seria capaz de descobrir quais são esses dois números?
Mesmo com uma calculadora ou até mesmo um computador, a maioria das pessoas não teria ideia nem mesmo de onde começar, quem dirá então de descobrir a resposta. Mas se invertermos as coisas, fica muito mais fácil, como o resultado de: 907 * 773.
Resolvendo esse cálculo entre os números primos 907 e 773 descobrimos que sua resposta bate com o número 701.111. Isso nos mostra que certas equações são fáceis de se encontrar de uma maneira, mas aparentemente impossível ao contrário. Essa equação fácil de se encontrar de uma maneira, mas extremamente difícil de outra é conhecida como Trap Door Function.
O primeiro passo para criptografar uma mensagem utilizando o RSA é gerando as chaves. Para isso, precisa-se de dois números primos (vamos chamar de p e q) que serão selecionados através de um teste de primalidade, um algoritmo que encontra números primos de maneira eficiente.
Os números primos devem ser muito compridos e relativamente distintos entre eles. Números muito pequenos ou muito próximos entre si são muito mais fáceis de se encontrar. Apesar disso, será usado como exemplo um número pequeno para facilitar o entendimento e o cálculo.
Supondo que o teste de primalidade nos dê os seguintes números: p = 907 e o outro sendo q = 773. O passo final é descobrir seu módulo (n) usando a fórmula:
n = p * q.
Onde p = 907 e q = 773
Então: n = 701.111
Dessa maneira, podemos criptografar a chave simétrica contendo a mensagem primária que desejamos enviar a um destinatário utilizando a criptografia RSA.
Correio Anônimo é uma técnica utilizada para enviar mensagens anonimamente utilizando criptografia RSA, de forma que seja necessário, vários computadores, para que isto seja possível. É enviado a requisição de chave pública, para vários computadores selecionados aleatoriamente. Criptografamos na ordem inversa a que é enviado, ou seja, primeiro com a senha do último que irá receber a mensagem, e por último com a senha do primeiro. Enviamos para o primeiro de forma que ele só saiba o segundo destinatário quando descriptografar. 
Em seguida, enviamos ao segundo destinatário de forma que só ele saiba o terceiro. Seguindo está sequência, descriptografamos e enviamos para o próximo. Como ninguém sabe a rota, só sabem o destinatário atual, e como também não sabem o que há no pacote, dificilmente, alguém poderá encontrar o remetente. Trabalhar usando RSA permite, que, nem mesmo gravando todas as conexões de um determinado computador na rede, (inclusive o remetente), seja possível ler os pacotes transmitidos.
Para implementar um sistema de assinaturas digitais com RSA, o utilizador que possua uma chave privada “d” poderá assinar uma dada mensagem (em blocos) “m” com a seguinte expressão:
s = m ** d mod n
É difícil descobrir o valor de “s” sem o conhecimento de “d”, portanto uma assinatura digital definida conforme essa equação é difícil de forjar, mas o emissor de “m” não pode negar tê-la emitido, visto que jamais alguém poderia ter criado tal assinatura além dele. O receptor recupera a mensagem utilizando a chave pública do emissor:
s ** e = (m ** d) ** e mod n
O destinatário consegue validar a assinatura do remetente calculando s ** e mod n.
WhatsApp:
O aplicativo utiliza o RSA para criptografar as mensagens trocadas entre os usuários, de forma que apenas o remetente e o destinatário possam ter acesso às informações trocadas entre os mesmos. Utiliza o sistema de Trap Door Function para criptografar, criptografando a mensagem em uma chave simétrica para depois criptografar em uma assimétrica (RSA) baseado na expressão:
n = p * q
Onde “n” é o produto final de dois números primos “p” e “q” são gerados por um algoritmo de primalidade, possibilitando apenas o emissor e o destinatário serem capazes de descriptografar o código utilizado por somente ambos terem acesso.
Uma primeira abordagem de ataque ao RSA, teria como objetivo a chave pública por meio da fatoração do módulo “n”, chegando ao expoente da descriptografia. Mesmo que venham se aperfeiçoando os algoritmos de fatoração, esta é ainda uma ameaça considerada distante da realidade, pois caso seja corretamente implementado, é muito difícil a fatoração de números inteiros com a tecnologia atual.
Porém, fora publicado em 1997 um artigo dizendo que seria necessário 40 trilhõesde anos para que conseguíssemos fatorar um número sobre o módulo de 129 dígitos, no entanto, foram levados apenas 30 anos para ser realizada.
Então, mesmo sendo seguro, recai na questão: qual é o tamanho seguro para o módulo usado no RSA? Em muitas aplicações, utilizamos módulos de 1024 bits, acreditando que para fatorar números dessa magnitude levará por volta de 10 a 15 anos, portanto já é aconselhado utilizar parâmetros de RSA na ordem de 2048-4096 bits para uma segurança a longo prazo.
Para evitar a geração de muitos módulos “n” diferentes, foi considerado o uso de um mesmo módulo “n” para vários usuários emitido por uma autoridade central confiável, o que parecia ser eficiente em primeira impressão para facilitar o controle e aumentar a eficiência, porém ao deixar um mesmo módulo para vários usuários, um usuário poderia seu próprio expoente para fatorar “n” de outros usuários. Devido a isso, nunca se deve utilizar um mesmo módulo para mais de uma entidade. É um erro de utilização do sistema RSA.
Pequeno expoente das chaves:
Privada: para reduzir o tempo necessário para descriptografar uma mensagem ou para diminuir o tempo para gerar uma assinatura, podemos tentar usar um valor “d” pequeno ao invés de um aleatório. Com isso, podemos atingir um melhor desempenho para um módulo 1024 bits, porém pode-se quebrar completamente e de forma bem mais simples um sistema RSA completamente.
Pública: Pelo mesmo motivo da chave privada, é comum utilizarem um expoente público “e” pequeno. A diferença em relação ao anterior é que ataques dessa natureza não quebram totalmente o sistema RSA, sendo menos perigoso, mas ainda assim, um grande problema para o sistema RSA.
Existem alguns ataques que não são decorrentes de erros matemáticos. Estes são chamados de “ataques de implementação” e buscam vulnerabilidade na implementação computacional do sistema RSA. 
Um exemplo normal é uma chave privada RSA estar segura pelo armazenamento em um smartcard devidamente protegido. Um potencial ataque não seria capaz de examinar o conteúdo do cartão, logo, não chegaria a expor a chave. Porém, foi revelado em 1996, que por meio de uma medição precisa do tempo que o smartcard demora para executar uma decriptação ou assinatura do RSA, é possível descobrir seu expoente “d” da chave privada e expor todo o sistema.
A RSA, anunciou a lançamento do Programa RSA Archer Ignition para ajudar os clientes a darem início a seus programas de gerenciamento de riscos. Os casos de uso, serviços de inicialização rápida e de educação novo pacote RSA Archer foram desenvolvidos para que profissionais das áreas de risco e segurança possam simplificar e acelerar a implementação de componentes fundamentais que gerenciem de forma inteligente os riscos de negócios. 
O Programa foi projetado para ajudar empresas com práticas pouco desenvolvidas ou desconectadas do gerenciamento de riscos a estabelecer iniciativas e regras claras; ajudar os líderes de risco a gerar “sucessos imediatos” – processos econômicos e eficientes que dão valor real à organização e que criam um alicerce a partir do qual aprimorar o gerenciamento de riscos da organização, com base nas necessidades e nos riscos de negócios.
Os mecanismos de gerenciamento de riscos de muitas organizações sequer foram desenvolvidos, estão desconectados ou são ineficazes. Como resultado, as equipes de risco e segurança estão sobrecarregadas com dados, processos e geração de relatórios, porque não estão utilizando todo o potencial tecnológico para abordar os crescentes riscos que os negócios estão enfrentando.
Ele também inclui casos de uso integrados para fornecer quatro componentes modulares de uma base de gerenciamento de riscos de negócios com sucesso: gerenciamento de problemas RSA Archer, que estabelece as bases de um programa de GRC (governança, riscos e compliance); análise de impacto de negócios; catálogo de riscos e catálogo de terceiros para que os clientes documentem todos os relacionamentos com terceiros.
RSA NetWitness:
Para o pacote RSA NetWitness, a empresa anuncia um conjunto de melhorias desenvolvidas para fornecer uma visibilidade essencial e percepções práticas para detectar as ameaças atuais, que são cada vez mais rápidas. O pacote foi projetado para permitir que as organizações monitorem e sejam implementadas em qualquer infraestrutura moderna, conferindo flexibilidade, facilidade de implementação e uma visibilidade abrangente - necessária para a detecção e a resposta rápidas.
Essas melhorias aumentaram a capacidade da RSA para permitir que as organizações completem recursos da equipe de segurança e ampliem as habilidades de suas equipes sem ter que aumentar o time de profissionais. Como parte das soluções, os clientes do pacote podem relacionar, de forma abrangente e rápida, os incidentes de segurança com o contexto de negócios para responder de modo mais rápido e efetivo.
Os novos recursos do pacote foram desenvolvidos para dar visibilidade aos aplicativos da organização que estão sendo executados na nuvem e em infraestruturas virtuais, o que permite que as empresas coletem e analisem dados críticos de segurança como parte de uma plataforma descentralizada de detecção e resposta. Além de tudo isso, os seus componentes foram desenvolvidos para serem implementados e “executados em qualquer lugar” – em infraestruturas físicas, virtuais ou em novas infraestruturas de nuvem. As organizações podem se beneficiar com a agilidade oferecida pela computação e o armazenamento sem limites, sem comprometer a segurança ou a disponibilidade. 
A RSA também anuncia a atualização da oferta RSA SecurID Access que ajudam a permitir que as organizações forneçam uma proteção de identidade mais potente, sem sacrificar a facilidade de uso nem forçar os usuários a tomar medidas de segurança adicionais. Agora é fornecido em configurações e pacotes flexíveis, desenvolvidos para atender às diversas necessidades de cada organização.
O RSA SecurID Access ajuda clientes a recuperarem o perímetro interrompido com autenticação baseada em vários fatores e single Sign-On para os principais aplicativo da Web e SaaS, aplicativos de dispositivos móveis e recursos preexistentes. Por meio de seu comprovado Programa RSA Ready, a RSA certificou mais de 500 aplicativos SaaS e locais para que sejam interoperáveis com a tecnologia do RSA SecurID Access. Com cada uma das edições do RSA SecurID, os clientes podem escolher sua autenticação a partir de uma ampla variedade de opções – desde simples modelos para dispositivos móveis como métodos de “agitar para aprovar” até biometria baseada em dispositivos móveis para o token de hardware mais seguro do setor.
Tanto para o curso de ciências da computação como para qualquer área relacionada a tecnologia, o conhecimento de criptografias em geral é importante para haver uma troca de informação entre uma pessoa e um sistema operacional, por exemplo, o sistema precisa criptografar a mensagem por nós escrita para que o mesmo possa entender a mensagem que foi escrita, pois ele não tem conhecimento de nossa linguagem natural, apenas da criptografada, seja por qualquer meio que use para tal. 
Até mesmo em muitas línguas de programação, tal como o Python criptografa qualquer que seja o conteúdo escrito para uma linguagem computacional, permitindo a máquina compreender o que deve ser passado.
Outra situação onde a criptografia se faz necessária é para a segura troca de informação entre duas ou mais pessoas que precisam manter sob sigilo alguma informação que elas venham a trocar. É trabalho para cientistas da área desenvolver algoritmos que criptografem essa mensagem da maneira mais segura possível, para que ninguém possa ter acesso ao que foi escrito fora os envolvidos.
Um outro exemplo, simples, como criptografar uma senha. Mesmo para algo simples como isso, pode se fazer muito útil, principalmente em âmbitos de trabalho. Muitas vezes, um funcionário de uma empresa tem uma conta com seus dados cadastrados na empresa. De forma padrão, o usuário tem um login e uma senha, e em muitos casos,sua senha é criptografada para que não se possa de forma alguma, alguém ter acesso a ela. Após criar a senha com sucesso, elas costumam ser criptografadas de modo que a senha tenha seu código todo embaralhado e então, partes desse código seja apagado. Dessa maneira, nenhuma outra pessoa conseguiria ter acesso a sua senha, como do mesmo modo, se você viesse a perde-la, não há maneiras de resgatá-la. Somente a máquina em si conseguirá reconhecer a senha gravada, pois o código se manterá o mesmo, mesmo que o original tenha sido apagado algumas partes pela criptografia, o próprio sistema o reconhece como a senha correta.
O tema proposto em nosso Segundo Bimestre, e desperta o olhar para o que acontece em nosso entorno. Pois, com o conhecimento recente podemos analisar melhor como essa tecnologia se enquadra em nosso cotidiano e como podemos de alguma forma moldá-la de forma a ser mais usual.
Obviamente, a criptografia pode ser vista e utilizada em outras areas, tal como no caso a ser resolvido. Presente também no cotidiano da população até a mais renomada empresa – em ambos os casos a mesma existe com o intuito de nos passar segurança.
Com base em práticas do dia a dia em uma Universidade ou ambiente de trabalho com o uso da criptografia, foi realizado um estudo recente da Coinbase estabeleceu que cerca de 42 por cento das melhores universidades do mundo estão oferecendo agora Cursos de criptografia. A pesquisa também descobriu que 25 por cento dos alunos estão dispostos a se inscrever em um curso de Crypto ou blockchain. Os EUA lideram os outros países com o maior número de universidades que oferecem esses cursos. O estudo é um indicador de que mais pessoas estão interessadas em entender a nova tecnologia e seus impactos em suas vidas.
Ao longo das décadas os valores mais importantes para as empresas foram mudando. Uma das principais formas de contato de uma empresa é o e-mail. É por esse meio que os gestores delegam funções aos seus funcionários, fazem pedidos a fornecedores e transmitem informações de toda natureza para vários destinatários. Por isso mesmo é essencial que a criptografia atue junto ao servidor garantindo que esses dados não possam ser acessados por terceiros, sejam eles hackers ou concorrentes.
O ambiente criptográfico abre oportunidades de crescimento e melhorias em diversos aspectos, como em uma profissão. Por exemplo, um professsor pode se utilizar do mundo da Criptografia para inovar suas aulas e passar um conteúdo tão importante e em alta. Conforme falado nas aulas de Geometria Analitica, estamos em constante mudanças e seria muito interessante trazer aos alunos outras formas de conhecer o Universo da Cripotgrafia. Começando desde cedo, despertando o interesse pelo assunto nas crianças.
Na situação, o acesso ao navio é limitado em conta do transporte de produtos tóxico radioativos, navio esse que fora apreendido pela guarda costeira brasileira. Dada a situação, as informações que devem ser trocadas de dentro para fora do navio e vice-versa, deve ser mantida em sigilo. Pelo fato de não poder ser acessado por qualquer pessoa, e sim apenas por inspetores bem trajados, outros profissionais que tem de atuar na área não terão contato direto com o local e tampouco poderão conversar com quem estiver no navio para seguir instruções.
Através da utilização da criptografia, os outros profissionais que não podem ir ao navio conseguirão então se comunicar com aqueles que estiverem no navio e precisarem de instruções desses que estão fora do navio, estejam eles no helicóptero ou da própria costa. Mais do que isso, as informações que serão passadas de fora para dentro será codificada pela criptografia, ou seja, irá conseguir cumprir o requisito de manter em sigilo qualquer que seja o assunto que os profissionais da situação forem tratar sem que aqueles que estejam de fora dessa operação consigam decifrar o que foi passado de um para o outro.
Resumindo, através do uso de técnicas de criptografia, haverá um meio seguro de comunicação para aqueles que estejam dentro e fora do navio possam resolver a situação.
7. LINHAS DE CÓDIGO
# coding: utf-8
import random
def isPrime(number):
 if (number <= 1):
 return False
 if (number <= 3):
 return True
 if (number % 2 == 0 or number % 3 == 0):
 return False
 i = 5
 while(i * i <= number):
 if (number % i == 0 or number % (i + 2) == 0):
 return False
 i = i + 6
 return True
def randomPrime():
 primes = [i for i in range(1,1000) if isPrime(i)]
 return random.choice(primes)
def euclides_mdc(a, b): #maximo divisor comum pelo metodo de euclides
 while b != 0:
 a, b = b, a % b
 return a
def euclides_inverso_multiplicativo(a, b):
 x = 0
 y = 1
 lx = 1
 ly = 0
 oa = a # Remember original a/b to remove
 ob = b # negative values from return results
 while b != 0:
 q = a // b
 (a, b) = (b, a % b)
 (x, lx) = ((lx - (q * x)), x)
 (y, ly) = ((ly - (q * y)), y)
 if lx < 0:
 lx += ob # If neg wrap modulo orignal b
 if ly < 0:
 ly += oa # If neg wrap modulo orignal a
 # return a , lx, ly # Return only positive values
 return lx
def encrypt(e, n, plaintext):
 cipher = [(ord(char) ** e) % n for char in plaintext]
 return cipher
def decrypt(d, n, ciphertext):
 plain = [chr((char ** d) % n) for char in ciphertext]
 return ''.join(plain)
msg = "Porque criar algo, quando aquilo sã vai ser destruí­do? Porque se apegar e crescer na vida, sabendo que um dia irá morrer? Nada disso faz algum sentido quando isso acontece..."
8. CONSIDERAÇÕES FINAIS
O desenvolvimento do presente estudo possibilitou a análise dos obstáculos
Causados pela vulnerabilidade recorrente em técnicas criptográficas. Dessa forma, ao decorrer do trabalho, foram sugeridas e explicadas algumas ideias que poderiam proporcionar uma melhora para estas circunstâncias. Assim, apesar de algumas dificuldades encontradas ao decorrer da pesquisa, nosso ideal atende às expectativas de uma troca de mensagens segura.
Partindo do objetivo de analisar os impactos referente a criptografia e segurança na nossa sociedade atual, verificou-se que existem diversas formas de proteger seus dados e o avanço que tivemos em alguns anos referente a proteção e hackeamento de dados. As pessoas não fazem ideia do que o dado de uma simples mensagem passa até chegar ao destino final escolhido pela mesma de forma protegida, pouco falado a Lei Geral de Proteção de Dados previne isso de forma que a sua segurança aumente.
É imprescindível analisar todo o contexto desta situação, desde a inovação das tecnologias, sua chegada aos usuários, pouco conhecimento e importância sobre segurança da informação, informações necessárias que muitos deixam passar por não ser algo “necessário” e catalogado com a sua devida importância. Por isso, conclui-se que é altamente importante a conscientização da sociedade atual, incluindo nós – profissionais da área da Ciência da Computação –, uma vez que com uma transformação podemos revolucionar cada área citada neste trabalho.
19
REFERÊNCIAS
A importância da Criptografia para a segurança dos dados. (13 de Março de 2017). Fonte: EasyWorld: http://esy.com.br/pt/Noticia/a-importancia-da-criptografia
Ciriaco, D. (2019). O que é criptografia e por que você deveria usá-la. Fonte: Canal Tech: https://canaltech.com.br/seguranca/o-que-e-criptografia-e-por-que-voce-deveria-usa-la/
Como funciona e qual a importância da criptografia de dados em aplicativos? (19 de Abril de 2017). Fonte: Ilha Soft: https://www.ilhasoft.com.br/como-funciona-e-qual-a-importancia-da-criptografia-de-dados-em-aplicativos/
COUTINHO, S. (2011). Números Inteiros e Criptografia RSA. Instituto de Matemática Pura e Aplicada.
Gonzalez, D. (04 de Outubro de 2007). Conheça os tipos de criptografia digital mais utilizados. Fonte: PC WORLD: https://pcworld.com.br/idgnoticia2007-10-040383475254/
How RSA Works With Examples. (26 de Maio de 2012). Fonte: Doctrina: http://doctrina.org/How-RSA-Works-With-Examples.html
kingm0b_. (29 de Agostode 2017). Introdução a criptografia. Fonte: Medium: https://medium.com/@m0blabs/introdu%C3%A7%C3%A3o-a-criptografia-820206eda5a9
Lake, J. (10 de Dezembro de 2018). What is RSA encryption and how does it work? Fonte: Comparitech: https://www.comparitech.com/blog/information-security/rsa-encryption/
Nogueira, M. (20 de Agosto de 2015). Criptografia. Fonte: Estudo Ptático: https://www.estudopratico.com.br/criptografia/
Oliveira, F. (10 de Dezembro de 2012). Entendendo (de verdade) a criptografia RSA. Fonte: LAMBDA3: https://www.lambda3.com.br/2012/12/entendendo-de-verdade-a-criptografia-rsa/
Prahalad, B. (29 de Novembro de 2017). Understanding RSA Cryptosystem. Fonte: Medium: https://medium.com/crypto-0-nite/understanding-rsa-cryptosystem-5e82af321cff
Reis, F. d. (5 de Junho de 2014). Introdução à Criptografia. Fonte: Boson Treinamentos em Tecnologia: http://www.bosontreinamentos.com.br/seguranca/introducao-a-criptografia/
Rouse, M. (2014). RSA algorithm (Rivest-Shamir-Adleman). Fonte: Searchh Security: https://searchsecurity.techtarget.com/definition/RSA
TargetHost. (30 de Abril de 2015). A importância da criptografia e a segurança de dados. Fonte: TargetHost: https://www.targethost.com.br/importancia-criptografia-seguranca-dados/
The RSA Algorithm Explained Using Simple Pencil and Paper Method. (24 de Agosto de 2003). Fonte: http://sergematovic.tripod.com/rsa1.html
Treinamentos, B. (13 de Setembro de 2013). Criptografia - Introdução e Princípios Básicos - 01. Fonte: Youtube: https://www.youtube.com/watch?v=cWld3rMD7Wk

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes