RSA

  • VB.NET

Es gibt 32 Antworten in diesem Thema. Der letzte Beitrag () ist von Hitch.

    Hallo zusammen,

    ich habe mir dieses Thema angesehen: Hier

    Die Implementierung funktioniert auch, allerdings versuche ich nicht mit dem privateKey sondern mit dem PublicKey zu entschlüsseln. Also genau umgegehrt wie beschieben.
    Daran scheitere ich leider bei jedem Versuch

    Hoffe Ihr lönnt mir helfen.


    Viele Grüße,
    Hitch
    Klar, dass das nicht geht, der Public Key ist zum Verschlüsseln und der Private Key zum Entschlüsseln. Das ist so in der Verschlüsselung designt und lässt sich nicht ändern (mal ganz abgesehen davon, dass es andersrum eh komplett sinnlos ist).
    Bei RSA ist es doch so gedacht das man mit dem PrivateKey verschlüsselt und mit dem PublicKey entschlüsselt oder umgekehrt. Da der Private Key hier mehr Argumente als der PublicKey hat und der PublicKey mit dem Programm übergeben werden soll, ist es doch unsinnig den private key mitzugeben, da beide gleich anfangen.
    Wat?
    Der Public Key wird weitergegeben (deswegen Public), es kommt also praktisch jeder dran. Wenn es jetzt möglich wäre, mit dem Public Key zu entschlüsseln, dann könnte jeder, der im Besitz des Public Keys ist (also eigentlich jeder, weil der wird ja öffentlich verteilt), alle möglichen Nachrichten entschlüsseln. Der Sinn hinter RSA (und auch allen anderen asymmetrischen Verschlüsselungen) ist ja aber genau das Gegenteil, jeder soll verschlüsseln können, aber nur du willst entschlüsseln können. So ist sichergestellt, dass nur der Empfänger auch an die Daten kommt.
    Ja wie du schon richtig erkannt hast fang ich erst an mit verschlüsselung und RSA :D
    Aber das mit dem mit dem PrivateKey verschlüsseln und mit dem PublicKey entschlüsseln kann ist richtig und das das auch umgekehrt funktioniert auch.
    Ist das in diesem Fall nich auch möglich?
    mit dem mit dem PrivateKey verschlüsseln und mit dem PublicKey entschlüsseln


    Nein, das ist inkorrekt.
    Du kannst mit dem PublicKey (dem öffentlichen) verschlüsseln und mit dem PrivateKey (dem geheimen/privaten) entschlüsseln.

    -- Natürlich, man kann aus dem private Key den Public Key errechnen, aber das ist nicht Sinn der Sache. --
    OK habe ich soweit verstanden. Vielleicht ichs RSA auch nicht das was ich darunter verstanden habe auch in diesem Video geht es um die Verschlüsselung aber mit AES. Der gute Mann sagt hier jedoch (bei 2:00) das man das Ganze auch rumdreen kann also mit dem Public entschlüsseln ?( ?( ?(
    Aua.
    Hör auf, dir das anzugucken, der scheint mal GAR KEINE Ahnung zu haben.

    AES ist eine symmetrische Verschlüsselung -> Beide Seiten kennen einen gemeinsamen (auf beiden Seiten gleichen) Schlüssel.
    RSA ist eine asymmetrische Verschlüsselung -> Mit einem privaten Schlüssel wird entschlüsselt, mit einem öffentlichen Schlüssel verschlüsselt.

    Mit dem Public Key wird immer nur Verschlüsselt.
    Also ich weiß nicht, was da in dem Video gesagt wird, aber AES ist eine symmetrische Verschlüsselung und benutzt daher für Ver- und Entschlüsseln den selben Key. Symmetrische Verschlüsselungen sind nicht für die Kommunikation zwischen zwei oder mehr Computern geeignet.
    Was redet Ihr? Halbwissen anyone?

    Natürlich geht das. Anders wäre z. B. eine digitale Signatur gar nicht möglich. Bei einer digitalen Signatur wird mit dem privaten Schlüssel verschlüsselt, damit jeder, der den öffentlichen Schlüssel hat, verifizieren kann, dass es wirklich von demjenigen kommt (durch das entschlüsseln + Hash-Vergleich). Das ist Gang und Gäbe bei signierten E-Mails und SSL-Zertifikaten.

    Der RSACryptoServiceProvider hat dafür diverse Sign- bzw. Verify-Funktionen.

    Ich empfehle Euch mal, etwas über Asymmetrische Krypto zu lesen, bevor Ihr hier einen halben Flamewar auslöst.
    Von meinem iPhone gesendet
    @nikeee13: Lies hier mal weiter.
    Du kannst damit die Authentizität einer Nachricht überprüfen, indem du einen Hash der Daten mit deinem private Key verschlüsselt.
    Damit kann eine beliebige Gegenstelle die Authentizität der Nachricht prüfen.

    Was hiermit nicht gewährleistet ist, ist dass nur die Gegenstelle die Nachricht entschlüsseln kann.

    Artentus schrieb:

    Das Signieren ist wieder was ganz anderes
    Ob ich jetzt nur einen Hash mit dem privaten Schlüssel verschlüssele oder eine ganze Nachricht - beides ist problemlos möglich. Ettliche Lizenzsysteme (z. B. Resharper, hab ich so gehört) verschlüsseln ihre Lizenzdaten mit dem privaten Schlüssel, um die Lizenz dann mit dem öffentlichen zu entschlüsseln und die eigentlichen Daten des Lizenznehmers zu bekommen (ohne Hash).

    Manawyrm schrieb:

    Was hiermit nicht gewährleistet ist, ist dass nur die Gegenstelle die Nachricht entschlüsseln kann.
    Ist das gewünscht? Scheine ich irgendwie überlesen zu haben.
    Von meinem iPhone gesendet
    Also das was ich mir vorstelle ist, dass ich den PublicKey dem Programm gebe und das damit einen text entschlüsseln kann. Mit dem PrivateKey, den nur ich habe, wird dann verschlüsselt. So das das Programm nur entschlüsseln kann, aber nitch bekannt wird, wie verschlüsselt wird.
    Ist das gewünscht? Scheine ich irgendwie überlesen zu haben.


    Das ist schön. Davon ist hier aber _jeder_ andere Ausgegangen. Macht auch Sinn.
    Das "Verschlüsseln" ganzer Nachrichten halte ich übr. für sehr unpraktisch, weil man damit nicht nur größere Teile seines private Keys leaken könnte, sondern die Gegenstelle damit exakt gar nichts anfangen kann, denn entschlüsseln kann die Nachricht lediglich wieder der Inhaber des Private Keys.
    Du kannst allerdings die Echtheit der Nachricht auch hier wieder verifizieren.
    Der Sinn hinter ner asymmetrischen Verschlüsselung ist doch, dass nur Empfänger (der Besitzer des Private Keys) die an ihn gesendeten Daten entschlüsseln kann, damit niemand anderes sie lesen kann. Deswegen hat jeder Kommunikationspartner jeweils seinen eigenen Private Key und die Public Keys der anderen. Alle ankommenden Nachrichten entschlüsselt er mit seinem Private Key und alles, was er sendet, verschlüsselt er mit den Public Keys (für jeden Empfänger mit dem jeweiligen Public Key). Wenn er nun anfangen würde, alles mit seinem Private Key zu verschlüsseln, und die anderen dann mit seinem Public Key entschlüsseln (was ja möglich ist, wie du gerade sagst), dann kann jeder die versendeten Nachrichten lesen, nicht nur die eigentlichen Empfänger, weil an dem Public Key ja jeder drankommt -> fail.