apontamentos pratica
(2010/09/24)
C´digos e o Criptografia
(2010/09/15)
Exerc´ Pr´tico 1 - encriptar - 3 ıcio a
Pedro
Quaresma
Byteisses
Pedro
Quaresma
Printed by Pedro Quaresma
encriptarDS.c
Set 24, 10 10:56
CArgumentos na Linha de
Comandos
C - Ficheiros
Exerc´
ıcio
Pr´tico 1 a CArgumentos na Linha de
Comandos
C - Ficheiros
Exerc´
ıcio
Pr´tico 1 a //Fechar os ficheiros fclose(fl); fclose(fe);
Byteisses
Biblioteca
GMP
Page 3/3
//Aplicar a Cifra de Deslocamento Simples while((ch=fgetc(fl))!=EOF){ resultado=encriptarDS(ch,chave); fprintf(fe,"%c",resultado); }
Byteisses
exit(0);
Biblioteca
GMP
}
Para a implementa¸˜o da cifra FEAL ´ necess´rio recorrer a um ca e a conjunto de manipula¸˜es em “bytes”. co • rota¸˜es de Nbits - ROTN. co • “Mascarar” um dado conjunto de “bits”.
• Separar uma sequˆncia de “bits” em partes. e • Juntar v´rias partes numa s´ sequˆncia de “bits”. a o e • Ou exclusivo (XOR) entre “bytes”.
Sexta Setembro 24, 2010
encriptarDS.c
3/3
9 / 22
C´digos e o Criptografia
(2010/09/15)
Pedro
Quaresma
CArgumentos na Linha de
Comandos
C - Ficheiros
Exerc´
ıcio
Pr´tico 1 a Byteisses
Biblioteca
GMP
C´digos e o Criptografia
(2010/09/15)
Tipos e Opera¸oes c˜ Pedro
Quaresma
Uma vari´vel do tipo (unsigned) int pode ser manipulada na a sua forma bin´ria. a Opera¸˜o (em bits) ca &
|
ˆ
>> n 6)
ROT2(11101001) = (11101001 > 6)
(10100100)
|
(00000011)
(10100111)
• Basta fazer a opera¸˜o de adi¸˜o em vari´veis de 8bits ca ca a int8_t int16_t int32_t int64_t uint8_t uint16_t uint32_t uint64_t
(ignorando o transporte). uint8_t d, uint8_t x, uint8_t y, uint8_t S;
11 / 22
12 / 22
C´digos e o Criptografia
(2010/09/15)
Separar “Bytes”
Pedro
Quaresma
Pedro
Quaresma
• Na fun¸˜o fk temos duas vari´veis de entrada de 32bits ca a
que tˆm de ser divididas em sec¸˜es de 8bits.
e