ariago - go로 ARIA 암호화 / 복호화하기
오늘 소개드릴 것은 KISA 에서 C로 만든 ARIA ECB Mode 구현을 go로 포팅한 녀석입니다.
참고로 현재 256bit 키를 지원하고, ECB 모드만 지원합니다.
이용 방법은 간합니다.
위 링크에서 ariago 소스코드를 go get을 이용해 받으시고 import 합니다.
MakeARIA()를 호출해서 ariago 인스턴스를 생성하면서 운용 모드를 지정합니다. (ECB 모드만 구현했습니다)
ariago 인스턴스 생성 예
aria := ariago.MakeARIA(ariago.ARIA_MODE_ECB)
if aria == nil {
// Error
return
}
암/복호화 키를 지정합니다. 키는 []byte, string 형태로 지정 가능합니다. (256bit 이내)
[]byte 로 키 지정하는 예
var masterKey = []byte{
0x12, 0x15, 0x54, 0x00, 0x1F, 0x87, 0xFC, 0x2E,
0x8B, 0x60, 0x01, 0x4D, 0x54, 0xA9, 0x88, 0x37,
0xAA, 0x3C, 0x4E, 0x07, 0x74, 0xD8, 0xE1, 0x5B,
0x1E, 0x28, 0xC9, 0x2F, 0x18, 0x49, 0xC7, 0x92,
}
if aria.SetMasterKeyWithByte(masterKey) == false {
// Error
return
}
string 으로 키 지정하는 예
masterKey := "This is my Secret Key."
if aria.SetMasterKeyWithString(masterKey) == false {
// Error
return
}
이제 암호화 또는 복호화를 할 수 있습니다. []byte 형태로 데이터를 전달합니다.
암호화 예
// 원본 문자열
originalText := "hello world!! this is a plain text"
// 암호화!
encryptedData := aria.Encrypt([]byte(originalText))
복호화 예
// 암호화되어 있는 []byte 형태의 encryptedData를 복호화!
decryptedData := aria.Decrypt(encryptedData)
끝입니다~ 간단하죠? :)
Written on March 4, 2016