Warum sollen wir nicht mit dem privaten Schlüssel in einem asymmetrischen Kryptosystem Krypta?

StackOverflow https://stackoverflow.com/questions/1372307

Frage

In der Standard Verwendung von asymmetrischem Verschlüsselungssystem, Verschlüsselung mit einem öffentlichen Schlüssel, Entschlüsselung mit einem privaten Schlüssel durchgeführt wird.

Umkehren des Prozesses, „Verschlüsselung mit einem privaten Schlüssel“ wird als „Signatur“.

Standard-Tools, trotz Terminologie und den Mangel an direkten Tool ermöglichen Verschlüsselungssystem zu implementieren, die die privaten Schlüssel für die Verschlüsselung verwenden würden.

Könnte jemand eindeutig erklären, warum eine solche Lösung anfällig ist?

Benutzer Fall:

Beachten Sie, dass Alice will Bob ein paar Sachen in eine nicht-traditionelle Art und Weise senden:

Alice und Bob einmal getroffen und Alice gab Bob einen „öffentlichen Schlüssel“ erzeugt von einem privaten Schlüssel, der sie erstellt, aber sie warnte Bob es geheim zu halten. Und sie gehütete Geheimnis der private Schlüssel, und nicht immer geben, um jemand anderes den öffentlichen Schlüssel.

Könnte Bob sicher sein, dass Botschaften, die er von Alice erhält (sofern diese von Alice privaten Schlüssel verschlüsselt sind) von ihm nur lesbar sind (vorausgesetzt, er hielt wirklich seine Kopie des öffentlichen Schlüssels Geheimnis Alice)?

Und wie vergleicht diese Verschlüsselung Solidität der traditionellen Art und Weise, die in unserem Fall wäre, sein, Bob das Senden von Nachrichten (durch den öffentlichen Schlüssel von Alice verschlüsselt) zu Alice?

Was ist die Frage über

Die Tatsache, dass asymmetrische Schlüssel benannt sind „privat“ und „öffentlich“ nicht helfen, meine Frage zu verstehen. Keys haben zugrunde liegenden Eigenschaften, und es ist mir die „öffentlichen Schlüssel“ Rundfunk, dass sie ihre „public“ Eigenschaft verleiht. Bitte macht diese Unterscheidung klar, bevor er antwortet: Ich bin nicht die „öffentlich“ und „privat“ Eigenschaften dieses Schlüssels aber die Solidität der „private Schlüssel“ Verschlüsselung im Vergleich zu „public key“ Verschlüsselung unter Berücksichtigung

.

Ich kann nicht eine andere Terminologie verwenden, auch wenn es in diesem speziellen Fall ist irreführend.

Ich weiß, dass dieser Fall nicht-traditionellen, und zu mehreren Inkonsistenz führen könnte, oder ist nicht der Punkt der asymmetrischen Kryptosysteme wie Bob und Alice hier so etwas wie ein gemeinsames Geheimnis teilen und das ist nicht der Punkt von asymmetrischen Krypto .

sah ich mehrere Stackoverflow Antworten, die vorschlagen, dass „private Schlüssel“ und „Public-Key“ austauschbar sind (knapp unter Antworten lesen). Dies ist für RSA nicht wahr, wie es trivial ist, den öffentlichen Schlüssel aus dem geheimen Schlüssel zu erzeugen und dies gewährleistet ist in umgekehrt nicht als rechnerisch möglich. Für Nicht-Gläubigen, ist der Prozess der Schlüsselgenerierung in openssl mit RSA:

  1. erzeugt einen geheimen Schlüssel
  2. extrahiert die öffentlichen Schlüssel aus dem geheimen Schlüssel.

Wenn es so große Unterschiede zwischen den „privaten Schlüssel“ und „öffentlichen Schlüssel“ sind, gibt es eine Festigkeit Unterschied zwischen „privaten Schlüssel“ Verschlüsselung im Vergleich zu herkömmlichen „public key“ Verschlüsselung?

Kurze Antwort von lang gewählter Antwort

Unverständnis auf was genau ist die „privaten Schlüssel“ half mir nicht. Es gibt zwei unterschiedliche Definition von „privaten Schlüssel“. Die „praktische privaten Schlüssel“ und die „theoretische privaten Schlüssel“.

Theoretische private Schlüssel von RSA Theorie Aktien mathematische Symmetrie mit einem öffentlichen Schlüssel:

      
  • Sie können nicht deduce eine von der anderen
  •   
  • Die Verschlüsselung ist ebenso solide in jeder Art und Weise

