13 Apr. I have finally finished the sample
socket code. You can find it in
on the Zoo. See the
file for information about the demo. Good luck!
11 Apr. To help you get started computing
with big numbers, I have placed some sample code in
on the Zoo. You will need to choose which package to
use for PS5 -- either GMP or openssl/bn. The sample
code illustrates how to use each package to do
For further information on GMP, type
gmp. For further information on openssl and
its crypto libraries, type
man 3 ssl and
man 3 crypto.
Documentation on the openssl big number library bn
is currently missing from the Zoo. I'll ask that it
be installed. When it is, you should be able to type
man 3 bn. In the meantime, two web sites
where you can find linux man pages are
9 Apr. Problem
set 5 (.pdf) is
available. It has two parts. Part A is due on Friday,
April 16. Part B is due on Monday, April 26.
6 Apr. Two new handouts are available:
24 Mar. Minor correction to today's lecture
notes. In estimating the storage requirement for a
Birthday Attack on MD5, I calculated bits but called
them bytes. The correct answers are 1/8 of what I had
before. I reposted corrected notes for lecture
3 Mar. Problem
set 4 (.pdf) is
available. It is due on Wednesday, March 24.
3 Mar. Solutions
to PS3 (.pdf) are
1 Mar. Solutions
to midterm exam (.pdf) are available.
18 Feb. I fixed the error on slide #7 of
lecture 12 noted in
class yesterday, and I added a new slide 8.
16 Feb. Problem
set 3 (.pdf) is
available. It is due on Tuesday, February 23.
Solutions to problem set
2 (.pdf) are also
16 Feb. I rewrote slide #12 in yesterday's
lecture 11 notes to
correct the error noted in class and to use the
precise term "Carmichael number" instead of the more
general term "pseudoprime".
15 Feb. Reminder: Midterm
examination, in class, 2:30 pm, Wednesday,
9 Feb. Here are three new handouts that supplement the
lecture notes on number theory.
8 Feb. Problem
set 2 (.pdf) is
available. It is due on Monday, February 15.
4 Feb. I finally have an answer to the
question about what must be done in C under Linux to
use functions such as
log() from the
#include <math.h> in the
- Add the switch
-lm to the linker
command line. This causes the math library to be
searched when the modules are linked together.
Why is it sometimes not necessary to use
-lm? My test program contained the
log(3.1). Since the argument
was constant, the compiler computed the logarithm at
compile time and replaced the function call by the
result. Hence, there was no call to
log() in the compiled code and no need
to search the math library.
2 Feb. A few miscellaneous notes on
The submit script will not take folders. If
you have a folder structure that you wish to
submit, put the whole file tree in a .tar or .zip
file and submit that instead.
Don't forget to give the assignment number 1
as the first argument to
The resolution of
time() is only
one second. If you call it multiple times within
your program, you're likely to get the same
result many times in a row, so don't use this to
repeatedly seed your random number generator.
Better is to set the seed once as the first thing
main() and then let your program
run as many trials as you like.
To use the
log() function (or any
other function from the C math library), be sure
The submission will be considered on time if
the day of submission is Wednesday, February 3,
i.e., any time on that day. (I guess "midnight"
27 Jan. Slides from lectures 5 and 6 are
now up on the web site. I apologize for the delay in
posting lecture 5 and for telling people it was there
when it wasn't. The slides were indeed all ready to
post a couple of hours after Monday's class, but I
neglected to take the final step of synchronizing the
live web site with the master site.
23 Jan. Just added a fourth mystery text
that is much shorter than the others.
23 Jan. Three mystery texts are now
available in the assignment directory
on the Zoo. Try to decrypt each using your PS1
solution with both of the furnished English-language
frequency tables. The mystery texts are encoded using
standard conventions in classical cryptography, all
whitespace and non-alphabetic characters were deleted
from the plaintext before encryption. Nevertheless,
it should be readily apparent when you have found the
20 Jan. Problem
set 1 (.pdf) is
available. It is due in two weeks, on Wednesday,
February 3. There is a fair amount of work involved,
so start working on it now to leave yourself enough
time to finish. You will need to generate random
numbers according to given distributions. See the
handout Random Number
Generation (.pdf) for hints on how to do
14 Jan. Slides from lectures 1 and 2 are
available as PDF files from the Lecture Notes page.
11 Jan. Welcome to the CPSC 467a web site.
Look here for announcements and course materials.
11 Jan. There will be no
class on Martin Luther King day, Monday,
January 18. The makeup class will be
on Friday, January 15, at the regular time and
Since this class does not normally meet on
Fridays, and the last Monday of the term is to be
used for Friday classes, the last meeting of this
class will be on Wednesday, April 21.
11 Jan. A final examination will be given
at the officially scheduled time, Thursday,
May 6, 2:00 pm. Those enrolled under the
graduate number CPSC 567b are also expected to take
the final exam. Please take
this into account when making your end-of-term travel
plans. I do not plan to give an early exam
for the convenience of those who want to leave campus