Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

1

26.03.2014, 20:59

Umgedrehter RSA Algorithmus

Hallo Community,

kann man den RSA Algorithmus auch so verwenden, dass man den Schlüssel zum entschlüsseln veröffentlicht und den Schlüssel zum verschlüsseln geheim hält? Ich weiß, so ist es eigentlich nicht gedacht, aber ich suche ein Verfahren, bei dem jemand einen Schlüssel weitergeben kann, mit dem dann andere die Nachrichten entschlüsseln können. Es aber für alle ausser dem Besitzer des privaten Schlüssels (welcher eigentlich laut RSA der public Schlüssel wäre) nicht möglich ist, selbst Nachrichten zu verschlüsseln. Man soll also sich (relativ...) sicher sein können, dass die Nachricht von der bekannten Person erstellt wurde.

Gibt es andere Verfahren, die sich besser eignen würden?

Gruß,
MitglidXYZ

Cookiezzz

Frischling

Beiträge: 91

Wohnort: Deutschland

Beruf: Schüler

  • Private Nachricht senden

2

26.03.2014, 21:07

Ja, das müsste gehen (Auch wenn ich mir nicht 100% sicher bin, vielleicht kann das ja jemand bestätigen).
So weit ich mich erinnere benutzt PGP genau dieses System, um bei erhaltenen Nachrichten die Integrität zu prüfen.
Dabei wird mit dem eigenen privaten Schlüssel ein Hash der Nachricht verschlüsselt und der Empfänger kann dann mit dem Öffentlichen entschlüsseln,
selber den Hash bilden und vergleichen. Wenn beide Hashs gleich sind, wurde die Nachricht nicht verändert.

EDIT:
Hier unten steht es: http://de.wikipedia.org/wiki/Pretty_Good…hl.C3.BCsselung

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

JustSid

Frischling

Beiträge: 54

Beruf: Lead Idiot

  • Private Nachricht senden

4

26.03.2014, 21:15

Was du möchtest ist ein MAC. Wenn du weiterhin Verschlüsselung willst, dann würde sich EtM (encrypt then mac) anbieten, OpenSSH bietet dafür seit 6.2 AES-GCM an, was bisher als sicher gilt. Das RFC dazu ist 5647.

Authentifizierung und Verschlüsselung sind nicht das gleiche!
Jabberwock is killing user

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

5

26.03.2014, 21:34

Danke für eure Antworten.
Ich habe wohl etwas verwechselt / nicht selbst gewusst, was ich suche. Ich will also doch nicht verschlüsseln, sondern anscheinend digital signieren.

Kennt jemand geeignete Verfahren, am besten mit Java Bibliothek?

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

6

26.03.2014, 21:39

Ja, das klingt nach einer digitalen Signatur. Und ja, RSA so zu benutzen würde funktionieren. Aber ganz dumpf erinnere ich mich da an eine Schwäche, wenn man viel mit dem Private Key chiffriert, aber ich komm nicht mehr richtig drauf. Also würde ich es gerade nicht uneingeschränkt empfehlen.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

7

26.03.2014, 21:48

@MitgliedXYZ: Das geht eigentlich mit Java-Bordmitteln http://docs.oracle.com/javase/tutorial/s…ign/gensig.html. Wenn es etwas Spezielleres sein soll, kannst Du z.B. http://www.bouncycastle.org/java.html mal ausprobieren. Ahh ganz vergessen, da gibt's was Feines: http://docs.oracle.com/javase/7/docs/api…crypto/Mac.html

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Chromanoid« (26.03.2014, 21:56)


MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

8

27.03.2014, 17:34

Danke für die Links, die Oracle Tutorials sehen recht gut aus.

Prinzipiell würde aber auch RSA funktionieren, wenn ich einfach den privat Key mit dem public Key vertausche, oder wäre das unsicherer?

Edit: Meine letzte Frage ist beantwortet, RSA eigent sich so nicht zum signieren. Ich werde es wie in den oben genannten Tutorials machen...

Zitat

Aufgrund der Homomorphieeigenschaft von RSA kann mit diesem Verfahren nur eine Nachricht signiert werden. Liegen nämlich zwei Signaturen

(Link)
,

(Link)
vor, so kann ein Angreifer daraus durch Multipizieren die Signatur der Nachricht

(Link)
berechnen. (http://de.wikipedia.org/wiki/RSA-Kryptosystem)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »MitgliedXYZ« (27.03.2014, 17:42)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

28.03.2014, 07:02

Was hilft es ihm, wenn er die Nachricht m1m2 bauen kann, wenn er doch eigentlich eine m3 bauen will, bzw, eine m1* oder eine m2*?

Über was reden wir hier eigentlich? Über Dateien für Dein Spiel? Da musst Du gar nichts verschlüsseln, denn da wird sich niemals jemand die Mühe machen sie zu modifizieren. Einen solchen Bekanntheitsgrad wird Dein Spiel nie erreichen. Falls ganz unerwartet doch, kannst Du diese Funktionalität nachrüsten.

Den private Key rauszugeben und den public Key geheim zu halten, damit man Dateien verschlüsseln und das Programm diese entschlüsseln kann, ist keine gute Idee. Aus dem private Key einen public Key zu berechnen ist oft sehr einfach. Zumindest bei RSA. Die Keys heißen nicht zufällig public und private.
Edit:
Ich muss mich etwas korrigieren. Unter normalen Umständen, wie RSA eingesetzt wird, wäre ein public Key einfach zu errechnen. Man könnte die Keys aber theoretisch auch so erzeugen, dass es schwieriger wäre den public Key zu errechnen, indem man ein sehr großes "e" erzeugt. Ob das praktisch gut funktioniert, nie getestet.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »BlueCobold« (28.03.2014, 07:23)


Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

10

28.03.2014, 07:28

Im Falle von RSA wäre ein Vertauschen von Public und Private gar nicht notwendig, da nirgends festgelegt ist, welcher zum Ver- und welcher zum Entschlüsseln verwendet werden muss. (Sie lassen sich tatsächlich "austauschen", aber der Private-Key ist immer der, der geheim gehalten wird. ;) )
Wenn man eine Nachricht signieren will, verschlüsselt man i. d. R. nicht die gesamte Nachricht mit dem Private-Key, sondern einen Hashwert dieser. Auf Clientseite wird aus dem Inhalt der Hashwert ermittelt und mit der Signatur (nach entschlüsselung) verglichen.

Und ich muss BlueCobold Recht geben: der Aufwand wird sich für dein Spiel (da es wahrscheinlich eins ist) nicht lohnen.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Werbeanzeige