Skip to content

Example project for a Hill Cipher algorithm with a Matrix under the Z26 field implementation.

License

Notifications You must be signed in to change notification settings

tobiasbriones/ep-hill-cipher-mat26

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Example Project: Hill Cipher Mat26

Project   GitHub Repository

GitHub Project License

Example project for a Hill Cipher algorithm with a Matrix under the Z26 field implementation.

In short:

  • You can check out the test file to understand the concepts implemented into this source files.

  • There is an implementation of a SquareMatrix which is a normal square matrix with common operations, and a subclass of this matrix which is a SquareMatrix26 which works under the field Z26.

  • The Alphabet26 struct helps the algorithm to be computed by providing the English alphabet of 26 characters (A-Z). As you know, the character "A" in ASCII has the decimal value of 65 so that this struct is a representation of the integers modulo 26 (Z26).

  • Finally, there is the HillCipher implementation made possible by the aforementioned tools.

The program is executed and reads the text file (dec.txt) which contains a message that can be encrypted, and saved into the other file (enc.txt), then it reads the other file (enc.txt), decrypts the secret message and saves it into the dec.txt file. Also, notice that the key is set to the algorithm prior to proceeding to encrypt or decrypt.

More work that can be done on this program is to add more operator overloading and tests to verify if everything is working fine.

Additionally, I got this project ep-cryptosystems implemented in Go for computing classical cryptosystem algorithms.

Contact

This project: Repository

Tobias Briones: GitHub

Example Project: App

About

Example Project: Hill Cipher Mat26

Example project for a Hill Cipher algorithm with a Matrix under the Z26 field implementation.

Copyright © 2021 Tobias Briones. All rights reserved.

License

This project is licensed under the MIT License.