Beweisen Sie, dass $ a ^ {n ^ 2} $ nicht regulär ist

  • Zeigen Sie, dass $ L = \ {a ^ {n ^ 2} | n \ geq 0 \} $ ist nicht normal

    Hey Leute. Ich nehme an einem CS-Kurs und dieses Zeug ist wirklich neu für mich, also mach mit mir. Ich habe versucht zu sehen, ob ich mit dem Pumping-Lemma einen Widerspruch für reguläre Sprachen bekomme, und habe es so ausgearbeitet:

    Angenommen, $ L $ ist normal. Dann muss eine natürliche Zahl $ m $ für alle Wörter $ z $ in $ L $ mit der Länge $ | z | vorhanden sein \ geq m $ und es existiert eine Zerlegung $ z = uvw, | uv | \ leq m, | v | & gt; 0 $, damit $ u (v ^ i) w $ in der Sprache für jeden $ i \ geq 0 $ steht.

    Betrachten Sie die Zeichenfolge $ a ^ {m ^ 2 } $.

    Dann gilt $ uv = a ^ {k ^ 2} = a ^ {x + y} $ für einige $ k \ leq m $ und $ x = (k-1 ) ^ 2 $.
    Dann $ v = a ^ y = a ^ {2k-1} $.

    Sei $ i = 2 $. Dann ist $ u (v ^ 2) w = a ^ {x + 2y} $. $ \ Sqrt {x + 2y} $ ist jedoch nicht notwendigerweise eine natürliche Zahl - & gt; Widerspruch! Daher kann $ L $ nicht regulär sein.

    Nun, ich weiß, dass dieser Weg unnötig kompliziert ist und Sie können es anders beweisen (ich weiß es bereits.) die einfachste Lösung). Aber meine Frage hier ist: Ist mein Beweis auch gültig oder enthält er Mängel? Ist es formal richtig?

    Ich freue mich über jede Rückmeldung! Vielen Dank!

    07 August 2012
    GillesTimeless
