Ik “ben een artikel aan het lezen over geauthenticeerde encryptie en begrijp sommige invoer van een encryptiefunctie niet. Het zijn bijbehorende gegevens, openbare en geheime berichtnummers. Kunt u mij hun betekenis uitleggen?
Opmerkingen
- en.wikipedia.org/wiki/Authenticated_encryption , hoewel Ik ' heb nog nooit gehoord van aparte " openbare en geheime berichtnummers. "
Antwoord
Zoals gedocumenteerd in de oproep voor inzendingen van de CAESAR-wedstrijd , kan een geverifieerd versleutelingsschema maximaal vijf ingangen hebben.
- De sleutel . Deze is duidelijk. De sleutel moet vertrouwelijk blijven en zodra de sleutel is gelekt, gaan alle authenticatie- en vertrouwelijkheidsgaranties verloren.
- De platte tekst . Dit is ook duidelijk. Dit is het bericht dat moet worden versleuteld. Het is gegarandeerd dat een (polynomialy bounded) aanvaller “geen informatie over de platte tekst kan wijzigen of extraheren uit de cijfertekst.
- De bijbehorende gegevens . Dit zijn voornamelijk metagegevens. Het is gegarandeerd dat een aanvaller de bijbehorende gegevens “niet kan wijzigen, maar deze in duidelijke tekst kan lezen. Bijbehorende gegevens worden gewoonlijk gebruikt om IVs, headers of routeringsinformatie te transporteren.
- Het openbare berichtnummer . Dit is kan slechts een deel van de bijbehorende gegevens zijn, maar het kan ook een extra invoer met een vaste lengte zijn. Het openbare berichtnummer wordt gegarandeerd niet gewijzigd, maar kan in duidelijke tekst worden gelezen. Een hergebruik van een (openbaar berichtnummer, geheim berichtnummer) paar kan resulteren in een volledig verlies van veiligheidsgaranties voor een bepaald schema. Het gebruik van dit nummer kan zijn om replay-aanvallen te voorkomen en als nonce voor de onderliggende schemas te dienen.
- Het geheime berichtnummer . Dit is een relatief nieuwe input. Het is de platte tekst die overeenkomt met het openbare berichtnummer. Zo is ook de vertrouwelijkheid van dit nummer gegarandeerd. Het gebruik van dit nummer kan zijn om delen van de nonce voor het onderliggende systeem te verbergen voor aanvallers of om (een soort van) hybride codering toe te staan.