Escolar Documentos
Profissional Documentos
Cultura Documentos
– Universidade
Universidade Paulista – Campus
Campus Alphaville
Tema –
Tema – RCA
RCA
Integrantes:
Curso: Ciência da Computação
Turma: 2º Semestre
Tema –
Tema – RCA
RCA
2013
Sumário
Para tanto, iremos abordar como principal assunto o tema as técnicas criptográficas,
conceitos, usos e aplicações.
Atualmente vivemos na era da informação, ou seja, não há nada que fazemos hoje onde
não exista trafego de informação, até mesmo quando não sabemos, existem dados sendo
transmitidos e informações sobre nós podem ser enviadas. Com o mundo globalizado e
principalmente com o acesso a internet cada vez maior, é comum que haja integração de
pessoas com todo o mundo, seja para um bate papo, troca de conhecimentos,
mensagens, redes sociais e muitas outras coisas que nos envolvem no âmbito pessoal,
porem não é só para isto que há transmissão de dados, esta ocorre também para assuntos
onde a privacidade ou segurança da informação transmitida é essencial para o negocio
empresa ou as pessoas envolvidas, como transações bancarias, envio de e-mail, acesso a
rede de dados armazenamento de arquivos confidencias além de dados secretos do
governo ou até mesmo estratégias militares. Como toda esta informação transita pela
internet não é difícil que um invasor malicioso tenha acesso a qualquer um destes dados,
e a proteção da informação que enviamos em qualquer um dos casos acima é
importantíssima.
Com o objetivo de assegurar que nossos envios e recebimentos de dados sejam feitos de
maneira segura, são utilizados técnicas que transformam a informação enviada em uma
informação ilegível, para que esta possa ser transmitida e se for interceptada, não poderá
ser interpretada. Por outro lado ao receber esta informação ilegível, temos ferramentas
que conseguem transformar a informação novamente no formato original, porém para
isto, é necessário o conhecimento de uma chave que irá possibilitar esta função.
Para este processo é dado o nome de criptografia, e apesar de ser muito conhecido no
mundo digital, nos tempos atuais, esta é uma técnica utiliza a centenas de anos, com o
mesmo objetivo, ou seja proteger informação. Desde quando a humanidade ainda
escrevia na pedra até hoje muitas formas de criptografia foram inventadas, e agora,
vamos conhecer algumas das principais.
Na palavra criptografia, “Cripto" vem do grego "kryptos" e significa oculto, envolto,
escondido. Também do grego, "graphos" significa escrever.
Com o avanço cada vez maior dos poderes das Redes de Computadores, o mundo tende
a ficar menor, perder fronteiras, encurtar distâncias. Hoje, com um simples apertar de
teclas, pode-se intercambiar informações através dos cinco continentes em questão de
minutos ou até segundos. Este avanço faz com que a informação e o controle sobre ela
sejam estratégicos para os governos e para as empresas. E, quanto maior o fluxo de
informações em redes de telecomunicações, ou maior a quantidade de informação
armazenada em meios computacionais, maior é a necessidade de empresas, governos e
até de pessoas físicas de se protegerem contra uma nova ameaça que está crescendo
proporcionalmente ao desenvolvimento da informática. Trata-se do furto de informação
sigilosa e estratégica, armazenada em meios computacionais, ou da adulteração de
transações através do poder das telecomunicações. Pensando na necessidade de se criar
ferramentas capazes de proteger a informação e de prover segurança aos dados
armazenados e transmitidos pelas organizações através do mundo, veio a motivação
para se estudar Criptografia.
Durante muitos séculos, a criptografia foi tratada como uma arte. Enquanto gregos
deliciavam-se com o embaralhamento de palavras, os romanos já utilizavam tais
conhecimentos para guerras e segredos de estado. Naturalmente, isso lhes deu grande
vantagem, pois, ainda que um mensageiro fosse capturado, a mensagem permaneceria
protegida. Mas a “arte de cifrar mensagens” tem origens muito mais antigas.
Cifra de Substituição
Cifra de Transposição
As Cifras de transposição são cifras onde houve a reordenação lógica das letras da
mensagem, com base em uma função. Esta é uma técnica mais complexa que a de
substituição, pois existe um argumento lógico envolvido na construção da cifra.
Cifra em Rota, já neste tipo, a mensagem deve ser escrita seguindo um formato pré-
definido,seguindo sempre uma rota que pode ser transversal, espiral linear entra outras.
A chave para encriptação será a rota escolhida assim como o movimento necessário
para sua leitura.
Transposição de colunas, das técnicas de utilização da cifra de transposição esta é uma
das que se obtém melhores resultados. Para utilizar-la, deve-se transpor a mensagem em
colunas, feito isso se escolhe uma palavra chave com o mesmo numero de letras que a
quantidade de colunas, depois reordena as colunas seguindo a ordem alfabética das
letras da palavra chave. E ainda pode ser usado em conjunto com a cifra em rota,
aplicando esta para a formação das colunas. Para decifrar este tipo de cifra de
transposição é necessário o conhecimento da palavra chave.
Basicamente, existem dois tipos de chaves que são usadas nesse processo de
criptografia: simétricas e assimétricas.
Chave simétrica
É o tipo de chave mais simples e a mesma chave é utilizada tanto pelo emissor quanto
por quem recebe a informação. Ou seja, a mesma chave é utilizada para codificação e
para a decodificação dos dados. O uso de chaves simétricas tem desvantagens, e não é
indicado para casos que envolvem informações muito valiosas.
DES (Data Encryption Standard): criado pela IBM em 1977, o DES usa chaves de 56
bits, permitindo até 72 quatrilhões de combinações. Apesar disso, foi „quebrado‟ ou
desvendado utilizando-se as chamadas técnicas de "força bruta" (tentativa e erro) em um
desafio promovido na internet.
RC (Ron'sCode ou RivestCipher): criado por Ron Rivest na empresa RSA Data
Security, esse algoritmo é muito utilizado em e-mails e usa chaves de 8 a 1;024 bits. Há
várias versões: RC2, RC4, RC5 e RC6. Cada uma delas difere da outra por trabalhar
com chaves de maior complexidade.
Chave assimétrica
Também conhecida como "chave pública", a chave assimétrica trabalha com duas
chaves: uma privada e outra pública.Nesse método, uma pessoa deve criar uma chave de
codificação e enviá-la a quem for lhe mandar informações. Essa é a chave pública. Uma
outra chave deve ser criada para a decodificação. Esta, a chave privada, é secreta.
Para se confiar em um sistema de segurança, é necessário que este sistema tenha sido
testado inúmeras vezes e que tenha se mostra seguro em 100% dos casos. Podemos
dizer que não há um sistema de criptografia perfeito, pois todos podem ser quebrados,
mas o que vai determinar se realmente são seguros é a complexidade necessária para
que uma cifra gerada seja quebrada. Além disso, outro fator que poderá determinar o
uso de um método de criptografia é a facilidade para implementação controle
emanutenção deste método.
Por este motivo, nosso grupo decidiu falar um pouco sobre o algoritmo RSA, esta
técnica de criptografia, foi inventada em 1978 por R. L. R ivest, A. Shamir e L.
Adleman, quando trabalhavam no MassachussetsInstituteof Technology (M.I.T.). A
junção das iniciais dos Seus sobrenomes deu origem ao nome da técnica.
O RSA, por ser um método de chave pública, permite que qualquer usuário codifique
mensagens, mas como a chave de decodificação é secreta, só o destinatário legítimo
poderá decodificá-la. A impossibilidade de quebrar a chave de decodificação é possível
pela não existência de algoritmos eficientes para a fatoração de inteiros em fatores
primos, ainda mais, se o número de algarismos é maior que 100. O tempo de
codificação de uma mensagem é insignificante, mas tentar quebrar uma mensagem
cifrada com esta técnica poderia levar anos.
O RSA foi construído sobre uma das áreas mais clássicas da matemática, a Teoria dos
números. Ele se baseia na dificuldade em fatorar um número em seus componentes
primos.Segundo o Teorema Fundamental da Aritmética todo número inteiro positivo
maior que 1 pode ser decomposto de forma única em um produto de números primos.
Fatorar números pequenos é algo simples, mas fatorar números grandes é bem difícil e
demorado, pois este é um problema que não pode ser resolvido em um tempo
determinável, ou seja, não há uma fórmula para isto.
E como o RSA usa isto tudo? As chaves pública e privada são geradas com base na
multiplicação de dois números primos. O resultado desta multiplicação será público
mas, mas os números que usamos para multiplicar são privados e armazenados de forma
secreta, inviabilizando a decifração da mensagem a não ser que seja o detentor da chave
publica.
2. Computen = p q
4. Escolha um inteiro e
, tal que 1 <e
< ɸ (n)de forma que e
eɸ(n) sejam primos
entre si.
c = m^ emod n
Decifração
Para recuperar a mensagem m da mensagem cifrada c usando a respectiva chave privada
do receptor ne d basta fazer outra potenciação modular:
m = c^ dmodn
Por se tratar de uma Chave Assimetrica, tem benefícios sobrea Chave Simétrica pois
esta apresenta alguns problemas graves, tais como a necessidade da troca constante
dessas chaves e a impossibilidade de serem usados com fins de autentificação,já que a
transmissão da chave privada de um para o outro pode não ser segura e acabar caindo
em outras mãos, apesar de seus algoritmos serem mais rápidos do que os algoritmos
assimétricos.
O algoritmo para gerar as chaves assim como para cifrar e decifrar as mensagens passou
a ser publico a partir do ano 2000, desta forma qualquer um pode usar esta técnica em
seus desenvolvimentos para criptografar seus dados, ao ponto que existem outros
algoritmos que são pagos.
Por se tratar de uma técnica muito segura de criptografia o RSA é utilizado por milhares
de aplicações em todo o mundo, Principalmente em aplicações de comercio eletrônico.
Para isto é utilizado no Browser como internet explorer, mozilla Firefox opera e outros.
Como o RSA possui duas chaves, ou seja é uma técnica assimétrica, as aplicações que a
utilizam, possuem um sistema de certificado digital, para garantir que a chave publica
do destinatário tenha sido enviada por ele, este certificado é validado por uma fonte
confiável, garantindo a segurança na transmissão dos dados.
Ainda podemos citar outras aplicações que utilizam esta técnica além dos navegados,
tais como Outlook, e outros gerenciadores de e-mail para o envio dos e-mails
aplicativos de celular para comunicação com portais, Excel para segurança de
documento e muitos outros.
1.4.5. Vulnerabilidades e falhas.
Uma chave RSA de 512 bits foi quebrada em 1999 pelo Instituto Nacional de Pesquisa
da Holanda, com o apoio de cientistas de mais 6 países. Levou cerca de 7 meses e foram
utilizadas 300 estações de trabalho para a quebra. Um fato preocupante: cerca de 95%
dos sites de comércio eletrônico utilizam chaves RSA de 512 bits.
Uma primeira abordagem de ataque ao RSA teria como objetivo a chave pública por
meio da fatoração do módulo, ou seja, dada uma fatoração, pode-se chegar ao expoente
de decriptografia. Este é um exemplo de ataque de força bruta ao RSA.
Para evitar a geração de módulos diferentes poderia ser considerado o uso do mesmo
módulo para todos os usuários emitido, por exemplo, por uma autoridade central
confiável. Apesar de parecer eficiente em uma primeira análise, um usuário poderia usar
seus próprios expoentes para fatorar o módulo de outros usuários. Devido a este fato,
um módulo RSA nunca deve ser utilizado por mais de uma entidade.Este é considerado
um ataque elementar pois ilustra o uso errôneo do sistema RSA
Para reduzir o tempo necessário para decriptar uma mensagem ou o tempo necessário
para gerar uma assinatura pode-se tentar usar um valor de pequeno no lugar de um
aleatório. Usando um pequeno pode-se alcançar uma melhora no desempenho em
torno de fatores de 10 para um, porém a escolha de um pequeno pode quebrar
completamente o sistema RSA.
DADOS TÉCNICOS:
O projeto de criptografia descrito neste trabalho foi desenvolvido em
linguagem C#, usando os princípios de chave simétrica, que é uma das
técnicas mais simples e utilizadas de criptografia hoje em dia. Este tipo de
chave é utilizado tanto para codificação quanto para descodificação de dados.
O programa funciona com o principio de substituição de caracteres
originais por outros. As posições permanecem as mesmas, mas os caracteres
inseridos pelo usuário são substituídos pelo alfabeto de criptografia.
Variável cripto1
“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY
Z“
Variável cripto2
"poiuytrewqasdfghjklmnbvczxLKJHGFDSAQWERTYUIOPMNBVCZ X"
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Criptografador
{
class Program
{
staticvoid Main(string[] args)
{
//Declaração de Variáveis
int menu;
menu = 0;
//Formação de Menus
Console.ForegroundColor = ConsoleColor .Blue;
Console.Write("
____________________________________________________\n" );
Console.Write(" | |\n");
Console.Write(" | Bem Vindo ao Criptografador! |\n");
Console.Write("
|___________________________________________________|\n\n\n" );
Console.ResetColor();
menu = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("\n\n");
//Condição de Menus
//Condição de Menu 1
//Criptografando a Variável
Console.Write("__________________________________________________\
n\n");
Console.Write(" Seu Texto criptografado é : \n\n");
Console.ForegroundColor = ConsoleColor .Red;
Console.Write(" {0} \n", txtcripto);
Console.ResetColor();
Console.Write("__________________________________________________\
n");
Console.Read();
}
else
{
//Condição de Menu 2
if (menu == 2) //Condição de menu para entrar em descriptografar
{
txtnormal = txtcripto;
txtcripto = "";
Console.WriteLine(" Digite o texto que gostaria de descriptografar: \n");
txtnormal = Console.ReadLine();
//Descriptografando o Texto
Console.Write("
________________________________________________\n\n" );
Console.Write(" Seu Texto Criptografado é : \n\n");
Console.ForegroundColor = ConsoleColor .Green;
Console.Write(" {0} \n", txtcripto);
Console.ResetColor();
Console.Write("
________________________________________________\n" );
Console.Read();
}
else
{
//Condição de Menu 3
Console.Read();
}
else
{
//Condição de Menu 4
//Condição de menu
}
}
1.7. Apresentação do programa em funcionamento em um computador,
apresentando todas as funcionalidades pedidas e extras.