Cryptography-Digest Digest #472, Volume #9       Tue, 27 Apr 99 14:13:03 EDT

Contents:
  Re: Prime Numbers Generator (David Kuestler)
  Algorithms where encryption=decryption? (Anne Veling)

----------------------------------------------------------------------------

From: David Kuestler <[EMAIL PROTECTED]>
Subject: Re: Prime Numbers Generator
Date: Tue, 27 Apr 1999 15:09:11 +0000

This is a multi-part message in MIME format.
==============912EF5D7A10284AC80DCC72E
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

David Kuestler wrote:

> I have a C program that generates all 32 bit primes.
> It generates 203,280,221 primes and a file size of 813,120,884 bytes.
>
> It runs in just over 48 hours on a 200Mhz PowerMac under Linux, and about 80
> hours on a 233Mhz K6 under Linux.
>
> I can supply the source code if you are interested.
>

I've had a few private requests for my code so if anyone else is interested
then here it is ( sorry for the bandwidth ), however I would also like to refer
you to Jim Gillogly's code which he posted in this thread which runs about 80
times faster than mine ( on my machine ).

There is actually two programs :

The first program 'store32BitPrimes.c generates primes using a 16 bit memory
resident table ( about 26Kb ). This program creates two files : 'bytes3.dat'
and 'lsb.dat' that take up about 400Mb together. For each prime number to
store, the four byte integer is split into a three byte/one byte pair. The
three most significant bytes are stored uniquely once in the 'bytes3.dat' file
along with a file pointer that points to the absolute address in 'lsb.dat'
where the associated lsb's start.

The second program 'convert32BitPrimes.c' takes the 'bytes3.dat' and 'lsb.dat'
files and creates 'primes32Bit.dat' ( about 800Mb ).



==============912EF5D7A10284AC80DCC72E
Content-Type: application/x-gzip;
 name="store32BitPrimes.c.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="store32BitPrimes.c.gz"

H4sICHrQJTcCA3N0b3JlMzJCaXRQcmltZXMuYwDtWGtP40YU/e5fcZsK1iEm2M5qdykEibKo
qgS7KwRqpZZGTjJORjXj4BkvtNv89713ZhI/YghsqfolRsTOPM7cc+85Y8d7Oy937Dl7O/BS
h0H7iQmWRYpBlCQwy/gNk8AFRNALYcgV5ELyiWBjSFIxwR7FJizrPoT2srFdTlmGgeF/6Pe8
8J3vhWGwCPIQwj96YfdZaJAxmSeKI5OYJwzu0jwZwzT6zGDImIAjeOf758PuE9COQc6iEQMZ
fSY4xUZTwW9zBlxCLjFfKsXVxjkOUbiwSlWUgOR/0yXG3sN1utXY4jTPYPiXQm5prCc15l7n
Q84SrA22pKDuUk1Gwg9FFWj2TSoVEACP+SgSCnoWXQOoFKODVGB8WG4arzPySg/pdceRelVB
S1hUg6ORxNZCVVASOTQQDVWwU6IJhohZiwSXN6S+9E5qBFtfpDYsxYmKPHnf/U/19pI+db7n
YpTkYwaHORJU4+70qNQWj4RKqk0KWVdbInmzR0lOszFartzVMjnqTlu40JjFXDA4P/4VXof7
r/ffvA33e1eOcxNx4badLw7yW1ESCHaveh4ID+RtpgZ45h7MUnngVDNDYQ2w8CrKVL0PD4KK
jWY8iLHs9TFSZflIgcrYCP0wQi6rKCiCDHZm2N1bdi4j1p0amLp4DC7+2SWhD+kMfetCq9Bt
y4OPg5OL0+NL+AevLi+uPpzoq4v3v1xAG//6fdgN8PzFLjZjWZZmCHJKZ7DYLWgvomH3XLmB
+TqvBoKR2SjcllX9mgDWrk+Qjy+uq4HLUnHcD1dnZ23Tjo64y7jdzIM3egMv7LS0p6lJjtsA
KZUCoNQjnuuaUrS3Takwxg4EB4Q7S6nUZEqyfQAitTuAvwAxU7oCL/swValIXL32QEXDhP3m
X+/594HvtzWcnPJYQcYnU4VgGghhChRUIqL4pVxrYm4hNh2zB28xxu/6+vRAOk1GnlRUbQrK
QzVwLJ5/H8dFMhAKZU/YU1QfJsWsQdMXC9kE2tzQWBe4poSnQ3Lr4NPFz+eng8vjH89OsbHT
KVHQjMtB8Gs46tv4imHrs86flvUKlsm9weJWWaWwnl6IZ5VjtSjmmJcDWBaonhxTIatXpz7T
mLQ2ZVtPOXAaqOF4D7b1Z2BoBVVajZxqvl1lMy9rDcsxKT97Kf14Qps2PU/Ypy9r3oVNdWF4
yRS06aMuiAgdvl8K02hO1IjXhLcbXGPKwgMcd1iCoe+dPoQaruBjbhU6/+7KLaWtuxNXtBdl
KCYW+g/W6L+iBs1RwFa9dLiBEtNhxqI/DxqmrDrHRr6yQrFIs70e85l4hrUe8xheIwYYTSz3
WVLT8uGkAeibvPhtpnzEnc02bfCraLToY9ONaUXNp8381xr2uc5dS3m+0oJl7HRWaViRPjR3
vrpbFcYV2pd9csvGkRtHvqQjSVIbEzaYkD6BJZL9ixvpxq8bv27uoP+TeQ3AKEklc4mWWdl+
NwWyP2pQ5ELFbus0iWb6lR1qnt5jSVSYGEu4iyRscQ8+mafwhEl6QxUJQNrsNo8SUtlWTi/B
tvjvouUVv8d39U90D03qaXE6c+crzSrksgkWAAA=
==============912EF5D7A10284AC80DCC72E
Content-Type: application/x-gzip;
 name="convert32BitPrimes.c.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="convert32BitPrimes.c.gz"

