| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Top Secret Crypto Fra : Peter Weise | 
  Dato :  14-07-04 09:53 |  
  |  
 
            Hej,
 Der var for en del tid siden et indlæg om et krypteringsprogram der kan
 bruges til at sende krypteret mail, krypterede filer og føre en krypteret
 chat, m.m. Men da sorce koden ikke var tilgængelig blev det hurtigt dømt
 ude.
 Især fordi der bruger One time Pad kryptering, og man ikke forstod den måde
 den bruges på.
 Jeg har set at man nu kan downloade hjælpefilen:
 http://www.topsecretcrypto.com/Help/TscHelp.chm
Og source koden:  http://www.topsecretcrypto.com/files/TscgSourceCode.zip
Jeg syntes det er et spændende program og et godt alternativ til PGP. Nu
 hvor source koden er frigivet, er det så ikke muligt at se om det er et OK
 program.
 Måske var der en eller flere her der er i stand til at se det..   
Programmet kan hendtes her:  http://www.topsecretcrypto.com/
Hilsen
 Peter Weise.
            
              |   |   
            
        
 
            
         
           Kasper Dupont (14-07-2004) 
         
	
            | Kommentar Fra : Kasper Dupont | 
  Dato :  14-07-04 16:14 |  
  |  
 
            Peter Weise wrote:
 > 
 > Jeg har set at man nu kan downloade hjælpefilen:
 >  http://www.topsecretcrypto.com/Help/TscHelp.chm
