임동문의 횡설수설

dmlim.egloos.com

포토로그


라이프로그


Oracle 에서 DES, Triple DES 의 적용 암호화

어제 영선 과장님이 오라클에서 Triple DES 로 암호화를 했는데, 자바로 암호화 한거랑 다르다는 거다

왜 다른지 물어보러 왔었는데, 알고보니 IV (Initial Vector) 값 때문이었다. DES, Triple DES, AES 류들은 모두 블럭 암호화 방식인데 이런 블럭 암호화 방식들은 암호화를 하기 위해서 암호화 키 말도고 필요한 몇가지가 있는데, 그런 것들을 파라미터라하고..

다음과 같은 파라미터를
  • Block Mode
  • Padding Mode
  • Initial Vector
  • Shift Bits
가지고 있다.

Block Mode

실 파라미터라기 보다는 알고리즘과 함쳐져서 하나의 알고리즘 이름 처럼 불리는 경우가 많다.
즉 예를 들어서
  • DES-ECB, DES-CBC, DES-CFB, DES-OFB
  • DES3-ECB, DES3-CBC, DES3-CFB, DES3-OFB
  • AES128-ECB, AES128-CBC, AES128-CFB, AES128-OFB
위와 같이 말이다... 블락 모드는 아래와 같다.
  • ECB : Eletric Code Book
  • CBC : Cipher Block Chain
  • OFB : Output Feed Back
  • CFB : Cipher Feed Back
Padding Mode

이건 블락 사이즈에 맞춰서 내용을 패딩할지 말지를 말하는데, PKCS#5 표준 패딩을 사용한다.

Initial Vector

ECB 모드를 제외한 나머지 알고리즘은 다음 블럭을 암호화 할 때 이전 블럭의 결과값 같은걸 XOR 하여 다시 한번 연산을 하는 방식인데, 이 경우 첫번째 블럭에서 이전 블럭의 결과값이 없기 때문에 임으로 암호화하는 쪽에서 값을 지정해야 한다, 암호화에서 사실 이 값은 노출이 되어도 별로 상관이 없다고 얘기를 한다.

Shift Bits

CFB 모드에서는 이전 블락을 연산할때 그냥 하는게 아니라 비트를 돌려서 하는 알고리즘을 가지고 있다. 그래서 그때 비트르 돌릴때 몇 비트식 돌릴지를 결정하는 파라미터 이다.

Oracle 에서도 암호화를 지원하는데 현재 DES, Triple DES 정도를 지원하고 있다. 그리고 도큐먼트에 특별히 다른 모드를 지정하는게 없는걸로 보아 CBC 모드 인것 같다.

아.. 더 작성할려 했는데 귀찮아 지려고 한다... 다음 번에 계속 해서...

핑백

덧글

  • 2007/10/15 20:35 # 답글 비공개

    비공개 덧글입니다.
  • 2007/10/15 20:36 # 삭제 답글 비공개

    비공개 덧글입니다.
댓글 입력 영역