H4sICI3RJTcCA2NvbnZlcnQzMkJpdFByaW1lcy5jAJ1VbWvbMBD+7l9xS2mQGzez58Jgrgdb
m28hhdAyBoPixnIj5shCUkhKl/++k2THeSEvm00k+e6R7rkXXS4Yn5TznMLtnDOl8/70q3ex
lhUTrsttUaZmH1/eNK1kTuW2SrMZNRJPvwma0wKUlvOJBi3pBN49AJhzxV45zaGs+CswroEH
ICqVeCuLSjxvljFOfO8AXMQBcKoXlfxdJgZihIXho1BTlOoFRyGRiAqgzJRGOKQQWuwmHfyh
B2FQL6IArkRoBrtaWvxkmkn8QEScbNGxCrRlpcbrZ42HZ1Ijf2sHl2jVaMjoaTj0nZwVQPCt
6SKgEpSjoOME/TzTnQAensf3D6PhT/DxTVO4jnC24cBHUCkriVsGZob6pA74SQ2gS6ZJ5D5X
22aRcG2TdHC9Z+6kNXPAeaZcBjY8dIL403em13bvxoNvj/AHV4/jp9GdXY3vf4zPcbw2cJyN
CJFBt860VYiolUQ1yKQXpYS4dPu4y4ceRMnaIUmznLRVZncE8BlhH1I7HSBp9jEs3LOytM8j
2uCxmLKSHqWS7lCJcUiB62paEoK17fe5D1cQLqMwbGiYC7IJivw+XsY1y8Yoh1sHbY/fCY29
d107Ri4s0Tb4cHB2imo/Pu6po+SepgMg96mueElE3MNz/E2MpbeQTFPSdoRuszOAG8fz5hRP
e8S/M+z1GlUrF0skLMLEFaaIElePdbc5WQNNocTH87pTKjupSZvUeGeG8v/ieEYQdyK42vRx
UlaKksIRab9d2fvNhcHeX5DOoMyEwqZsui3+HYDC281zBYtMwRe4ZAHoKXX1a+lbxeX8F+8E
bYO+tj07WDu/8v4C+nE1CxkHAAA=
==============912EF5D7A10284AC80DCC72E
Content-Type: application/x-gzip;
 name="primes.h.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="primes.h.gz"

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
t/Ox2/nY7Xzsdj52ezQludd6QUZO37oPP/r+49Uff/7q/eNnb1/96vnd4/Objx4/eX77/Pj9
H72k3mQf/uVPHk7C98/v3j9++FjLS/o3n//q589vHz/+9O3Lqx++fvX+1+elh1dv3j+8evfX
h9wHn7959+qXb54/enz96ZtfPu6Yxzffe/jnh8fHx2/GvPuHt+9/9uaHj6/213aCfHz88eMH
j98k872X6NcfvPne4/cef/B45Ss7j+/ef/j2/aud6OO3n/7q8f0nz1mux++W776U6PElwx88
vtqEn/5kw58+/uWf/5ef/fXf/Ke//MnP/vbP/+KnP9mBP/jBpvrPLyST6scf/uL9p2/fPX76
8eN333z38Rcfvnn89M3rXz/+/Pnx9fO7d/s7O+Tk6GTo0/3Vt//46t3z46v3333n+/nt/ffq
4/31l7Cfvf/w56+f/+ur//b4Zz++S/u9x7fP7z9/++aD63t/8uUX3jz+h6+/9ONdgN+kf9rp
Xxrp3etXv/zk/c7bxx++e7/b5+efv98/X71+90VLPT+eWi0nSz/6/r/5I//mUmTJ/yVbaL/y
5v3HH3znJ2/f7ty8evP4XT3lu49vP/18N9zzS+AL5T/+5Lv/95vv+OD5+86fv3v3+a9O4+7a
/mb/efVO13z3+OtPP39898mnn7/+6PHN8/+za+GXz+93I+0UH3/49vEPNtksyfM/vXr/wf55
cvcNgg8vufjpbt+/3c37V29/8g+ff/j6X+3R+opK/NPH+ncv/SdzfRf5//zw9efPj7uQj7vk
bz9888vnx//l8T98vvPywzdf1Otd0X+XIWrtHz959fp50/6Dm63e/NEf7Y7/ksQbP/jBm99e
jv/t7fOHuz/8W4tSHv/H/9g//uzFTco6t8teL4U7XPHJ7mlnSMhOtdut/H0tv+np/y4F/8EP
vlbwP/qju+Dn7/2vP3v+6PnjPQy8/fwXu8nfPv/i8VuGmz3SfPbpu/3qS6o/+cq41dvXKueb
NfQt8V8axO5u+81Pf1Z/mJX2J1/q3V/+O4k+/vmv94C7U378+t3Pf/j4erOzHH817ZeLuv99
+vajpx/6cf3w8fufPZ3/Xn7907d87hefbKb4/mf7nfrVFF/k/CXFzsbvGpn/HYbnH//O8fnf
cUT9TU/cef/sw3fvdkFPpt/t6e61rJ9Z8YePbz79x8fP95B/Yj/enfbdy1R4f+yDuzV3sT79
7PnNDvhOBvzxRx++/84PH//qZ3/zv/7V//HT/+vxVNjOxx9dXx5Bns9ouV/JUROl7zx+UaCX
Yez6Sn7vz+5G880PvrN/f+Nzv/Nrh8Bv/9RnT/sL/1HXe4n47PpNyPWl/Lx+9/z83z/4Tc9+
+qfr6en744eP//knP/nff/aff/K3v7vwh8LpP79XJbx06dNPP8gu/r3Pnr7cH1/ytIfFj76U
pZdXfvg4dro/+PELfEtGznu/f0Y+fbez8eb9p5+8/uCDzZLf++Md8vWc3LXzwu47/n+mWn6P
1vpGnVxfrpN7xP32avnx16ql7v++WrbN9d/Ptr3zcQavLye6sgLu6Pujp5r+NBP/5gNfa6iX
2vmPL/9f2UjXVxN/e1N9rXK+WUX5p6K+mMQ2j//4FPMHvxkBvz7wfGW8+WpefvH603fPH5xs
f+3DIrKGv/dlur+Z3L49X18dw+6h6//HTz99e5V8+u4HP7gjfxPz2T+datqD9st48Nn1JzkM
/GbW+S0970vds/72zvS1/vm13vDjuzc8/I7W+91N969X3rfX3Dda7F+++rHf1lb/k996+le+
9ZvGEfZ12v8a1S8ySMg76saf/vTO6Fn/vHr7hZz3Z18T876amec9ij18o0a+KZd+VTjt7S9e
vf/tkvZvFbd3Zn9fgfsfXn+L4PnTn/5W0XOLhL+/1P2vlO53yt+/jxB+zXacvBxHvuPp+MU+
Owmy8N8ikPf2+wrk/18q5tul8v8XD5/62JPgAAA=
==============912EF5D7A10284AC80DCC72E==


------------------------------

From: Anne Veling <[EMAIL PROTECTED]>
Subject: Algorithms where encryption=decryption?
Date: Tue, 27 Apr 1999 17:14:53 +0200

Hi everyone,

I am looking for any algorithms that can be used in encryption in which
the encryption algorithm is the same as the decryption algorithm.

For instance:

the well-known ROT-13 (a unary encryption algorithm (uses only one
parameter))

Or f(x)=-x
Or f(x)=1/x (not so useful for encryption)

Or binary:

f(x,y)=x XOR y

Do you know of any other?

Thanks, bye,

Anne.
-- 

Anne Veling
[EMAIL PROTECTED]
http://www.medialab.nl/crew/anne/

A man with a watch knows what time it is. A man with two watches is
never sure.

------------------------------


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: [EMAIL PROTECTED]

You can send mail to the entire list (and sci.crypt) via:

    Internet: [EMAIL PROTECTED]

End of Cryptography-Digest Digest
******************************

Reply via email to