in Bearbeitung
Der SHA-2 KAT beinhaltet diverse Testdateien für den Modus „Byte orientiert“, nämlich „ShortMsg.rsp“, „LongMsg.rsp“ und „Monte.rsp“ und das Ganze in den Versionen SHA256, SHA384, SHA512, SHA512-244 und SHA512-256. Ihr erhaltet die Dateien über den Link https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip, Erläuterungen findet Ihr im PDF-Dokument http://csrc.nist.gov/groups/STM/cavp/documents/shs/SHAVS.pdf.
Zum besseren Verständnis des Testablaufes empfehle ich Euch, einen Blick in den Artikel „KAT Erläuterungen“ hineinzuschauen. Weiterhin solltet Ihr vor den Tests die verfügbaren Secure Hash Algorithmen mit dem kleinen Programm in Secure Hash Algorithms ermitteln.
Die „Short-“ und „LongMsg“-Response-Dateien werden im Programm „Run_Sha2_Kat.java“ bearbeitet und die Monte Carlo Varianten werden im Programm „Run_Sha2_Kat_MonteCarlo.java“ getestet.
In diesem Beitrag zeige ich Euch nur die Ergebnisse der Tests an. Ich habe die „verbose“-Variable auf „false“ gesetzt.
Wie nicht anders zu erwarten wurden alle Tests von OpenJava 11 korrekt durchgeführt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
SHA-2 Family Known Answer Test (KAT) for information see: https://csrc.nist.gov/Projects/cryptographic-algorithm-validation-program/Secure-Hashing for tests see: https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/SHAVS.pdf get the testfiles: https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip Test on 17.05.2020 12:10:41 with Java version: 11.0.6+8-b520.43 testing filename: kat/sha_2/SHA256ShortMsg.rsp readLines: 267 header lines: 4 nr of test vectors: 65 testing the data ... Test results filename tests passed failed kat/sha_2/SHA256ShortMsg.rsp 65 65 0 kat/sha_2/SHA256LongMsg.rsp 64 64 0 kat/sha_2/SHA384ShortMsg.rsp 129 129 0 kat/sha_2/SHA384LongMsg.rsp 128 128 0 kat/sha_2/SHA512ShortMsg.rsp 129 129 0 kat/sha_2/SHA512LongMsg.rsp 128 128 0 kat/sha_2/SHA512_224ShortMsg.rsp 129 129 0 kat/sha_2/SHA512_224LongMsg.rsp 128 128 0 kat/sha_2/SHA512_256ShortMsg.rsp 129 129 0 kat/sha_2/SHA512_256LongMsg.rsp 128 128 0 |
Hier die Ergebnisse der Monte Carlo-Tests:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
SHA-2 Family Known Answer Test (KAT) for information see: https://csrc.nist.gov/Projects/cryptographic-algorithm-validation-program/Secure-Hashing for tests see: https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/SHAVS.pdf get the testfiles: https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip Test on 17.05.2020 12:10:53 with Java version: 11.0.6+8-b520.43 testing filename: kat/sha_2/SHA256Monte.rsp readLines: 309 header lines: 4 nr of test vectors: 100 testing the data .. Test results filename tests passed failed kat/sha_2/SHA256Monte.rsp 100 100 0 kat/sha_2/SHA384Monte.rsp 100 100 0 kat/sha_2/SHA512Monte.rsp 100 100 0 kat/sha_2/SHA512_224Monte.rsp 100 100 0 kat/sha_2/SHA512_256Monte.rsp 100 100 0 |
Ich habe im GitHub-Archiv auch Testdateien für Bouncy Castle bereitgestellt (sie enthalten „BC“ im Dateinamen) und auch diese Tests wurden erfolgreich absolviert:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
SHA-2 BC Family Known Answer Test (KAT) ... Test on 17.05.2020 12:10:27 with Java version: 11.0.6+8-b520.43 BouncyCastle Version: BC version 1.65 ... Test results filename tests passed failed kat/sha_2/SHA256ShortMsg.rsp 65 65 0 kat/sha_2/SHA256LongMsg.rsp 64 64 0 kat/sha_2/SHA384ShortMsg.rsp 129 129 0 kat/sha_2/SHA384LongMsg.rsp 128 128 0 kat/sha_2/SHA512ShortMsg.rsp 129 129 0 kat/sha_2/SHA512LongMsg.rsp 128 128 0 kat/sha_2/SHA512_224ShortMsg.rsp 129 129 0 kat/sha_2/SHA512_224LongMsg.rsp 128 128 0 kat/sha_2/SHA512_256ShortMsg.rsp 129 129 0 kat/sha_2/SHA512_256LongMsg.rsp 128 128 0 ... kat/sha_2/SHA256Monte.rsp 100 100 0 kat/sha_2/SHA384Monte.rsp 100 100 0 kat/sha_2/SHA512Monte.rsp 100 100 0 kat/sha_2/SHA512_224Monte.rsp 100 100 0 kat/sha_2/SHA512_256Monte.rsp 100 100 0 |
Alle Quellcodes und die dazu gehörenden Testdateien zu den Known Answer Tests findet Ihr zum Download in meinem GitHub-Repository Known_Answer_Tests, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/Known_Answer_Tests. Alle Programme sind unter Java 11 lauffähig (vermutlich auch unter Java 8) und wurden mit intelliJ IDEA entwickelt, welches für dieses Programm aber nicht notwendig ist.
Noch ein Wort zum Thema „Lizenz“: Die von mir erstellten Beispiele stehen unter der „Unlicense“-Lizenz.
Letzte Bearbeitung: 17.05.2020