• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ouvi_dizer

[Resolvido]Cifra Assimétrica

6 mensagens neste tópico

Alguém sabe qual/quais os algoritmos de cifra assimétrica que vêm no package java.security?

Pergunto isto pois vou ter que implementar uma arquitectura de comunicação  cifrada (com cifra assimétrica) generica e andava à procura de classes que me permitissem gerar pares de chaves (publica, privada) de preferencia com seed, e que mediante apresentação de chave cifrassem/decifrassem uma mensagem (String ou byte[]).

A ideia é implementar algo semelhante a um algoritmo de validação de assinaturas digitais (Certified Authority ---- N Clientes), usando cifra genero RCA, mas feito "de raiz".

Sinceramente do package java.security pouco conheço, apenas trabalhei com o DES (cifra simétrica) e com o algumas (poucas) classes não relacionadas com cifra (ex: Security Manager).

Se alguem puder dar umas indicações agradeço.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tive mesmo que ir ver o que e uma chave assimetrica!

2.4.	Cifra Assimétrica
Cifra assimétrica ou algoritmo assimétrico é aquele onde a chave de cifragem é diferente da chave de decifragem. Isto é usa-se uma chave para cifrar o texto e no momento de decifra-la usa-se outra chave que é inversa da primeira. Dessa forma não fala-se mais de uma chave de cifragem e sim de um par de chaves únicos e inversas usadas no processo. Na literatura técnica costuma-se chamar as cifras assimétricas de cifras de chave pública e chave privada. Isso porque na maioria dos casos uma das chaves do par é tornada pública e a outra é mantida em segredo pelo proprietário da mesma. Isso propicia que este tipo de cifra possa ser usada para outros fins que não o sigilo dos dados. Essas cifras, como será mostrado mais à frente, poderão ser usadas para implementar os serviços de autenticação e certificação. Porém, conceitualmente existe uma diferença entre cifra assimétrica e de chave pública e privada. O primeiro conceito é mais amplo que o segundo. Isto é, toda cifra de chave pública é um cifra assimétrica porém a recíproca não é verdadeira. Isso porque uma cifra para ser assimétrica basta que a chave de cifragem seja distinta da chave de decifragem, porém nada é garantido que a partir de uma chave não se deriva a outra. 

Deve ser mais ou menos isto!

PEACE ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esquecime desta parte pod ser k ajude!

São exemplos de cifras assimétricas: RSA, Diffie-Hellman, El Gamal.
O algoritmo de chave pública mais utilizado atualmente é o RSA. O RSA efetua operações algébricas com números inteiros muito grandes. Essa operação é uma exponenciação e é realizada em um anel finito. Tanto a chave pública como a chave privada são um par de números inteiros muito grandes:
Chave pública: par (e, n) onde “e” é o expoente público e “n” é o módulo que define o tamanho do anel.
Chave privada: par (d, n) onde “d” é o expoente privado e “n” é o módulo que define o tamanho do anel.
A operação RSA é descrita da seguinte forma:
Cifragem: c = me mod n
Decifragem: m = cd mod n

Espero k tenha ajudado!

PEACE ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado a ambos pela resposta.

Estava a espera de algo mais pratico, pois como funcionam os algoritmos de cifra na teoria eu sei, mas o grande problema é a geração de chaves (caso rca), pois têm que obedecer a uma série de regras e ao nivel da performance é algo complicado.

Obrigado na mesma

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora caesta alguem com uma pergunta interessante!

hummm so um coisa no quererás dizer RSA em vez de RCA?

Bem java providecia API's para geracao de chaves (de mais do que um tipo e de mais do quea forma), meteres-lhe o teu proprio seed e que ja e mais dificil se bem me lembro.

De kk forma check this out, ja me foi bastante util ara implementar as minhas proprias RMISSLSocketFactorys espero que te ajude.

http://java.sun.com/docs/books/tutorial/security1.2/apisign/gensig.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hummm so um coisa no quererás dizer RSA em vez de RCA?

Exacto, RSA e não RCA.

De kk forma check this out, ja me foi bastante util ara implementar as minhas proprias RMISSLSocketFactorys espero que te ajude.

http://java.sun.com/docs/books/tutorial/security1.2/apisign/gensig.html

Obrigado, o tutorial cobre a parte de geração de pares de chaves de uma forma simples e de facil compreensão.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora