Jump to content
Sign in to follow this  
ouvi_dizer

[Resolvido]Cifra Assimétrica

Recommended Posts

ouvi_dizer

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.

Share this post


Link to post
Share on other sites
will09

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 ;)

Share this post


Link to post
Share on other sites
will09

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 ;)

Share this post


Link to post
Share on other sites
ouvi_dizer

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

Share this post


Link to post
Share on other sites
Dabubble

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

Share this post


Link to post
Share on other sites
ouvi_dizer

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.