> Og source koden:  http://www.topsecretcrypto.com/files/TscgSourceCode.zip
Jeg besluttede mig til at kigge lidt på koden. Og når
 de siger OneTimePad er det første man skal kigge efter
 deres tilfældigtals generator.
 Mit første indtryk er at koden ikke er af nogen
 overvældende kvalitet.
 Biblioteksstrukturen i .zip filen ligner noget der er
 gået lidt for hurtigt med at pakke sammen.
 Selve koden er en forfærdelig blanding af C og
 assemblerkode. Der er brugt assembler flere steder
 hvor man lige så godt kunne have skrevet noget pænere
 C kode. Resultatet er ugennemskuelig kode, der ikke
 ligefrem styrker tilliden til produktet.
 Desuden har forfatteren ikke helt forstået hvordan
 header filer bør bruges (til hans forsvar skal siges,
 at jeg har set langt værre eksempler). I stedet for
 at erklære sine globale variable i en headerfil er
 de defineret som extern i hver .c fil der tilgår
 variablen. Det er en dårlig idé fordi det på den måde
 er nemmere at lave fejl, som f.eks. at komme til at
 skrive forskellig type for den samme variabel.
 Jeg fandt tilfældigtals generatoren som ligger i
 funktionen GetRandomBits i filen EncFunctions.c.
 For mig at se ser det ud som om den i store træk
 blot aflæser de nederste bits af TSC i en løkke og
 antager resultatet er tilfældigt.
 Er der nogen som efter at set denne funktion stadig
 har lyst til at bruge produktet eller overhovedet
 kigge på resten af koden?
 -- 
 Kasper Dupont -- der bruger for meget tid paa usenet.
 I'd rather be a hammer than a nail.
            
              |   |   
            
        
 
            
         
           Jacob Atzen (14-07-2004) 
         
	
            | Kommentar Fra : Jacob Atzen | 
  Dato :  14-07-04 18:11 |  
  |   
            Kasper Dupont <remove.invalid@nospam.lir.dk.invalid> writes:
 
 > Jeg besluttede mig til at kigge lidt på koden. Og når
 > de siger OneTimePad er det første man skal kigge efter
 > deres tilfældigtals generator.
 
 Eller hvordan man distribuerer sin nøgle, hvilket jeg ikke kunne finde
 nogen information om på websitet.
 
 -- 
 Med venlig hilsen
 - Jacob Atzen
  
            
             |   |   
            
        
 
            
         
            Kasper Dupont (14-07-2004) 
         
	
            | Kommentar Fra : Kasper Dupont | 
  Dato :  14-07-04 18:27 |  
  |   
            Jacob Atzen wrote:
 > 
 > Kasper Dupont <remove.invalid@nospam.lir.dk.invalid> writes:
 > 
 > > Jeg besluttede mig til at kigge lidt på koden. Og når
 > > de siger OneTimePad er det første man skal kigge efter
 > > deres tilfældigtals generator.
 > 
 > Eller hvordan man distribuerer sin nøgle, hvilket jeg ikke kunne finde
 > nogen information om på websitet.
 
 Hvis man vil bruge en OneTimePad skal nøglen naturligvis
 overføres af en sikker kanal. Man kan f.eks. udveksle en
 CD på forhånd med masser af tilfældige bits. Der er skam
 situationer hvor OneTimePad giver glimrende mening.
 Trådløst udstyr, der alligevel skal oplades en gang i
 mellem er et andet tilfælde hvor OneTimePad ville give
 mening. Mens din laptop står til opladning kan du
 passende sætte et netkabel i og overføre tilfældige bits.
 En halv time med et 100mbit/s kabel og så har du nøgle
 nok til at kunne køre OTP over et 10mbit/s WLAN de næste
 5 timer.
 
 -- 
 Kasper Dupont -- der bruger for meget tid paa usenet.
 I'd rather be a hammer than a nail.
  
            
             |   |   
            
        
 
            
         
             Jacob Atzen (14-07-2004) 
         
	
            | Kommentar Fra : Jacob Atzen | 
  Dato :  14-07-04 18:45 |  
  |   
            Kasper Dupont <remove.invalid@nospam.lir.dk.invalid> writes:
 
 > Man kan f.eks. udveksle en CD på forhånd med masser af tilfældige
 > bits. Der er skam situationer hvor OneTimePad giver glimrende
 > mening.
 
 Absolut. Jeg stiller bare spørgsmålstegn ved at forfatteren ingen
 steder gør rede for, hvordan han vil få distribueret nøglen til sin
 "sikre chat" eller "sikre e-mail".
 
 > Trådløst udstyr, der alligevel skal oplades en gang i mellem er et
 > andet tilfælde hvor OneTimePad ville give mening. Mens din laptop
 > står til opladning kan du passende sætte et netkabel i og overføre
 > tilfældige bits.
 
 Men så har du kun din nøgle et sted. Hvis du så gerne vil sende en
 hemmelig besked til din moster i Australien nytter det ikke meget. Og
 i det tilfælde, at du ikke vil distribuere den, har du ikke meget at
 bruge den til.
 
 Min pointe er, at hvis du alligevel distribuerer din OTP nøgle over
 Internettet vha. et andet media (f.eks. RSA krypteret e-mail), så er
 du alligevel ikke bedre sikret end den sikkerhed RSA stiller til
 rådighed.
 
 I langt de fleste tilfælde er OTP nu også overkill.
 
 -- 
 Med venlig hilsen
 - Jacob Atzen
  
            
             |   |   
            
        
 
            
         
              Kasper Dupont (15-07-2004) 
         
	
            | Kommentar Fra : Kasper Dupont | 
  Dato :  15-07-04 05:24 |  
  |   
            Jacob Atzen wrote:
 > 
 > Min pointe er, at hvis du alligevel distribuerer din OTP nøgle over
 > Internettet vha. et andet media (f.eks. RSA krypteret e-mail), så er
 > du alligevel ikke bedre sikret end den sikkerhed RSA stiller til
 > rådighed.
 
 Selvfølgelig. De to nemmeste fejl at begå ved brug
 af OTP er dårlige tilfældige bits og en forkert
 overførsel af nøglen. Når de ikke nævner hvordan
 man skal overføre sin nøgle kræver det, at brugeren
 allerede ved det. Jeg ved godt hvordan OTP skal
 bruges, men det er ikke sikkert at brugerne af
 dette produkt ved det.
 
 > 
 > I langt de fleste tilfælde er OTP nu også overkill.
 
 Ja. Men vil man have unconditional security er det
 den eneste mulighed. Men hvis man i stedet vælger
 at bruge en AES cipher tror jeg man kan være helt
 sikker på, at cipheren ikke er det svageste punkt
 i systemet.
 
 -- 
 Kasper Dupont -- der bruger for meget tid paa usenet.
 I'd rather be a hammer than a nail.
  
            
             |   |   
            
        
 
            
         
              Peter Weise (15-07-2004) 
         
	
            | Kommentar Fra : Peter Weise | 
  Dato :  15-07-04 10:23 |  
  |   
            
 "> Absolut. Jeg stiller bare spørgsmålstegn ved at forfatteren ingen
 > steder gør rede for, hvordan han vil få distribueret nøglen til sin
 > "sikre chat" eller "sikre e-mail".
 >
 
 Hvis man gider læse hjælpefilen:
 How Do I Exchange Encrypted Files With My Friends
   1.. First of all, you and your friends must be using Top Secret Crypto
 Gold.
 
 
   2.. Next you have to create your own set of Public and Secret Keys to use
 in the encryption process. This also creates your Public and Secret Key
 Rings.
 
 
   3.. You and your friends will then have to exchange Public Keys. In order
 to do this you have to extract your Public Key from your Public Key Ring and
 place it in a .key file. This .key file may be sent as an e-mail attachment
 or on a floppy disk.
 
   Or you can export your Public Key to the clipboard and paste it into an
 e-mail message.
 
 
   4.. If you receive a Public Key .key file as an attachment to an e-mail
 message, you have to save the attached key to a file on disk. You then have
 to add the Public Key to your Public Key Ring.
 
 
   5.. If you receive a Public Key in the body of an e-mail message, copy it
 to the clipboard and import it to your Public Key Ring.
 
 
   6.. In order to verify that you have received the Public Key you were
 sent, you can call up the sender and while both of you are viewing the key
 fingerprint of the Public Key, you can verify that the displayed information
 is identical.
 
 
   g.. There are two types of session keys that can be used by Top Secret
 Crypto Gold. The first is a randomly generated session key that is stored
 and encrypted inside an RSA Public Key Encrypted Packed. Once you and your
 friends have exchanged Public Keys, you can now exchange encrypted files
 using randomly generated session keys. Randomly generated session keys are
 not considered 100% secure because there are mathematical methods to break
 an RSA key and retrieve the session key. At present, the time and effort
 required to break an RSA key of the size that can be generated by Top Secret
 Crypto Gold makes it 100% secure.
 
 
   8.. The second type of session key includes either True One Time Pad Files
 or One Time Pad Key Files to encipher your files with. The name of the file
 is encrypted inside an RSA Public Key Encrypted Packed. You and your friends
 will have to create and exchange them. Both sender and recipient must have
 the same True One Time Pad Files or One Time Pad Key Files to encipher and
 decipher with. See Tips on Using Top Secret Crypto Gold in the Real World
 for how you can exchange True One Time Pad Files and One Time Pad Key Files
 without too much difficulty. See The One Time Pad Encryption System for
 details on why the One Time Pad Encryption System is considered unbreakable
 in theory and practice.
 
 
   9.. Next create, or select, the file you want to encrypt and send. The
 file will automatically be compressed and then it will be encrypted.
 
 
   10.. Once you have your file encrypted, you have to send it to your
 friend, or friends. Depending on the size of the file, you can attach it to
 an e-mail message, or copy it to a disk or CD, and send it via an overnight
 express company or mail it.
 
 
   11.. When you receive an encrypted file as an attachment to an e-mail
 message, save the attachment as a file on disk. Then decipher and decompress
 the file. Then you can view the file with the appropriate program.
 
   Læs Også:
   12.. Tips on Using Top Secret Crypto Gold in the Real World
     a.. Always assume that someone, most likely a government agency,
 intercepts all of the e-mail messages you exchange with your correspondents.
 While it is slowly changing, most of the communication systems in countries
 outside of the United States are still owned by their respective
 governments. They can tap into their system at any time to listen in on any
 form of communication between two people. To make sure that these agencies
 cannot read your correspondence, follow the tips below.
 
     Note: When you send an e-mail, do you know that it can be read by almost
 anyone that works for your ISP, the recipient's ISP, by anyone that operates
 an Internet router the data packets pass through, and by anyone with
 physical access to the telephone switching equipment in the phone company's
 office. Plus the telephone switching equipment has wiretaps built into it
 for easy access by the authorities.
 
 
     b.. Always encrypt all of your correspondence. Unencrypted e-mail sent
 overseas has to pass through various communication systems owned by many
 different governments. You can be sure that any interesting items land on
 the desk of many government security and intelligence agencies.
 
 
     c.. Always keep your Secret Key Ring, True One Time Pad Files, and One
 Time Pad Key Files in a safe, secure place. As long as no one has gotten
 their hands on them and made copies, your encrypted correspondence will be
 safe even from the preying eyes of the United States National Security
 Agency.
 
 
     d.. To be 100% secure, only exchange encrypted messages that have been
 encrypted with a True One Time Pad File or a One Time Pad Key File.
 
 
     e.. Never leave copies of your True One Time Pad Files, One Time Pad Key
 Files, or your Secret Key Ring on your computer at work, or on a computer
 connected to a network. If you do, someone will probably copy them.
 
 
     f.. If you need to encrypt and decrypt files on your computer at work,
 keep your True One Time Pad Files, One Time Pad Key Files, and Secret Key
 Ring on a separate floppy disk or removable hard drive, and bring it to work
 with you from home.
 
 
     g.. If your computer supports it, always keep your key rings, One Time
 Pad Key Files, True One Time Pad Files, encrypted files, and journals on
 removable media such as USB and PCMCIA flash drives or internal or external
 removable drives which you can store in a safe secure place when not in use.
 This way you never have any confidential data, encrypted or not, stored on
 the attached hard drives of your computer that someone can copy or look at.
 
 
     h.. Set up a secure method of getting copies of the True One Time Pad
 Files and One Time Pad Key Files into the hands of people you want to
 correspond with. If you suspect that you may be watched by a government
 agency, do not use the mail service of that country. They own it, and can
 look at your correspondence at any time, and you will never know it.
 
 
     i.. When sending copies of True One Time Pad Files or One Time Pad Key
 Files to the people you correspond with, use high capacity removable media
 drives that support disk sizes of 1, 2, 10, or 20 gigabytes. (Larger sizes
 will probably be available in the near future.) This will cut down on the
 number of times you are put at risk by having to send new True One Time Pad
 Files or One Time Pad Key Files all the time.
 
 
     j.. If possible, meet face to face while on vacation, or a business
 trip, and create the True One Time Pad Files or One Time Pad Key Files. If
 you create a disk with 10 or 20 gigabyte True One Time Pad Files, or a disk
 with thousands of different One Time Pad Key Files, this should last you for
 a few years at least.
 
 
     k.. The random data in a True One Time Pad File can only be used once.
 If you encrypt a 20 megabyte file with a 100 megabyte True One Time Pad
 File, the 20 megabytes used for the file can never be used to encrypt
 another file.
 
 
     l.. Use a One Time Pad Key File only once. This will ensure that each
 encrypted message has a unique key it is encrypted with, and give government
 agencies heartburn trying to decrypt all of your correspondence.
 
 
     m.. When business firms send auditors, buyers, or troubleshooters, etc.,
 out into the field, create a completely new set of Public and Secret Keys,
 and True One Time Pad Files or One Time Pad Key Files for them to use. Set
 the validity period of the Public and Secret Keys to correspond with the
 length of the trip. If they are using One Time Pad Key Files they should
 have enough so each message sent back to the home office could be encrypted
 with a different One Time Pad Key File. If they will be using True One Time
 Pad Files, make sure you create them long enough to accommodate all of the
 anticipated traffic.
 
 
     n.. Top Secret Crypto Gold currently does not support wiping unused data
 clusters or slack space at the end of files on any disk. See Can I Keep
 Files on my Computer Secure with Top Secret Crypto Gold for recommendations
 in this area.
 
 
     o.. For short-term storage of encrypted files, Public and Secret Key
 Rings, True One Time Pad Files, and One Time Pad Key Files, a floppy or hard
 disk should be sufficient. But, remember, they do fail from time to time. So
 keep backup copies at all times.
 
 
     p.. For long term storage, or archiving, of encrypted files, Public and
 Secret Key Rings, True One Time Pad Files, and One Time Pad Key Files, where
 they will not be used for 6 months or more, use nonvolatile storage media
 such as CD-R or CD-RW compact disks which have a shelf life of up to 30
 years. It would be best to put the encrypted files on one CD, and the Public
 and Secret Key Rings and True One Time Pad Files and One Time Pad Key Files
 required to decipher them, on a different CD. And then keep them in separate
 secure places.
 
 
     q.. Special Note: If you lose your Secret Key required to decrypt a
 file, or forget its Pass Phrase, or lose the True One Time Pad File or One
 Time Pad Key File needed, or they become corrupted or damaged, there will be
 no way to decrypt a file that has been encrypted with Top Secret Crypto
 Gold. TAN$TAAFLT Software Company does not posses any special or secret
 means for getting around the encryption and may not be able to assist in the
 recovery of an encrypted file. There are no backdoors to this encryption
 program for a government, or anyone, to exploit.
 
 
  
            
             |   |   
            
        
 
            
         
           Peter Weise (15-07-2004) 
         
	
            | Kommentar Fra : Peter Weise | 
  Dato :  15-07-04 10:26 |  
  |   
            
 "Kasper Dupont" <remove.invalid@nospam.lir.dk.invalid> skrev i en meddelelse
 news:40F54DA2.5E11ECDF@nospam.lir.dk.invalid...
 > Peter Weise wrote:
 
 > Jeg besluttede mig til at kigge lidt på koden. Og når
 > de siger OneTimePad er det første man skal kigge efter
 > deres tilfældigtals generator.
 >
 > Mit første indtryk er at koden ikke er af nogen
 > overvældende kvalitet.
 >
 >
 > Jeg fandt tilfældigtals generatoren som ligger i
 > funktionen GetRandomBits i filen EncFunctions.c.
 >
 > For mig at se ser det ud som om den i store træk
 > blot aflæser de nederste bits af TSC i en løkke og
 > antager resultatet er tilfældigt.
 
 
 Hmmm. efter hvad der står i hjælpefilen så er det efter helt andre metoder
 der skabes random data, læs venligst:
 
 The Random Bits Bin is a file called RandomBitsBin.rbb that is created and
 maintained by Top Secret Crypto Gold. It is 8,192 bytes, or 65,536 bits,
 long, and once it is read into memory, it is constantly being changed by Top
 Secret Crypto Gold. Any time a seed, key, or numeric value, such as Prime p
 or q, is required by Top Secret Crypto Gold, it is extracted from somewhere
 within the Random Bits Bin. When you exit the program, the RandomBitsBin.rbb
 file is updated with the current contents of the Random Bits Bin in memory,
 thus creating a new RandomBitsBin.rbb file for the next time you use Top
 Secret Crypto Gold.
 
 The big question everyone is asking themselves right now is, how can a
 computer be a source of random bits?
 
 Every computer has a system timer. In the case of most Intel® and Intel®
 compatible computers, it beats with a frequency of 1.193 million times per
 second. This system timer, or high resolution performance timer, can be read
 by any computer program. There is also a Read Timestamp Counter Instruction,
 rdtsc, that increments with each clock cycle of your computer. This
 instruction is available on most Intel® Pentium and AMD Pentium compatible
 computers. If you have a 400 MHz processor, the Timestamp Counter will
 increment 400,000,000 times per second. Because of the high frequency of the
 Timestamp Counter in today's computers, it is the preferable instruction to
 use.
 
 Top Secret Crypto Gold sets up, and runs, a separate thread whose sole
 function is to read the system timer, or Timestamp Counter, and update the
 Random Bits Bin. Since the thread does not have control all the time, there
 is no way of predicting the value in the system timer or Timestamp Counter
 when the thread does get control. This is because Windows® is a multitasking
 operating system running many programs and threads and constantly shifting
 between them. The first time the system timer or Timestamp Counter is read,
 its low 8 bits are XNORed with the first 8 bits of the Random Bits Bin. The
 next time it is read, the next 8 bits are XNORed with the low 8 bits of the
 system timer or Timestamp Counter. When you reach the end of the Random Bits
 Bin, you start over at the beginning.
 
 You can readily see that there is no underlying system to the generation of
 the random data. This is because every hardware interrupt, software
 interrupt, pressing of a key on the keyboard, and moving a mouse or clicking
 a mouse button causes Windows® to send out messages to various programs and
 threads. Every person uses a different rhythm to type at the keyboard or use
 the mouse. These programs and threads then act upon these messages which
 causes the operating system to change when and how long the Random Bits Bin
 Thread has control. Because of this, you never know when or how long it has
 control, and you never know the value in the low 8 bits of the system timer
 or Timestamp Counter. This mean there is no way to predict, or duplicate,
 the contents of the Random Bits Bin.
 
 Due to the speed of the computer, the entire contents of the Random Bits Bin
 will change a few thousand or more times per minute. On my 400 MHz Pentium
 II it changes its content about 40 times per second, or about 2,400 time per
 minute. To prove my point, fire up Top Secret Crypto Gold and let it run for
 awhile. Then Display the Random Bits Bin Statistics, and conduct a Phi Test
 on the current contents of the Random Bits Bin File.
 
 For all you computer jockeys out there who do not know what XNOR means, I
 will now tell you. It is an xor operation followed by a not operation.
 
 
 
 
  
            
             |   |   
            
        
 
            
         
            Kasper Dupont (17-07-2004) 
         
	
            | Kommentar Fra : Kasper Dupont | 
  Dato :  17-07-04 09:20 |  
  |   
            Peter Weise wrote:
 > 
 > The Random Bits Bin is a file called RandomBitsBin.rbb that is created and
 > maintained by Top Secret Crypto Gold. It is 8,192 bytes, or 65,536 bits,
 > long, and once it is read into memory, it is constantly being changed by Top
 > Secret Crypto Gold.
 
 Genereres der tilfældige eller pseudotilfældige tal?
 Hvis de har en metode til generering af tilfældige
 tal er der ingen brug for et seed.
 
 > 
 > The big question everyone is asking themselves right now is, how can a
 > computer be a source of random bits?
 
 Det er fulstændig korrekt. Men de giver ikke svaret.
 
 > 
 > Every computer has a system timer. In the case of most Intel® and Intel®
 > compatible computers, it beats with a frequency of 1.193 million times per
 > second. This system timer, or high resolution performance timer, can be read
 > by any computer program. There is also a Read Timestamp Counter Instruction,
 > rdtsc, that increments with each clock cycle of your computer. This
 > instruction is available on most Intel® Pentium and AMD Pentium compatible
 > computers. If you have a 400 MHz processor, the Timestamp Counter will
 > increment 400,000,000 times per second. Because of the high frequency of the
 > Timestamp Counter in today's computers, it is the preferable instruction to
 > use.
 
 Ja, det er fint. Computeren har en række timere
 man kan bruge. Men timere er ikke tilfældige.
 Tværtimod er de meget forudsigelige. Hvis
 timerne drives af forskellige krystaler kan det
 være at skew giver lidt tilfældighed. Men så vidt
 jeg ved er det meget almindeligt at bruge en
 source og et antal divisorer, og så vil alle disse
 timere opføre sig fuldstændigt deterministisk.
 
 > 
 > Top Secret Crypto Gold sets up, and runs, a separate thread whose sole
 > function is to read the system timer, or Timestamp Counter, and update the
 > Random Bits Bin.
 
 Hvad skulle det gavne?
 
 > Since the thread does not have control all the time, there
 > is no way of predicting the value in the system timer or Timestamp Counter
 > when the thread does get control. This is because Windows® is a multitasking
 > operating system running many programs and threads and constantly shifting
 > between them.
 
 Det kan introducere en lille smule entropi. Men
 dybest set udføres der blot en lang række
 beregninger på et input med en meget lille entropi.
 Det ville være bedre at blot tage det input og
 bruge det mere direkte og ved samme lejlighed
 estimere hvor meget entropi man rent faktisk får.
 
 Den eneste kilde til entropi i ovenstående
 beskrivelse er timing af de interrupts der forårsager
 kontekst skift til og fra tråden. I stedet for at
 have en tråd til at ændre data hele tiden kunne man
 blot aflæse TSC for hvert interrupt, og estimere hvor
 meget entropi man har. Derefter bruger man privacy
 amplification (eller noget lignende) til at ekstrahere
 de tilfældige bits.
 
 > The first time the system timer or Timestamp Counter is read,
 > its low 8 bits are XNORed with the first 8 bits of the Random Bits Bin. The
 > next time it is read, the next 8 bits are XNORed with the low 8 bits of the
 > system timer or Timestamp Counter. When you reach the end of the Random Bits
 > Bin, you start over at the beginning.
 
 Og hvor tilfældige er det lige de 8 bits er? Du får
 måske introduceret et par bits entropi for hver
 preemption, men ikke noget nær 8 bits for hver
 aflæsning af TSC.
 
 > 
 > You can readily see that there is no underlying system to the generation of
 > the random data.
 
 Der er da bestemt et system. Der XNORes med en sekvens
 af tal: x, x+c, x+2c, x+3c, x+4c, x+5c, x+6c, x+7c,...
 Hvor x er et tilfældigt 8 bits tal og c er antalet af
 clockcycles som en iteration af koden skal bruge. Med
 andre ord kan c betragtes som en kendt konstant, og
 der er højst 8 bits entropi i sekvensen.
 
 > This is because every hardware interrupt, software
 > interrupt, pressing of a key on the keyboard, and moving a mouse or clicking
 > a mouse button causes Windows® to send out messages to various programs and
 > threads. Every person uses a different rhythm to type at the keyboard or use
 > the mouse. These programs and threads then act upon these messages which
 > causes the operating system to change when and how long the Random Bits Bin
 > Thread has control. Because of this, you never know when or how long it has
 > control, and you never know the value in the low 8 bits of the system timer
 > or Timestamp Counter. This mean there is no way to predict, or duplicate,
 > the contents of the Random Bits Bin.
 
 Lyder mere som noget de håber på end noget de rent
 faktisk ved noget om. Security through obscurity.
 
 > 
 > Due to the speed of the computer, the entire contents of the Random Bits Bin
 > will change a few thousand or more times per minute.
 
 Det er fuldstændigt ligegyldigt hvor tit indholdet
 ændres. Det væsentlige er entropien. Det hjælper intet
 at ændre data uden at introducere entropi.
 
 > Then Display the Random Bits Bin Statistics, and conduct a Phi Test
 > on the current contents of the Random Bits Bin File.
 
 Jeg ved ikke hvad en Phi Test er. Men det er også lige
 meget. For de antyder at man kan bruge denne test til
 at bevise, at indholdet er tilfældigt. Der findes ingen
 test, der kan bevise, at en bitsekvens er tilfældig.
 
 Du kan lave tests, der kan bevise (eller sandsynliggøre)
 at en sekvens af bits ikke er tilfældige, men det virker
 altså ikke den anden vej.
 
 Tag et kig på disse tre bitsekvenser:
 000000000000000000000000000000000000000000000000000000000000
 010101100101110010011010101011010001110101000101101111001010
 011011001011110001101000100010010100000010011011110011010111
 
 Man kan hurtigt overbevise sig selv om, at den første
 nok ikke er tilfældigt valgt. Nummer to er heller ikke
 tilfældig, men det er ikke så nemt at se hvordan den
 er skabt. Den tredje sekvens er tilfældig, men jeg kan
 ikke bevise, at den er tilfældig.
 
 > 
 > For all you computer jockeys out there who do not know what XNOR means, I
 > will now tell you. It is an xor operation followed by a not operation.
 
 Og hvorfor bruger man så XNOR? Når de fleste CPUer har
 en instruktion til at lave XOR men mig bekendt ikke
 XNOR. Det er jo ikke fordi en NOT operativ introducerer
 mere entropi.
 
 -- 
 Kasper Dupont -- der bruger for meget tid paa usenet.
 I'd rather be a hammer than a nail.
  
            
             |   |   
            
        
 
            
         
            Niels Callesøe (17-07-2004) 
         
	
            | Kommentar Fra : Niels Callesøe | 
  Dato :  17-07-04 09:52 |  
  |  
 
            Peter Weise wrote:
 > Hmmm. efter hvad der står i hjælpefilen så er det efter helt andre
 > metoder der skabes random data, læs venligst:
 Selvom det egentlig ikke er nødvendigt, vil jeg tillade mig at støtte 
 Kasper Duponts udlægning af "tilfældighedsgeneratoren" i Top Secret 
 Crypto.
 Uover alle de problemer som Kasper nævner, er der endnu et problem med 
 at bruge PC'ens ur som kilde til tilfældige bits: opløsning. Det er 
 meget muligt at den pågældende krystal svinger et meget højt antal 
 gange per sekund, men det er fuldstændig underordnet hvis 
 operativsystemet ikke aflæser krystallen lige så præcist. Og det gør 
 oparativsystemet ikke. Udfaldsrummet er altså meget mindre end det 
 synes ved første øjekast.
 Der kan Googles efter en langt bedre forklaring (end min) på hvorfor 
 uret alene er en meget dårlig kilde til entropi.
 Det kunne være interessant[0] at udsætte TSC's "random" bits fil for en 
 række af de statistiske tests der generelt er accepterede som et 
 minimum for at forekomme tilfældigt. Dette kunne for eksempel være de 
 tests der nævnes i Applied Cryptography §5.31. Desværre kender jeg ikke 
 til nogen programmer der kan udføre disse tests.
 Noget helt andet er, at det undrer mig, at når der nu findes 
 pseudo-random number generators der er accepterede som kryptografisk 
 sikre, så har man alligevel valgt at hjemmestrikke en tvivlsom løsning.
 Personligt ville jeg aldrig overlade noget som helst til TSC's 
 "sikkerhed".
 [0]: Siden Applied Cryptography[1] er min fritidslæsning for tiden.
 [1]: Der i øvrigt er frit tilgængelig online[2].
 [2]:  http://www.cacr.math.uwaterloo.ca/hac/
-- 
 Niels Callesøe - dk pfy
 pfy[at]nntp.dk -  http://www.pcpower.dk/disclaimer.php
På det digitale natbord: Applied Cryptography, Menezes et al. 1996-2001
            
              |   |   
            
        
 
            
         
             Kasper Dupont (17-07-2004) 
         
	
            | Kommentar Fra : Kasper Dupont | 
  Dato :  17-07-04 10:15 |  
  |   
            "Niels Callesøe" wrote:
 > 
 > Noget helt andet er, at det undrer mig, at når der nu findes
 > pseudo-random number generators der er accepterede som kryptografisk
 > sikre, så har man alligevel valgt at hjemmestrikke en tvivlsom løsning.
 
 Skulle jeg lave sådan noget ville jeg vælge en
 kombination. Generer først en pseudotilfældig
 bitstreng med en af de accepterede kryptografiske
 generatorer. Derefter generer en (forhåbentlig)
 ægte tilfældig bitstreng så godt som muligt med
 den tilgængelige hardware. Til sidst XORes de to
 strenge (som jeg naturligvis har lavet lige lange),
 og resultatet vil være mindst lige så godt som den
 bedste af de to.
 
 > 
 > Personligt ville jeg aldrig overlade noget som helst til TSC's
 > "sikkerhed".
 
 Jeg tror godt på at man kan lave noget sikkert
 baseret på TSC. Men det jeg har set her tror jeg
 ikke på. TSC er ikke en tilfældigtals generator
 det er et ur der kan bruges til at aflæse tiden.
 Tilfældighed skal man have et andet sted fra.
 Timing af interrupts fra musen tror jeg på er
 meget tilfældige. Men for at de kan bruges skal
 man selvfølgelig vide hvor stor entropien er,
 og hvordan man får den ud fra sine aflæsninger.
 
 -- 
 Kasper Dupont -- der bruger for meget tid paa usenet.
 I'd rather be a hammer than a nail.
  
            
             |   |   
            
        
 
            
         
             Søren Nielsen (18-07-2004) 
         
	
            | Kommentar Fra : Søren Nielsen | 
  Dato :  18-07-04 16:58 |  
  |   
            
 "Niels Callesøe" <pfy@nntp.dk> skrev i en meddelelse
 news:Xns95296E959A374k5j6h4jk3@62.243.74.163...
 > Peter Weise wrote:
 >
 > > Hmmm. efter hvad der står i hjælpefilen så er det efter helt andre
 > > metoder der skabes random data, læs venligst:
 >
 > Selvom det egentlig ikke er nødvendigt, vil jeg tillade mig at støtte
 > Kasper Duponts udlægning af "tilfældighedsgeneratoren" i Top Secret
 > Crypto.
 >
 > Uover alle de problemer som Kasper nævner, er der endnu et problem med
 > at bruge PC'ens ur som kilde til tilfældige bits: opløsning. Det er
 > meget muligt at den pågældende krystal svinger et meget højt antal
 > gange per sekund, men det er fuldstændig underordnet hvis
 > operativsystemet ikke aflæser krystallen lige så præcist. Og det gør
 > oparativsystemet ikke. Udfaldsrummet er altså meget mindre end det
 > synes ved første øjekast.
 >
 > Der kan Googles efter en langt bedre forklaring (end min) på hvorfor
 > uret alene er en meget dårlig kilde til entropi.
 >
 > Det kunne være interessant[0] at udsætte TSC's "random" bits fil for en
 > række af de statistiske tests der generelt er accepterede som et
 > minimum for at forekomme tilfældigt. Dette kunne for eksempel være de
 > tests der nævnes i Applied Cryptography §5.31. Desværre kender jeg ikke
 > til nogen programmer der kan udføre disse tests.
 >
 > Noget helt andet er, at det undrer mig, at når der nu findes
 > pseudo-random number generators der er accepterede som kryptografisk
 > sikre, så har man alligevel valgt at hjemmestrikke en tvivlsom løsning.
 >
 > Personligt ville jeg aldrig overlade noget som helst til TSC's
 > "sikkerhed".
 >
 
 Hej,
 
 
 
 Det ser ud til at man godt kunne forbedre TSC's  random bits generator, og
 der er jo kommet gode forslag til at forbedre det. Er der ikke en der er god
 til engelsk der kan skrive et lille brev til MacGregor K. Phillips
 mkp@topsecretcrypto.com, han mener det jo godt, og det kunne jo tænkes han
 mangler lidt seriøs input. Han sidder tilsyneladende på Philippinerne og har
 ene mand lavet et udmærket program. Men i har ret i, at det kan forbedres,
 men det kræver jo nogle seriøse tilbagemeldinger.
 
 
 
 Hilsen
 
 Søren Nielsen.
 
 
  
            
             |   |   
            
        
 
            
         
              Kasper Dupont (18-07-2004) 
         
	
            | Kommentar Fra : Kasper Dupont | 
  Dato :  18-07-04 18:32 |  
  |   
            "Søren Nielsen" wrote:
 > 
 > Det ser ud til at man godt kunne forbedre TSC's  random bits generator, og
 > der er jo kommet gode forslag til at forbedre det.
 
 Det er jo lidt forvirrende når man hele tiden skal
 huske på hvad TSC står for den her gang. Egentlig
 tænker jeg ikke på forbedringer, men nærmere en
 komplet udskiftning.
 
 > Er der ikke en der er god
 > til engelsk der kan skrive et lille brev til MacGregor K. Phillips
 > mkp@topsecretcrypto.com, han mener det jo godt, og det kunne jo tænkes han
 > mangler lidt seriøs input. Han sidder tilsyneladende på Philippinerne og har
 > ene mand lavet et udmærket program. Men i har ret i, at det kan forbedres,
 > men det kræver jo nogle seriøse tilbagemeldinger.
 
 Er det et godt program? Det eneste jeg har kigget
 på er tilfældigtalsgeneratoren. Og indtil videre
 har jeg ikke set noget, der fik mig til at tænke at
 det her er godt lavet.
 
 Det er jo ikke bare et spørgsmål om en forkert
 algoritme til generering af tilfældige tal. Hele
 strukturen af koden virker meget lidt gennemtænkt.
 
 Hvorfor indeholder en fil med navnet EncFunctions.c
 kode til: GUI, filadgang, datoformatering,
 tastaturhåndtering og tilfældigtalsgenerator. Men
 tilsyneladende ingen kode til kryptering. Og hvorfor
 er der så meget assembler kode?
 
 Hvis resten af koden er lige så dårligt struktureret,
 så tror jeg det er bedre at starte helt forfra. Jeg
 ved det er en lidt hård dom, når nu der ligger 2½MB
 sourcekode.
 
 Men hvorfor er der egentlig så meget kode? Udfra
 den funktionalitet jeg har læst om ville jeg ikke
 have forventet så stor en mængde.
 
 Mit næste spørgsmål er så, hvor meget af denne kode
 er reviewet af andre? Man reviewer ikke bare 2MB C
 kode i sin helhed. Det er nødt til at være modulært
 opbygget med nogle klare definitioner af interface
 mellem modulerne for at det kan reviewes.
 
 Den nuværende opdeling i filer er ikke til meget
 hjælp i den forbindelse, da koden i hver enkelt fil
 ikke er en samling relaterede funktioner.
 
 Til mandens forsvar skal så siges, at godt program
 design er sværere i praksis end i teorien. Jeg kan
 da også til tider blive chokeret hvis jeg ser noget
 kode jeg selv har skrevet for flere år siden.
 
 -- 
 Kasper Dupont -- der bruger for meget tid paa usenet.
 I'd rather be a hammer than a nail.
  
            
             |   |   
            
        
 
            
         
               Søren Nielsen (20-07-2004) 
         
	
            | Kommentar Fra : Søren Nielsen | 
  Dato :  20-07-04 06:46 |  
  |   
            
