Skip to content

VHDL Hill Cipher implementation, encrypts and decrypts 3 input values

Notifications You must be signed in to change notification settings

scarter93/Hill-Cipher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hill-Cipher

VHDL

##Description

The Hill Cipher uses linear transforms to encrypt and decrypt values, in this case three values. The system uses a key loader module to load the encryption key, a key inverter to generate a descryption key, a multiplexer to select encrypt or decrypt mode, and finally a matrix multiplier to actually perform the encryption/decryption.

##Known Issues

Currently the key inverter is not fully pipelined, meaning that the next value to be inverted can't be loaded on the next clock edge. This is something that can be improved although the pipeline is still quite effective.

##Operation

A key must be loaded (one column at a time), done by keeping the load_key signal high while inputing values. Once this is done, encryption can be done after a clock cycle, but decryption should wait approximately 6/7 clock cycles for generation of the key. When loading a key, some garbage output will displayed this can be ignored as it due the fact input is being loaded while there is an old key still in the system.

##Questions?

Feel free to reach me at [email protected]

About

VHDL Hill Cipher implementation, encrypts and decrypts 3 input values

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages