Items tagged with cryptology

Feed
I have to crypt and decrypt with vigenere.

(procedures need lists)

"In a Caesar cipher, each letter of the alphabet is shifted along some number of places; for example, in a Caesar cipher of shift 3, A would become D, B would become E, Y would become B and so on. The Vigenère cipher consists of several Caesar ciphers in sequence with different shift values.

To encrypt, a table of alphabets can be used, termed a tabula recta, Vigenère square, or Vigenère table. It consists of the alphabet written out 26 times in different rows, each alphabet shifted cyclically to the left compared to the previous alphabet, corresponding to the 26 possible Caesar ciphers. At different points in the encryption process, the cipher uses a different alphabet from one of the rows. The alphabet used at each point depends on a repeating keyword.[citation needed]

For example, suppose that the plaintext to be encrypted is:

ATTACKATDAWN
The person sending the message chooses a keyword and repeats it until it matches the length of the plaintext, for example, the keyword "LEMON":

LEMON
Each row starts with a key letter. The remainder of the row holds the letters A to Z (in shifted order). Although there are 26 key rows shown, you will only use as many keys (different alphabets) as there are unique letters in the key string, here just 5 keys, {L, E, M, O, N}. For successive letters of the message, we are going to take successive letters of the key string, and encipher each message letter using its corresponding key row. Choose the next letter of the key, go along that row to find the column heading that matches the message character; the letter at the intersection of [key-row, msg-col] is the enciphered letter.

For example, the first letter of the plaintext, A, is paired with L, the first letter of the key. So use row L and column A of the Vigenère square, namely L. Similarly, for the second letter of the plaintext, the second letter of the key is used; the letter at row E and column T is X. The rest of the plaintext is enciphered in a similar fashion:

Plaintext:	ATTACKATDAWN
Key:	LEMON
Ciphertext:	LXFOPVEFRNHR
Decryption is performed by going to the row in the table corresponding to the key, finding the position of the ciphertext letter in this row, and then using the column's label as the plaintext. For example, in row L (from LEMON), the ciphertext L appears in column A, which is the first plaintext letter. Next we go to row E (from LEMON), locate the ciphertext X which is found in column T, thus T is the second plaintext letter."

I think that it can be done with a for loop but I do not know where to start.

Thanks in advance!

Hi I was wondering if anyone can help me with the following procedure, i am trying to write a procedure that can encrypt/decrypt messages encrypted using the method of ELGamal my current procedure runs but it takes too long to compute, and it can only decrypt.
 

 


My procedure is as follows:

   


my procedure for part c is as follows it seems to run but it takes a long time to carry out the procedure when i try to decrypt.


               Elgamal := proc (ciphy, hkt, p, a, b)
               local i, icdarray, s, q;
                 icdarray := Array(5 .. 388);
                   for i from 5 to 388 do 
                   s := ciphy[i];
                   q := `mod`(1/hkt^proc3(a, b, p), p);
                   icdarray[i] := s*q;
                   end do;
                   return convert(icdarray, bytes);
                  end proc;

where proc3 is as follows

                      proc3 := proc (alpha, beta, p)
                   local k, R, i, j, N, A, t;
               Description "baby step giant step procedure";
                 N := floor(sqrt(p-1))+1;
                 A := Array(0 .. N);
                 for j from 0 to N do
                 A[j] := `mod`(alpha&^j, p);
                end do;
          for i from 0 to N do
             t := `mod`(beta*alpha&^(-N*i), p);
            for k from 0 to N do
            if t = A[k]
           then return k+N*i;
         end if; 
         end do; 
           end do; 
         end proc;

                      header := 9681348997

ciphertext: 
[12432485341, 2579085006, 13736574369, 4105371047, 9573017222, 

  7824534168, 10017411248, 13292180343, 2356887993, 9573017222, 

  10017411248, 13765667419, 9795214235, 10017411248, 2801282019, 

  608404939, 4105371047, 13765667419, 11572790339, 13765667419, 

  11765894302, 10017411248, 13765667419, 4549765073, 10017411248, 

  13736574369, 2579085006, 4549765073, 10017411248, 4549765073, 

  13765667419, 2801282019, 830601952, 4105371047, 10017411248, 

  7824534168, 13765667419, 13736574369, 2801282019, 7824534168, 

  10017411248, 830601952, 9573017222, 4327568060, 13765667419, 

  6076051114, 8268928194, 13292180343, 10017411248, 7824534168, 

  386207926, 2801282019, 4105371047, 2579085006, 6076051114, 

  608404939, 13765667419, 6076051114, 830601952, 13765667419, 

  4105371047, 11765894302, 10017411248, 13765667419, 13292180343, 

  13736574369, 10017411248, 608404939, 10017411248, 7824534168, 

  2134690980, 13765667419, 4105371047, 11765894302, 2801282019, 

  4105371047, 13765667419, 2579085006, 608404939, 13292180343, 

  11543697289, 2579085006, 7824534168, 10017411248, 4549765073, 

  13765667419, 4994159099, 5853854101, 6076051114, 830601952, 

  4327568060, 6076051114, 5853854101, 10017411248, 7824534168, 

  13765667419, 4105371047, 6076051114, 13765667419, 9573017222, 

  13292180343, 10017411248, 13765667419, 4105371047, 11765894302, 

  10017411248, 13765667419, 5853854101, 6076051114, 7824534168, 

  4549765073, 13765667419, 11572790339, 13765667419, 4105371047, 

  11765894302, 2801282019, 4105371047, 13765667419, 4105371047, 

  11765894302, 10017411248, 13765667419, 4327568060, 2801282019, 

  608404939, 4549765073, 13292180343, 13736574369, 2801282019, 

  11543697289, 10017411248, 13765667419, 5853854101, 2801282019, 

  13292180343, 13765667419, 11765894302, 6076051114, 7824534168, 

  7824534168, 2579085006, 8268928194, 4327568060, 2134690980, 

  13765667419, 11543697289, 7824534168, 10017411248, 13736574369, 

  2579085006, 11543697289, 2579085006, 4105371047, 6076051114, 

  9573017222, 13292180343, 2385981043, 13765667419, 3245676045, 

  9573017222, 2801282019, 2579085006, 608404939, 4105371047, 

  6105144164, 13765667419, 5853854101, 11765894302, 10017411248, 

  608404939, 13765667419, 9573017222, 13292180343, 10017411248, 

  4549765073, 13765667419, 4105371047, 6076051114, 13765667419, 

  4549765073, 10017411248, 13292180343, 13736574369, 7824534168, 

  2579085006, 8268928194, 10017411248, 13765667419, 4105371047, 

  11765894302, 10017411248, 13765667419, 6076051114, 13736574369, 

  13736574369, 2801282019, 13292180343, 2579085006, 6076051114, 

  608404939, 2801282019, 4327568060, 13765667419, 386207926, 

  2579085006, 4327568060, 4327568060, 2801282019, 6298248127, 

  10017411248, 13765667419, 4105371047, 11765894302, 7824534168, 

  6076051114, 9573017222, 6298248127, 11765894302, 13765667419, 

  5853854101, 11765894302, 2579085006, 13736574369, 11765894302, 

  13765667419, 4105371047, 11765894302, 10017411248, 2134690980, 

  13765667419, 11543697289, 2801282019, 13292180343, 13292180343, 

  10017411248, 4549765073, 6105144164, 13765667419, 9795214235, 

  10017411248, 2801282019, 608404939, 4105371047, 13765667419, 

  830601952, 10017411248, 386207926, 10017411248, 7824534168, 

  11572790339, 7824534168, 2579085006, 4549765073, 4549765073, 

  10017411248, 608404939, 13765667419, 2801282019, 608404939, 

  4549765073, 13765667419, 4105371047, 9573017222, 9795214235, 

  8268928194, 4327568060, 10017411248, 4549765073, 6076051114, 

  5853854101, 608404939, 2385981043, 13765667419, 4994159099, 

  5853854101, 6076051114, 830601952, 4327568060, 6076051114, 

  5853854101, 10017411248, 7824534168, 13765667419, 5853854101, 

  2801282019, 13292180343, 13765667419, 2801282019, 13765667419, 

  4105371047, 6076051114, 9573017222, 7824534168, 2579085006, 

  13292180343, 4105371047, 6105144164, 13765667419, 4105371047, 

  11765894302, 10017411248, 13765667419, 830601952, 2579085006, 

  7824534168, 13292180343, 4105371047, 13765667419, 10017411248, 

  386207926, 10017411248, 7824534168, 13765667419, 13292180343, 

  10017411248, 10017411248, 608404939, 13765667419, 6076051114, 

  608404939, 13765667419, 4105371047, 11765894302, 10017411248, 

  13765667419, 5438553125, 2579085006, 13292180343, 13736574369, 

  5853854101, 6076051114, 7824534168, 4327568060, 4549765073, 

  2385981043, 13765667419, 4994159099, 6076051114, 9573017222, 

  7824534168, 2579085006, 13292180343, 4105371047, 6105144164, 

  13765667419, 8713322220, 2579085006, 608404939, 13736574369, 

  10017411248, 5853854101, 2579085006, 608404939, 4549765073, 

  13765667419, 11765894302, 2801282019, 4549765073, 13765667419, 

  4549765073, 10017411248, 13736574369, 2579085006, 4549765073, 

  10017411248, 4549765073, 6105144164, 13765667419, 9795214235, 

  10017411248, 2801282019, 608404939, 4105371047, 13765667419, 

  8075824231, 2579085006, 4549765073, 2579085006, 6076051114, 

  4105371047, 8075824231, 2385981043]


  [1]: https://i.stack.imgur.com/xY3zd.png
  [2]: https://i.stack.imgur.com/0eYFM.png
  [3]: https://i.stack.imgur.com/PMk7s.png

Page 1 of 1