|
| 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
| |
|
|