암호화의 이해 : AES, 블록 암호 운영 모드, 패딩 모드 간단 용어 정리

LeeYulhee·2023년 12월 22일
0

👉 AES 알고리즘 : 보안 수준별 암호화 방식


  • 설명
    • AES (Advanced Encryption Standard)는 대칭키 암호화 알고리즘
    • 같은 키를 암호화와 복호화에 사용
  • 종류
    • AES128
      • 128비트(16바이트) 키를 사용
      • AES 알고리즘 중 가장 기본적이며, 빠른 처리 속도와 충분한 보안성을 제공
    • AES192
      • 192비트(24바이트) 키를 사용
      • AES128보다 더 강력한 보안을 제공하지만, 처리 속도는 약간 느려질 수 있음
    • AES256
      • 256비트(32바이트) 키를 사용
      • AES 알고리즘 중 가장 강력한 보안을 제공하지만, 처리 속도는 상대적으로 느림
      • 높은 보안 요구 사항을 가진 시스템에 주로 사용
  • 참고하기 좋은 사이트
    📌 AES 암호 알고리즘(Advanced Encryption Standard)




👉 블록 암호 운영 모드 : 다양한 암호화 접근법


  • 설명
    • 암호화 프로세스에서 데이터 블록이 처리되는 방식을 정의
  • 종류
    • CBC (Cipher Block Chaining)
      • 각 블록의 암호화가 이전 블록의 암호화 결과에 의존
      • 첫 번째 블록은 초기화 벡터(IV)와 XOR 연산된 후 암호화
      • 이렇게 연쇄적으로 데이터를 암호화하는 방식은 패턴을 숨기는 데 도움
    • ECB (Electronic Codebook)
      • 가장 기본적인 운영 모드로, 각 블록을 독립적으로 암호화
      • 패턴이 보존되는 단점이 있어 보안성이 낮음
    • CFB (Cipher Feedback)
      • 스트림 암호처럼 작동하며, 데이터를 블록 크기보다 작은 단위로 처리할 수 있음
    • OFB (Output Feedback)
      • CFB와 유사하지만, 입력 데이터 대신 암호화된 블록을 피드백으로 사용
      • 오류 전파가 없는 장점이 있음
    • CTR (Counter)
      • 카운터 값을 암호화한 후 이를 데이터와 XOR 연산
      • 병렬 처리가 가능하며, 임의 접근이 가능



👉 패딩 모드 : 암호화 데이터의 완성도를 높이는 기술


  • 설명
    • 패딩은 암호화할 데이터가 블록 크기와 정확히 맞지 않을 때 사용
  • 종류
    • NoPadding
      • 데이터가 블록 크기와 정확히 일치할 경우 사용되며, 추가적인 패딩을 하지 않음
      • 이 경우, 입력 데이터는 블록 크기의 정확한 배수여야 함
    • PKCS7
      • 데이터의 길이가 블록 크기의 정수 배수가 되도록 패딩을 추가
      • 패딩된 바이트의 각 값은 추가된 패딩 바이트의 총 수
    • ISO10126
      • 블록의 마지막 바이트에 패딩된 바이트 수를 저장하고, 나머지는 무작위 값으로 채움
    • ZeroPadding
      • 블록 크기에 맞추기 위해 0값을 추가
      • 원본 데이터에 0값이 없는 경우에 적합



👉 암호화 데이터의 표현 방식 : HexString, Base64, Binary


  • HexString
    • 16진수 형태로 데이터를 표현하는 문자열
    • 암호화된 데이터는 종종 바이너리 형태로 존재하는데, 이를 인쇄 가능한 형태로 표현하기 위해 HexString 형태로 변환
    • 각 바이트는 두 자리의 16진수로 표현
  • Base64 인코딩
    • 64개의 인쇄 가능한 문자를 사용해 바이너리 데이터를 표현
    • 데이터의 크기가 약 33% 증가
  • Binary 형식
    • 원시 바이너리 데이터 그대로를 사용
    • 이 형식은 파일이나 네트워크 전송에 직접 사용될 수 있지만, 인쇄나 화면 표시에는 적합하지 않음
profile
끝없이 성장하고자 하는 백엔드 개발자입니다.

0개의 댓글