AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Random für Verschlüsselungen

Ein Thema von Z4ppy · begonnen am 16. Jan 2010 · letzter Beitrag vom 1. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#1

Random für Verschlüsselungen

  Alt 16. Jan 2010, 19:42
Ich habe nun ein altes Projekt wiederaufgenommen, zu dem ich vor längerer Zeit bereits einmal so eine Frage gestellt hatte: http://www.delphipraxis.net/internal...t.php?t=141424
Inzwischen habe ich mich etwas weiterentwickelt bezüglich Codingkenntnissen und mir ist aufgefallen, was für idiotische Fragen ich da in dem Thread zum Teil gestellt hatte

Ich benötige Zufallszahlen. Da ich mit Verschlüsselung arbeite, reicht das in Delphi integrierte Random nicht aus, daher habe ich nun das im Post von gammatester (in dem oben erwähnten Thread) verlinkte ISAAC verwendet. Ich habe dann auch den in diesem Thread erklärten Weg des generierens von Bits usw. genommen.

Mein Problem ist nun, dass ich da natürlich bei jeder Programmausführung die gleichen Zahlen erhalte, was zwar der Sinn von ISAAC, nicht aber in meinem Sinne ist ^^

Ist es nun sicher, wenn ich über ISAAC Zufallszahlen generiere, diese in einem Array of integer zwischenspeichere und dann (mittels Random) eine davon auswähle?
Oder sollte ich eher Random mal die Isaac-Function des TIsaac-Objekts ausführen und anschliessend normal über val einen Wert holen?
Oder einen Seed wählen, in dem die Elemente über Random generiert wurden? ^^

MfG Z4ppy
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#2

Re: Random für Verschlüsselungen

  Alt 16. Jan 2010, 20:03
Zitat von Z4ppy:
Ist es nun sicher, wenn ich über ISAAC Zufallszahlen generiere, diese in einem Array of integer zwischenspeichere und dann (mittels Random) eine davon auswähle?
Dann hast du ja auch nur 2 "Pseudo"-Zufallsgeneratoren gekoppelt und hast damit keinenerlei Mehrgewinn.

Dann kannst du auch gleich den ISAAC direkt initialisieren ... so wie man es mit Delphi-Referenz durchsuchenRandomize beim Delphi-Referenz durchsuchenRandom machen soll.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Random für Verschlüsselungen

  Alt 16. Jan 2010, 20:06
Zitat von himitsu:
Dann kannst du auch gleich den ISAAC direkt initialisieren ... so wie man es mit Delphi-Referenz durchsuchenRandomize beim Delphi-Referenz durchsuchenRandom machen soll.
Und wie wäre das dann umzusetzen?

MfG Z4ppy
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Random für Verschlüsselungen

  Alt 24. Jan 2010, 17:43
Ich hab mir jetzt auch nochmal den Code von ISAAC angesehen und da absolut nichts entdecken können, was nach so etwas ähnlichem wie Randomize aussieht...

Mittels Random ein array of integer zu bilden und das als Seed für ISAAC zu verwenden, dürfte ja wohl auch nicht sehr sicher sein...

MfG Z4ppy
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#5

Re: Random für Verschlüsselungen

  Alt 24. Jan 2010, 18:38
Zitat von Z4ppy:
Ich hab mir jetzt auch nochmal den Code von ISAAC angesehen und da absolut nichts entdecken können, was nach so etwas ähnlichem wie Randomize aussieht...

Mittels Random ein array of integer zu bilden und das als Seed für ISAAC zu verwenden, dürfte ja wohl auch nicht sehr sicher sein...

MfG Z4ppy
Benutze einfach meine von der ISAAC-Seite referenzierte PRNG-Bibliothek, die hat gleich drei Prozeduren zur ISAAC-Initialisierung:
Delphi-Quellcode:
procedure isaac_init (var ctx: isaac_ctx; seed: longint);
  {-Init context from randrsl[0]=seed, randrsl[i]=0 otherwise}

procedure isaac_init0(var ctx: isaac_ctx);
  {-Init context from randseed}

procedure isaac_inita(var ctx: isaac_ctx; const key: array of longint; klen: integer);
  {-Init all context variables with separate seeds, klen: number of seeds}
Gruß Gammatester
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Random für Verschlüsselungen

  Alt 25. Jan 2010, 16:23
Da benutzt du aber intern auch wieder Random, um einen Seed zu generieren. Das kann ja wohl auch nicht sicher sein...

MfG Z4ppy
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Random für Verschlüsselungen

  Alt 25. Jan 2010, 16:46
hatte nicht das DEC auch einen Zufallsgenerator?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#8

Re: Random für Verschlüsselungen

  Alt 25. Jan 2010, 18:35
Zitat von Z4ppy:
Da benutzt du aber intern auch wieder Random, um einen Seed zu generieren. Das kann ja wohl auch nicht sicher sein...

MfG Z4ppy
random/randseed wird nur bei init0 verwendet, und es zwingt Dich doch keiner das zu verwenden, es war halt eine Anwort auf Deine Frage nach Randomize und ISAAC. Selbstverständlich ist isaac_inita mit einem echt zufälligen array of longint die beste Methode. Das Problem ist nur, daß es keine wirklich Compiler- und/oder Betriebssystem-unabhängige Methode gibt, um an wirkliche Zufallszahlen zukommen.

Nährungsweise habe ich in Beispielprogrammen einen Hash über Datum, Zeit, randseed und TSC benutzt. Dec benutzt zB auch Timer, hat aber das gleiche Problem: "initalize a non-repeatable Seed based on Timers, ATTENTION! this way isn't secure inpredictable, the user should call RandomSeed(Data, SizeOf(Data)) instead, where Date contains as example collected informations based on Human inputs."

Ohne Systemunterstützung oder echten Zufallsgenerator (notfalls Maus/Tastatur) kommt man an sowas halt nicht ran. Unter Windows kannst Du (wenn Du Micro$oft vertraust!) die Funktion CryptGenRandom des Crypto-API benutzen, unter Linux von /dev/random lesen etc.
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Random für Verschlüsselungen

  Alt 25. Jan 2010, 19:12
Dann werd ich mir mal überlegen, wie ich da echte Zufallszahlen generieren kann ^^ Vielleicht wirklich über Mausbewegungen...

Die Funktion von M$ ist für mich keine Option, warum, kannste dir wohl vorstellen

MfG Z4ppy
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Random für Verschlüsselungen

  Alt 25. Jan 2010, 20:23
.. hier noch etwas Lesestoff zum Thema.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz