Buscar

Aps python

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CIENCIA DA COMPUTAÇÃO 
 
 
 
 
****** 
***** 
 
 
Sumário 
 
1. Objetivo.............................................................................................................. 
2. Introdução........................................................................................................... 
3. Criptografia ........................................................................................................ 
4. Técnicas criptográficas mais usadas e conhecidas....................................... 
5. Dissertação ......................................................................................................... 
6. Estruturação, Conceitos e Fundamentação..................................................... 
7. Benefícios em relação as técnicas anteriores.................................................. 
8. Aplicações que fazem ou fizeram uso da técnica............................................ 
9. Discussão comparativa entre as técnicas mais usadas.................................. 
10. Vulnerabilidades e Falhas................................................................................ 
11. Melhorias e propostas de implementações................................................... 
 
1.OBJETIVO 
 
Objetivos gerais 
 
 
 
 
Pesquisar e expor os conceitos e aplicações de criptografia para que uma 
 
Pessoa leiga e interessada no assunto possa compreender de forma clara e assim 
 
Futuramente aplicar de alguma forma seus conhecimentos adquiridos através deste 
 
Trabalho. 
 
Desenvolver um software em linguagem C aplicando e melhorando a técnica 
 
Escolhida 
 
Objetivos específicos 
• Pesquisar e compreender os métodos e usos da criptografia. 
• Avaliar as técnicas e selecionar uma. 
• Mostrar uso e aplicações da técnica selecionada. 
• Encontrar os benefícios da técnica. 
• Expor aplicações que fazem ou fizeram uso da técnica. 
• Mostrar as falhas da técnica selecionada. 
• Desenvolver um software em linguagem C, implantando melhorias baseadas 
na técnica original. 
• Explicar e apresentar o funcionamento do software. 
 
 
2. INTRODUÇÃO 
 
Criptografia, derivado do grego “escrita oculta”, é o estudo das técnicas de 
ocultação de informações. Esta é uma área tradicionalmente ligada à segurança 
da informação, remontando a um passado de milhares de anos. 
A criptografia atual está fortemente ligada à Ciência da Computação, dada a 
enorme quantidade de cálculos e manipulações realizadas a cada operação de 
codificação e decodificação. De forma recíproca, a segurança de algumas técnicas 
criptográficas se baseiam na computabilidade dos algoritmos aplicados – dado um 
computador, ou grupo de computadores, com poder suficiente, algumas técnicas 
passam a ser quebradas com facilidade. 
 
 
 
 
Durante o trabalho serão citados diversos autores especialistas na área para 
tentar mostrar e esclarecer aos leigos e interessados no assunto os conceitos 
básicos, funções e aplicações das técnicas criptográficas. Apresentando as técnicas 
mais utilizadas e conhecidas atualmente, expondo também suas vulnerabilidades e 
falhas assim como suas vantagens. Escolhemos uma das técnicas, e 
desenvolvemos um software, em linguagem C, como exemplo. 
Durante a terceira etapa do nosso trabalho, explicamos os conceitos gerais da 
criptografia, baseados em especialista que serão citados ao longo do trabalho. 
Durante a quarta etapa, são apresentadas as técnicas mais utilizadas, 
explicando seus conceitos e aplicações. 
Durante a quinta etapa iremos expor a estrutura, fundamentos e conceitos da 
técnica escolhida, assim como iremos falar sobre suas falha e vulnerabilidades 
benefícios. E por fim mostrar as aplicações que fizeram uso da técnica e compará-la 
com as demais. 
Durante a sexta etapa, explicaremos o funcionamento do software 
desenvolvido como exemplo. 
Durante a sétima etapa, mostrarem através de prints o funcionamento do 
software em um computador. 
E por fim, durante a oitava etapa, deixaremos as nossas conclusões sobre 
todo o trabalho. 
 
3.CRIPTOGRAFIA 
 
O que é a criptografia 
Segundo Tanenbaum e Wetherall (2011, p . 481 ) a palavra criptografia vem do grego 
kryptos (escondido) + grafo (escrita). É um conjunto de técnicas que permitem tornar 
incompreensível uma mensagem originalmente escrita com clareza, de forma a 
permitir normalmente que apenas o destinatário a decifre e compreenda. 
 
O que faz a criptografia 
 
 
 
 
 
Fred (2011) em sua entre vista para o boletim OUCH! explica que a criptografia 
funciona utilizando um a cifra e uma chave para converter um texto simples em um 
texto criptografado. A cifra é a receita geral da criptografia e sua chave torna seu dado 
encriptado único – somente as pessoas com a sua chave única e a mesma cifra 
podem decifrá-lo. 
 
Fred (2011) completa dizendo que as chaves são normalmente uma longa sequência 
de números protegidos por um mecanismo comum de autenticação como senhas, 
“tokens”, ou biometria como sua impressão digital. 
 
Propriedades fundamentais da criptografia 
 
Disponibilidade 
 
Propriedade de que a informação esteja acessível e utilizável sob demanda por uma 
pessoa física ou determinado sistema, órgão ou entidade 
 
 
Integridade 
 
Propriedade de que a informação não foi modificada, inclusive quanto à origem e ao 
destino, ou destruída 
 
Confidencialidade 
 
Propriedade de que a informação não esteja disponível ou revelada a pessoa física, 
sistema, órgão ou entidade não autorizado e credenciado. 
 
 
Autenticidade 
 
Propriedade de que a informação foi produzida, expedida, modificada ou destruída 
por determinada pessoa física, ou por determinado sistema, órgão ou entidade. 
 
A importância da criptografia 
Segundo Peixinho, Fonseca e Lima (2013, p. 142) a criptografia, desde a sua 
existência, teve um papel muito importante para a sociedade, pois nos tempos 
antigos. Com o fim da Primeira Guerra Mundial, foi preciso criar mensagens 
criptografadas para caso o inimigo pegue a mensagem de alguma forma eles 
não conseguirão ler a mensagem devido a sua codificação 
Stallings (2007, p . 15) relata que atualmente a criptografia é a ferramenta 
mais importante para a segurança de redes e das comunicações. Se não 
existisse a criptografia, a internet não seria tanto segura quanto ela é, pois se 
mesmo com os avanços da criptografia, milhares de dados pessoais dos 
 
 
 
 
usuários são roubados diariamente, e é por isso que há a necessidade da 
criptografia evoluir cada vez mais, para estar sempre dificultando o roubo de dados. 
 
Criptoanálise 
Tâmega (2003, p. 3 6) explica que a criptoanálise consiste em estratégias 
matemáticas com o objetivo de quebrar um algoritmo de criptografia. Como 
não há um meio matemático de se provar que esse algoritmo é o u não 
seguro, então, ele é seguro até que alguém consiga quebrá-lo. 
Tâmega (2003, p. 36) fala que a maior dificuldade que um criptoanalista possui 
ao tentar quebrar um algoritmo está no número de chaves que este utiliza, 
pois quanto maior o número de chaves, maior a dificuldade de se conseguir 
obter sucesso na criptoanálise de um determinado sistema. 
Tâmega (2003, p. 36) ainda completa dizendo que um sistema que seja 
impossível de se quebrar fica conhecido como sistema de segurança perfeita. E para 
isso é necessário que o número de chave seja m aior do que o tamanho do 
comprimento do texto legível e que a probabilidade de ocorrência entre elas 
seja a mesma. 
Tâmega (2003, p. 37) ainda descreve alguns tipos de ataques a texto 
criptografados. 
 
Ataque por texto ilegível 
Ocorre quando um criptoanalistaconsegue obter o texto legível somente 
estudando o texto criptografado. Esse tipo de ataque geralmente serve para 
quebrar algoritmos baseados em monossubstituição. O criptoanalista verifica a 
frequência em que as letras aparecem no texto criptografado e deduz qual 
seriam elas no texto original. 
 
Ataque por combinação 
Ocorre quando o criptoanalista possui um a parte do texto criptografado e um a 
parte do texto original, por meio disso ele consegue chegar ao método utilizado 
para criptografar o texto. 
 
