Encrypted structures are used (and decrypted) by Relying Parties to identify a user using his identity or pseudonym.Usage (transformation and decryption)
Important update
BSNk will be updated to use and distribute Encrypted Structures using a new signature algorithm.
This will affect all parties processing these structures. More information regarding this change:
Encrypted Identity or Pseudonym
An Encrypted Identity or Pseudonym consists of 3 points on an elliptic curve. The notation for a complete Encrypted Identity and an Encrypted Pseudonym is as follows:
EncryptedIdentity ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-identity), schemeVersion INTEGER, schemeKeySetVersion INTEGER, creator IA5String, recipient IA5String, recipientKeySetVersion INTEGER, points SEQUENCE (SIZE (3)) OF ECPoint } EncryptedPseudonym ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-pseudonym), schemeVersion INTEGER, schemeKeySetVersion INTEGER, creator IA5String, recipient IA5String, recipientKeySetVersion INTEGER, type INTEGER, points SEQUENCE (SIZE (3)) OF ECPoint, diversifier [0] Diversifier OPTIONAL } DeprecatedSignedEncryptedIdentity ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-identity-signed), signedEI SEQUENCE { encryptedIdentity EncryptedIdentity, auditElement OCTET STRING }, signatureValue EC-Schnorr-Signature } DeprecatedSignedEncryptedPseudonym ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-pseudonym-signed), signedEP SEQUENCE { encryptedPseudonym EncryptedPseudonym, auditElement OCTET STRING }, signatureValue EC-Schnorr-Signature } DirectEncryptedPseudonym ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-direct-pseudonym), schemeVersion INTEGER, schemeKeySetVersion INTEGER, creator IA5String, recipient IA5String, recipientKeySetVersion INTEGER, type INTEGER, points SEQUENCE (SIZE (3)) OF ECPoint, diversifier [0] Diversifier OPTIONAL, authorizedParty [1] IA5String OPTIONAL } SignedDirectEncryptedPseudonym ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-direct-pseudonym-signed), signedDEP SEQUENCE { directEncryptedPseudonym DirectEncryptedPseudonym, auditElement OCTET STRING, signingKeyVersion INTEGER }, signatureValue ECDSA-Signature } Diversifier ::= SEQUENCE OF DiversifierKeyValuePair DiversifierKeyValuePair ::= SEQUENCE { key IA5String, value IA5String }
The fields correspond to the same fields in a Polymorphic Identity or Pseudonym. The recipientKeySetVersion
holds the version number for the set of recipient's keys for Identities and Pseudonyms (PD-Di, PC-Di and PI-Di). Note: In schemeVersion
1 the recipientKeySetVersion
for DVs is a value of 8 decimal digits corresponding with the issue date (notBefore) of the certificate, in the format YYYYMMDD, used to request the PEM file at the party generating the keys within the scheme.
A DirectEncryptedPseudonym is – with the exception of the authorizedParty – identical to an EncryptedPseudonym, although an additional key and processing step are needed for decryption. The signed form uses a ECDSA instead of a Schnorr (ECSDSA) signature. The creator
of a DEP is BSNk activation, the authorizedParty
identifies the party who requested the DEP for usage. The recipient SHOULD verify it received the DEP from the authorizedParty
. The DEP is intended for specific use cases, please consult BSNk / eID before planning to use a DEP.
See Diversifiers for additional details on the diversifier used in EP and DEP.
The auditElement
is similar to the auditElement
of a Polymorphic Identity or Pseudonym. The signature is a Schnorr (ECSDSA) signature for efficiency.
-- Current specification version of data structure for a Schnorr (ECSDSA) signature EC-SDSA-Signature ::= SEQUENCE { signatureType OBJECT IDENTIFIER (ecsdsa-plain-SHA384), signatureValue EC-Sig-Value } -- A previous specification used a different specification for a Schnorr signature -- deprecated EC-Schnorr-Signature ::= SEQUENCE { signatureType OBJECT IDENTIFIER (ecschnorr-plain-SHA384), signatureValue EC-Sig-Value } bsi-de OBJECT IDENTIFIER ::= { itu-t(0) identified-organization(4) etsi(0) reserved(127) etsi-identified-organization(0) 7 } id-ecc OBJECT IDENTIFIER ::= { bsi-de algorithms(1) 1 } -- Current specification of identifier for a Schnorr (ECSDSA) signature ecsdsa-plain-signatures OBJECT IDENTIFIER ::= { id-ecc signatures(4) 4 } ecsdsa-plain-SHA384 OBJECT IDENTIFIER ::= { ecsdsa-plain-signatures 3 } -- Previous specification of identifier for a Schnorr signature ecschnorr-plain-signatures OBJECT IDENTIFIER ::= { id-ecc signatures(4) 3 } ecschnorr-plain-SHA384 OBJECT IDENTIFIER ::= { ecschnorr-plain-signatures 3 }
id-BSNk-encrypted OBJECT IDENTIFIER ::= { id-BSNk-identifiers 2 } id-BSNk-encrypted-identity OBJECT IDENTIFIER ::= { id-BSNk-encrypted 1 } id-BSNk-encrypted-pseudonym OBJECT IDENTIFIER ::= { id-BSNk-encrypted 2 } -- deprecated id-BSNk-encrypted-identity-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 3 } -- deprecated id-BSNk-encrypted-pseudonym-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 4 } id-BSNk-encrypted-direct-pseudonym OBJECT IDENTIFIER ::= { id-BSNk-encrypted 5 } id-BSNk-encrypted-direct-identity OBJECT IDENTIFIER ::= { id-BSNk-encrypted 9 } id-BSNk-encrypted-direct-identity-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-direct-identity 2 } id-BSNk-encrypted-direct-pseudonym-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-direct-pseudonym 2 } id-BSNk-encrypted-direct-pseudonym-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 6 } id-BSNk-encrypted-direct-identity-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 10 } id-BSNk-encrypted-direct-identity-signed-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-direct-identity-signed 2 } id-BSNk-encrypted-direct-pseudonym-signed-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-direct-pseudonym-signed 2 } id-BSNk-encrypted-identity-ecsdsa-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 7 } id-BSNk-encrypted-identity-ecsdsa-signed-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-identity-ecsdsa-signed 2 } id-BSNk-encrypted-pseudonym-ecsdsa-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 8 } id-BSNk-encrypted-pseudonym-ecsdsa-signed-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-pseudonym-ecsdsa-signed 2 }