Praktische private Schlüssel von RSA-Tool (wie openssl) für Effizienz Grund enthält weitere Informationen, und oft ein Teil des öffentlichen Schlüssels wird auch durch Konvention festgelegt. Diese Annahmen bricht die Symmetrie:

      
  • Es ist trivial öffentlichen Schlüssel von „pratical privaten Schlüssel“ zu bekommen
  •   
  • Aber Verschlüsselung bleibt ebenso solide

Für weitere Einzelheiten wird auf die gewählte Antwort! Bitte Kommentar, wenn Missverständnisse bleiben ...

Bearbeiten Hinweis:

      
  • Asymmetrisches Kryptosystem-Schlüsselpaar als swappable häufig beworben werden (auch in der aktuellen Stackoverflow Antworten), versuche ich Reflexion zu bringen um die Tatsache, dass es gefährlich Missverständnisse sein könnte, da es nicht der Fall, im wirklichen Leben Tool ist.
  •   
  • hinzugefügt der Benutzer Fall, ich hoffe, diesen Willen clarify meine Frage
  •   
  • hinzugefügt final 'kurze Antwort'
War es hilfreich?

Lösung

  

In der Standard Verwendung von asymmetrischem Verschlüsselungssystem, Verschlüsselung mit einem öffentlichen Schlüssel, Entschlüsselung mit einem privaten Schlüssel durchgeführt wird.

Es hängt davon ab, wer was tut. Angenommen, Alice möchte eine Nachricht an Bob senden, dass nur Bob dekodieren kann. Alice verschlüsselt die Nachricht Bob öffentliche Schlüssel (unter der Standard-Definition des ‚öffentlichen Schlüssels‘, das eine Bedeutung, die den Menschen bekannt ist, anders als sein Besitzer). Jetzt nur jemand, der Bobs privaten Schlüssel kennt (vermutlich die einzige Person, die Bobs privaten Schlüssel kennt, ist in der Tat Bob) kann Alice die Nachricht von Bob entschlüsselt werden.

Wenn Alice will Bob wissen, dass sie es nur geschickt haben könnte, kann sie die Nachricht verschlüsseln mit ihrem privaten Schlüssel besitzen, vorausgesetzt, Bob ihre öffentlichen Schlüssel kennt, entweder vor oder nach der Nachricht mit Bobs öffentlichen Schlüssel verschlüsselt werden. Lassen Sie uns annehmen, dass sie die Nachricht mit ihrem privaten Schlüssel verschlüsselt, dann das Ergebnis mit Bobs öffentlichen Schlüssel. Um die Nachricht zu lesen, hat Bob die Nachricht mit seinen (Bob) privaten Schlüsseln zu entschlüsseln, und dann das Ergebnis entschlüsselt wieder mit Alices öffentlichen Schlüsseln. Wenn das, was er liest jetzt vernünftiger Text ist, er weiß, dass jemand, der beide Alices private Schlüssel kennt (vermutlich Alice) und seinen öffentlichen Schlüssel (jemand überhaupt sein könnte) die Nachricht gesendet.

In der Praxis ist die asymmetrischen Algorithmen sind teuer zu berechnen, so etwas Sie wirklich tun, ist einen zufälligen Sitzungsschlüssel einer geeigneten Länge wählen und ein vereinbarter Standard symmetrischen Verschlüsselungsalgorithmus wie AES. Dann wird die Hauptnachricht wird mit dem (relativ schnell) symmetrischen Algorithmus verschlüsselt und als einen Teil der Nachricht gesendet. Der andere Teil der Nachricht ist die verschlüsselte - oder zweifach verschlüsselt - zufällige Sitzungsschlüssel. Bob kann den Sitzungsschlüssel Abschnitt der Nachricht entschlüsseln den Sitzungsschlüssel zu erhalten; er verwendet dann, dass der Hauptteil der Nachricht zu entschlüsseln.

Beachten Sie, dass, wenn Sie eine Nachricht an viele Personen zu senden, können Sie eine Verschlüsselung der Nachricht richtigen verwenden können, und verschlüsseln Sie dann den Sitzungsschlüssel einmal für jeden Empfänger mit dem öffentlichen Schlüssel des Empfängers. Jeder Empfänger kann nur die Sitzungsschlüssel Informationen mit dem Schlüssel entschlüsseln, der zu ihnen gehört, aber alle können tatsächlich entschlüsseln. Wenn die Nachricht ist beträchtlich (etwa 2 MB PDF), dann ist diese als separat viel wirtschaftlicher ist, die Nachricht mit jedem Empfänger der öffentlichen Schlüssel verschlüsselt wird.

  