Ataque por encriptação 
O criptoanalista tem acesso a chave de codificação, criptografa um texto 
qualquer e utiliza o método da combinação para tentar achar algum texto 
criptografado. Ou então usa o método da comparação, que consiste em 
criptografar vários textos e os compara. 
 
 
 
 
 
4.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 21 28 é 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 bits. 
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 acada 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 25 6 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 a 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, po ressa 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 tecnologia bastante 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 FastEncryption 
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. 
 
 
 
 
 
5.Dissertação 
Para podermos descrever o processo e o aplicativo podemos começar com sua base, 
ela é a parte principal para termos uma criptografia sem problemas e que possa dar 
a devida segurança ao usuário, além de que possa reconhecer diferentes alfabetos. 
 
Neste trabalho usamos como base dois tipos de criptografia: 
 
-Cifra Linear de César: 
 
Utiliza apenas o método comum de adicionar o valor da chave e percorrer a tabela de 
caracteres “UTF-8”, caso ultrapasse o número de caracteres existentes na “UTF-8” o 
código iras ler a tabela desde o início. 
 
Uma fraqueza deste tipo de código seria os caracteres especiais, pois quando 
criptografados eles são mostrados em caracteres únicos, como a barra de espaço 
que ira sempre aparecer com o valor de “%” 
 
- Cifra NãoLinear de César: 
 
Este método utiliza-se uma coordenação personalizada onde é baseada em pegar a 
mensagem escrita, pegar seu Key value, cria uma lista, randomiza o valor-chave e 
adiciona este valor ao texto. 
 
Por conta dos valores sempre serem aleatórios os resultados nunca serão os 
mesmos. 
 
Por exemplo: 
 
Se escrevermos uma mensagem qualquer e definirmos o valor da chave como cinco, 
assim o programa adicionara mais cinco valores para cada caractere do texto escrito, 
como exemplo usaremos a frase “Hello Word” com o valor de chave cinco o resultado 
seria “Mjqqt% \ twqi% &.”. 
 
Decidimos aplicar estes métodos no nosso trabalho pois vimos a chance de podermos 
implementar coisas novas em um estilo de criptografia, podemos juntar o que há de 
mais antigo na humanidade com a programação. 
 
Já a interface gráfica usamos “Tkinter” apesar de ser algo simples, pudemos usar de 
uma maneira em que seja interativa e de fácil uso do usuário, onde ele possa saber 
exatamente o que quer fazer e consiga ver o resultado esperado. 
 
Esperamos com resultado final com que o usuário sinta-se seguro de poder confiar 
alguma mensagem ou código para ser criptografado, além de contar com o 
reconhecimento de alfabetos que aumenta ainda mais a criatividade e segurança de 
quem estará utilizando esta aplicação para que seja a melhor possível dentro dessa 
área imensa que é o mundo da criptografia e todos os seus derivados. 
 
 
 
 
 
 
Nesta amostra podemos ver como ficaria se fizéssemos uma mensagem em japonês 
com três chaves. 
 
 
 
 
 
 
 
Nesta imagem fizemos um teste com mais letras do que o alfabeto mais utilizado no 
Japão (Hiragana e Katakana os dois possuem 45 caracteres ). 
Após feitos os testes confirmamos que estava funcionando corretamente com outros 
alfabetos. 
 
 
 
 
 
 
 
Aqui pode-se ver a interface da aplicação e o posicionamento das caixas de texto e 
dos botões, decidimos por usar o “Tkinter” por ser mais simples porém bonita e de 
fácil compreensão do usuário. 
 
 
 
 
 
Colocamos este botão para o próprio usuário decidir o tipo de criptografia que será 
usado no momento, achamos ser uma idéia interessante porque se for algo mais 
simples e que não seja de segredo maior poderá facilmente usar a criptografia linear 
porem poderá escolher a não linear também. 
 
6.Estruturação, Conceitos e Fundamentação 
Esse programa para criptografar o texto usando caesar chyper e uma versão 
customizada dele. Basicamente, você escreve uma mensagem de texto e escolhe 
uma chave entre 1 e 55,294 e na optionBox o tipo de criptografia entre Linear Caesar 
Cypher e Não linear Caesar Cypher . 
 
Cifra Linear de César 
O Linear Caesar Cypher usa o método normal apenas usa o valor definido Key para 
adicionar este número na Mensagem e percorrer a Tabela UTF-8 (Se chegar ao final 
da tabela o código começa novamente do início). A principal fraqueza desse método 
 
 
 
 
é que todo carachter tem um valor e esse valor se repete como o espaço no exemplo 
usa o valor %, então em cada espaço em branco é um % com auxílio de 
 
 software pode facilmente descobrir o segredo. 
 
Cifra Não Linear de César 
O Non Linear Caesar Cypher usa um método personalizado que pega a mensagem 
e usando o Key value ele cria uma lista e randomiza um valor-chave e adiciona este 
valor ao texto, por causa dos valores aleatórios o resultado sempre será aleatório. 
 
Por exemplo: 
Eu escrevo a mensagem Hello World! e escolhe o Linear Cypher com o valor de chave 
5, então o programa adiciona + 5 para cada carachter no texto. Olá Mundo! + 5 -> 
Mjqqt% \ twqi% &. 
 
Eu escrevo a mensagem Hello World! e escolhe o Non Linear Cypher com o valor de 
chave 5, então o programa adiciona + 5 para cada carachter no texto. Olá Mundo! + 
5 -> ifjgjQkvsy)] yyvm &. 
 
Obs: O crip.py é o programa principal e cryptography.py é onde estão as funções. 
1 - DES 
2 - 3DES 
3 - DESX 
4 - AES 
5 - CAMELIA 
6 - RSA 
7 - BLOWFISH 
8 - TWOFISH 
9 - SAFER 
10 - IDEA 
 
7.Beneficios em Relação as Tecnicas Anteriores. 
 
 
 
 
 
A Criptografia consiste em técnicas para codificar dados e informações. Nisso, só a 
que envia e recebe a mensagem tem a capacidade, com uma chave, abrir esse 
conteúdo. 
E possível dizer que para funcionar consiste da seguinte forma : a pessoa envia a 
mensagem e usa o código para bloquear . A pessoa precisa ter a chave para dês 
criptografar a mensagem. 
 
Os Benefícios da Criptografia tem seus benefícios e suas vantagens como , Proteção 
de Dados, Segunda de Backups , Transações na Web. 
 
Proteção de Dados 
Tem possibilidade de dados confidenciais em aparelhos, como senhas. Para isso, e 
possível, criar uma parte em que todas as informações armazenadas serão 
criptografadas automaticamente. 
 
Seguranca de Backups 
 
Hoje em dia, e comum acontecer alguns ataques cibernético como Hacker ,que 
acessa backups de usuários, por isso, usar a Criptografia e uma maneira de aumentar 
a Segurança. Dessa maneira ,se algum hacker tenta acessar os dados do usuário ele 
terá que decifrar e mesmo assim tera dificuldades de acessar os dados do usuário. 
 
A Criptografia Cifra de Cesar. 
Ele usa o códigos nas mensagens enviadas generais, com um sistema de 
substituição, no qual cada letra de mensagem original e trocada pela letra que situa 
três posições a sua frente. Qualquer código que tem esse padrão e considerado 
código de cesar. 
 
8.Aplicações que fazem/fizeram uso da técnica 
 
A Cifra de César foi utilizada usada pelo Império Romano para enganar seus 
inimigos e por líderes militares por centenas de anos depois de César. 
 
Ela consistia em escrever frases com o alfabeto normal, mas usando sempre 
três letras adiante. Ele vigorou por algum tempo, mas perdeu a utilidade após 
ser “quebrado”. Com o surgimento dos meios digitais, como rádio, telefone e, 
posterior mente , a internet, os métodos de criptografia precisaram se tornar 
mais avançados a fim de serem mais eficazes. 
 
 
 
 
 
9. Discussão comparativa entre as técnicas mais usadas 
 
DES (Data Encryption Standard) é baseado no algoritmo de Feistel. Ele usa um bloco 
de criptografia DES de 64 bits e o divide em dois blocos de 32 bits. Em seguida, o 
bloco direito é movido para a próxima rodada e se torna o bloco da esquerda sem 
qualquer processamento. Agora O bloco à esquerda inicia a operação definitiva do 
bloco à direita e aplica a função de criptografia DES para processamento, e então a 
envia para a próxima rodada como o bloco à direita. Repita várias vezes até obter o 
texto criptografado 
(Uma rodada na criptografia é repetir o mesmo cálculo, ou seja, a mesma fórmula é 
várias vezes no número de rodadas. Isso é feito para aumentar a entropia da senha, 
embaralhando ainda mais os dados. Se eu criptografar um bloco de texto por vez, 
terei uma saída e, em seguida, criptografarei a mesma saída novamente em outro 
ROUND, vou criar mais confusão no texto, tornando mais difícil invertê-lo. ) 
Cmellia: A criptografia denominada de “Camellia” seria basicamente um método de 
sigilo de comunicações, ela pode ser descrita como uma criptografia com o algoritmo 
de chave simétrica e o de codificação de bloco, com o tamanho de bloco de 128 bits 
de e tamanhos de chaves de 128, 192 e 256 bits . 
Ela foi criada para ser adequada tanto para hardware e software, com isto criava-se 
uma gigantesca lista de possibilidades e usar equipamentos mais acessíveis, como 
foram usados cartões inteligentes de baixo custo para redes de sistema de grande 
velocidade. 
 
 
 
 
 
https://piffaretti.files.wordpress.com/2020/10/4b9f1d5e-2492-4250-b800-
ea603ab38254.png 
 
DES (Data Encryption Standard) é baseado no algoritmo de Feistel. Ele usa um bloco 
de criptografia DES de 64 bits e o divide em dois blocosde 32 bits. Em seguida, o 
bloco direito é movido para a próxima rodada e se torna o bloco da esquerda sem 
qualquer processamento. Agora O bloco à esquerda inicia a operação definitiva do 
bloco à direita e aplica a função de criptografia DES para processamento, e então a 
envia para a próxima rodada como o bloco à direita. Repita várias vezes até obter o 
texto criptografado 
(Uma rodada na criptografia é repetir o mesmo cálculo, ou seja, a mesma fórmula é 
várias vezes no número de rodadas. Isso é feito para aumentar a entropia da senha, 
embaralhando ainda mais os dados. Se eu criptografar um bloco de texto por vez, 
 
 
 
 
terei uma saída e, em seguida, criptografarei a mesma saída novamente em outro 
ROUND, vou criar mais confusão no texto, tornando mais difícil invertê-lo.). 
 
https://tecnologiadarede.webnode.com.br/news/noticia-aos-visitantes/ 
(Algoritmo do DES) 
 
IDEA: É um tipo de chave baseadas em uma chave 128 bits, onde esta chave e 
criptografa e decripta a mensagem, ela é considerada uma criptografia complexa pois 
se utiliza de funções matemáticas junto da chave de 128 bits, dentre as funções vai 
desde multiplicação básica até álgebra avançada. 
 
 
 
 
 
Aqui está um exemplo de como a IDEA interpreta as chaves e suas sub-chaves 
 
SAFER (Secure and Faster Ecryption Routine): Esta é um tipo de criptografia de 64 
bits que também pode ser encontrada pelo nome de “SAFER SK-64”, ela funciona 
basicamente com o embaralhamento das chaves, outro embaralhamento, 
substituição de camada, outro embaralhamento das chaves e no processo final a 
difusão da camada. 
 
 
 
 
 
https://en.wikipedia.org/wiki/SAFER#/media/File:SAFER.png 
 
Esta imagem mostra como é feita cada etapa descrita a cima 
 
 
10. Vulnerabilidades e Falhas 
 
O estudo que leve a descoberta de vulnerabilidades de falhas se da pela criptoanálise 
uma ciência que foca em descobrir vulnerabilidades e falhas em códigos e erros 
lógicos. O sucesso que um criptoanalista se da quando é descoberta a chave de 
 
 
 
 
criptografia ou consiga recuperar os dados originais. Existem algumas formas de 
ataque para poder descobrir tais chaves. 
1. Ataque por texto cifrado: O ataque consistem em vários textos cifrados com o 
mesmo algoritmo. Ele tenta deduzir os textos planos ou a chave, comparando varias 
mensagens cifradas com a mesma chave. 
2. Ataque por Texto Plano: O criptoanalista tem acesso a várias mensagens e seus 
respectivos textos cifrados. Ele tem como meta deduzir as chaves ou um algoritmo 
que quebre a codificação de outras mensagens cifradas com as chaves usadas nos 
textos cifrados de sua posse. 
3. Ataque por Texto plano: O criptoanalista tem acesso a um conjunto de textos 
cifrado se seus respectivos textos planos, mas também escolhe quais textos planos 
deseja cifrar. 
4. Ataque por texto plano escolhido: É um caso especial, pois pode subdividir a 
escolha dos pares de textos cifrados e planos, desta forma a escolha de um 
subconjunto destes textos é baseada no resultado da cifra obtida de um subconjunto 
anterior. 
5. Ataque por texto cifrado escolhido: É um ataque obscuro que depende da 
quantidade e qualidade das informações que o criptoanalista tem sobre as chaves, 
Não é um ataque prático. 
6. Ataque por texto plano escolhido e adaptado: O criptoanalista pode escolher 
diferentes textos cifrado se ter acesso a seus respectivos textos planos. Seu trabalho 
é deduzir à chave. Esse tipo de ataque é comumente aplicado em cifradores de chave 
pública e algumas vezes efetivo contra cifradores simétricos. 
7. Ataque por Intimidação: Conhecido como engenharia social, usa de métodos 
como suborno, ameaças ou tortura para se conseguir a chave. 
Vulnerabilidade. 
 
 Criptografia de César: 
1. Para que houvesse a compreensão da mensagem pelo receptor, era preciso que 
a chave de criptografia fosse previamente combinada entre o emissor e o receptor. 2. 
A regra combinada pelo emissor e pelo receptor é simétrica, no sentido de que as 
operações realizadas pelo emissor para cifrar uma mensagem são feitas de maneira 
inversa pelo receptor para decifrá-la. 
2. A regra combinada pelo emissor e pelo receptor é simétrica, no sentido de que 
as operações realizadas pelo emissor para cifrar uma mensagem são feitas de 
maneira inversa pelo receptor para decifrá-la. 
Esses problemas tornam qualquer forma de criptografia muito difícil e der implantada 
para utilizações em larga escala, pois demanda uma grande operação logística de 
distribuição das chaves de criptografia em diferentes locais onde os receptores 
estariam, e se eventualmente a chave fosse descoberta, uma nova distribuição de 
chaves deveria ser realizada. 
 
 
 
 
 
11.Melhorias e propostas de implementação 
Melhorias sempre podem ser acrescentadas quando se fala em criptografia, sempre 
existe um jeito de poder “quebrar” os códigos, por isso este tema é muito sensível 
quando falamos de melhorias, um exemplo de melhoria seria sobre os aspectos 
visuais onde teria maior interação com o usuário ou até mesmo maior facilidade de 
encontrar as funções do programa. 
Outra melhoria seria criar um banco de dados com o login e senha do usuário, pois 
assim para poder ir ao texto criptografado o invasor primeiramente teria de decifrar o 
usuário e senha para tentar entrar no programa, podemos criar diversas melhorias 
pois esta área é imensamente vasta. 
Já as implementações podem ser um pouco mis complexas de serem feitas porém 
são uma das partes mais importantes, pois podemos colocar muitas coisas novas, 
Uma delas seria fazer toda vez que alguém criptografa algo esta criptografia sempre 
vai ser diferente, porém seria necessário criar um servidor onde apenas os 
desenvolvedores tenham acesso para poder garantir a segurança do usuário e do 
sistema. 
Podemos citar inúmeras melhorias e implementações, porém temos de ter cuidado 
pois se não forem feitas corretamente ou com a devida atenção pode criar problemas 
estruturais, ou seja, problemas que geram outros problemas, dependendo da 
gravidade do erro pode-se deixar muito vulnerável o banco de dados ou até mesmo 
a criptografia em si, por isso implementações e melhorias internas muitas vezes são 
demoradas devido a este fato. 
As melhorias visuais já é um caso mais acessível, pois não terá de mexer com códigos 
e estruturas internas, apenas melhorar a interface e a interação com o usuário, mas 
também precisa ser feita com muita cautela, alguns erros podem deixar o aplicativo 
com nenhum entendimento ou ilegível dependendo da formatação feita. 
Neste tema de melhorias e implementações o este aplicativo é algo que representa 
muito bem, pois novos tipos de criptografia estão sendo descobertos e inúmeras 
formas já existentes, é uma área muito extensa no quesito, o esperado sempre será 
melhorar e ser o mais seguro possível para que apenas um ataque de força bruta não 
consiga decifrar e que não seja sempre uma transferências de letras um exemplo 
seria: 
 
