//********************************************** program Public_Private_Crypto_Simulation6_IBZ_Complete; //calculates simple public private with strong string and hash back SHA1 ;) //http://en.wikipedia.org/wiki/Hash_function,#sign: max: MAXBOX8: 20/01/2017 16:50:32 //public-private crypto sign system for education (ppcse), #locs>282 //#sign:max: MAXBOX8: 20/01/2017 16:50:32 //Crypto Systems Ref: {1. Prime1: 13 and Prime2: 23 2. RSA Modul Public [p*q] as N: 299 3. phi(N) Private: 264 4. RSA Exponent: 17 5. Private D: 233 6. Public (17,299) - Private (233,299)} Const AFILE = 'maxbox4.exe'; //AMESSAGE = 'ab HI! HELLO WORLD OF CRYPTOBOX 3!'; //only to ASCII! OFFSET = 32; //64; // space depends on N mod range AMESSAGE =' Test_String_ 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_.,;!?-*:%^$€~'; var hexd: THexArray; prime1, prime2, rsa_exponent, pubkey, privkey: integer; cryptolist, signlist: TStrings; sha1data: string; function setPublic: integer; begin result:= prime1 * prime2; pubkey:= result; end; function getPHI_N: integer; begin result:= (prime1-1) * (prime2-1); end; function getEPublic: integer; begin result:= RSA_exponent; //round(Power(2,4)+1) 65537; end; //Find d such that: e*d mod phi(n) = 1. (as inverse modulo) function getPrivate: integer; begin for it:= 1 to 1200 do //n depends on bigint if (getEPublic * it mod getPHI_N = 1) then begin result:= it; privkey:= result; break; end end; function modbig(aval: string; amod: integer): integer; var atbig: TInteger; begin atbig:= TInteger.create(1) atbig.assign2(aval); //writeln(aval) //atbig.pow(234); atbig.modulo1(amod) //atbig.getnextprime; //atbig.ModPow(atbig,atbig); //atbig.invmod(10); //writeln('ret ^'+atbig.tostring(false)) result:= strtoint(atbig.tostring(false)) atbig.free; end; //--------------------------------------------------------------- //private d= e^-1 mod phi(N) //cipher c[i] = m[i]^e (mod N) //decipher m[i] = c[i]^d (mod N) //HELLO WORLD will be 07 04 11 11 14 26 22 14 17 11 03. //07^17 mod 77 = 28 , 04^17 mod 77 = 16 procedure encryptMessage(amess: string; akey: integer; acipher: TStrings); var k,l,i: integer; //integer; //int64; pst: string; begin for i:= 1 to length(amess) do begin l:= ord(amess[i])-OFFSET; //write(inttostr(l)+ 'd ') //debug pst:= Powerbig(l,akey); k:= modbig(pst,Pubkey); //write(inttostr(k)+ 'k ') //debug acipher.add(intToStr(k)) end; end; function decryptMessage(akey: integer; alist: TStrings): string; var k,i: int64; pst: string; begin for i:= 0 to alist.count -1 do begin pst:= Powerbig(strtoint(alist[i]),akey); k:= modbig(pst,Pubkey); //k:= f mod setPublic; result:= result+ Chr(k+OFFSET); end; end; //----------------------------------------------------------- procedure GetHexArray(var ahexdig: THexArray); begin for it:= 0 to 9 do ahexdig[it]:= chr(it+48); //of 48 for it:= 10 to 15 do ahexdig[it]:= chr(it+55); //of 65 //= '0123456789ABCDEF'; end; function RemoveURIFragment(const URI: string): string; var FragmentStart: Integer; begin FragmentStart:= {SysUtils.}AnsiPos('#', URI); if FragmentStart > 0 then Result:= Copy(URI, 1, FragmentStart - 1) else Result:= URI; end; // demonstrator to cipher hash - digital signature function SHA1A(const fileName: string): string; var idsha: TIdHashSHA1; fs: TFileStream; begin idsha:= TIdHashSHA1.Create; fs:= TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite); try //result:= idmd5.AsHex(hash) ; result:= idsha.AsHex(idsha.HashValue(fs)); finally fs.Free; idsha.Free; end; end; procedure ROT13(AStrLst: TStringList); var i, j: integer; c: char; AStr: string; s: string; begin for i := 0 to AStrLst.Count - 1 do begin AStr := AStrLst[i]; s := ''; for j := 1 to Length(AStr) do begin c := AStr[j]; if (((c >= 'A') AND (c <= 'M')) OR ((c >= 'a') AND (c <= 'm'))) then c := chr(ord(c) + 13) else if (((c >= 'N') AND (c <= 'Z')) OR ((c >= 'n') AND (c <= 'z'))) then c := chr(ord(c) - 13); s := s + c; end; AStrLst[i] := s; end; end; procedure TestRemoteShellHell; var oShell, ishell: oleVariant; commandtoRun, commandParms: string; begin oshell:= createOleObject('Shell.Application'); //= new ActiveXObject("Shell.Application"); ishell:= CreateOleObject('WScript.Shell'); ishell.run('cmd /c dir & pause'); //commandtoRun:= 'C:\\Winnt\\Notepad.exe'; commandtoRun:= 'C:\WINDOWS\System32\Calc.exe'; //if (inputparms != "") { //var commandParms = document.Form1.filename.value; //https://twitter.com/maxkleiner //} // Invoke the execute method. oShell.ShellExecute(commandtoRun,commandParms,'','open','1'); end; Begin //main frame {47,61,13} //1. Init - Choose two prime numbers p and q and e. Prime1:= 23; //113//23; //13 //103 13 //13; //7; //11; Prime2:= 47; //5//47; //23//107 23 17 //23; //11; //7; RSA_exponent:= 31//7; //17; //29 7; 65537 //5; //17; //5; PrintF('1. Prime1: %d & Prime2: %d',[prime1, prime2]) //2. Let n = p*q. Writeln('2. RSA Modul Public [p*q] as N: '+inttostr(setPublic)) //3. less than n with no factors in common to n. phi(n)=(p-1)(q-1) PrintF('3. Phi(N) Private: %d = %d*%d',[getPHI_N,prime1-1,prime2-1]) //4. Choose e >>>> end of public private crypto sign system') //PrintF('From CRC32 file %s is %d',[AFILE,(ComputeFileCRC32(ExePath+AFILE))]); //F0AB7D054111F5CE46BA122D6280397A841C6FAB //function B64Encode(const S: AnsiString): AnsiString; //writeln(B64Encode(AMESSAGE)); //writeln(B64Decode(B64Encode(AMESSAGE))); {writeln(mimeBase64Encode(AMESSAGE)); writeln(ALmimeBase64EncodeString(AMESSAGE)); writeln(synEncodeBase64(AMESSAGE)); } //ALMimeBase64EncodeString //writeln(B64Encode(sha1data)); { Writeln('From SHA1 of maXbox4: '+SHA1A(ExePath+AFILE)) maXcalcF('7^17%77') maXcalcF('ln(2500)/ln(2)'); maXcalcF('-ln(1/2500)/(ln(2))') } {srlist:= TStringlist.create; srlist.text:= 'HI! HELLO WORLD OF CRYPTOBOX 3!'; ROT13(srlist) writeln(srlist.text) srlist.Free; srlist:= TStringlist.create; srlist.text:= 'HI! HELLO WORLD OF CRYPTOBOX 3!'; ROT13(srlist) ROT13(srlist) writeln(srlist.text) srlist.Free; } //base64encode {writeln(B64Decode('TUFY')); writeln(B64Encode('TUFY')); writeln(B64Encode('TUFYXC')); } //writeln(B64Decode(B64Encode(AMESSAGE))); // WinExec('rundll32 shell32,ShellAboutA Info-Box',sw_Show); //executeShell('rundll32','shell32,ShellAboutA Info-Box') //WinExec('rundll32 shell32,OpenAs_RunDLL',sw_Show); //WinExec('rundll32 keyboard,disable',sw_Show); // TestRemoteShellHell; End. ---------------------------------------------------- Ref: 1. Prime1: 23 & Prime2: 47 2. RSA Modul Public [p*q] as N: 1081 3. Phi(N) Private: 1012 = 22*46 4. Public RSA Exponent: 7 5. Private D: 723 6. Public (7,1081) - Private (723,1081) 1. Prime1: 13 & Prime2: 17 2. RSA Modul Public [p*q] as N: 221 3. Phi(N) Private: 192 = 12*16 4. Public RSA Exponent: 7 5. Private D: 55 6. Public (7,221) - Private (55,221) https://en.wikipedia.org/wiki/Entropy_%28information_theory%29 My short list and attached the long one: • WINDEX as Bankingsoftware in Delphi 2 - Modan • CalWin as Real Estate Infrastructur - Delphi 2 - dynasoft AG • Secure Center Security Solution - Delphi 2007 - armasuisse • GIS and Oracle Database Migration - Delphi XE2 and Delphi 2009 64bit - armasuisse • MARS and SAS Enterprise Resource Planing - Delphi XE5 - Scholz Software http://scholz2000.com/ • CryptoBox3 Cipher Solution - Delphi 2007 and Delphi XE10 (Delphi X) - armasuisse • maXbox Delphi Script Environment - Delphi 2007 and XE5 - BFH and IBZ • SONAR Code Analysis Tool - Delphi 2007 and XE5 - SonarSource Geneva http://www.softwareschule.ch/maxbox.htm http://www.eco-hermes.ch/ https://sigmaexchange.sigmaplan.ch/sites/sigmaexchange 401 UNAUTHORIZED http://r.virscan.org/report/78d9fcd6f784683a13cb14707bf4f936 rot13 test: UV! URYYB JBEYQ BS PELCGBOBK 3! HI! HELLO WORLD OF CRYPTOBOX 3! Name: lwenzel_gast Ref: 1. Prime1: 5 & Prime2: 17 2. RSA Modul Public [p*q] as N: 85 3. Phi(N) Private: 64 = 4*16 4. Public RSA Exponent: 3 5. Private D: 43 6. Public (3,85) - Private (43,85) 7. Hashvalue of message: AFD6E7DFF530EE9212F17157CF0C37D936650D07 8. Encrypt a message: HI! HELLO WORLD OF CRYPTOBOX 3! 80 71 1 0 80 78 14 14 38 0 30 38 50 14 76 0 38 47 0 35 50 63 7 18 38 34 38 6 0 59 1 9. Decrypt a message: HI! HELLO WORLD OF CRYPTOBOX 3! 10. hashvalue (CRC32) test: afd6e7dff530ee9212f17157cf0c37d936650d07 Signature Hash check success! hex: afd6e7dff530ee9212f17157cf0c37d936650d07 HEX: AFD6E7DFF530EE9212F17157CF0C37D936650D07 h:e:x: af:d6:e7:df:f5:30:ee:92:12:f1:71:57:cf:0c:37:d9:36:65:0d:07 base64: r9bn3/Uw7pIS8XFXzww32TZlDQc= Ref: 1. Prime1: 11 and Prime2: 7 2. RSA Modul Public [p*q] as N: 77 3. phi(N) Private: 60 4. Public RSA Exponent: 17 5. Private D: 53 6. Public (17,77) - Private (53,77) Doc: Let p=7 and q = 11. n=77 and ?(n) =60. Alice choose e=17, a relative prime to 60 ? private key is d=53 where e*d mod ?(n) =1; 17*53 mod 60 = 1 If we represent 07 as and 25 as Z, 26 as blank, then HELLO WORLD will be 07 04 11 11 14 26 22 14 17 11 03. Using Alice public key the cipher text is: 07^17 mod 77 = 28 04^17 mod 77 = 16 11^17 mod 77 = 44 … 03^17 mod 77 = 75. Only Alice can decipher with private key 53. 75^53 mod 77 = 3. ------------------------------------ prim1:= 23; prim2:= 97; RSA Modul Public [p*q] as N: 2231 RSA Exponent: 65537 phi(N) Private: 2112 Private D: 65 1. Prime1: 3 and Prime2: 7 2. RSA Modul Public [p*q] as N: 21 3. phi(N) Private: 12 4. RSA Exponent: 5 5. Private D: 5 6. Public (5,21) - Private (5,21) Explanation: Alice lets her public key be known to everyone, but keeps the private key secret. Bob may send a confidential message to Alice like this: 1. B gets A's public key (you can get it from web, or just send it to him). 2. B encrypts the message with A's public key, and sends it. 3. A decrypts the message with her private key. For this to work, the system must guarantee that it is (effectively) impossible to decrypt the message without knowledge of the private key. In particular, it must be impossible to decrypt using the public key, or to derive the private key from the public key. -1753041190 -346756791 SHA1 of mx3 DA DE 32 22 55 6A EC 69 BC D9 F9 AB 6F 1F C2 1F B6 72 2A 56 from idpop3 if Length(S) > 0 then begin with TIdHashMessageDigest5.Create do try S:= LowerCase(TIdHash128.AsHex(HashValue(S+Password))); finally Free; end;//try Some cryptographic hash functions, such as SHA-1, have even stronger uniformity guarantees than checksums or fingerprints, and thus can provide very good general-purpose hashing functions. In ordinary applications, this advantage may be too small to offset their much higher cost.[5] However, this method can provide uniformly distributed hashes even when the keys are chosen by a malicious agent. This feature may help protect services against denial of service attacks. How RSA works ------------------------------------ Generating the public and private keys. Pick two large prime numbers, p and q. Let n=pq. Typically, n is a number which in binary is written with 1024 bits (in decimal, that's about 308 digits). Pick e relatively prime to (p-1)(q-1). Now find d such that ed=1 mod (p-1)(q-1). You can use Euclid's algorithm to find this d. The pair of numbers (e, n) is the public key. The pair of numbers (d, n) is the private key. The two primes p,q are no longer needed, and can be discarded, but should never be revealed. Exercise. Which of the following key pairs are valid? 1. K=(7,187), K-1=(23,187) 2. K=(23,187), K-1=(7,187) 3. K=(7,143), K-1=(23,143) Can you invert the key (7,299)? Message format. Divide the message into blocks, each block corresponding to a number less than n. For example, for binary data, the blocks will be (log2 n) bits. Encryption. The encryption of message m is c = me mod n. Decryption. To decrypt c, put m' = cd mod n. Generating the public and private keys. Pick two large prime numbers, p and q. Let n=pq. Typically, n is a 1024 bit number. Pick e relatively prime to (p-1)(q-1). Now find d such that ed=1 mod (p-1)(q-1). There is an algorithm which will find this d for you. The pair of numbers (e, n) is the public key. The pair of numbers (d, n) is the private key. The two primes p,q are no longer needed, and can be discarded, but should never be revealed. A response to Diffie Helleman challenge by Ron Rivest, Adi Sharmir, and Len Adleman at MIT. An exponentiation cipher utilizing Euler’s Theorem. Choose two prime numbers p and q. Let n = p*q. The totient ?(n) of n is the number of numbers less than n with no factors in common with n. ?(n)=(p-1)(q-1) E.g., ?(10) =4; since 1,3, 7, 9 are relative prime of 10. Choose e 15} 114: class operator Implicit(a: Int64): TInteger; class operator Implicit(a: TInteger): Int64; class operator Implicit(a: Int64): TInteger; 115: class operator Implicit(a: TInteger): Int64; //class operator Implicit(s: string): TInteger; class operator Implicit(a: TInteger): Int64; 116: //class operator Implicit(s: string): TInteger; //class operator Implicit(a: TInteger): TInteger; //class operator Implicit(s: string): TInteger; 117: //class operator Implicit(a: TInteger): TInteger; class operator Implicit(a: TInteger): string; // write to a string; //class operator Implicit(a: TInteger): TInteger; 118: class operator Implicit(a: TInteger): string; // write to a string; class operator Negative(a: TInteger): TInteger; class operator Implicit(a: TInteger): string; // write to a string; 119: class operator Negative(a: TInteger): TInteger; 3387: 71: procedure SIRegister_TInteger(CL: TPSPascalCompiler); begin begin 3390: 73: //with RegClassS(CL,'TObject', 'TInteger') do with CL.AddClassN(CL.FindClass('TObject'),'TInteger') do begin 73: //with RegClassS(CL,'TObject', 'TInteger') do 3391: with CL.AddClassN(CL.FindClass('TObject'),'TInteger') do begin //with RegClassS(CL,'TObject', 'TInteger') do with CL.AddClassN(CL.FindClass('TObject'),'TInteger') do begin 3392: //with RegClassS(CL,'TObject', 'TInteger') do 74: with CL.AddClassN(CL.FindClass('TObject'),'TInteger') do begin //with RegClassS(CL,'TObject', 'TInteger') do 3393: 74: with CL.AddClassN(CL.FindClass('TObject'),'TInteger') do begin RegisterMethod('Constructor Create( const initialValue : int64)'); RegisterProperty('Digits', 'TDigits', iptr); 3396: 79: RegisterMethod('Procedure Assign( const I2 : TInteger);'); RegisterMethod('Procedure Assign1( const I2 : int64);'); RegisterMethod('Procedure AbsoluteValue'); 3399: 83: RegisterMethod('Procedure Add( const I2 : TInteger);'); RegisterMethod('Procedure Add1( const I2 : int64);'); RegisterMethod('Procedure AssignOne'); 3402: 87: RegisterMethod('Procedure Subtract( const I2 : TInteger);'); RegisterMethod('Procedure Subtract1( const I2 : int64);'); RegisterMethod('Procedure Subtract1( const I2 : int64);'); 3405: 89: RegisterMethod('Procedure Mult( const I2 : TInteger);'); RegisterMethod('Procedure Mult1( const I2 : int64);'); RegisterMethod('Procedure Mult1( const I2 : int64);'); 3408: 91: RegisterMethod('Procedure FastMult( const I2 : TInteger)'); RegisterMethod('Procedure Divide( const I2 : TInteger);'); 91: RegisterMethod('Procedure FastMult( const I2 : TInteger)'); 3409: RegisterMethod('Procedure Divide( const I2 : TInteger);'); RegisterMethod('Procedure FastMult( const I2 : TInteger)'); RegisterMethod('Procedure Divide( const I2 : TInteger);'); 3410: RegisterMethod('Procedure FastMult( const I2 : TInteger)'); 92: RegisterMethod('Procedure Divide( const I2 : TInteger);'); RegisterMethod('Procedure FastMult( const I2 : TInteger)'); 3411: 92: RegisterMethod('Procedure Divide( const I2 : TInteger);'); RegisterMethod('Procedure Divide1( const I2 : int64);'); RegisterMethod('Procedure Divide1( const I2 : int64);'); 3414: 94: RegisterMethod('Procedure Modulo( const I2 : TInteger);'); RegisterMethod('Procedure Modulo1( const N : int64);'); RegisterMethod('Procedure Modulo1( const N : int64);'); 3417: 96: RegisterMethod('Procedure ModPow( const I2, m : TInteger)'); RegisterMethod('Procedure InvMod( I2 : TInteger)'); 96: RegisterMethod('Procedure ModPow( const I2, m : TInteger)'); 3418: RegisterMethod('Procedure InvMod( I2 : TInteger)'); RegisterMethod('Procedure ModPow( const I2, m : TInteger)'); RegisterMethod('Procedure InvMod( I2 : TInteger)'); 3419: RegisterMethod('Procedure ModPow( const I2, m : TInteger)'); 97: RegisterMethod('Procedure InvMod( I2 : TInteger)'); RegisterMethod('Procedure ModPow( const I2, m : TInteger)'); 3420: 97: RegisterMethod('Procedure InvMod( I2 : TInteger)'); RegisterMethod('Procedure DivideRem(const I2: TInteger; var remain: TInteger)'); 97: RegisterMethod('Procedure InvMod( I2 : TInteger)'); 3421: RegisterMethod('Procedure DivideRem(const I2: TInteger; var remain: TInteger)'); RegisterMethod('Procedure InvMod( I2 : TInteger)'); RegisterMethod('Procedure DivideRem(const I2: TInteger; var remain: TInteger)'); 3422: RegisterMethod('Procedure InvMod( I2 : TInteger)'); 98: RegisterMethod('Procedure DivideRem(const I2: TInteger; var remain:TInteger)'); RegisterMethod('Procedure InvMod( I2 : TInteger)'); 3423: 98: RegisterMethod('Procedure DivideRem( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRemTrunc(const I2 : TInteger; var remain : TInteger)'); 98: RegisterMethod('Procedure DivideRem(const I2:TInteger; var remain: TInteger)'); 3424: RegisterMethod('Procedure DivideRemTrunc( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRem(const I2: TInteger; var remain:TInteger)'); RegisterMethod('Procedure DivideRemTrunc(const I2 : TInteger; var remain : TInteger)'); 3425: RegisterMethod('Procedure DivideRem(const I2: TInteger; var remain : TInteger)'); 99: RegisterMethod('Procedure DivideRemTrunc( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRem(const I2: TInteger; var remain:TInteger)'); 3426: 99: RegisterMethod('Procedure DivideRemTrunc( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRemFloor( const I2: TInteger; var remain: TInteger)'); 99: RegisterMethod('Procedure DivideRemTrunc( const I2 : TInteger; var remain : TInteger)'); 3427: RegisterMethod('Procedure DivideRemFloor( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRemTrunc(const I2: TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRemFloor(const I2 : TInteger; var remain : TInteger)'); 3428: RegisterMethod('Procedure DivideRemTrunc( const I2 : TInteger; var remain : TInteger)'); 100: RegisterMethod('Procedure DivideRemFloor( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRemTrunc(const I2: TInteger; var remain : TInteger)'); 3429: 100: RegisterMethod('Procedure DivideRemFloor( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRemEuclidean( const I2 : TInteger; var remain : TInteger)'); 100: RegisterMethod('Procedure DivideRemFloor( const I2 : TInteger; var remain : TInteger)'); 3430: RegisterMethod('Procedure DivideRemEuclidean( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRemFloor(const I2: TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRemEuclidean( const I2 : TInteger; var remain : TInteger)'); 3431: RegisterMethod('Procedure DivideRemFloor( const I2 : TInteger; var remain : TInteger)'); 101: RegisterMethod('Procedure DivideRemEuclidean( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Procedure DivideRemFloor(const I2: TInteger; var remain : TInteger)'); 3432: 101: RegisterMethod('Procedure DivideRemEuclidean( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Function Compare( I2 : TInteger) : integer;'); 101: RegisterMethod('Procedure DivideRemEuclidean( const I2 : TInteger; var remain : TInteger)'); 3433: RegisterMethod('Function Compare( I2 : TInteger) : integer;'); RegisterMethod('Procedure DivideRemEuclidean( const I2 : TInteger; var remain : TInteger)'); RegisterMethod('Function Compare( I2 : TInteger) : integer;'); 3434: RegisterMethod('Procedure DivideRemEuclidean( const I2 : TInteger; var remain : TInteger)'); 102: RegisterMethod('Function Compare( I2 : TInteger) : integer;'); RegisterMethod('Procedure DivideRemEuclidean( const I2 : TInteger; var remain : TInteger)'); 3435: 102: RegisterMethod('Function Compare( I2 : TInteger) : integer;'); RegisterMethod('Function Compare1( I2 : int64) : integer;'); RegisterMethod('Procedure FastSquare'); 3438: 121: RegisterMethod('Procedure Gcd( const I2 : TInteger);'); RegisterMethod('Procedure Gcd1( const I2 : int64);'); RegisterMethod('Procedure RandomOfSize( size : integer)'); 3441: 130: RegisterMethod('Procedure Random( maxint : TInteger)'); RegisterMethod('Procedure Getnextprime'); CL.AddTypeS('TDigits', 'array of int64'); 3444: 139: SIRegister_TInteger(CL); CL.AddDelphiFunction('Procedure SetBaseVal( const newbase : integer)'); atbig:= TInteger.create(123) atbig.assign2('43858699494985567908'); //atbig.pow(234); atbig.mult1(10) atbig.modulo1(1600) atbig.getnextprime; //atbig.ModPow(atbig,atbig); //atbig.invmod(10); writeln(atbig.tostring(false)) atbig.free; ;::@@##~~~öööééé$$$èèè the tech truth behind locky https://www.bleepingcomputer.com/news/security/locky-ransomware-putting-us-to-sleep-with-the-zzzzz-extension/ http://r.virscan.org/report/78d9fcd6f784683a13cb14707bf4f936 http://www.softwareschule.ch/teelicht.jpg http://www.softwareschule.ch/teelicht.jpg http://www.softwareschule.ch/teelicht.jpg http://stackoverflow.com/questions/1880198/how-to-execute-shell-command-in-javascript var exec = require('child_process').exec, child; child = exec('cat *.js bad_file | wc -l', function (error, stdout, stderr) { console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); if (error !== null) { console.log('exec error: ' + error); } }); child(); http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140crt/FIPS140ConsolidatedCertList0001.pdf https://www.digicert.com/help/ https://wiki.openssl.org/index.php/Command_Line_Utilities http://www.quintup.com/cambridge-method-scam-review/ https://www.passwortcheck.ch/passwortcheck/check.php Resultat Das von Ihnen eingegebene Passwort ist stark. Prüfung an folgenden Bewertungskriterien: Bewertungskriterien Spezifikationen Abzüge Messwert Optimale Passwortlänge ist 10 Zeichen pro fehlendes Zeichen -5 ok Fehlende Kleinbuchstaben a-z -20 ok Fehlende Grossbuchstaben A-Z -20 ok Fehlende Interpunktions- und Sonderzeichen -+.,;:_#/*%&?${}[]() usw. -20 ok Fehlende Zahlen 0-9 -20 ok Leerzeichen, Umlaute oder nicht druckbare Zeichen enthalten öäüéàèÖÄÜÉÀÈç usw. -20 -20 identische Zeichen in Folge ab dem 3. Zeichen -20 ok Zeichenfolgen auf der Tastatur ab dem 3. Zeichen -20 ok ABC- und Zahlenreihen ab dem 3. Zeichen -20 ok Passwort durch Wortliste erleichtert eruierbar deutsch & englisch -20 ok Qualität des Passworts in Punkten Schwellwert >= 80 80 Simulation eines Hybrid-Passwortcrackers: Anzahl benötigte Versuche: 4'516'655'198'855'556'010'060'014'327'016'920'000'000'000'000'000'000'000'000'000 Eingabe Fragment aus Wortliste Restliche Zeichen "fjjgFvcbvjjg68547éäü¨è!!`?$7p" "¨" 28 "fjjgFvcbvjjg68547éäü" "è!!`?$7p" Ungefähre Zeit für Suche: 71'611'098'409'049'277'176'243'250'999'126'712'328'767'123 Jahr(e) (bei 2'000'000'000 Tests/Sekunde) When a number has more than two factors it is called a composite number. Here are the first few prime numbers: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, etc. Resultat Das von Ihnen eingegebene Passwort ist stark. Prüfung an folgenden Bewertungskriterien: Bewertungskriterien Spezifikationen Abzüge Messwert Optimale Passwortlänge ist 10 Zeichen pro fehlendes Zeichen -5 ok Fehlende Kleinbuchstaben a-z -20 ok Fehlende Grossbuchstaben A-Z -20 ok Fehlende Interpunktions- und Sonderzeichen -+.,;:_#/*%&?${}[]() usw. -20 ok Fehlende Zahlen 0-9 -20 ok Leerzeichen, Umlaute oder nicht druckbare Zeichen enthalten öäüéàèÖÄÜÉÀÈç usw. -20 -20 identische Zeichen in Folge ab dem 3. Zeichen -20 ok Zeichenfolgen auf der Tastatur ab dem 3. Zeichen -20 ok ABC- und Zahlenreihen ab dem 3. Zeichen -20 ok Passwort durch Wortliste erleichtert eruierbar deutsch & englisch -20 ok Qualität des Passworts in Punkten Schwellwert >= 80 80 Simulation eines Hybrid-Passwortcrackers: Anzahl benötigte Versuche: 133'484'338'258'812'864'414'400'556'483'776'280'252'967'752'916'074'148'782'652 Ungefähre Zeit für Suche: 2'116'380'299'638'712'335'337'401'009'699'649'293'711'437 Jahr(e) (bei 2'000'000'000 Tests/Sekunde) Eingabe Fragment aus Wortliste Restliche Zeichen "v m g Hfli089,--¨^^+200548 " "¨" 28 "v m g Hfli089,--" "^^+200548 " "fjjgFvcbvjjg68547éäü¨è!!`?$7p" longer: Anzahl benötigte Versuche: 4'516'655'198'855'556'010'060'014'327'016'920'000'000'000'000'000'000'000'000'000 Ungefähre Zeit für Suche: 71'611'098'409'049'277'176'243'250'999'126'712'328'767'123 Jahr(e) (bei 2'000'000'000 Tests/Sekunde) shorter: Anzahl benötigte Versuche: 133'484'338'258'812'864'414'400'556'483'776'280'252'967'752'916'074'148'782'652 Ungefähre Zeit für Suche: 2'116'380'299'638'712'335'337'401'009'699'649'293'711'437 Jahr(e) (bei 2'000'000'000 Tests/Sekunde) 70 Years of TEE Zug - Gottardo http://enndingen.de/FahrPlan/TEE Zugbildungen im Modell TEE Paris-Ruhr Paris-Nord - Dortmund (1957-1960) VT 08.5 3-teilig (Ar,Minibahn) TEE Helvetia: Hamburg-Altona - Zürich (1957) VT 11.5 8 Zwischenwagen (Roco,Flm); VT 08.5 3-teilig (Ar,Minibahn) TEE Saphir: Dortmund - Oostende (1957-1971) VT 11.5 5 Zwischenwagen (Roco,Flm) TEE Mediolanum: München - Milano (1957-1969) Aln 442-448 (LOCO) TEE Rhein-Main: Frankfurt - Emmerich (-Amsterdam) (1967) E 10.12 (Mtx, HT); Ap (Ar,Mtx,Flm); Av (Ar,Mtx,Flm); WR (Ar,Mtx,Flm); Av (Ar,Mtx,Flm); Av (Ar,Mtx,Flm) TEE Rheingold: (Hoek v. H. -) Duisburg - Basel SBB (- Genf) (1965-1969) E 10.12 (Mtx,HT); Av (Ar,Mtx,Flm); Ap (Ar,Mtx,Flm); Ap (Ar,Mtx,Flm); WR "Buckelspeisewagen" (Ar,Mtx,Lima); ADümh (Ar,Mtx); Av (Ar,Mtx,Flm); Av (Ar,Mtx,Flm) TEE Blauer Enzian: Hamburg - München (1966-1969) E 03/103.0 (Ar,Flm,Mtx); ARD (Ar); WR (Ar,Mtx,Flm); Ap (Ar,Mtx,Flm); Ap (Ar,Mtx,Flm); Av (Ar,Mtx,Flm); Av (Ar,Mtx,Flm); TEE Bavaria: München - Lindau (- Zürich) (1971-1977) BR 210 (Flm); Ap (Ar,Mtx,Flm); SBB-WR (Kato); Av (Ar,Mtx,Flm) TEE Paris-Ruhr (Paris-Nord -) Lüttich - Dortmund (1970-1973) BR 184 (HT,Mtx,Lima); A4Dtux (LSM); A3rtu (LSM); Vru (LSM); A8u (LSM); A8u (LSM); A8u (LSM); A8u (LSM) TEE Rembrandt: (Amsterdam -) Emmerich - Stuttgart (- München) (1971-1974) BR 103.1 (Ar,Mtx,Flm); Av (Ar,Mtx,Flm); Av (Ar,Mtx,Flm); Av (Ar,Mtx,Flm); ARD (Ar); WR (Ar,Mtx,Flm); Ap (Ar,Mtx,Flm)