Umkehren des Prozesses, „Verschlüsselung mit einem privaten Schlüssel“ wird als „Signatur“.

Nein; Unterzeichnung ist ein separater Vorgang. Wenn Sie Schneiers „ Praktische Kryptographie “ lesen, werden Sie sehen, dass die Autoren schlagen vor, eine mit public / privates Schlüsselpaar für die Verschlüsselung und ein zweites Paar zur Unterzeichnung der Arbeit. Zum Beispiel verschlüsselt eine Signatur mit einer festen Länge hash der ursprünglichen Nachricht mit dem privaten Schlüssel aus dem Signierschlüssel verwendet. Jeder, der den öffentlichen Schlüssel Teil des Signaturschlüssels kennt, kann dann die Signatur entschlüsselt den Hash der ursprünglichen Nachricht zu erhalten. Vermutlich kann der gleiche Empfänger entschlüsselt auch die Nachricht (den öffentlichen Schlüssel des Signaturschlüsselpaar verwendet wird), und dann überprüfen, dass der Hash der Nachricht empfangen Einstimmungen der Hash aus der Signatur abgeleitet. Jede Abweichung zeigt ein Problem, und die Nachricht muss verworfen werden.

Es gibt viele Möglichkeiten, diese Dinge zu tun -. Je nach den Sicherheitsanforderungen

Aber der springende Punkt ist, dass eine Person den privaten Schlüssel eines asymmetrischen Schlüssel kennt, und möglicherweise viele Menschen kennen den öffentlichen Teil des asymmetrischen Schlüssel (und das ist absolut sicher). Die Daten können vom Absender verschlüsselt werden, um den Empfänger öffentliche Schlüssel verwendet wird; es kann auch durch den Sender mit ihrem eigenen privaten Schlüssel verschlüsselt werden. Der Empfänger kann die empfangene Nachricht entschlüsselt ihre eigenen privaten Schlüssel und, falls erforderlich, den öffentlichen Schlüssel des Absenders verwendet wird.


Die Frage, auch in der geänderten Fassung bei etwa 2009-09-05T13: 00-07: 00, ist nicht völlig kohärent, IMNSHO.

Sie sollten Kapitel 13 "RSA" in "Practical Cryptography" (wahrscheinlich nach zu einigen der früheren Kapiteln zu lesen - insbesondere Abschnitt 3.3 Public-Key-Verschlüsselung) lesen.

Notation für Verschlüsselung und Entschlüsselung

Lassen Sie uns ein wenig Notation definieren für die Diskussion orthodoxe Public-Key-Kryptographie. Beginnen wir mit dem Grund symmetrische Verschlüsselung:

  • C = E (K, m) ist die verschlüsselte Nachricht (Chiffretext, C), die durch Verschlüsselungsalgorithmus E mit der Taste K auf (Klartext) Nachricht m.
  • P = D (K, C) ist die Klartextnachricht (Klartext, P) entdeckt von Entschlüsselungsalgorithmus D unter Verwendung von Schlüsseln K auf (verschlüsselte) Nachricht C.
  • ein funktionierendes System sein, m = P, so D (K, E (K, m)) = m.

Bisher gilt diese Notation auf die symmetrische Verschlüsselung, weil der gleiche Wert K in die Verschlüsselung und Entschlüsselung verwendet wird. Jeder, der K kennt (und der Algorithmus, aber Kerckhoff-Prinzip, dass bedeutet ‚Geheimhaltung in dem Schlüssel ist‘, dass Sie davon ausgehen, die Angreifer kennen die Algorithmus - entgegenstehende Annahme Verschlüsselung ‚snake oil‘). Die Nachricht entschlüsseln kann

mit einem asymmetrischen Verschlüsselungssystem, E a und D a sind die Verschlüsselungs- und Entschlüsselungsverfahren für Algorithmus A. Das Hauptmerkmal eines asymmetrischen kryptographischen Verschlüsselungs unterscheidet, ist, dass die Schlüssel K encrypt , die von E a unterscheidet sich von dem Schlüssel K Entschlüsseln , die von D a . Ferner praktisch zu sein, muss es rechnerisch unmöglich sein K abzuleiten decrypt , auch wenn Sie wissen, K encrypt und umgekehrt.

Bei der asymmetrischen Verschlüsselung, Alice erzeugt ein Schlüsselpaar, (S alice , P alice ). Herkömmlicherweise wird S alice ist der geheime Schlüssel und P alice ist der öffentliche Schlüssel. Beachten Sie, dass Alice beiden Schlüssel kennt. Alles was zählt ist:

  1. S alice und P alice unterschiedlich sind.
  2. Alice lässt nicht jemand anderes wissen über eine der Tasten (S alice ); es ist von entscheidender Bedeutung, dass diese Informationen nicht an Dritte bekannt ist.
  3. Alice kann andere Leute wissen lassen, über die andere Taste (P alice ), ohne die Sicherheit des Systems zu beeinträchtigen.

In ähnlicher Weise Bob wird ein Schlüsselpaar erstellen, (S bob , P bob ). Beachten Sie, dass:

  • Bob kennt den Schlüssel S bob , P bob und P alice .
  • Alice kennt den Schlüssel S alice , P alice und P bob .

Alice sendet eine Nachricht an Bob

Nun, wenn Alice möchte eine Nachricht senden, M alice-bob , Bob, so dass Bob es lesen kann (aber niemand sonst kann), hat sie es mit Bobs Schlüssel zu verschlüsseln P bob . So schafft sie eine Nachricht an:

  • C Alice-bob = E a (P bob , M Alice-bob )

Bob kennt (von externer Evidenz), dass die Nachricht mit P verschlüsselt bob , damit er weiß, dass er es mit S entschlüsseln muss bob :

  • M Alice-bob = D a (S bob , C Alice-bob )

an dieser Stelle jedoch, alles, was er über die Nachricht weiß, ist, dass es von jemandem kam, der seine P wussten bob drücken. Er weiß nicht, dass es von Alice kam außer über extrinsische Beweise.

Wenn Bob und Alice sich einig, dass ihre Nachrichten so verschlüsselt werden müssen, dass sie beide sicher sind, dass die empfangene Nachricht von der anderen kam, dann müssen beide sicher sein, dass niemand außer Alice weiß S alice und dass niemand anders als Bob weiß S bob . Sie müssen auch sicher sein, dass P alice Bob und Bob bekannt ist, sicher sein muss, dass P alice wirklich tut, gehören in Alice, und dass P bob ist, muss sicher sein, zu Alice und Alice bekannt, dass P bob gehört zu Bob wirklich. diese Vertrauensbeziehungen aufzubauen ist viel von dem, was PKI (Public Key Infrastructure) etwa.

Unter der Annahme, dass diese Kriterien erfüllt sind, dann ihre Nachricht an Bob so Alice kann senden, dass Bob zuversichtlich ist, dass nur Alice es geschickt haben könnte. Wie bereits dargelegt, ist der Mechanismus eine doppelte Verschlüsselung:

  • C1 Alice-bob = E a (S Alice , M Alice-bob )
  • C2 Alice-bob = E a (P bob , C1 Alice-bob )

Alice sendet C2 alice-bob Bob (zusammen mit einiger Signatur oder MAC, um zu bestätigen, dass es nicht bei dem Transport beschädigt wurde), und dann Bob berechnet:

  • D1 Alice-bob = D a (S bob , C2 Alice-bob )
  • D2 Alice-bob = D a (P Alice , D1 Alice-bob )

Wenn alles ist weg nach Plan, D2 alice-bob = M alice-bob .

Mechanik von RSA-Schlüsselpaaren

Der RSA-Verschlüsselungsalgorithmus basiert auf der Tatsache, dass, wenn Sie zwei öffentlich bekannte Zahlen (die zwei Teile eines öffentlichen Schlüssels), den Exponenten e und die Modul n , dann eine Nachricht gegeben m , es ist einfach zu berechnen c = m e mod n . Es ist jedoch rechnerisch nicht machbar herzuleiten m gegeben nur c (und e und n ). Wenn jedoch wissen, dass Sie einen anderen Exponenten, d , dann können Sie auf magische Weise berechnen r = c d mod n und r = m , wenn Sie berechnet haben e d und n in geeigneter Weise. Es ist nicht möglich zu berechnen d von e und n ohne einige andere Informationen zu kennen.

Im Rahmen des RSA-Verschlüsselungsschemas, starten Sie die Arbeit mit zwei (großen) zufällig bestimmt Primzahlen p und q , und ihrem Produkt ist n . Der RSA-Algorithmus wird auf der Tatsache, dass es äußerst schwierig zu Faktor n (bestimmen p und q gegeben nur n ); wenn jemand überhaupt eine einfache Art und Weise der Faktorisierung großer Zahlen findet, dann wird der RSA-Algorithmus sofort gebrochen.

Sobald Sie n , müssen Sie Exponenten bestimmen e und d , so dass:

  • ed = 1 mod t , wobei t = LCM (p-1, q-1) und LCM das kleinste gemeinsame Vielfaches .

Sie einen der beiden Werte als eine kleine ungerade Zahl wählen kann - Schneier und Ferguson vorschlagen e = 3, zum Beispiel. Sie berechnen dann d einige Berechnungen mit, dass sie in etwa 6 Seiten ihres Buches decken. Typischerweise d wird eine ziemlich große Zahl sein. Anschließend können Sie das Paar ( e n ) als Verbund öffentlichen Schlüssel veröffentlichen, um die Werte zu halten ( p q t d ) geheim wie die privaten Schlüssel. Gegeben e und n , ist es nicht rechnerisch möglich ist, abzuleiten d ohne ersten Factoring n . "Practical Cryptography", schlägt die Verwendung von zwei verschiedenen Paaren ( e 1 , d 1 ) und ( e 2 d 2 ), aus dem gleichen Wert abgeleitet n , wo Sie verwenden e 1 Nachrichten zu verschlüsseln, und e 2 für digitale Signaturen; sie schlagen sogar die Werte 3 und 5 für diese verwendet wird.


OpenSSL und Key Generation

Ihre Beschreibung, wie der RSA-Schlüssel generiert wird von OpenSSL ist verwirrt, glaube ich.

Der Erzeugungsprozess hat ersten bis große zufällige Primzahlen zu erzeugen, p und q in der Notation oben. Es gibt stochastische Methoden zur Bestimmung, ob eine bestimmte große Zahl ist (wahrscheinlich) prime; es dauert eine Weile, zwei solche Primzahlen zu berechnen. Zusammengenommen diese erste Berechnung verwendet werden, um n und dann d (vorausgesetzt e wird von einiger Konvention festgelegt). Die beiden Stufen Sie in OpenSSL sehenBestimmen n , und dann Bestimmen d .


Dissection von Benutzern Fall

Die Frage sagt:

  

Beachten Sie, dass Alice will Bob ein paar Sachen in eine nicht-traditionelle Art und Weise senden:

     

Alice und Bob einmal getroffen und Alice gab Bob einen „öffentlichen Schlüssel“ erzeugt von einem privaten Schlüssel, der sie erstellt, aber sie warnte Bob es geheim zu halten. Und sie gehütete Geheimnis der private Schlüssel, und nicht immer geben, um jemand anderes den öffentlichen Schlüssel.

So weit, so gut. Der ‚Public-Key‘ ist nicht sehr öffentlich, aber es gibt keinen Schaden darin.

  

Könnte Bob sicher sein, dass Botschaften, die er von Alice erhält (sofern diese von Alice privaten Schlüssel verschlüsselt sind) von ihm nur lesbar sind (vorausgesetzt, er hielt wirklich seine Kopie des öffentlichen Schlüssels Geheimnis Alice)?

Wenn die Verschlüsselungstechnologie von Nutzen ist, dann ja; nur Alice und Bob kann die Nachricht lesen, dass Alice mit ihrem geheimen Schlüssel verschlüsselt, weil nur Alice und Bob den öffentlichen Schlüssel kennen, die mit ihrem geheimen Schlüssel geht.

  

Und wie vergleicht diese Verschlüsselung Solidität der traditionellen Art und Weise, die in unserem Fall wäre, sein, Bob das Senden von Nachrichten (verschlüsselt durch den öffentlichen Schlüssel von Alice) zu Alice?

Verwirrung : der Abschnitt begann mit der Diskussion Alice Nachrichten an Bob sendet; jetzt haben Sie geschaltet Bob Nachrichten an Alice senden.

Als Bob und Alice trafen, gab Alice Bob ihr P alice öffentliche Schlüssel. Vermutlich Bob gab auch Alice seine P bob öffentlichen Schlüssel. Und beiden öffentlichen Schlüssel der öffentlichen Umlauf sehr begrenzt -. Das ist gut, aber nicht entscheidend für die Sicherheit des Systems

Nun, wenn Bob möchte eine Nachricht an Alice schicken, er es mit ihrem P verschlüsselt alice Öffentliche Schlüssel, und Alice (und nur Alice) kann die Nachricht entschlüsselt mit ihrem S alice geheime Schlüssel. Alternativ kann die Nachricht mit seinem S bob geheimen Schlüsseln, und Alice kann Bob könnte es mit Bob P bob Public-Key-Verschlüsselung entschlüsseln. Beide Sätze von Verschlüsselung und Entschlüsselung funktionieren würde.

  

Was ist die Frage über

     

Die Tatsache, dass asymmetrische Schlüssel benannt sind „privat“ und „öffentlich“ nicht helfen, meine Frage zu verstehen. Keys haben zugrunde liegenden Eigenschaften, und es ist mir die „öffentlichen Schlüssel“ Rundfunk, dass sie ihre „public“ Eigenschaft verleiht. Bitte macht diese Unterscheidung klar, bevor er antwortet: Ich bin nicht die „öffentlich“ und „privat“ Eigenschaften dieses Schlüssels aber die Solidität der „private Schlüssel“ Verschlüsselung im Vergleich zu „public key“ Verschlüsselung unter Berücksichtigung

.

Es ist ebenso zuverlässig mit den richtigen privaten Schlüsseln und entschlüsselt mit dem richtigen öffentlichen Schlüssel zu verschlüsseln, wie sie mit dem richtigen öffentlichen Schlüssel und entschlüsselt mit dem richtigen privaten Schlüssel zu verschlüsseln sind. Der Unterschied ist, in denen die Operation tun. Wenn Sie klar verstehen, die die Verschlüsselungs- tun und wer die Entschlüsselungs tut, und wer weiß, welche Tasten, dann wird die Geheimhaltung der Methoden ziemlich klar.

  

Ich kann nicht eine andere Terminologie verwenden, auch wenn es in diesem speziellen Fall ist irreführend.

Nun, die ‚öffentlichen Schlüssel‘ in Ihrem Fall sind gar nicht so weit bekannt, aber das ist alles, was über es ungewöhnlich ist.

  

Ich weiß, dass dieser Fall nicht-traditionellen, und zu mehreren Inkonsistenz führen könnte, oder ist nicht der Punkt der asymmetrischen Kryptosysteme wie Bob und Alice hier so etwas wie ein gemeinsames Geheimnis teilen und das ist nicht der Punkt von asymmetrischen Krypto .

Der ganze Sinn der asymmetrischen Verschlüsselungsverfahren ist, dass es keine Rolle, ob die Angreifer (klassisch genannt Eva, die Lauscher) den öffentlichen Schlüssel kennt. Solange die privaten Schlüssel geheim gehalten werden von Alice und Bob können die Nachrichten sicher gesendet werden. Sie müssen jedoch verstehen, dass, wenn Alice eine Nachricht an Bob sendet, die nur von Alice geheimen Schlüssel, dann jemand (wie verschlüsselt istals Eva), die Alices öffentlichen Schlüssel kennt die Nachricht lesen kann. Eva kann nicht eine gefälschte Nachricht erstellen, die vorgibt von Alice zu kommen, es sei denn sie weiß auch, den geheimen Schlüssel - wenn Eve Alice geheime Schlüssel entdeckt, kann Eve so tun, jederzeit seine Alice sie mag. Aber sie kann es lesen. Wenn Alice eine Nachricht an Bob sendet, die nur von Bobs öffentlichen Schlüssel verschlüsselt ist, dann nur Bob die Nachricht lesen kann (mit seinem geheimen Schlüssel), aber Bob hat keine Möglichkeit zu wissen, ob es tatsächlich von Alice oder ob Eve kam schickte es vorgibt, seine Alice. Deshalb sollten Sie hart arbeiten müssen, um sicherzustellen, dass Bob weiß, dass nur Alice die Nachricht geschickt haben könnte, und Alice weiß, dass nur Bob die Nachricht lesen kann.

Andere Tipps

Ganz einfach, weil, wenn Sie etwas zu verschlüsseln, können Sie sie maskieren, dass so nur eine Person kann sie (die Person mit dem privaten Schlüssel) lesen. Sie haben nicht diese Person die privaten Schlüssel besitzen, alles, was Sie haben, ist ihre öffentlichen Schlüssel.

Wenn Sie es mit Ihrem privaten Schlüssel verschlüsseln, jeder kann es mit Ihrem öffentlichen Schlüssel entschlüsseln kann - das ist das Prinzip der Unterzeichnung - sie können sagen, dass es mit Ihrem privaten Schlüssel verschlüsselt wurde

Um es ein wenig mehr explizit, ‚Verschlüsselung mit einem privaten Schlüssel‘ bedeutet, dass Sie zu entschlüsseln, müssen Sie den öffentlichen Schlüssel verwenden. Dies ist kein Problem, außer dass jemand kann dann entschlüsseln Ihr [insert Artikel hier], da der öffentliche Schlüssel ist genau das: öffentlich . Es ist nicht sinnvoll, protect Daten, dieses System wird verwendet, verify Daten.

Zum Beispiel möchte Alice eine Datei toBob schicken (ja, ja, mich schießen). Alice kümmert sich nicht darum, ob jemand ihre Datei lesen kann, ist es nicht vertraulich ist, aber sie will Bob sicher sein, dass das, was sie geschickt ist, was er empfangen. Sie kann dann ihre Datei mit ihrem privaten Schlüssel verschlüsselt und Bob kann die Datei auf seinem Ende mit ihrem öffentlichen Schlüssel entschlüsseln, um sicherzustellen, dass die Datei mit nicht manipuliert wurde. Aber wenn jemand anderes in die Transaktion hören, können sie auch entschlüsseln und die Datei lesen. Sie können einfach nicht ändern.


Für den Fall, dass Sie bieten eine bessere Art und Weise würde Schlüssel wird der Austausch, wenn sie so trifft, dass es tatsächlich zwei Keypairs. Sie haben erwähnt, dass Sie sich RSA insbesondere nicht wirklich workr wenn Sie verschlüsseln mit dem öffentlichen Schlüssel versuchen wegen Optimierungen im Algorithmus gemacht. Ich würde nicht völlig überrascht werden, wenn dies ein üblicher Fall mit anderen Algorithmen ist. Sie sind entworfen, einen Weg (privat / encrypt, öffentliche / decrypt) und sind eine bekannte „teuer“ Operation ausgeführt werden soll, daher wahrscheinlich sie stark in der Realität optimiert werden.

Other than that, ich sehe keine Sicherheitsbedenken mit Ihrem Plan ... Solange die Schlüssel wirklich privat gehalten. Private / Public sind nur gewöhnliche Namen basierend auf typische Nutzung. Es gibt nichts zwingt Sie einen öffentlichen Schlüssel vollständig zu veröffentlichen. In Ihrem Fall können Sie mit dem Suchbegriff wie sie ‚Verschlüsselungsschlüssel‘ und ‚Entschlüsselungsschlüssel‘, aber ich würde nicht jeden Schlüssel für beide verwenden. Infact, würde ich empfehlen, Sie haben sie Begriff solche in Ihrem Programm, für die von Jonathan Leffler genannten Gründen in seinen Kommentaren:

  

Ein ‚öffentlicher Schlüssel‘ ist etwas, das von mehreren Personen gemeinsam genutzt werden kann. Das ist die Definition des ‚öffentlichen Schlüssels‘. Alles andere ist sehr verwirrend

Ich denke, dass Sie den Punkt der öffentlichen / privaten Schlüssel Verschlüsselung fehlen (zumindest wie ich es verstehe).

In der Situation, die Sie haben, würde die symmetrische Verschlüsselung genauso gut funktionieren. Der Grund, nicht symmetrische Verschlüsselung zu verwenden, ist eine Frage des Maßstabs.

Angenommen, Sie haben nicht nur Bob und Alice, sondern imaginäre Menschen für jeden Buchstaben des Alphabets. Diese Menschen wollen in der Lage sein, Nachrichten an alle zu senden, um sicherzustellen, sicher, dass nur der Empfänger sie lesen kann. eine normale, symmetrische Verschlüsselung verwenden, dies würde einen gemeinsamen Schlüssel zwischen jeder Person verlangen, so dass, wenn wir die 26 Personen aus dem Alphabet der Stadt haben, die 26x25 Schlüssel sind, mit jeder Person 25 geheime Schlüssel zu erinnern und sichern ist.

Geben Sie symmetrische (auch bekannt als Public / Private Key) Verschlüsselung. Jetzt hat jeder Mensch einen privaten Schlüssel und einen öffentlichen Schlüssel, mit den normalen Regeln. Um eine Nachricht an Fred zu senden, sehen Sie seine (und es gibt nur einen) öffentlichen Schlüssel. Dann schicken Sie ihm die Meldung. Es kann nur Fred diese Nachricht lesen. In diesem Schema haben Sie 26x2 Schlüssel, und jeder Mensch braucht nur daran zu erinnern, und sichern Sie 1 geheime Schlüssel. Es muss auch eine Quelle von öffentlichen Schlüsseln sein, aber das ist einfach.

Mit dem asymmetrischen Verschlüsselung, wie Sie beschreiben, mit einem Paar von Schlüsseln für jede Gruppe von Menschen, würde dann 26x25x2 Schlüssel benötigen.

So ist es wieder über die Skalierbarkeit. Die Anzahl der Tasten für symmetrische Systeme erforderlich ist N^2-N, wo in der asymmetrischen Systemen, ist es nur 2*N ist.

Ich weiß nicht, ob es einige Bedenken urheberrechtlich geschützt sind, werde ich zitiere „Valery Pryamikov“ von diesem Forum .

Signatur und Verschlüsselung sind zwei verschiedene Prototypen mit unterschiedlichen Sicherheitsanforderungen, die unter anderem unterschiedliche Polsterung benötigen Modi. Verwenden Ausdruck „decrypt mit öffentlichem“ Schlüssel war die größte Obuse von Terminologie in der Geschichte der Kryptographie, die von Bruce weit verbreitet war Schneier Buch "Applied Cryptography". Die Phrase es selbst waren sollte verwendet werden Signaturverfahren mit der Meldung zu beschreiben Erholung (wie RSA). Dieser Satz wurde ebenfalls verwendet asymmetrisch einzustellen Verschlüsselung und Signatur alte Protokollverifikationsmodelle wie VERBOT. Doch durch sie selbst das ist nur ein missnomer - öffentlicher Schlüssel bekannt für jedermann und Entschlüsselung Betrieb Bedeutung hat die Bereitstellung Datenschutz auf den Inhalt - die, wenn Entschlüsselungsschlüssel nicht möglich ist, ist bekannt für alle.

Auch so roh ermöglicht RSA Austausch von öffentlichen und privaten Schlüsseln, aber in Wirklichkeit können sie nicht untereinander ausgetauscht werden. Private Schlüssel Entschlüsselung mit der Verwendung von CRT (chinesischem Restsatz) umgesetzt bieten 4x eine bessere Leistung des privaten Schlüssels Betrieb. Dafür - Sie brauchen nicht nur Exponent, sondern auch Faktorisierung des Moduls und multiplikative Umkehrungen von einigen Produkten dieser Faktoren. Public-Key hat nur Modul und Exponenten und kann nicht mit einer solchen Berechnung verwendet werden.

Sie mißbrauchen die Bedingungen hier.

Wenn die Schlüssel wirklich privat und öffentlich sind, dann ja, irgendetwas mit dem privaten Schlüssel verschlüsselt wird, kann nur mit dem öffentlichen Schlüssel entschlüsselt werden, aber wenn der Schlüssel wirklich öffentlich ist, kann jeder, dass entschlüsseln.

Lassen Sie sich Mißachtung der.

Das Problem hier ist, was Bob kennt. Hat Bob wissen eigentlich, wenn Alice ihre öffentlichen Schlüssel an jemand anderen geschickt? Wenn nicht, kann er sich nicht sicher, dass nur er die Nachricht entschlüsseln kann. Es gibt nichts in der Technologie, die dies gewährleistet. Alles, was verschlüsselte durch Alices private Schlüssel kann durch ihre öffentlichen Schlüssel entschlüsselt werden, und somit von jedermann im Besitz dieses Schlüssels. Durch die Art von öffentlichen Schlüsseln, das sollte jeder sein.

Der einzige Weg, um sicherzustellen, dass eine Nachricht für Bob von Bob nur entschlüsselbar ist für Bob Alice seinen öffentlichen Schlüssel zu geben, und macht Alice verschlüsselt alles, was sie will durch seinen öffentlichen Schlüssel an Bob senden, die die Daten un machen -decryptable von niemandem außer Bob. Ob sie verschlüsselt auch die gleichen Daten, die von ihrem privaten Schlüssel (dh. Zeichen der Daten) ist neben dem Punkt.

Natürlich wieder, Bob, kann nicht wissen, dass Alice nicht genau die gleiche Nachricht an jeden senden hat sonst, es für andere öffentliche Schlüssel verschlüsselt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top