Home > CS178 > Homework 1

> I am thoroughly frustrated with this problem. I wrote a program and have
> tried about 10+ words with every space combination possible and none of them
> have worked. So either my program isn't working, which is possible or I
> haven't a clue what word I should use.
> If one of the follow words is present please let me know, so I can try to
> fix my program:
> hellman
> diffie_and_hellman
> cryptograph or cryptography
> parameter
> encryption
> asymmetric
> communication
> adminstrator
> mathematic
> key_encryption
> symmetric
> If none of those words are present than please let me know also, and I will
> look up some more sites on diffie & hellman.

You're on the right track.

I found the following cribs:


assuming that you're doing case insensitive comparisons.


_symmetric_ is better than symmetric (pad with spaces to lengthen
your crib).

Also some people use the word cipher instead of crypt (e.g. encipher). 

> what kind of work you want us to show.
> for 1.1 we show no work , we just write the program

That's right.

> 1.2  Do you want to see what cribs we choose to look for ( this way we would get the points)?

As I think I mentioned in section, choose two to three good cribs (meaning
cribs of reasonable length in which all subcribs are found) and for
each list the crib, the subcribs, and a "valid" sequence of subcribs along
with their position and {delta} position values as shown in the reader
and in section.

> 1.3 we just need to give the correct transposition (right)

Showing some work would be good.  For example, how did you deduce the
permutation?  How did you eliminate some of the bad permutations?

> Another question that i have  , do we need to write our code to show work or just explain how our program works.

The program can have as little or as much output and documentation as you
want.  You do not have to turn in your code.  One way is to write your
program to display things nicely then you can cut and paste the
submissions into your homework, add some explanations, and turn it in.

> Or what exactly our program suppose to do (only look for cribs or the whole thing until we have the correct transposition)

I actually wrote two programs and did some of the work by hand. Since you
don't need to turn in the code, you can do any combination of coding and
written work that you want.  The goal is to get the answer.

> Can we have our program search for cribs and get the width right  and then do the rest on paper by hand?


> please let me know what exactly you want us to do and what we need to do to get full credit.

If something is still unclear feel free to send more mail.

> and how do i get the original text when i know the transposition?

If you are given

  ciphertext=  lhayl___?Hooroe,weu
and you find

  length=      19
  N=           4
  permutation= 3201
then you also know there are

  3 long columns of length 5
  1 short column of length 4
Simply fill in the blank columns.  We know the first column read out is
column 3.  Since that's the last column, we know it's short, so the first
4 chars belong in column 3.  The next 5 characters must be column 2, etc.

   |    |    |    |  
   |    |    |    `- Column 1
   |    |    `- Column 0
   |    `- Column 2
   `- Column 3
You can then recover the matrix

or just print it out as one big string.

Top | Home > CS178 > Homework 1