"Kasper Dupont" <remove.invalid@nospam.lir.dk.invalid> skrev i en meddelelse
 news:40FAB3FD.580E5473@nospam.lir.dk.invalid...
 > "Søren Nielsen" wrote:
 > >
 > > Det ser ud til at man godt kunne forbedre TSC's  random bits generator,
 og
 > > der er jo kommet gode forslag til at forbedre det.
 > Det er jo lidt forvirrende når man hele tiden skal
 > huske på hvad TSC står for den her gang. Egentlig
 > tænker jeg ikke på forbedringer, men nærmere en
 > komplet udskiftning.
 TSC står for Top Secret Crypto, og forkortelsen har haft den betydning hele
 tiden   
> Er det et godt program? Det eneste jeg har kigget
 > på er tilfældigtalsgeneratoren. Og indtil videre
 > har jeg ikke set noget, der fik mig til at tænke at
 > det her er godt lavet.
 Ja, ud fra brugen af det og de muligheder man har med krypteret Chat osv.
 samt de oplysninger man får når programmet arbejder, gør at jeg holder meget
 af programmet. Har brugt det i en del år, og det har virket upåklageligt.
 > Det er jo ikke bare et spørgsmål om en forkert
 > algoritme til generering af tilfældige tal. Hele
 > strukturen af koden virker meget lidt gennemtænkt.
 Jeg ved MacGregor har brugt meget tid på programmet ( er jo gået på pension
 for en del år siden og bruger det meste af sin tid på TSC ), så jeg tror han
 har tænkt meget over det. Men mangler sikkert noget kompetent modspil og
 imput.
 Problemet med at lave et sådant program er også, er det ikke anerkendt så
 vil man ikke købe det, og ingen gider at kikke på det, derfor bliver det
 ikke anerkendt, og så kører vi i ring.
 Derfor blev det til sidst et gratis program med åben suorce kode i håb om at
 det ville hjælpe lidt på det.
 > Hvorfor indeholder en fil med navnet EncFunctions.c
 > kode til: GUI, filadgang, datoformatering,
 > tastaturhåndtering og tilfældigtalsgenerator. Men
 > tilsyneladende ingen kode til kryptering. Og hvorfor
 > er der så meget assembler kode?
 Det giver jeg dig ret i, der er jo ikke andet for end at jeg må skrive ( og
 få oversat ) et brev til ham hvor han kan forklare det, så kan vi jo vende
 det når jeg får et svar fra ham.
 > Hvis resten af koden er lige så dårligt struktureret,
 > så tror jeg det er bedre at starte helt forfra. Jeg
 > ved det er en lidt hård dom, når nu der ligger 2½MB
 > sourcekode.
 >
 > Men hvorfor er der egentlig så meget kode? Udfra
 > den funktionalitet jeg har læst om ville jeg ikke
 > have forventet så stor en mængde.
 Som sagt, der er en mængde funktioner i programmet, nogle af dem kunne man
 godt undværer for at få en lidt bedre brugervendelighed. Nu kender jeg jo
 programmet ganske godt, men for en ny bruger kan det godt virke lidt
 uoverskueligt.
 > Mit næste spørgsmål er så, hvor meget af denne kode
 > er reviewet af andre? Man reviewer ikke bare 2MB C
 > kode i sin helhed. Det er nødt til at være modulært
 > opbygget med nogle klare definitioner af interface
 > mellem modulerne for at det kan reviewes.
 Det er rigtigt, men kunne man reviderer krypteringen var det jo en god
 start, men det griber jo nok ind i hinanden.
 > Den nuværende opdeling i filer er ikke til meget
 > hjælp i den forbindelse, da koden i hver enkelt fil
 > ikke er en samling relaterede funktioner.
 >
 > Til mandens forsvar skal så siges, at godt program
 > design er sværere i praksis end i teorien. Jeg kan
 > da også til tider blive chokeret hvis jeg ser noget
 > kode jeg selv har skrevet for flere år siden.
 Kender det, bare ikke med programering   
