TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Relatório Cifragem One Time Pad

Por:   •  1/6/2016  •  Relatório de pesquisa  •  1.030 Palavras (5 Páginas)  •  214 Visualizações

Página 1 de 5

EA075 U

Sistemas Embarcados

Atividade 1: Cifragem One Time Pad

Objetivos

O objetivo do trabalho foi realizar um sistema de cifragem One-Time-Pad tanto em software como em hardware. Esta cifragem consiste em efetuar uma operação lógica de XOR entre cada bit da mensagem com um bit da chave.

Em Software foi utilizando o simulador ARMSim# para implementar o esquema de cifragem One-Time Pad efetuando a cifragem e a decifragem da mensagem “SISTEMAS EMBARCADOS” utilizando como chave a palavra “PARALELEPIPEDOVERDE”.

Em Hardware foi utilizando VHDL para simular o circuito que efetuou o mesmo esquema de cifragem. Pra isso foi usado o ambiente do Quartus II.

Desenvolvimento

  • Software

        Para realizar a cifragem por meio de software foi feito um programa em linguagem Assembly para ARM, o seu código é descrito abaixo:

MESSAGE: .ASCIZ "SISTEMAS EMBARCADOS"

KEY: .ASCIZ "PARALELEPIPEDOVERDE"

DECODESTRING: .ASCIZ "XXXXXXXXXXXXXXXXXXX"

start:

        ldr r0, =MESSAGE @ R0 = &MESSAGE

        ldr r1, =KEY @ R1 = &KEY

        ldr r2, =DECODESTRING @ R2 = &ENCODE

        mov r6, #19  @ R6 <= Tamanho da Mensagem

encode:

        cmp r6, #0 @ Ve se acabou a string

        beq outencode

        ldrb r3, [r0], #1 @ r3 = *(r0++)

        ldrb r4, [r1], #1 @ r4 = *(r1++)

        eor r5, r3, r4 @ r5 = r3 XOR r4

        strb r5, [r2], #1 @ ENCODE <= r5

        sub r6, r6, #1

        b encode

outencode:

        ldr r0, =DECODESTRING @ R0 = &ENCODE

        ldr r1, =KEY @ R1 = &KEY

        ldr r2, =DECODESTRING @ R2 = &DECODE

        mov r6, #19 @ R6 <= Tamanho da Mensagem

decode:

        cmp r6, #0 @ Ve se acabou a string

        beq print

        ldrb r3, [r0], #1 @ r3 = *(r0++)

        ldrb r4, [r1], #1 @ r4 = *(r1++)

        eor r5, r3, r4 @ r5 = r3 XOR r4

        strb r5, [r2], #1 @ DECODE <= r5

        sub r6, r6, #1

        b decode

print:

        ldr r2, =DECODESTRING

        mov r0, #1

        mov r1, #1

        swi 0x204

stop:

        b stop

O código inicialmente codifica a String armazenando em DECODESTRING e depois decodifica a mesma. O LDRB irá sempre obter o valor de 1 byte (8 bits) que é o tamanho do caracter. A posição em memória da mensagem, da chave e da mensagem codificada/decodificada foi respectivamente 1000, 1014 e 1028.

[pic 1]

Figura 1:  Simulação no ArmSim# da implementação em Software

[pic 2]

Figura 2:  Mensagem na posição 1000

[pic 3]

Figura 3:  Chave na posição 1014

[pic 4]

Figura 4:  Mensagem decodificada na posição 1028

  • Hardware

Para a implementação em Hardware foi criado um módulo cifrador em VHDL a fim de realizar a cifragem com o algoritimo One-Time-Pad. Por isso as entradas e a saída consistiram em sinais de 1 byte cada.

library ieee;

use ieee.std_logic_1164.all;

entity cifrador is

    port(

            message: in std_logic_vector(7 downto 0);

            key: in std_logic_vector(7 downto 0);

            decode: out std_logic_vector(7 downto 0)

    );

end cifrador;

architecture encodeDecode of cifrador is

    begin

            process (message, key)

                    begin

                            decode <= message xor key;

                    end process;

            end encodeDecode;

        

...

Baixar como (para membros premium)  txt (4.5 Kb)   pdf (1.2 Mb)   docx (441.6 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com