Skip to content

PHP Implementation of AES encryption in CTR mode (128-bit AES, 192-bit AES, or 256-bit AES)

License

Notifications You must be signed in to change notification settings

spencer-mortensen/AES-CTR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

See the file "index.php" for a working example.

OVERVIEW

AES (Advanced Encryption Standard) is a cipher adopted by the U.S. government
for its classified documents. It's secure (all known attacks are computationally
infeasible), and fast in both hardware and software.

CTR (Counter) mode is a cryptographic mode that converts a block cipher like AES
into a stream cipher that can be used on any stream of data with arbitrary length.
CTR mode has a particularly elegant implementation, and has been widely adopted.


CHOOSING AN AES ENCRYPTION KEY:

Before you can encrypt/decrypt messages, you'll need an encryption key.
AES supports encryption keys with three lengths, corresponding to increasing
levels of security.

NSA rating:   key length:            example key:
SECRET        128 bits (16 bytes*)   aN-zx:+_z)UP[`vz
TOP SECRET    192 bits (24 bytes)    Thl\TFvON6J"sb\(VGhw@gTr
TOP SECRET    256 bits (32 bytes)    V<||5DK7KdRYyBLEtY^w~0yk1"#NCZ|N

* In general: 1 byte = 1 ASCII character.

The Gibson Research Corporation provides an online tool that generates
cryptographically-strong (maximum entropy) keys:
https://www.grc.com/passwords.htm


FUTHER READING:

AES encryption:
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.79.1353&rep=rep1&type=pdf
http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf

Counter (CTR) mode:
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29

About

PHP Implementation of AES encryption in CTR mode (128-bit AES, 192-bit AES, or 256-bit AES)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages