titular. A Public Key Cryptography Standards (PKCS)Para quem almeja trabalhar ou ja trabalha como Certificacao Digital, certamente ira ou ja se deparou com a sopa de letrinhas do PKCS#X.O PKCS sao varias especificacoes desenvolvidas pela RSA Laboratories (sim eles de novo), em conjunto com diversos desenvolvedores de sistemas de seguranca, visando padronizar a utilizacao e desenvolvimento de algoritmos com Chaves Publicas para garantir a troca segura de informacoes entre sistemas nao padronizados de maneira acelerada.O PKCS esta divido em diversos # (Numeros) sendo que cada # define um padrao, atualmente (2011) 15 padroes estao definidos, nao entrarei em detalhes de todos eles e farei um breve comentario sobre os mais importantes dentro do escopo desse artigo.O PKCS#1 - RSA Cryptography Standard - Define os padroes acerca do algoritmo de criptografia RSA como propriedades matematicas, codificacao de Chaves, esquemas de codificacao de dados antes/depois de uma operacao criptografica e producao/verificacao de assinaturas.O PKCS#7 - Cryptographic Message Syntax Standard - Define os padroes de como se "envelopar" dados/mensagem cifrados ou nao, basicamente esse padrao trata de como os dados sao dispostos dentro de um arquivo, imaginem um envelope de carta contendo dentro dele uma carta assinada e com firma reconhecida em cartorio, o PKCS#7 e a versao digital disso tudo.O PKCS#10 - Certification Request Standard - Define os padroes de como uma requisicao de Certificado Digital deve ser composta antes ser enviada a uma Autoridade Certificadora.Imaginem um Applet Java Card PKI, esse applet gera internamente um Par de Chaves RSA, para requisitar-mos um Certificado Digital a AC primeiro precisamos auto-assinar a Chave Publica utilizando o Par de Chave Privado, o pacote de dados produzidos por essa operacao e codificada seguindo o padrao PKCS#10 e e enviado para AC, que assina a chave Publica e gera o Certificado Digital..O PKCS#11 - Cryptographic Token Interface - Define uma API abstrata tambem conhecida como "Cryptoki", trata-se de arquivos texto mais precisamente cabecalhos em Liguagem C (cryptoki.h, pkcs11.h, pkcs11f.h e pkcs11t.h), esses arquivos definem prototipos de funcoes a serem implementadas para dar suporte a um determinado Sistema Operacional, um tipo especifico de Token ou Smart Card PKI.Suponha que voce desenvolva um Applet PKI Java Card, voce deve implementar uma biblioteca que prove acesso a esse seu applet (.dll em sistemas MS, .lib em sistemas *nix), escritas e compiladas em C/C++.O PKCS#12 - Personal Information Exchange Syntax Standard - Define os padroes de como um ou mais Pares de Chaves e seus respectivos Certificados Digitais sao armazenados em um arquivo criptografado (algoritimo simetrico) e protegido por uma senha.Um arquivo PKCS#12 pode ou nao conter chaves privadas, varios aplicativos sao compativeis com arquivos PKCS#12 como o Internet Explorer, Mozilla Firefox, Java Keystore, etc.Esse arquivo serve para realizar Backups de Pares de Chaves e Certificados para transporte, quando um certificado digital e requerido a uma AC a mesma retorna um arquivo PKCS#12 contendo o Certificado Digital e a Cadeia de Certificacao.O PKCS#15 - Cryptographic Token Information Format Standard - Define os padroes de como implementar a aplicacao PKI em Tokens e Smart Cards.Basicamente e o padrao a ser seguido quando se