256-Bit-Schlüssel für starke Verschlüsselung
Techniken zur Identifizierung von Schlüsseln, die Brute-Force- und Wörterbuch-Angriffe zu widerstehen. Delphi Quelle für Schlüssel zu analysieren, Konvertieren von Passphrasen mit Tasten und Vertausche Schlüssel enthält.
[256-bit-Schlüssel für starke Verschlüsselung]
Source-Code unten
Die Sicherheit einer guten Kryptosystem stützt sich auf die-Taste. Egal wie groß ein Schlüssel findet es ein eindrucksvollen Rückgang der Sicherheit, wenn er schlecht von der Software verwendet wird. Schlüssel nach der Bits Entropie, die darin enthaltenen gemessen werden soll, und einfache Tasten sollten nicht zugelassen werden. Sie sollten viele verschiedene Zeichen enthalten und haben keine erkennbare Muster. Nur, wenn folgende Bedingungen erfüllt sind, wird ein Schlüssel Wörterbuch- und Brute-Force-Angriffe widerstehen.
Einen Schlüssel Entropie misst die Menge der Bits, die nicht vorhersehbar.
In Anbetracht der Benutzer wird in der Regel nur alphanumerische Zeichen, verwenden Sie nur die minimale Anzahl von Bits möglich, diesen Schlüssel zu vertreten. Mit 8 Bits pro Zeichen bedeutet, dass 256 unterschiedliche Zeichen stehen. Ein Angreifer weiß der Benutzer nutzt nur alphanumerische Zeichen (62 Zeichen, 6 Bits) und will nicht die Mühe Tests für die 194 andere Zeichen. Eine praktische Technik ist jedes Zeichen (1 Byte) in eine 6-Bit-Zahl und dann neben einander verketten zu konvertieren. Sie könnten nur Kleinbuchstaben und ein paar Zahlen und jedes Zeichen auf 5bits reduzieren (32 Zeichen). Es ist wichtig, fordern den Benutzer, um Kennwörter zu verwenden, die größer sind, die gleiche Größe zu erreichen. Mit diesem sagte, sollte kein 8 Zeichentaste 64bits, aber sein als Tatsache 48bits (6bits x 8 Zeichen). Tasten mit niedriger Entropie-Pose, die eine Bedrohung der Sicherheit, dass egal wie gut den Rest des Systems entwickelt ausgelegt ist.
Kurz, ein-Wort-Schlüssel sollte nicht innerhalb ein Kryptosystem toleriert werden. Selbst wenn Sie Entropie zu optimieren, gibt es einfach nicht genügend Kennzahlen in eine 5 Zeichentaste, einen brute-Force-Angriff zu widerstehen. Ein 30-Bit-Schlüssel (6bits x 5 Zeichen) erlaubt nur eine Möglichkeit von ein paar Milliarden Schlüsseln, die dauert nur ein paar Stunden auf einen leistungsfähigen Computer erschöpfen. Ein Schlüssel der am wenigsten 128bits sollte für Sesitive Daten; Dies gewährleistet eine Spannweite von ein paar Jahre, bevor die Notwendigkeit für eine neue und längere Schlüssel ergibt. Bei 6bits pro Zeichen bedeutet dies, dass der Schlüssel 22 oder mehr Zeichen lang sein sollte. Dies mag große, aber nichts hält Sie davon ab mit Sätzen. Als Beispiel die Phrase 'ThE Lift war GoinG UP' betrachten kann, ist es 25 Zeichen lang. Der Schlüssel ist 150 Bit lang, aber immer noch leicht zu merken. Alle Schlüssel sollten auf diese Weise behandelt werden. Es gibt keine Entschuldigung dafür, so dass ein Benutzer einen 8-stelligen Schlüssel verwenden und das gesamte Kryptosystem zu gefährden.
Ein Schlüssel bietet bessere Resistenz gegen algorithmische sucht, wenn es viele unterschiedliche Zeichen enthält. Wenn der Schlüssel 22 Zeichen lang ist, aber nur 4 verschiedene Zeichen enthält, dann ist es stark schwach. Um die Dinge einfach zu halten, sollten mindestens die Hälfte die Zeichen in einem Schlüssel unterschiedlich sein (22 Zeichentaste sollten mindestens 11 verschiedene Charaktere haben). Mehr unterschiedliche Charaktere in einem Schlüssel erschweren die statistisch Vorhersagen, das nächste Zeichen. Obwohl ein solcher Angriff als unwahrscheinlich ist, gibt es keinen Raum für Fehler. Alle bekannte Arten von Angriffen zu verhindern und die Vorwegnahme der Verstöße vor Hand ist äußern ganz wichtig egal wie unbedeutend ein Risiko sein mag. Ein Risiko besteht immer ein Risiko. Es ist wichtig, fordern Sie Benutzer auf die unterschiedlichsten Charaktere haben, die sie in jedem Schlüssel zu algorithmischen Recherchen keine Ergebnisse liefern sich erinnern können.
Angreifer Liebe Muster, sie machen wichtige Recherchen und sein Leben viel einfacher. Benutzer scheinen zu denken, dass Tasten wie: 'Bingobingo' sind sicherer als diejenigen, die wie: 'Bingo', aber die Tatsache ist, sie sind nur geringfügig besser. Intelligente Angreifer wissen alles, was die Tricks-Benutzer zu entwickeln, um ihre Schlüssel zu erraten erschweren. Mit einem Wort zweimal sollte dringend abgeraten. Oft fügen Sie Benutzer Zahlen am Ende des Schlüssels zu machen, weniger vorhersehbar. Leider 80 % der Zeit die Zahl 123 ist, und die restlichen 20 % ist 321. Für einen Angreifer, der diese zusätzlichen Schlüssel zu testen muss er auch mit 123 hinzugefügt, um jede Taste sowie 321 testen. Dies bedeutet, dass er 3 mal so viele Schlüssel suchen muss; Dies entspricht nur einem Anstieg von 1,5 Bit statt der 18bits 3 Zeichen bieten sollte. Test Schlüssel für Muster können ein sehr komplexes Hindernis, und nicht diskutiert werden in diesem Papier. Nach dem offensichtlichen Muster nicht zugelassen wurden, haben ist es ratsam, den Schlüssel durch eine Einweg-Hash-Funktion wie SHA oder HAVAL übergeben. Diese Funktionen nehmen eine Eingabe von Daten und erstellen Sie eine Out hat keine lösbar Beziehung zu der Eingabe; für jede mögliche Eingabe gibt es nur eine Ausgabe. Die Ausgabe dieser Hash-Funktionen ist scheinbar zufällig und wird effektiv keine diskrete Muster zu verschleiern.
Beseitigung der Muster macht es sehr schwierig für einen Angreifer
Suche nach schwachen Schlüsseln.
HINWEISE:
Die Quelle unten ist Teil einer Bibliothek in Fortschritt Cummulating 3 Jahren Forschung. Es sollte eigentlich ein Beispiel sein, aber wenn Sie es in einem Programm verwenden möchten, ein wenig Kredit wäre schön.
Diese wichtigen Routinen optimiert und ein Dutzend Mal neu geschrieben wurden, habe ich versucht zu kommentieren, so gut ich konnte. Die Prozedur Strukturen können merkwürdig erscheinen, da ich ursprünglich sie in C++ schrieb. Der Pseudo-Zufallsgenerator kommt aus einer unbekannten Quelle, und diese Implementierung der haval ist eine [schwere] Änderung der David Bartons haval.pas in die DCPcrypt 1.3 Component Suite gefunden. Ich habe Kontext Kapselung, so dass die Verfahren nicht hätte in einer Multithreading-Umgebung (Server vielleicht?) instanziiert werden.
Beschreibung:
[MutateKey]
Transformiert einen Schlüssel in eine andere expandieren und komprimieren. Keine vorherigen Schlüssel können durch den aktuellen Schlüssel ermittelt werden können, aber alle nachfolgenden Schlüssel.
256-Bit-Schlüssel für starke Verschlüsselung
256-Bit-Schlüssel für starke Verschlüsselung : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Techniken zur Identifizierung von Schlüsseln, die Brute-Force- und Wörterbuch-Angriffe zu widerstehen. Delphi Quelle für Schlüssel zu analysieren, Konvertieren von Passphrasen mit Tasten und Vertausche Schlüssel enthält.
[256-bit-Schlüssel für starke Verschlüsselung]
Source-Code unten
Die Sicherheit einer guten Kryptosystem stützt sich auf die-Taste. Egal wie groß ein Schlüssel findet es ein eindrucksvollen Rückgang der Sicherheit, wenn er schlecht von der Software verwendet wird. Schlüssel nach der Bits Entropie, die darin enthaltenen gemessen werden soll, und einfache Tasten sollten nicht zugelassen werden. Sie sollten viele verschiedene Zeichen enthalten und haben keine erkennbare Muster. Nur, wenn folgende Bedingungen erfüllt sind, wird ein Schlüssel Wörterbuch- und Brute-Force-Angriffe widerstehen.
Einen Schlüssel Entropie misst die Menge der Bits, die nicht vorhersehbar.
In Anbetracht der Benutzer wird in der Regel nur alphanumerische Zeichen, verwenden Sie nur die minimale Anzahl von Bits möglich, diesen Schlüssel zu vertreten. Mit 8 Bits pro Zeichen bedeutet, dass 256 unterschiedliche Zeichen stehen. Ein Angreifer weiß der Benutzer nutzt nur alphanumerische Zeichen (62 Zeichen, 6 Bits) und will nicht die Mühe Tests für die 194 andere Zeichen. Eine praktische Technik ist jedes Zeichen (1 Byte) in eine 6-Bit-Zahl und dann neben einander verketten zu konvertieren. Sie könnten nur Kleinbuchstaben und ein paar Zahlen und jedes Zeichen auf 5bits reduzieren (32 Zeichen). Es ist wichtig, fordern den Benutzer, um Kennwörter zu verwenden, die größer sind, die gleiche Größe zu erreichen. Mit diesem sagte, sollte kein 8 Zeichentaste 64bits, aber sein als Tatsache 48bits (6bits x 8 Zeichen). Tasten mit niedriger Entropie-Pose, die eine Bedrohung der Sicherheit, dass egal wie gut den Rest des Systems entwickelt ausgelegt ist.
Kurz, ein-Wort-Schlüssel sollte nicht innerhalb ein Kryptosystem toleriert werden. Selbst wenn Sie Entropie zu optimieren, gibt es einfach nicht genügend Kennzahlen in eine 5 Zeichentaste, einen brute-Force-Angriff zu widerstehen. Ein 30-Bit-Schlüssel (6bits x 5 Zeichen) erlaubt nur eine Möglichkeit von ein paar Milliarden Schlüsseln, die dauert nur ein paar Stunden auf einen leistungsfähigen Computer erschöpfen. Ein Schlüssel der am wenigsten 128bits sollte für Sesitive Daten; Dies gewährleistet eine Spannweite von ein paar Jahre, bevor die Notwendigkeit für eine neue und längere Schlüssel ergibt. Bei 6bits pro Zeichen bedeutet dies, dass der Schlüssel 22 oder mehr Zeichen lang sein sollte. Dies mag große, aber nichts hält Sie davon ab mit Sätzen. Als Beispiel die Phrase 'ThE Lift war GoinG UP' betrachten kann, ist es 25 Zeichen lang. Der Schlüssel ist 150 Bit lang, aber immer noch leicht zu merken. Alle Schlüssel sollten auf diese Weise behandelt werden. Es gibt keine Entschuldigung dafür, so dass ein Benutzer einen 8-stelligen Schlüssel verwenden und das gesamte Kryptosystem zu gefährden.
Ein Schlüssel bietet bessere Resistenz gegen algorithmische sucht, wenn es viele unterschiedliche Zeichen enthält. Wenn der Schlüssel 22 Zeichen lang ist, aber nur 4 verschiedene Zeichen enthält, dann ist es stark schwach. Um die Dinge einfach zu halten, sollten mindestens die Hälfte die Zeichen in einem Schlüssel unterschiedlich sein (22 Zeichentaste sollten mindestens 11 verschiedene Charaktere haben). Mehr unterschiedliche Charaktere in einem Schlüssel erschweren die statistisch Vorhersagen, das nächste Zeichen. Obwohl ein solcher Angriff als unwahrscheinlich ist, gibt es keinen Raum für Fehler. Alle bekannte Arten von Angriffen zu verhindern und die Vorwegnahme der Verstöße vor Hand ist äußern ganz wichtig egal wie unbedeutend ein Risiko sein mag. Ein Risiko besteht immer ein Risiko. Es ist wichtig, fordern Sie Benutzer auf die unterschiedlichsten Charaktere haben, die sie in jedem Schlüssel zu algorithmischen Recherchen keine Ergebnisse liefern sich erinnern können.
Angreifer Liebe Muster, sie machen wichtige Recherchen und sein Leben viel einfacher. Benutzer scheinen zu denken, dass Tasten wie: 'Bingobingo' sind sicherer als diejenigen, die wie: 'Bingo', aber die Tatsache ist, sie sind nur geringfügig besser. Intelligente Angreifer wissen alles, was die Tricks-Benutzer zu entwickeln, um ihre Schlüssel zu erraten erschweren. Mit einem Wort zweimal sollte dringend abgeraten. Oft fügen Sie Benutzer Zahlen am Ende des Schlüssels zu machen, weniger vorhersehbar. Leider 80 % der Zeit die Zahl 123 ist, und die restlichen 20 % ist 321. Für einen Angreifer, der diese zusätzlichen Schlüssel zu testen muss er auch mit 123 hinzugefügt, um jede Taste sowie 321 testen. Dies bedeutet, dass er 3 mal so viele Schlüssel suchen muss; Dies entspricht nur einem Anstieg von 1,5 Bit statt der 18bits 3 Zeichen bieten sollte. Test Schlüssel für Muster können ein sehr komplexes Hindernis, und nicht diskutiert werden in diesem Papier. Nach dem offensichtlichen Muster nicht zugelassen wurden, haben ist es ratsam, den Schlüssel durch eine Einweg-Hash-Funktion wie SHA oder HAVAL übergeben. Diese Funktionen nehmen eine Eingabe von Daten und erstellen Sie eine Out hat keine lösbar Beziehung zu der Eingabe; für jede mögliche Eingabe gibt es nur eine Ausgabe. Die Ausgabe dieser Hash-Funktionen ist scheinbar zufällig und wird effektiv keine diskrete Muster zu verschleiern.
Beseitigung der Muster macht es sehr schwierig für einen Angreifer
Suche nach schwachen Schlüsseln.
HINWEISE:
Die Quelle unten ist Teil einer Bibliothek in Fortschritt Cummulating 3 Jahren Forschung. Es sollte eigentlich ein Beispiel sein, aber wenn Sie es in einem Programm verwenden möchten, ein wenig Kredit wäre schön.
Diese wichtigen Routinen optimiert und ein Dutzend Mal neu geschrieben wurden, habe ich versucht zu kommentieren, so gut ich konnte. Die Prozedur Strukturen können merkwürdig erscheinen, da ich ursprünglich sie in C++ schrieb. Der Pseudo-Zufallsgenerator kommt aus einer unbekannten Quelle, und diese Implementierung der haval ist eine [schwere] Änderung der David Bartons haval.pas in die DCPcrypt 1.3 Component Suite gefunden. Ich habe Kontext Kapselung, so dass die Verfahren nicht hätte in einer Multithreading-Umgebung (Server vielleicht?) instanziiert werden.
Beschreibung:
[MutateKey]
Transformiert einen Schlüssel in eine andere expandieren und komprimieren. Keine vorherigen Schlüssel können durch den aktuellen Schlüssel ermittelt werden können, aber alle nachfolgenden Schlüssel.
256-Bit-Schlüssel für starke Verschlüsselung
By Wiezutun
256-Bit-Schlüssel für starke Verschlüsselung : Mehreren tausend Tipps, um Ihr Leben einfacher machen.