12.Projeto 
import random 
from tkinter import * 
import tkinter.ttk as ttk 
import criptografia as cript 
 
 
 
 
 
 
#Funções 
 
def plus_click(): 
 global key 
 if key < 55294: 
 key += 1 
 else: 
 key = key 
 keylabel['text'] = key 
 
 
def minus_click(): 
 global key 
 if key > 1: 
 key -= 1 
 else: 
 key = key 
 keylabel['text'] = key 
 
def plus_click1(): 
 global key1 
 if key1 < 55294: 
 key1 += 1 
 else: 
 key1 = key1 
 keylabel1['text'] = key1 
 
 
def minus_click1(): 
 global key1 
 
 
 
 
 if key1 > 1: 
 key1 -= 1 
 else: 
 key1 = key1 
 keylabel1['text'] = key1 
 
 
def encrypt(): 
 if(variable.get() == 'Criptografia não linear'): 
 texto = cript.non_linear_cypher(get_text(crip1),key) 
 render_text(result1, texto) 
 else: 
 texto = cript.ceasar_cypher(get_text(crip1), key) 
 render_text(result1, texto) 
 
 
def decrypt(): 
 if(variable.get() == 'Criptografia não linear'): 
 texto1: str = cript.reverse_non_linear_cypher(get_text(crip2), key1) 
 render_text(result2, texto1) 
 else: 
 texto1: str = cript.ceasar_cypher(get_text(crip2), key1*-1) 
 render_text(result2, texto1) 
 
def get_text(reference: object) -> str: 
 return reference.get('1.0', END).strip() 
 
def render_text(reference: object, value: str) -> None: 
 reference.delete('1.0', END) 
 reference.insert('1.0', value) 
 
 
 
 
 
 
#Main window 
root = Tk() 
root.geometry('720x650') 
root.resizable(False,False) 
root.title('Joséfa Criptografias') 
 
 
#Variáveis 
texto = ' ' 
texto1 = ' ' 
final_message = '' 
key = 3 
key1 = 3 
options = ['Criptografia linear', 'Criptografia não linear', 'Criptografia linear'] 
 
#Abas 
abas = ttk.Notebook() 
aba1 = Frame(abas) 
aba2 = Frame(abas) 
 
 
aba1.configure(background = '#add8e6') 
aba2.configure(background = '#add8e6') 
 
 
abas.add(aba1, text = 'Criptografar') 
abas.add(aba2, text = 'Descriptografar') 
 
 
abas.place(relx=0, rely=0,relwidth=0.98, relheight=0.98) 
 
 
 
 
 
 
 
"""Editar Chave """ 
#Button + 
mButton = ttk.Button(aba1, width = 10, text = "+", command = plus_click, cursor = 
'hand2') 
mButton.place(x = 205, y = 320) 
 
#Texto Chave 
keylabelM = Label(aba1, width = 10, height = 1, text = "Chave", bg = '#add8e6') 
keylabelM.place(x = 115, y = 280) 
keylabel = Label(aba1, width = 10, height = 1, text = key, relief = 'solid', bg = 'white') 
keylabel.place(x = 115, y = 300) 
 