4 answers
  • Man kann nicht ableiten, dass $ uv = a ^ {k ^ 2} $, das pumpende Lemma ist alles, was $ | uv | ist \ leq m $. Nicht alle Zahlen unter $ m $ sind Quadrate. Nicht nur das, auch wenn man annimmt, dass $ uv = a ^ {k ^ 2} $, so gibt es keinen Grund anzunehmen, dass $ v = a ^ {2k-1} $; Alles, was das pumpende Lemma gibt, ist, dass $ v $ nicht leer ist. Um einen Widerspruch zu erhalten, reicht es nicht aus, dass $ x + 2y $ kein Quadrat sein muss, sondern darf kein Quadrat sein! Da $ x $ und $ x + y $ benachbarte Quadrate sind, ist es tatsächlich der Fall, dass $ x + 2y $ kein Quadrat ist.

    07 August 2012
    Brian
  • Es scheint, als ob das Haupthindernis bei der Verwendung von RSA-Signaturen die Größe der Signatur ist. Wenn dies der Fall ist, sollten Sie den Elliptic Curve Digital Signature-Algorithmus (ECDSA) in Betracht ziehen.

    EC-Signaturen sind viel kürzer als RSA-Signaturen mit gleichwertiger Stärke. Beispielsweise ist eine ECDSA-Signatur mit einem 256-Bit-Schlüssel in der Standardcodierung etwa 70 Byte lang. Dies ist so stark wie eine RSA-Signatur mit einem 3072-Bit-Schlüssel, der 384 Byte lang ist. ECDSA ist auch eine NSA Suite B -Empfehlung, während dies bei RSA nicht der Fall ist.

    27 June 2012
    erickson
  • Würde so etwas wie eine Passwort-Hash-Verifizierung für diese Anwendung funktionieren?

    • Nehmen Sie an, Sie kennen die möglichen Klartextnachrichten schon lange im Voraus - vielleicht eine ausgewählte Gruppe von FourCC -Codes oder Ganzzahlen von 0000 bis 9999.
    • Nehmen Sie an, Sie haben in jedem Verbrauchergerät genügend Speicherplatz, um ~ 20 Byte für jede mögliche Nachricht zu speichern, die ein bestimmtes Gerät erkennen muss. (Für 1000 mögliche Nachrichten sind dies ~ 20 KBytes. Möglicherweise reagiert jedes Consumer-Gerät auf einen anderen Satz von 10 Nachrichten, wobei ~ 200 Byte für jedes Consumer-Gerät erforderlich sind.)
    • Lange Zeit vor der Zeit, z Jede mögliche Klartextnachricht generiert auf einer sicheren Maschine eine neue "überprüfbare Nachricht" für jede mögliche Klartextnachricht: die Klartextnachricht in den ersten vier Bytes; gefolgt von 16 Bytes, die frisch aus / dev / random gezogen wurden. (Alternativ wäre es besser, / dev / random für alle 20 Bytes jeder "überprüfbaren Nachricht" zu verwenden?)
    • Speichern Sie jede "überprüfbare Nachricht" an einem sicheren Ort, auf den der Produzent zugreifen kann.
    • Führen Sie alle 20 Bytes jeder "überprüfbaren Nachricht" durch einige (langsame) Passwort-Hash , um den entsprechenden Message-Digest zu generieren - vielleicht scrypt oder der Gewinner des Passwort-Hashing-Wettbewerb . Verkürzen Sie jeden Message Digest auf eine vernünftige Länge (~ 20 Bytes?). (Mit 16 oder 20 Bytes Entropie, so ziemlich jeder Einwegweg kryptografische Hash-Funktion (z. B. eine einzelne Iteration von sha3 oder sogar MD5 kann ausreichen).
    • Speichern Sie jedes tr vor der ZeitUnformatierter Nachrichten-Digest im Verbrauchergerät, wo er bis zum richtigen Zeitpunkt sitzt und Staub sammelt.

    Später, wenn der geeignete Zeitpunkt kommt:

    • Ziehen Sie die entsprechende "überprüfbare Nachricht" von ihrem sicheren Ort aus.
    • Übertragen Sie diese überprüfbare Nachricht an den Verbraucher.
    • Der Consumer führt alle 20 Bytes der angeblich "überprüfbaren Nachricht" über dieselbe Hash-Funktion aus und schneidet sie auf dieselbe Weise ab, um einen frisch berechneten Message-Digest zu erhalten.
    • Der Consumer verwendet die ersten beiden Bytes der Nachricht als Index, um den dieser Nachricht entsprechenden Message-Digest abzurufen.
    • (Alternativ vergleicht das Consumer-Gerät den frisch berechneten Digest mit < em> jedes Digest in seinem Speicher. Wenn es mit dem 9. Element im Speicher übereinstimmt, macht es das, was es als Antwort auf die Klartextnachricht "9" tun soll.
    • Wenn dies der Fall ist alte, staubige Nachrichtenverdichtung stimmt genau mit der frisch berechneten Nachrichtenverdichtung überein, dann die Nachricht mus Sie stammen aus dem Generator - ansonsten stammt sie von einem Betrüger oder wurde auf der Durchreise irgendwie beschädigt.

    Das Verbrauchergerät benötigt kein privates Gerät key. Auch wenn ein Angreifer alles wusste, was das Verbrauchergerät weiß - insbesondere jede in jedem Gerät gespeicherte Nachrichtenzusammenfassung -, hilft er dem Angreifer nicht viel. 16 zufällige Datenbytes sind sicherer als eine Passphrase mit 16 Buchstaben.

    Ein Angreifer würde Tausende von Jahren benötigen, um eine 20-Byte-"verifizierbare Nachricht" aus einem gespeicherten Message-Digest wiederherzustellen, vorausgesetzt, er verwendete etwas wie das COPACOBANA RIVYERA, die einen 56-Bit-DES-Schlüssel an einem einzigen Tag brutal erzwingen kann. Selbst wenn dieser Algorithmus eine technisch "gebrochene" Kryptografiefunktion und einen technisch "gebrochenen" Zufallszahlengenerator verwendet, der "nur" 2 ^ ergibt (8 * 10) Operationen - nicht die vollständigen 2 ^ (8 * 16) Operationen, die erforderlich sind, um einen ununterbrochenen Einzelzyklus brutal zu erzwingen

    21 January 2014
    David Cary
  • Wenn beide Seiten über ein Schlüsselpaar verfügen und sie den öffentlichen Schlüssel der jeweils anderen kennen, können Sie einen Schlüsselaustausch-Algorithmus ausführen, um ein gemeinsames symmetrisches Geheimnis zwischen diesen beiden Parteien zu erhalten. Dann verwenden Sie das, um eine MAC einer Nonce zu berechnen. Angenommen, ein 16-Byte-Nonce- und ein 16-Byte-MAC erhalten Sie insgesamt 32 Bytes.

    In seiner einfachen Form ist dies jedoch für Wiederholungs- oder MitM-Angriffe offen.

    27 June 2012
    CodesInChaosgrieve