2016-12-21 6 views
1

Ich mache einen längeren Aufsatz in der Informatik und ich bin fest, was zu tun ist. Ich interessiere mich für das Thema des AES-Algorithmus oder für beliebige Verschlüsselungsalgorithmen. Da Informatik ein naturwissenschaftliches Fach ist, muss ich ein Experiment durchführen. Ich bin mir jedoch nicht sicher, wie ich es testen soll.Wie kann/sollte ich den AES-Algorithmus testen

Ich dachte über die Verschlüsselung verschiedener Arten von Dateien zB. Videos, Fotos und Word-Dateien und Testen der Datenübertragungsgeschwindigkeiten oder Verschlüsselungsgeschwindigkeiten im Vergleich zu anderen Verschlüsselungsalgorithmen. Ich fragte mich, ob jemand von euch mir sagen könnte, wie man das macht oder ein anderes Experiment empfiehlt. Es kann nicht zu schwierig sein, dass ich es nicht tun kann oder zu leicht, dass es einer guten Note nicht würdig ist. Vielen Dank. P.S. I a 17 (Year 12)

+0

Fragen Sie nach: http://cs.stackexchange.com/, da dies die Programmierseite ist. – kenorb

+0

Übernehmen Sie die Annahme von Antworten, die hilfreich sind. Indem Sie eine Antwort akzeptieren, zeigen Sie zukünftigen Lesern an, dass es eine korrekte Antwort ist. Um eine Antwort zu akzeptieren, klicken Sie auf das hohle Häkchen neben der Antwort, die am besten ist. Dadurch erhöhen Sie Ihre Reputation und ermöglichen mehr Funktionen. Siehe [Ruf-FAQ] (http://stackoverflow.com/faq#reputation). Diese Seite] (http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work) für weitere Details. Bitte auch in Betracht ziehen, zurückzugehen und vorherige Antworten zu akzeptieren, siehe [Ruf faq] (http://StackOverflow.com/faq#reputation) – zaph

Antwort

1

Sicherlich gibt es hier eine Fülle von Möglichkeiten für die Forschung. Gut für dich, dass du neugierig bist und darüber nachdenkst. Sie wollen wahrscheinlich entlang der folgenden Zeilen für einige Variablen und Test steuern:

  • symmetrische vs. asymmetrische Verschlüsselung (dh AES vs. RSA)
  • verschiedene symmetrische Algorithmen (dh Rijndael (aktueller AES-Algorithmus) vs (Blowfish, DES, TDES usw.)
  • verschiedene Blockchiffrebetriebsarten (dh CTR vs. CBC vs. GCM usw.)
  • verschiedene Datengrößen (dh skaliert es linear? Nimmt es genau 1000x so lange zu 16 Bytes vs. 16_000 vs 16_000_000 zu verschlüsseln?)

Sie möchten diese Experimente auf derselben Hardware unter der gleichen Last in derselben Sprache mehrmals ausführen, um anständige Daten zu erhalten. Vor allem wenn man bedenkt, dass moderne CPUs den AES-NI-Befehlssatz und benutzerdefinierte Register für Verschlüsselungsdaten haben, denken Sie daran, Ihre Experimente zu säen, oder nachfolgende Läufe könnten unterschiedliche Leistungsprofile haben.

Wenn Sie noch keine Programmiererfahrung haben, haben Java, Ruby und Python alle sehr populäre Kryptografie-Bibliotheken und eine breite Community, die Sie gerne unterstützt, wenn Sie Herausforderungen begegnen. Wenn Sie mit einer oder mehreren spezifischen Sprachen bereits vertraut sind, würde ich vorschlagen, eine davon zu verwenden, da es schwierig genug ist, die kryptografisch spezifischen Anweisungen zu lernen. Das Erlernen einer neuen Sprache ist wahrscheinlich eine unnötige Belastung, die zu diesem Zeitpunkt hinzugefügt werden muss.

Ich denke, das ist ausreichend vage, dass Sie immer noch die Forschung und Untersuchung für Ihr Papier tun müssen, aber sollte einen Ausgangspunkt bieten. Fühlen Sie sich frei, mit spezifischen Fragen zu folgen, wenn Sie brauchen.

+0

Vielen Dank, und wissen Sie, wie ich die Geschwindigkeit des Algorithmus wie testen könnte Wie lange dauert die Verschlüsselung im Vergleich zu anderen? –

+0

Sie müssen eine Testumgebung schreiben, die beide Aktionen ausführt und die Zeiten vergleicht. Sie sollten jedes Mal mehrere Male ausführen und den Mittelwert/Median/Std-Dev berücksichtigen. Es gibt viele Bibliotheken in verschiedenen Sprachen, um Benchmarking durchzuführen, aber das Grundkonzept besteht darin, dass Sie die aktuelle Uhrzeit aufzeichnen, Ihre Aktion ausführen, die Uhrzeit erneut aufzeichnen und subtrahieren. – Andy

Verwandte Themen