Programa de Extensão da UnB em Criptografia e Segurança Computacional

C2- Infraestrutura de Chaves Públicas

 Módulo 2 de 6 - 6 horas - pre-requisito: Curso C1, C.2 Módulo 1

Roteiro de Aulas (em construção)

copyleft - Pedro Antonio Dourado de Rezende
Ciência da Computação
Universidade de Brasília

primeiro módulo Introdução, ASN.1


Roteiro Segundo Módulo

Aula 3
 

C2-2  Os padrões PKCS#1 e  PKCS#8 para cifragem e assinatura
 

Detentora, até setembro de 2000, da patente do RSA, o primeiro algoritmo critpográfico assimétrico a resistir o critério de assimetria (controle do custo para se obter a chave privada a partir da chave pública com uma implementação sadia do algoritmo gerador do par de chaves),  a RSADSI publicou, no início dos anos 90, uma série de recomendações contendo especificações visando padronizar os formatos e operações criptográficas baseadas neste algoritmo.

Essa família de recomendações é conhecida pela sigla PKCS (Public Key Cryptographic Stantards) compreendendo os documentos PKCS #1, #3, #5, #7, #8, #9, #10 #11, #12, #13, #14 e #15 (repositório em ttp://www.rsasecurity.com/rsalabs/pkcs/). Devido a seu pioneirismo e simplicidade do algoritmo, tornaram-se padrão de fato em PKIs .  Iremos abordar os padrões PKCS #1, que trata das primitivas critpográficas, dos esquemas de cifragem e assinatura digital  e PKCS #8, que trata da sintaxe para armazenamento e uso de chaves privadas.


C2-2.1 PKCS#1: Primitivas e esquemas de cifragem e assinatura com o RSA

AULA 4

C2-2.1.5 Esquemas (protocolos) de cifragem: RSAES-OAEP e RSAES-PKCSI v1_5
 C2-2.1.7 Referências à especificação ASN.1 das estruturas de dados correspondentes
O apêndice A da ref [4] descreve, entre as páginas 39 a 46, os tipos ASN-1 de todas as estruturas de dados utilizadas nos algoritmos aqui descritos
C2-2.2 O padrão PKCS#8 para representação de chaves privadas RSA
Esse padrão, cuja versão aqui resumida teve sua última revisão em novembro de 1993 [5], descreve a sintaxe para representação de chaves privadas do algoritmo RSA e informações pertinentes. Essas informações incluem aquelas relativas ao processo de cifragem para armazenamento (processo descrito no padrão PKCS#5) e um conjunto de atributos representando as premissas de confiança para o uso da chave, incluindo nome do titular e nome distinguido da entidade certificadora do par público da chave privada.

Uma lista não exaustiva desses atributos pode ser encontrada no documento que descreve o padrão PKCS#9
 

   C2-2.2.1 Sintaxe de informação sobre chaves privadas
A definição do tipo ASN.1 para informação sobre chaves privadas deve ser
 
type PrivateKeyInfo
PrivateKeyInfo ::= SEQUENCE 
{
    version Version,
    privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
    privateKey PrivateKey,
    attributes [0] IMPLICIT Attributes OPTIONAL 
}
Version ::= INTEGER
PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
PrivateKey ::= OCTET STRING
Attributes ::= SET OF Attribute

A semântica dos campos desse tipo corresponde a:


   C2-2.2.2 Sintaxe de informação sobre chaves privadas encriptadas

A semântica dos campos desse tipo corresponde a: O processo de encriptação envolve dois passos:
  1. 1. A informação sobre uma chave privada é codificada segundo as regras BER, resultando numa cadeia de octetos.
  2. 2. A cadeia de octetos resultante do passo 1 é encriptada com uma chave secreta (normalmente derivada de uma "senha de acesso")

Terceiro Módulo
 

Bibliografia

Material de referência

Texto de Referência

Roteiros de aula


Material de consulta

Os textos abaixo aprofundam o material abordado no curso.



v.0 09/03