Informações sobre um Arquivo Criptografado

Boa tarde,

Saber criptografar e decriptografar um arquivo eu já sei, e até consifo fazê-lo. Porém, surgiu a necessidade de, ao carregar um arquivo qualquer, saber se este está criptografado. Também é de extrema necessidades saber quem criptografou aquele arquivo, ou seja, pegando informações sobre a chave pública usada na sua criptografia.
Tendo em vista que estou usando política de criptografia de chaves pública, ou seja, criptografo com a pública e decriptografo com a privada, gostaria de saber se alguém pode me ajudar.

Desde já agradeço à atenção,

abraços

O arquivo segue algum padrão (S/MIME, PGP, PKCS#7)?

Se não seguir, então fica difícil, porque pode ser, por exemplo, que você nem saiba qual é a chave pública porque ela não foi enviada junto com o arquivo.

Não segue não. Tipo, o arquivo pode ser um de qualquer tipo, txt, doc, etc. Criptografando usando o Cipher do Java, existe alguma forma de inserir informações nele? ou de pegar alguma dele ja encriptado por esse processo? Existe algum padrão pra fazer isso? tipo inserindo metadados?

Criptografia == Comunicação
Comunicação == Protocolos
Protocolos == Padrões

Portanto, Criptografia == Padrões

Portanto, você tem de seguir algum padrão para fazer as coisas direito. No seu caso, recomenda-se usar o PKCS#7 “envelopedData”, que inclui tudo que é necessário (os dados criptografados, a informação de chave pública, etc.)

Pois é, andei pesquisando… o software assinador desenvolvido pelo ITI utiliza esse padrão. Vou me “apegar” a ele então. Muito obrigado pelas elucidações cara! vlw Thingol!

Abraços

Para você pegar um atalho:

  • Use o BouncyCastle
  • As RFCs que definem o PKCS#7 chamam-no de “Cryptographic Message Standard” ou CMS
  • No BouncyCastle você tem de procurar as classes no pacote org.bouncycastle.cms (bcmail--.jar).

Ah, entao é esse fulando q é o tal do CMS enveloped data q o manual de condutas técnicas tanto fala!
Bom saber!!
Ow, mais uma vez obrigado! Eu levar um tempim bom pra descobrir isso.
Brigadao thingol!

vlws!