ariago - go로 ARIA 암호화 / 복호화하기

오늘 소개드릴 것은 KISA 에서 C로 만든 ARIA ECB Mode 구현을 go로 포팅한 녀석입니다.

Source Code

참고로 현재 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