mcrypt 라이브러리에 따라서 지원 알고리즘이 다를 수 있음.
#참고
0으로 나온건 동작시 에러나서 테스트가 안된것.(arcfour,enigma)
rijndael-128 = AES-128, key 는 16byte (128bit)함수가 잘못된듯
rijndael-192 = AES-192, key 는 24byte (192bit)함수가 잘못된듯
rijndael-256 = AES-256, key 는 32byte (256bit)함수가 잘못된듯
실험 Data의 길이는 block 의 0.5~3배로 0.5씩 증가시켜서 테스트
cbc 모드로만 테스트
mcrypt 라이브러리에 따라서 지원 알고리즘이 다를 수 있음.
key의 길이는 모듈에서 지원하는 최대 길이를 나타내는것 같음. 실제 사용시는 규격을 찾아서 사용하길 바람.
## 결과
# arcfour
key : 0bit (Byte), iv : 0bit (Byte), Block : 0bit (Byte)
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
-------------
# blowfish
key : 448bit (56Byte), iv : 64bit (8Byte), Block : 64bit (8Byte)
Data : 4byte => enced : 8byte
Data : 8byte => enced : 8byte
Data : 12byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 20byte => enced : 24byte
Data : 24byte => enced : 24byte
-------------
# blowfish-compat
key : 448bit (56Byte), iv : 64bit (8Byte), Block : 64bit (8Byte)
Data : 4byte => enced : 8byte
Data : 8byte => enced : 8byte
Data : 12byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 20byte => enced : 24byte
Data : 24byte => enced : 24byte
-------------
# cast-128
key : 128bit (16Byte), iv : 64bit (8Byte), Block : 64bit (8Byte)
Data : 4byte => enced : 8byte
Data : 8byte => enced : 8byte
Data : 12byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 20byte => enced : 24byte
Data : 24byte => enced : 24byte
-------------
# cast-256
key : 256bit (32Byte), iv : 128bit (16Byte), Block : 128bit (16Byte)
Data : 8byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 24byte => enced : 32byte
Data : 32byte => enced : 32byte
Data : 40byte => enced : 48byte
Data : 48byte => enced : 48byte
-------------
# des
key : 64bit (8Byte), iv : 64bit (8Byte), Block : 64bit (8Byte)
Data : 4byte => enced : 8byte
Data : 8byte => enced : 8byte
Data : 12byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 20byte => enced : 24byte
Data : 24byte => enced : 24byte
-------------
# enigma
key : 0bit (Byte), iv : 0bit (Byte), Block : 0bit (Byte)
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
-------------
# gost
key : 256bit (32Byte), iv : 64bit (8Byte), Block : 64bit (8Byte)
Data : 4byte => enced : 8byte
Data : 8byte => enced : 8byte
Data : 12byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 20byte => enced : 24byte
Data : 24byte => enced : 24byte
-------------
# loki97
key : 256bit (32Byte), iv : 128bit (16Byte), Block : 128bit (16Byte)
Data : 8byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 24byte => enced : 32byte
Data : 32byte => enced : 32byte
Data : 40byte => enced : 48byte
Data : 48byte => enced : 48byte
-------------
# rc2
key : 1024bit (128Byte), iv : 64bit (8Byte), Block : 64bit (8Byte)
Data : 4byte => enced : 8byte
Data : 8byte => enced : 8byte
Data : 12byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 20byte => enced : 24byte
Data : 24byte => enced : 24byte
-------------
# rijndael-128
key : 256bit (32Byte), iv : 128bit (16Byte), Block : 128bit (16Byte)
Data : 8byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 24byte => enced : 32byte
Data : 32byte => enced : 32byte
Data : 40byte => enced : 48byte
Data : 48byte => enced : 48byte
-------------
# rijndael-192
key : 256bit (32Byte), iv : 192bit (24Byte), Block : 192bit (24Byte)
Data : 12byte => enced : 24byte
Data : 24byte => enced : 24byte
Data : 36byte => enced : 48byte
Data : 48byte => enced : 48byte
Data : 60byte => enced : 72byte
Data : 72byte => enced : 72byte
-------------
# rijndael-256
key : 256bit (32Byte), iv : 256bit (32Byte), Block : 256bit (32Byte)
Data : 16byte => enced : 32byte
Data : 32byte => enced : 32byte
Data : 48byte => enced : 64byte
Data : 64byte => enced : 64byte
Data : 80byte => enced : 96byte
Data : 96byte => enced : 96byte
-------------
# safer-sk128
key : 128bit (16Byte), iv : 64bit (8Byte), Block : 64bit (8Byte)
Data : 4byte => enced : 8byte
Data : 8byte => enced : 8byte
Data : 12byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 20byte => enced : 24byte
Data : 24byte => enced : 24byte
-------------
# safer-sk64
key : 64bit (8Byte), iv : 64bit (8Byte), Block : 64bit (8Byte)
Data : 4byte => enced : 8byte
Data : 8byte => enced : 8byte
Data : 12byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 20byte => enced : 24byte
Data : 24byte => enced : 24byte
-------------
# saferplus
key : 256bit (32Byte), iv : 128bit (16Byte), Block : 128bit (16Byte)
Data : 8byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 24byte => enced : 32byte
Data : 32byte => enced : 32byte
Data : 40byte => enced : 48byte
Data : 48byte => enced : 48byte
-------------
# serpent
key : 256bit (32Byte), iv : 128bit (16Byte), Block : 128bit (16Byte)
Data : 8byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 24byte => enced : 32byte
Data : 32byte => enced : 32byte
Data : 40byte => enced : 48byte
Data : 48byte => enced : 48byte
-------------
# threeway
key : 96bit (12Byte), iv : 96bit (12Byte), Block : 96bit (12Byte)
Data : 6byte => enced : 12byte
Data : 12byte => enced : 12byte
Data : 18byte => enced : 24byte
Data : 24byte => enced : 24byte
Data : 30byte => enced : 36byte
Data : 36byte => enced : 36byte
-------------
# tripledes
key : 192bit (24Byte), iv : 64bit (8Byte), Block : 64bit (8Byte)
Data : 4byte => enced : 8byte
Data : 8byte => enced : 8byte
Data : 12byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 20byte => enced : 24byte
Data : 24byte => enced : 24byte
-------------
# twofish
key : 256bit (32Byte), iv : 128bit (16Byte), Block : 128bit (16Byte)
Data : 8byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 24byte => enced : 32byte
Data : 32byte => enced : 32byte
Data : 40byte => enced : 48byte
Data : 48byte => enced : 48byte
-------------
# wake
key : 0bit (Byte), iv : 0bit (Byte), Block : 0bit (Byte)
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
Data : 0byte => enced : 0byte
-------------
# xtea
key : 128bit (16Byte), iv : 64bit (8Byte), Block : 64bit (8Byte)
Data : 4byte => enced : 8byte
Data : 8byte => enced : 8byte
Data : 12byte => enced : 16byte
Data : 16byte => enced : 16byte
Data : 20byte => enced : 24byte
Data : 24byte => enced : 24byte
-------------