Buscar

Cesar_Vigenere_Gronsfeld - 2015-1

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 11 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 11 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 11 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

Sistemas Criptográficos Simétricos
Caracterizam-se pela utilização de chaves idênticas para cifração e para decifração, ou pelo menos, que uma possa ser derivada da outra de forma simples e direta.
	O maior problema de tais sistemas está na necessidade de um canal seguro para a transmissão (distribuição) das chaves, que devem ser mantidas secretas e do conhecimento apenas dos participantes da comunicação em questão.
	Pergunta típica: por quanto tempo se deve usar uma mesma chave?
Resposta: o tempo de validade de uma chave depende de muitos fatores. Em determinados sistemas pode ser conveniente usar uma chave para cada mensagem. Em outros, pode-se utilizar uma mesma chave por períodos longos.
Sistemas Criptográficos que fazem parte da história da criptografia.
	Neste tópico vamos tratar de alguns sistemas simples e de fácil implementação, que fazem parte da história da criptografia, que servem para sedimentação de conceitos e de base para o desenvolvimento de outros algoritmos criptográficos.
a) Cifra de César
	Originalmente consistia de uma substituição monoalfabética com a chave igual a 3, e um alfabeto de 26 caracteres, realizando uma transformação criptográfica da forma:
ci = (mi + k ) mod 26 
 Onde : mi representa um caractere do texto em claro;
 ci representa um caractere do criptograma;
 k = 3 ( chave); 
	Enfim, esta cifra realizava a substituição de cada caractere da mensagem por outro que se localiza três posições a frente, considerando a seqüência alfabética.
 	Exemplo-1: - sempre que aparecia o caractere ‘A’ era substituído pelo caractere ‘D’
		 - sempre que aparecia o caractere ‘B’ era substituído pelo caractere ‘E’
 - sempre que aparecia o caractere ‘C’ era substituído pelo caractere ‘F’
.
				.
				.
 sempre que aparecia o caractere ‘Z’ era substituído pelo caractere ‘C’
Generalizando a cifra de César.
As cifras de substituição com um algoritmo que represente apenas um deslocamento dos caracteres na ordem alfabética, são geralmente conhecidas como cifra de César.
Ex.:
 	A B C D E F ... T V W X Y Z
	G H I J K ... A B C D E F
Pode-se usar a chave k para k = 1, 2, 3, ... , 255, com alfabeto de 256 caracteres (alfabeto ( código ASCII).
Obs.: Mostrar programa e exemplos para o código ASCII
Program Cesarasc;
uses crt;
 var
 saida, opcao, caract, chave: byte;
 arq1 : file of byte;
 arq2 : file of char;
 nomearq1, nomearq2 : string[32];
begin
 clrscr;
 writeln('Nome do arquivo origem ? '); readln(nomearq1);
 writeln('Nome do arquivo destino ? '); readln(nomearq2);
 assign(arq1,nomearq1);
 assign(arq2,nomearq2);
 reset(arq1);
 rewrite(arq2);
 write(' Entre a chave : ');readln(chave);
 writeln(' Para criptografar Digite : 1 ');
 writeln(' Para decriptografar Digite : 2 ');
 read(opcao);
 while not eof(arq1) do
 begin
 read(arq1,caract);
 if opcao = 1
 then
 saida := (caract + chave) mod 256
 else
 begin
 if (caract - chave) < 0
 then saida := caract - chave + 256
 else saida := caract - chave;
 end;
 write(arq2,char(saida));
 end;
 writeln; writeln(' F I M');
end.
�
b) Cifra de Vigenère
Esta cifra pode ser descrita e explicada com o uso de uma tabela, na qual existe uma quantidade de alfabetos igual à quantidade de caracteres dos alfabetos.
A partir do alfabeto-base, se constrói os demais alfabetos, realizando-se um deslocamento circular.
Ex.:
	Alfabeto-base
	:
	ABCD
	-------------------
	YZ
	Alfabeto-1
	:
	BCDE
	-------------------
	ZA
	Alfabeto-2
	:
	CDEF
	-------------------
	AB
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	Alfabeto-25
	:
	ZABC
	------------------
	XY
A tabela é constituída de três partes, conforme se segue: alfabeto para as chaves; alfabeto para o texto em claro e alfabetos para o texto cifrado.
	
	 Chaves
	 Texto em claro
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
�
�
	
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	B
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	C
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	D
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	E
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	F
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	G
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	H
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	I
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	J
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	K
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	L
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	M
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	N
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	O
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	P
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	Q
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	R
	R
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	S
	S
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	T
	T
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	U
	U
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	V
	V
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	W
	W
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	X
	X
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	Y
	Y
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Z
	Z
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
	Y
	Tabela de alfabetos para o método de Vigenère.
Para cifrar, usa-se uma palavra chave, e escreve-se esta palavra repetidamente sobre o texto claro. A cifração é obtida na interseção da coluna da letra chave com a linha da letra do texto claro.
Para decifrar usa-se o processo inverso. Escreve-se o texto cifrado com a palavra chave repetida tanto quanto necessário. Procura-se na coluna da letra chave até encontrar a letra do texto cifrado, e então seguindo a linha desta até a entrada (à esquerda), obtém-se a letra do texto claro.
Exemplo.
 Texto claro : Comunicação
 chave : Brasil
 criptograma: ?
Cifração
	 chave
	
	B
	R
	A
	S
	I
	LB
	R
	A
	S
	I
	 texto
	
	C
	O
	M
	U
	N
	I
	C
	A
	C
	A
	O
	 Criptograma
	
	D
	F
	M
	M
	V
	T
	D
	R
	C
	S
	W
 Decifração
	 Chave
	
	B
	R
	A
	S
	I
	L
	B
	R
	A
	S
	I
	 Criptograma
	
	D
	F
	M
	M
	V
	T
	D
	R
	C
	S
	W
	 texto
	
	C
	O
	M
	U
	N
	I
	C
	A
	C
	A
	O
Exercícios
Cifre.
Texto em claro: ALEMANHA
Chave: TANGO
Decifre. 
Criptograma: NQFASHI
Chave: VINHO
Generalizando a cifra de Vigenère.
Pode-se utilizar números ou simplesmente um conjunto de bits, em vez de caractere. Assim, as operações de cifração e de decifração podem ser realizadas com o operador módulo, sem o uso da tabela de Vigenère. Nesse contexto em que os caracteres são substituídos por números. A variedade de alfabetos é infinita. 
Exemplos de Alfabetos:
Alfabeto-1: 0 1 2 3 4 ;
Alfabeto-2: 0 1 2 ... 255 (conjuntos de 8 bits ( 256 caracteres: Ex. Código ASCII);
Alfabeto-3: 0 1 2 ... 65535 (conjuntos de 16 bits);
Alfabeto-4: 0 1 2 ... 18446744073709551615 (conjuntos de 64 bits);
Exercício empregando o alfabeto-1.
Cifração do texto: 42314; Chave: 32 e m = 5.
Tx = elementos do texto; Ch = elementos da chave; Cr = elementos do criptograma.
m = cardinalidade do alfabeto (quant. de elementos do alfabeto)
Para cifrar: (Tx + Ch) mod m = Cr ; Para de decifrar: (Cr - Ch) mod m = Tx
Usando a tabela de Vigenère.
	
	0
	1
	2
	3
	4
	0
	0
	1
	2
	3
	4
	1
	1
	2
	3
	4
	0
	2
	2
	3
	4
	0
	1
	3
	3
	4
	0
	1
	2
	4
	4
	0
	1
	2
	3
 Chave: 3 2 3 2 3
 Texto: 4 2 3 1 4
 Cript : 2 4 1 3 2 
 
Usando a operações modulares.
 (Tx + Ch) mod m = Cr 
(4 + 3) mod 5 = 2
(2 + 2) mod 5 = 4
(3 + 3) mod 5 = 1
(1 + 2) mod 5 = 3
(4 + 3) mod 5 = 2
 Cript : 2 4 1 3 2 
Implementação da cifra de Vigenère utilizando operação modular para o código ASCII.
Program vigenere;
uses crt;
 var
 saida, opcao, caract, k: byte;
 arq1 : file of byte;
 arq2 : file of char;
 chave, nomearq1, nomearq2 : string[32];
 chavenum : array [1..32] of byte;
 i : longint;
begin
 clrscr;
 writeln('Nome do arquivo origem ? '); readln(nomearq1);
 writeln('Nome do arquivo destino ? '); readln(nomearq2);
 assign(arq1,nomearq1);
 assign(arq2,nomearq2);
 reset(arq1);
 rewrite(arq2);
 write(' Entre com a quantidade de caracteres da chave : ');readln(k);
 writeln(' Entre com a chave : '); readln(chave);
 for i := 1 to k do
 chavenum[i] := ord(chave[i]);
 writeln('Para criptografar Digite: 1');
 writeln('Para decriptografar Digite: 2');
 read(opcao); i:=0;
 while not eof(arq1) do
 begin
 read(arq1,caract);
 if opcao = 1
 then
 saida := (caract + chavenum[1+ i mod k]) mod 256
 else
 begin
 if (caract - chavenum[1 + i mod k]) < 0
 then saida := caract - (chavenum[1 + i mod k]) + 256
 else saida := caract - (chavenum[1 + i mod k]);
 end;
 write(arq2,char(saida)); inc(i);
 end;
 writeln; writeln(' F I M');
end.
c) Sistema de Gronsfeld
Neste sistema a cifração é realizada substituindo-se cada caractere do texto claro por um outro caractere determinado pela chave criptográfica.
A chave é constituída por uma seqüência de dígitos (de 0 a 9). 
Trata-se de um sistema polialfabético com 10 alfabetos, tendo em vista que, cada caractere pode ser substituído por outro até 9 posições a direita.
Exemplo.
Alfabeto: ABCDEFGHIJKLMNOPQRSTUVWXYZ
 Cifração - Texto claro: LIVRO
chave: 192
criptograma: ?
 Cifração
 1 9 2 1 9
 L I V R O
criptograma : M R X S X
Exercícios.
1) Cifração - Texto claro: AMBULATORIO
		- Chave: 285
2) Decifração – Criptograma: QLKQFPDVPFPR
		 - Chave: 43891
3) Criptoanálise (encontre a chave).
 - texto em claro: 	VENANCIO
 - texto cifrado : CFSHOHPP
ROT-13
Disponível no: http://pt.wikipedia.org/wiki/ROT13
ROT13
Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
��
��
ROT13 é uma cifra de César, um tipo de cifra de substituição
ROT-13 (ou rot13, rot-13, Rot13, etc) é o nome que se costuma usar para um procedimento simples mas eficaz para garantir que textos eletrônicos não sejam lidos por distração ou acidente. ROT-13 vem do inglês, ROTate by 13 places, "ROTacionar 13 posições".
Especificamente, a cifra ROT-13 tem se mostrado útil principalmente para proteger endereços de correio eletrônico (evitando SPAM, o envio de mensagens não solicitadas) e para "proteger" mensagens que o remetente pode preferir não ler - cometários sobre livros, filmes, ou séries, piadas politicamente incorretas, esse tipo de coisa.
Como era de se esperar, o ROT-13 é usado principalmente em grupos de discussão (como os fóruns do Universo OnLine" e os "grupos de notícias" das hierarquias "alt." e "rec." da Usenet) e em listas de discussão como as dos Yahoo.
Um detalhe importante: não há qualquer diferença entre o procedimento para codificar um texto em ROT-13 e o procedimento para decodificá-lo; simplesmente aplicamos o mesmo procedimento uma segunda vez.
Em termos técnicos, ROT-13 é uma cifra de César aplicável apenas aos caracteres alfabéticos (da língua inglesa) e com passo 13. Um algoritmo mais recente e menos popular, o ROT-47, gira todos os caracteres ASCII de códigos entre 33 ("!") e 126 ("˜" ou til) e usa o passo 47. A vantagem do ROT-47 consiste no fato de que sinais de pontuação, algarismos numéricos e muitos caracteres especiais também são embaralhados.
	0
	1
	2
	3
	4
	5
	6
	7
	8
	9
	10
	11
	12
	13
	14
	15
	16
	17
	18
	19
	20
	21
	22
	23
	24
	25
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	V
	W
	U
	X
	Y
	Z
Exemplos:
 Cifrar: 
Texto em claro: DETALHE → (3,4,19,0,11,7,4) 
Cifração: (n + ch) mod 26
((3,4,19,0,11,7,4) + (13,13,13,13,13,13,13)) mod 26 = 
(3+13, 4+13, 19+13, 0+13, 11+13, 7+13, 4+13) mod 26 =
(16,17,6,13,24,20,17) → QRGNYVR
	Criptograma: QRGNYVR → (16,17,6,13,24,20,17)
Decifração: (n + ch) mod 26
((16,17,6,13,24,20,17)+ (13,13,13,13,13,13,13)) mod 26 = 
(16+13, 17+13, 6+13, 13+13, 24+13, 20+13, 17+13) mod 26 =
(3,4,19,0,11,7,4) → DETALHE
Exemplo.
Chave: 210
Cifrar os caracteres “A S” em ASCII : A =65 e S = 83
 (A + Chave) mod 256 = (65 + 210) mod 256 = 19
 (S + Chave) mod 256 = (83 + 210) mod 256 = 37
Decifrar os valores 19 e 37
 (19 - Chave) mod 256 = (19 – 210 + 256) mod 256 = 65 ( A
 (37- Chave) mod 256 = (37 – 210 + 256) mod 256 = 83 ( S
Texto cifrado
2
3
1
Caracteres chave
Caracteres do texto cifrado
Caracteres do texto claro
1
2
3
Caractere chave
Caracteres do criptograma
Caracteres do texto claro
Valendo ponto para a primeira avaliação (2,0 pontos).
Cifre seu último nome utilizando a tabela de vigenère para alfabeto de 26 caracteres. 
Chave: NIL.
 
Valendo ponto para a primeira avaliação (2,0pontos).
Cifre sua data de nascimento, no formato DDMMAAAA, usando operações modulares.
Alfabeto: 0,1,2, ..., 9
Chave: 723
A cifração é realizada com o comando:
saida:=(caract+chavenum[1+i mod k])mod256
Ex: Chave = bC3 ; Caract = A;
 Chavenum[1]=98; Chavenum[2]=67; chavenum[3]=51; 
 ASCII (A) = 65;
 saida:=(caract+chavenum[1+i mod k])mod256
 saida:=(65+98)mod256;
 saida:= 163
chavenum[1+imod k]
chave = bC3 ; k =3;
i=0 chavenum[1]= 98
i=1 chavenum[2]= 67
i=2 chavenum[3]= 51 
i=3 chavenum[1]= 98
i=4 chavenum[2]= 67
i=5 chavenum[3]= 51
i=6 chavenum[1]= 98
Valendo ponto para a primeira avaliação (2,0 pontos).
 Conhecendo o criptograma “ HNIJAQVRVU “ e o texto em claro correspondente “ALEATORIOS“, tente decifrar os criptogramas seguintes:
a) UWQNYQW
b) AGGWPEEB
c) HSAZPIUD
 Ocorreu mudança de chave?
 Um ponto para a primeira avaliação (3,0 pontos).
Implementação do ROT128. 
Vale em qualquer linguagem de programação.
O programa deve cifrar arquivos de qualquer tipo

Outros materiais