Venligst
 Søren Nielsen.
            
              |   |   
            
        
 
            
         
                Kasper Dupont (20-07-2004) 
         
	
            | Kommentar Fra : Kasper Dupont | 
  Dato :  20-07-04 16:21 |  
  |  
 
            "Søren Nielsen" wrote:
 > 
 > TSC står for Top Secret Crypto, og forkortelsen har haft den betydning hele
 > tiden   
Nej, TSC står for time stamp counter. Kig selv på
 side 168 i dokumentationen af instruktionssættet:
 http://developer.intel.com/design/pentium4/manuals/25366615.pdf
og side 166 i del B:
 http://developer.intel.com/design/pentium4/manuals/25366715.pdf
> 
 > Ja, ud fra brugen af det og de muligheder man har med krypteret Chat osv.
 > samt de oplysninger man får når programmet arbejder, gør at jeg holder meget
 > af programmet. Har brugt det i en del år, og det har virket upåklageligt.
 Man kunne have givet dig nøjagtigt samme oplevelse
 helt uden brug af kryptering. Ville det så stadig
 have været et godt produkt? Der skal altså mere til
 før vi kan kalde det for et godt produkt.
 > 
 > Problemet med at lave et sådant program er også, er det ikke anerkendt så
 > vil man ikke købe det, og ingen gider at kikke på det, derfor bliver det
 > ikke anerkendt, og så kører vi i ring.
 > 
 > Derfor blev det til sidst et gratis program med åben suorce kode i håb om at
 > det ville hjælpe lidt på det.
 Det er da en start. Men det er ikke nok til at jeg
 vil bruge tid på det. Jeg skal have en grund til at
 tro, at jeg kan få nogle fordele ved at bruge dette
 program fremfor de alternativer jeg har. Og indtil
 videre har jeg kun kunnet få øje på ulemper.
 > 
 > > Mit næste spørgsmål er så, hvor meget af denne kode
 > > er reviewet af andre? Man reviewer ikke bare 2MB C
 > > kode i sin helhed. Det er nødt til at være modulært
 > > opbygget med nogle klare definitioner af interface
 > > mellem modulerne for at det kan reviewes.
 > 
 > Det er rigtigt, men kunne man reviderer krypteringen var det jo en god
 > start, men det griber jo nok ind i hinanden.
 Kunsten i godt programdesign er netop at modulerne
 ikke skal gribe for meget ind i hinanden. I princippet
 skulle man kunne tage beskrivelsen af et modul og så
 implementere det uden at se på den eksisterende kode.
 Og så burde man uden videre kunne sætte den nye
 implementation ind i stedet for den eksisterende, og
 stadig have et program, der virker.
 -- 
 Kasper Dupont -- der bruger for meget tid paa usenet.
 I'd rather be a hammer than a nail.
            
              |   |   
            
        
 
            
         
           Peter Makholm (15-07-2004) 
         
	
            | Kommentar Fra : Peter Makholm | 
  Dato :  15-07-04 10:34 |  
  |  
 
            "Peter Weise" <Peterw@ofir.dk> writes:
 >> For mig at se ser det ud som om den i store træk
 >> blot aflæser de nederste bits af TSC i en løkke og
 >> antager resultatet er tilfældigt.
 >
 >
 > Hmmm. efter hvad der står i hjælpefilen så er det efter helt andre metoder
 > der skabes random data, læs venligst:
 [...]
 > Top Secret Crypto Gold sets up, and runs, a separate thread whose sole
 > function is to read the system timer, or Timestamp Counter, and update the
 > Random Bits Bin.
 Det er ellers helt klart at der lige netop står at det bare er de
 nederste 8 bit af computerens ur der bruges. Resten er bare gejl der
 ikke introducerer entropi.
 -- 
  Peter Makholm     |               Vi smider blade allesammen - hele tiden
  peter@makholm.net |                      som et konstant spirende efterår
  http://hacking.dk |                 Og hele tiden vokser nye frugter frem
                    |                  og vi finder nogen til at plukke dem
                    |                            -- Tilt, Perkussive popler
            
              |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |