- willekeurige interpretatie van Delphi,

, een bron van uitleggen hoe die willekeurige, passende bronnen van onzekerheid en hasj.[aantal] encryptie willekeurig,,,,, ///////de source code, een eenvoudige oproep gerandomiseerde, bellows, de procedure van toepassing is op het (de) om bescherming van gegevens en de ernstige inbreuken op de veiligheid van willekeurige nummers.Een willekeurige generator van entropie is willekeurig.Borland (32) procedures voor het gebruik van een van de zaden en zaden door willekeurige proces krijgen, de entropie van tijd en datum van de waarschijnlijkheid en is zeer snel tot kan opsporen.,,, die willekeurige, niet op de computer van pure chaos differentiatie is een zeer moeilijke taak, met name omdat je altijd zo voorspelbaar, afhankelijk van de interne toestand.Dit idee is entropie en systemen (de meest onvoorspelbare staat veel in dillute, entropie.Ik bedoelde het zwembad is een willekeurige generator in de lidstaten, wat het ook is, het is een belangrijke kenmerken:,, moeten in een willekeurig aantal worden gerespecteerd.Meer in het bijzonder, willekeurige te coderen.Deze willekeurige gerenartors betrokken was bij het ontwerp van een sterke, op basis van de eigenschappen van de blues schneier duizendblad (www.counterpane. COM).,,, de eerste eigenschap is ervoor te zorgen dat de totale anought entropie zwembad voor de produktie van willekeurige, zodat het zwembad niet in staat de produktie van zwakte, in het kader van een willekeurig aantal voorspelbaar is, en informatie. De volgende is nuttig te gebruiken als je de generator van de zitting zal in de chat zitting herhaaldelijk gewijzigd.Wat belangrijk is, is dat een compromis niet enkel de sleutel voor een sleutel, geen gebruik zal maken van de in het kader van een sleutel.Daarom moeten we een einde maken aan de produktie van het zwembad, en de relatie tussen de willekeurige nummers.,,, en ten derde de gewenste eigenschappen betekent dat, zelfs als je de bron van de entropie van het verzamelen van slechte kwaliteit (tamelijk voorspelbare) zwembad moet niet lage entropie en de produktie van willekeurige heeft geen bewijs Dat deze.,,, ik heb deze eenheid wordt getest.De laatste en belangrijkste test over dit derde eigenschap.Een extreem voorbeeld, begon ik alleen die nul zwembad - 12mb (100 miljoen).Ik test de batterij (http: //stat.fsu koppig. /- geografische /caines. Http: //europa.eu.int), dat door alle vijftien goed...Niet alle entropie verzamelen.Dit ben ik tevreden met de prestaties van een willekeurige generator en voorgelegd aan de je een veilige alternatieven, wat normaal is.,,,,,,, - hoe doen: het tweede entropie:,,, [1] een draad volgen de muis van willekeurige tussenpozen systeem van hoge - Timer. De positie van de muis en staat met het oog op de vier entropie.,,, [2] vertraging rekenmachine, worden vier entropie van hoge - Timer. Als de aanvraag (dit is het belangrijkste, de tkeygenerator.addlatency zal, in een doos, onkeydown aantal gebeurtenissen vertraging in de harde schijf, of 断延迟) van de entropie,,, het verzamelen van accumulatie van 32 bit, het zwembad van de entropie.,,, de entroyp zwembad derIn een tijd van entropie in te vullen en het gebruik van het 256bits entropie - als buffer, een nieuwe uitvoering van de belangrijkste planten.,,, de bijwerking van de belangrijkste zwembad (hasj context: een functie van de interne status) en de zaden van de entropie en zwembad of het (dit is het zaad op dezelfde manier wordt willekeurig randseed).Elke keer na het planten, zaden (nu 256bits entropie) is gebruikt voor de produktie van willekeurige getallen voor de oproep tot het indienen van aanvragen, als zo 'n verlangen, maar het zal blijven of dat planten en poly entropie.Na 8 keer herhaald, is gebeurd, de uitvoering van een hervaccinatie.,,, - keer bijgewerkt en de inhoud van de voornaamste pool% tweede zwembad dan aan de inhoud van de oorspronkelijke zwembad staat een niet te krijgen.Ten tweede blijft in het zwembad niet wassen de entropie stukjes van de verschillende herhalingen.Een nieuwe zaden van planten (waarvan twee keer als een van de belangrijkste amendementen die het in de entropie).Deze planten, om te voorkomen dat de terugwerkende kracht van de tank staat gessing eerder), om ervoor te zorgen dat er zelfs in het zwembad krijgen onder de voorwaarden van de slechte kwaliteit van de nieuwe entropie.,,, als een oproep tot het indienen van aanvragen moet een van de belangrijkste eisen die niet meer dan 8 safegetkey Om ervoor te zorgen dat de groep van willekeurige 256 van één van de planten.Om dat te kunnen doen tegen een belangrijke reserve van planten, en mag niet meer bedragen dan 8.Als je de sleutel tot een groep van willekeurige vermindering van de functie van de reserve en de reserve als op 0 is vals.Noot: een belangrijke reserve van toepassing kan worden genegeerd en forcegetkey noemen.Dit is een zeer riskante praktijken, ik ben echt niet aan deze functie.,,, gecreëerd door de getKey willekeurig is een entropie zwembad zaad is geproduceerd.Zaad als een sleutel en dan de uitwisseling (en de uitbreiding -).De nieuwe zaden worden gebruikt als een versleutelde data.Het was gecodeerd met de zaden van de uitbreiding, in ronde - en 64.Deze ronde om ervoor te zorgen dat het niet mogelijk is te bepalen van de zaden van de staat, zwembad, een tweede pool of entorpy buffer, op zijn beurt, om te voorkomen dat iemand vinden in een of in het kader van een produktie.,,,,, noot: de toewijzing van tkeygenerator variabele en noemen het creëren.Dit proces zal beginnen.Als je klaar bent, Tel. Vernietigd.,,, je kunt gebruiken. Keycount achter de belangrijkste reserve staat hoeveel getKey telefoon om voort te planten).Ik sterk van mening dat de waarde van de max_key_reserve.,,, je kan de manipulatie van de snelheid van de muis, entropie is geregeld mouse_interval constant in milliseconden.Een minder dan 10% van de waarde wordt niet aanbevolen.,,, geen fouten in het systeem van de hoge frequentie van inspecties om ervoor te zorgen dat er tegen, dat is een oproep tot het indienen van aanvragen gecontroleerd.Als dat niet gaat, zal de productie van een willekeurige generator werken, maar niet - willekeurige.,,, - de aanvraag moet een variabele 32 bytes voor getkey functie.Er is geen fout te controleren is hier klaar.,,, je kan veranderen key_build_rounds een groter is dan of gelijk is aan de waarde van 32, maar meer dan 64 is nutteloos.,,,, /en /********************************************************************* ************************ *********************************************,,, belangrijk is, de bron, en z 'n cummulating ik 3 jaar Onderzoek in de vooruitgang van de bibliotheek deel.Als je het wil gebruiken in de context van een procedure, een beetje krediet is goed.,,, nscrypt.pas bevat een willekeurige generator, van onbekende oorsprong, en de Harvard en ernstige] tot wijziging van 戴维巴顿 rijndael is de haval.pas en rijndael.pas in dcpcrypt 1.3 groep, dat nscrypt.txt omgedoopt tot nscrypt.pas downloaden.,, (DOM ik heb de webhost) met inbegrip van encryptie, omdat ze sepperatly 1300 samen.,,, HTTP://www.eccentrix. COM /computer /drmungkee /nscrypt. (werkelijke plaats is www.drmungkee. COM, *********************************************************************, /,, /*********************************************************************,,, /uOm de papieren.,,,,,,, de eenheid noisespunge; interface, ramen, klasse, controle, nscrypt;,,, totaal, seed_size = 8;,, primary_reseed = seed_size;,,,,, secondary_reseed = seed_size; ///////parameters, max_key_reserve = 8; key_build_rounds = 64;,,,, mouse_interval = 10;,,,,, key256 = [0]). Seed_size-1;,,, tnoisespungeaddentropy = programma (blok:) voorwerp, doel, en tnoisespungeprocedure = programma;,,, tmousecollector = (draad) bescherming,,,, beschermheilige van dag X: prng_ctx; y: gehele getal;,,,,,, bitsgathered blok:;:,, afstand, frequentie en, op dit moment, een tlargeinteger;,, sendmouseentropy:tnoisespunge:Addentropy;,,,,,, syncsendmouseentropy fabrikant; programma 's;,, de uitvoering van het programma; - dekking;,,,,, aan het einde van tlatencycollector =;,, bescherming, blok:;,, bitsgathered:;,, tijd: tlargeinteger;,,,,,, sendlatencyentropy:tnoisespungeaddentropy; De fabrikant;, het programma measurelatency;,,,,,, aan het einde van tentropypool =;,, de bescherming van de zaden: key256;,,,,,, entropybuffer:key256; primarypool:haval_ctx;,,,, secondarypool:haval_ctx; primaryreseedcount: bytes;,, entropycount: bytes;,,, keyreserve: bytes; - programma, het programma, permuteseed;,,, programma' s secondaryreseed primaryreseed;,,Het programma addentropy (blok: lange woorden);,,,,,,,, aan het einde van de fabrikant te creëren;;, tkeygenerator =, bescherming van entropypool:tentropypool;,,,,,,, mousecollector:tmousecollector; latencycollector:tlatencycollector;,,,,,,, addlatency:tnoisespungeprocedure; de verschrikkelijke, fabrikant creëren; schade; Voor keycount:,, de functie; bytes, functie, safegetkey (var. Het sleutelwoord): Bull.,, programma 's forcedgetkey (VAR Bond);,,,,,,, aan het einde van de uitvoering van de fabrikant, tmousecollector;,,, te creëren;.,, de opvolger van Het creëren van (echt);,,,, willekeurige; prnginit (@ beschermheilige van groot, randseed); freeonterminate:= waar;,,,, prioriteit: = tpnormal;,,,, de cv.Einde;,,, programma 's tmousecollector. Syncsendmouseentropy;,,,, sendmouseentropy (stuk);,,,,, het einde van de procedure; tmousecollector. De uitvoering van nilhandle;,, var: aanwijzing van ongebruikte:;,,,,,, en Bull. Nilhandle:= nul;,,,, bitsgathered:= ongebruikte: = 0; valse;,, QueryPerformanceFrequency (frequentie); en, ik herhaal, als de ongebruikte = valse na het begin van, msgwaitformultipleobjects (0, nilhandle, valse, mouse_interval, 0);,, ongebruikte: = echt;,,,, aan het einde van de hoge precisie timing; (Op dit moment, op dit moment, als een interval); en BT; na het begin van als (x < > de muis. Cursorpos. X) en (y < > de muis. Cursorpos. Y) en,,, X = muis. Cursorpos. X, Y, en: = muis. Cursorpos y;,, ik.NC (blok (((x 15) of (ingesteld (y, 15), 15), de dubbele gele, bitsgathered);,, Inc. (bitsgathered, 4);,, als bitsgathered = 32, en dan begon, prnginit (@ beschermheilige van groot, blok), (syncsendmouseentropy, synchronisatie;);,, blok: = 0; bitsgathered:= 0;,,,,,, aan het einde van het interval:; = ((((prng (@ pCtx). Mouse_interval) die 2) + mouse_interval), de frequentie van die 1000, * * * * * * *);,, precieze timing van (een);,, ongebruikte: = - het begon;,,,, de andere, de precieze timing van (een);,, ongebruikte: = valse;,,,,,, aan het einde van het tot beëindiging;; = waar;,,,,, aan het einde van De fabrikant niet.LatencyCollector.Create;,,, Inherited beginnen, het Block:=0;,,,,,,,,,, BitsGathered:=0; de procedure TLatencyCollector.MeasureLatency;,,,,, ", QueryPerformanceCounter (tijd);,, Inc. (blok, (tijd en 15) shl BitsGathered);,, Inc. (BitsGathered, 4); en, als BitsGathered=32 dan, ik SendLatencyEntropy (blok);,,,,,, Block:=0; BitsGathered:=0;,,,,,,,,,,,,, ik TEntropyPool.Create fabrikant; Inherited creëren;,,,,,, HavalInit (@PrimaryPool); HavalInit (@SecondaryPool);,, FillChar (zaad, SizeOf (is) 0); EntropyCount:= 0;,,,,,, PrimaryReseedCount:=0; KeyReserve:=0;,,,,,,,,, de procedure TEntropyPool.PermuteSeed; var TempBuffer:array[0..1]of Key256;,,,, HCt PCtx:Prng_CTX;X:Haval_CTX;,,, ik i:byte;,,, voor i:=0 te SEED_SIZE-1 doen, ik PrngInit (@PCtx,,,,, Seed[i]); TempBuffer[0, I: =Prng (@PCtx);,, TempBuffer[1, I: =Prng (@PCtx);,,,,,,,, HavalInit (@HCtx HavalUpdate); (@HCtx, TempBuffer, SizeOf (TempBuffer);,, HavalOutput (@HCtx, zaad);,,,,,,,,, de procedure TEntropyPool.PrimaryReseed; var TempSeed:Key256;,,, ik i:byte;,,, HavalUpdate (@PrimaryPool, EntropyBuffer, SizeOf (EntropyBuffer)); en, als PrimaryReseedCount beginnen,,, HavalOutput (@PrimaryPool, TempSeed);,, voor i:=0 te SEED_SIZE-1 do Seed[i]: =Seed[i] teksten TempSeed[i];,, Inc. (PrimaryReseedCount);,, einde anders SecondaryReseed;,, FillChar (EntropyBuffer, SizeOf (EntropyBuffer) 0), als KeyRese;,Opdienen, entropycount:= 0;,,,,, het einde van de procedure; tentropypool. Secondaryreseed;,,,, havaloutput (@ primarypool en zaden);,, havalupdate (@ secondarypool, zaden, groot (zaden);,, havaloutput (@ secondarypool en zaden);,,,, havalinit (@ permuteseed; primarypool); primaryreseedcount:= 0;,,,,,,, het einde van de procedure; tentropypool. Addentropy (blok: lange woorden);,,,, mobiele (stuk wijzer (lang woord (@ entropybuffer) + (entropycount * groot (stuk))), een groot (blok), bedrijf,); (entropycount, 1); en, als entropycount = primary_reseed dan primaryreseed;,,,,, aan het einde van de fabrikant, het creëren van tkeygenerator;;,,,,, tentropypool erfenis te creëren; entropypool:=. De oprichting van een mousecollector:= tmousecollector;,,,, mousecollector. Creëren; sendmouseentropy:= entropypool.addent.Dik, latencycollector:= tlatencycollector;,,, latencycollector. Creëren; entropypool. Sendlatencyentropy:=. Addentropy;,, addlatency:= latencycollector. Measurelatency;,,,,, aan het einde van de vernietiging van tkeygenerator; de verdelger. Mousecollector begon;,,,,,,,,. Wordt beëindigd; entropypool latencycollector. Vernietiging; schade;,, erft, vernietigen;,,,, aan het einde van de functie van tkeygenerator;. Keycount: bytes;,,,, de resultaten: = entropypool. Keyreserve;,,,,, aan het einde van de functie van tkeygenerator;. Safegetkey (var.): Bull.,, var tempseed:key256;,, tempbuffer: [0 - 1]. De key256;,, rctx:rijndael_ctx;,, beschermheilige van groot: prng_ctx;,,,, ik hctx:haval_ctx; j):,,,,,, als entropypool. Keyreserve = 0, en dan begon, verlaten;,,,, - resultaten: = de resultaten Aan het einde van de andere;T:=true Move (EntropyPool.Seed;,,, TempSeed, SizeOf (TempSeed)); EntropyPool.PermuteSeed;,,,, RijndaelInit (@RCtx, EntropyPool.Seed);,, voor i:=0 te KEY_BUILD_ROUNDS-1 doen, ik RijndaelEncrypt (@RCtx,,,,, TempSeed[0]); RijndaelEncrypt (@RCtx, TempSeed[4]);,, voor j:=0 te SEED_SIZE-1. Ik PrngInit (,,,,,, @pctx, TempSeed[j]); TempBuffer[0, J.: =Prng (@ PCtx);,, TempBuffer[1, J.: =Prng (@PCtx);,,,,,,,, HavalInit (@HCtx); HavalUpdate (@HCtx, TempBuffer, SizeOf (TempBuffer), HavalOutput (,); @HCtx, TempSeed);,,,,,, MOVE (TempSeed, Key, SizeOf (TempSeed);,, DEC (EntropyPool.KeyReserve, 1);,,,,, aan het einde van de procedure; TKeyGenerator.ForcedGetKey (VAR Key); TempSeed:Key256, var;,,,TempBuffer:array[0..1]of Key256;,,,,, RCtx:Rijndael_CTX; PCtx:Prng_CTX; HCtx:Haval_CTX;,,, I, j:byte;,,, ", MOVE (EntropyPool.Seed, TempSeed, SizeOf (TempSeed)); EntropyPool.PermuteSeed;,,,, RijndaelInit (@RCtx, EntropyPool.Seed);,, voor i:=0 te KEY_BUILD_ROUNDS-1 doen, ik RijndaelEncrypt,,, (@RCtx, TempSeed[0]); RijndaelEncrypt (@RCtx,,,,, TempSeed[4]); voor j:=0 te SEED_SIZE-1 doen, ik PrngInit (@pctx,,,,, TempSeed[j]); TempBuffer[0, J.: =Prng (@PCtx);,, TempBuffer[1, J.: =Prng (@PCtx);,,,, HavalInit (einde; @HCtx);,, HavalUpdate (@HCtx, TempBuffer, SizeOf (TempBuffer)); HavalOutput (@HCtx,,,,, aan het einde van TempSeed); en de weg (TempSeed;,, Key, SizeOf (TempSeed)); en, als entropypool. Keyreserve < 20 maanden (entropypool. Keyreserve, 1);,,,,,,,, aan het einde, het is voorbij. Het drmungkee (C), 2001 (www.drmungkee.com, drmungkee @ Hotmail. COM),



Previous:
Next Page: