Autor Tópico: Criptografia para microcontroladores ... help !  (Lida 6217 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re:Criptografia para microcontroladores ... help !
« Resposta #15 Online: 20 de Março de 2011, 20:05 »
minilathe

Citar
Me referi a não usar soluções "públicas", que todos conhecem como funciona

sim . verdade ...


luciano g

Citar
oque vc quer fazer só é possivel se o seu programa conseguir escrever na memoria de programa se vc consegue o resto da ideia e facil de implementar

justamente... o bootloader eu já implementei (tiny bootloader) agora preciso da criptografia.

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Criptografia para microcontroladores ... help !
« Resposta #16 Online: 20 de Março de 2011, 22:41 »

A criptografia usa uma chave, composta de uma parte embutida em seu programa (.hex) criptografado e outra secreta (embutida em seu bootloader). O tamanho das chaves pode ser variável, de modo a dificultar mais ainda a sua descoberta.

Normalmente, a criptografia consiste na aplicação de algoritmos empregando números primos extensos. Tornando a sua descoberta, senão muito demorada, trabalhosa.

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re:Criptografia para microcontroladores ... help !
« Resposta #17 Online: 20 de Março de 2011, 22:47 »
fragmento de código para encriptar .. e decriptar ... alguém recomenda?

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Criptografia para microcontroladores ... help !
« Resposta #18 Online: 20 de Março de 2011, 22:53 »

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Criptografia para microcontroladores ... help !
« Resposta #19 Online: 20 de Março de 2011, 22:57 »
Qual linguagem está usando? Quanto de memória voce dispõe? Qual o microcontrolador?

O códigos em C são os seguintes (TEA=Tinny Encryption Algorithm):

#include <stdint.h>
 
void encrypt (uint32_t* v, uint32_t* k) {
    uint32_t v0=v[0], v1=v[1], sum=0, i;           /* set up */
    uint32_t delta=0x9e3779b9;                     /* a key schedule constant */
    uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* cache key */
    for (i=0; i < 32; i++) {                       /* basic cycle start */
        sum += delta;
        v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
        v1 += ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3); 
    }                                              /* end cycle */
    v[0]=v0; v[1]=v1;
}
 
void decrypt (uint32_t* v, uint32_t* k) {
    uint32_t v0=v[0], v1=v[1], sum=0xC6EF3720, i;  /* set up */
    uint32_t delta=0x9e3779b9;                     /* a key schedule constant */
    uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* cache key */
    for (i=0; i<32; i++) {                         /* basic cycle start */
        v1 -= ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
        v0 -= ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
        sum -= delta;                                   
    }                                              /* end cycle */
    v[0]=v0; v[1]=v1;
}

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Criptografia para microcontroladores ... help !
« Resposta #20 Online: 20 de Março de 2011, 23:40 »
Mais algumas fontes:

http://www.brouhaha.com/~eric/crypto/#des

Dois artigos interessantes, um deles ensina como "hackear" microcontroladores. Vivemos num mundo inseguro!!

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re:Criptografia para microcontroladores ... help !
« Resposta #21 Online: 20 de Março de 2011, 23:42 »
Citar
Qual linguagem está usando? Quanto de memória voce dispõe? Qual o microcontrolador?

serão "os" microcontroladores ... no trabalho final 18F2550 e 4550 e ARM´s 2138 e 2368 entre outros ... mas no momento 16F877A pq é o que eu possuo para teste imediato ...
Compiladores ... CCS ... C18 para os PIC e IAR ou Keil para ARM.
« Última modificação: 20 de Março de 2011, 23:56 por Blackmore »

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re:Criptografia para microcontroladores ... help !
« Resposta #23 Online: 21 de Março de 2011, 00:04 »
Citar
Dois artigos interessantes, um deles ensina como "hackear" microcontroladores. Vivemos num mundo inseguro!!

este sobre hackear eu jah conhecia ... foi assunto de discussão no asm51 ... em resumo é possível hackear mas não é qualquer um que pode fazê-lo.

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Criptografia para microcontroladores ... help !
« Resposta #24 Online: 21 de Março de 2011, 07:21 »
Blackmore,

Testei o blowfish e funcionou bem.  Mas como pode ter percebido, esses algoritmos consomem memória e tempo de processamento. Mas como dizem: "não existe almoço de graça"...

Acho que o tempo de processamento não é crítico, pois só ocorrerá apenas no momento de carregar o código na memória e fará "parte do processo". A memória ocupada pelo algoritmo em assembly (5640 bytes) reduz a memória disponível para seu programa. Aconselho usar assembly para aumentar a economia de recursos (memória e tempo de processamento).

O código que postei não é compatível com o PIC16F877 e pode complicar a solução, pois este não possui diversas instruções de transferência de memória de dados e de programa, bem como de acesso a palavras mais longas. Use logo um processador da linha PIC18F (2550, 4550, ...).
 
Mas pode simplicar o algoritmo e perder na segurança...
« Última modificação: 21 de Março de 2011, 07:23 por minilathe »

Offline luciano g

  • Hobby
  • ****
  • Posts: 922
  • Sexo: Masculino
Re:Criptografia para microcontroladores ... help !
« Resposta #25 Online: 21 de Março de 2011, 08:18 »
Boas Blackmore
usar estes codigos as vezes é complicado, uma solução simples é dar um rotate nos bytes do programa e salva-lo na memoria de traz para frente isto já é suficiente para complicar bastante a copia

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re:Criptografia para microcontroladores ... help !
« Resposta #26 Online: 21 de Março de 2011, 18:47 »
minilathe

Citar
...como pode ter percebido, esses algoritmos consomem memória e tempo de processamento...

sim, acredito isso pode comprometer alguns firmwares ... quanto ao tempo do processamento eu não me preocupo afinal como vc mesmo disse isso será feito apenas qdo atualizar o sistema.
tentarei fazer testes com os que consomem menos memoria ... muito obrigado pela ajuda até o momento.


luciano g

Citar
usar estes codigos as vezes é complicado, uma solução simples é dar um rotate nos bytes do programa e salva-lo na memoria de traz para frente isto já é suficiente para complicar bastante a copia

pois eh, a simplicidade as vezes é o melhor caminho ... li algo a respeito sobre um fato ocorrido onde a criptografia do "código de césar" em uma gerra nos USA no século passado, mas tenho receio ... de qualquer forma vou estudar a melhor opção para meu problema.

abrax!

Offline ivan braga

  • Se os fatos não se encaixam na teoria, modifique os fatos. Albert Einstein
  • Novato
  • *
  • Posts: 36
  • Sexo: Masculino
Re:Criptografia para microcontroladores ... help !
« Resposta #27 Online: 21 de Março de 2011, 20:26 »
Blackmore

Em um determinado projeto, precisei de algo parecido com sua necessidade.

Então googleando usei e modifiquei o que esta no link abaixo para minha solução.

http://www.microchip.com/forums/tm.aspx?high=&m=126770&mpage=1#126770

Lamento não poder explicar mais, por motivos óbvios, porem acho que com a ajuda do tradudor  do google você lerá e entenderá o conceito.

E assim chegará também na sua solução .

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re:Criptografia para microcontroladores ... help !
« Resposta #28 Online: 27 de Março de 2011, 23:36 »
ivan

opa ... vou ver ... estou enrolado com umas coisas que me afastaram neste momento desta pesquisa.
vou estudar a documentação enviada por ti e espero em breve relatar meus progressos.
obrigado!

 

/** * */