#Button - 
pButton = ttk.Button(aba1, width = 10, text = "-", command = minus_click, cursor = 
'hand2') 
pButton.place(x = 30, y = 320) 
 
"""Editar Chave Aba 2""" 
#Button + 
mButton1 = ttk.Button(aba2, width = 10, text = "+", command = plus_click1, cursor = 
'hand2') 
mButton1.place(x = 205, y = 320) 
 
#Texto Chave 
keylabelM1 = Label(aba2, width = 10, height = 1, text = "Chave", bg = '#add8e6') 
keylabelM1.place(x = 115, y = 280) 
keylabel1 = Label(aba2, width = 10, height = 1, text = key1, relief = 'solid', bg = 'white') 
keylabel1.place(x = 115, y = 300) 
 
 
 
 
 
#Button - 
pButton = ttk.Button(aba2, width = 10, text = "-", command = minus_click1, cursor = 
'hand2') 
pButton.place(x = 30, y = 320) 
 
 
"""Criptografar""" 
#Title 
title = Label (aba1, text = "Joséfa Criptografias", bg = '#add8e6') 
title.place(bordermode = OUTSIDE, height = 60, x = 30, y = 1) 
title.config(font=("Courier", 40)) 
 
#Label 
label1 = Label(aba1, text = "Criptografar Texto", bg = '#add8e6') 
label1.place(bordermode = OUTSIDE, height = 30, x = 320, y = 75 ) 
 
#Text 
crip1 = Text(aba1, width = 40, height = 15) 
crip1.place(bordermode = OUTSIDE, height = 150, width = 550, x = 80, y = 120) 
 
#Botão 
button1 = ttk.Button(aba1, text = 'Criptografar', command = encrypt, cursor = 'hand2') 
button1.place(bordermode = INSIDE, height = 30, width = 100, x = 510, y = 320) 
 
#Label 
label2 = Label(aba1, text = 'Texto Criptografado', bg = '#add8e6') 
label2.place(bordermode = INSIDE, height = 30, x = 308, y = 360) 
 
#Resultado 
result1 = Text(aba1, width = 40, height = 15) 
result1.place(bordermode = INSIDE, height = 150, width = 550, x = 80, y = 400) 
 
 
 
 
 
#Seleção de Criptografia 
variable = StringVar(aba1) 
variable.set('Criptografia Não Linear') 
select = ttk.OptionMenu(aba1, variable, *options) 
select.place(x = 315, y = 320) 
 
 
 
"""Descriptografar""" 
#Title 
title1 = Label (aba2, text = "Joséfa Criptografias", bg = '#add8e6') 
title1.place(bordermode = OUTSIDE, height = 60, x = 30, y = 1) 
title1.config(font=("Courier", 40)) 
 
#Label 
label3 = Label(aba2, text = "Descriptografar Texto", bg = '#add8e6') 
label3.place(bordermode = INSIDE,height = 30 , x = 310, y = 75) 
 
#Text 
crip2 = Text(aba2, width=40, height=15) 
crip2.place(bordermode = INSIDE, height = 150, width = 550, x = 80, y = 120) 
 
#Button 
button2 = ttk.Button(aba2, text='Descriptografar', command = decrypt, cursor = 
'hand2') 
button2.place(bordermode = INSIDE, height = 30, width = 100, x = 510, y = 320) 
 
#Label 
label4 = Label(aba2, text = 'Texto Descriptografado', bg = '#add8e6') 
label4.place(bordermode = INSIDE, height = 30, x = 308, y = 360) 
 
 
 
 
 
#Resultado 
result2 = Text(aba2, width = 40, height = 15) 
result2.place(bordermode = INSIDE, height = 150, width = 550, x = 80, y = 400) 
 
 
#Seleção de Criptografia 
variable1 = StringVar(aba2) 
variable1.set('Criptografia Não Linear') 
select1 = ttk.OptionMenu(aba2, variable, *options) 
select1.place(x = 315, y = 320) 
 
"""Runs main window""" 
root.mainloop()

Continue navegando