ouvi_dizer Posted November 4, 2005 at 09:40 AM Report #6295 Posted November 4, 2005 at 09:40 AM 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.
Solution will09 Posted November 5, 2005 at 12:29 AM Solution Report #6338 Posted November 5, 2005 at 12:29 AM Tive mesmo que ir ver o que é uma chave assimétrica! Citação 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 😉
will09 Posted November 5, 2005 at 12:32 AM Report #6339 Posted November 5, 2005 at 12:32 AM Esquecime desta parte pod ser k ajude! Citação 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 😉
ouvi_dizer Posted November 7, 2005 at 10:23 AM Author Report #6437 Posted November 7, 2005 at 10:23 AM 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
Dabubble Posted November 7, 2005 at 09:23 PM Report #6451 Posted November 7, 2005 at 09:23 PM 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
ouvi_dizer Posted November 8, 2005 at 10:09 AM Author Report #6456 Posted November 8, 2005 at 10:09 AM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now