crypto-classical-0.3.0: An educational tool for studying classical cryptography schemes.

Copyright(c) Colin Woodbury 2015 - 2020
LicenseBSD3
MaintainerColin Woodbury <colin@fosskers.ca>
Safe HaskellNone
LanguageHaskell2010

Crypto.Classical.Cipher.Vigenere

Description

 
Synopsis

Documentation

newtype Vigenère a Source #

A Vigenère Cipher is just a Stream Cipher with a finite key, shorter than the length of the plaintext. The key is repeated for the entire length of the plaintext.

Constructors

Vigenère 

Fields

Instances
Monad Vigenère Source # 
Instance details

Defined in Crypto.Classical.Cipher.Vigenere

Methods

(>>=) :: Vigenère a -> (a -> Vigenère b) -> Vigenère b #

(>>) :: Vigenère a -> Vigenère b -> Vigenère b #

return :: a -> Vigenère a #

fail :: String -> Vigenère a #

Functor Vigenère Source # 
Instance details

Defined in Crypto.Classical.Cipher.Vigenere

Methods

fmap :: (a -> b) -> Vigenère a -> Vigenère b #

(<$) :: a -> Vigenère b -> Vigenère a #

Applicative Vigenère Source # 
Instance details

Defined in Crypto.Classical.Cipher.Vigenere

Methods

pure :: a -> Vigenère a #

(<*>) :: Vigenère (a -> b) -> Vigenère a -> Vigenère b #

liftA2 :: (a -> b -> c) -> Vigenère a -> Vigenère b -> Vigenère c #

(*>) :: Vigenère a -> Vigenère b -> Vigenère b #

(<*) :: Vigenère a -> Vigenère b -> Vigenère a #

Eq a => Eq (Vigenère a) Source # 
Instance details

Defined in Crypto.Classical.Cipher.Vigenere

Methods

(==) :: Vigenère a -> Vigenère a -> Bool #

(/=) :: Vigenère a -> Vigenère a -> Bool #

Show a => Show (Vigenère a) Source # 
Instance details

Defined in Crypto.Classical.Cipher.Vigenere

Cipher [ / 26] Vigenère Source # 
Instance details

Defined in Crypto.Classical.Cipher.Vigenere

vigKey :: ByteString -> [ / 26] -> [ / 26] Source #

Determine a Vigenère key from a Stream key. Weakness here: key length is a factor of the plaintext length.