암호 기술의 기초와 응용

대칭 키 암호 중 블록 암호와 스트림 암호의 차이에 대한 설명으로 올바른 것은?

  1. A블록 암호는 공개 키와 개인 키의 쌍을 사용하는 공개 키 암호의 일종이며, 스트림 암호만 대칭 키 암호로 분류된다
  2. B블록 암호는 정해진 길이의 블록 단위로 변환하고, 스트림 암호는 키 스트림을 평문에 조금씩 XOR한다
  3. C스트림 암호는 키를 사용하지 않고 데이터를 재배열하기만 하는 방식으로, 암호문으로부터 누구나 평문으로 되돌릴 수 있다
정답과 해설 보기

정답: B. 블록 암호는 정해진 길이의 블록 단위로 변환하고, 스트림 암호는 키 스트림을 평문에 조금씩 XOR한다

블록 암호는 AES처럼 정해진 길이(AES에서는 128비트)의 블록을 키에 따라 다른 블록으로 변환합니다. 긴 데이터는 블록 암호 운용 모드를 사용해 블록 변환을 조합하여 암호화합니다. 스트림 암호는 키와 논스로부터 의사 난수인 키 스트림을 만들고, 평문과 1비트나 1바이트씩 XOR합니다. ChaCha20이 대표적이며, 블록 암호도 CTR 모드로 사용하면 스트림 암호와 같은 방식으로 동작합니다.

이 분야 연습하기 분야로 돌아가기

암호 기술의 기초와 응용의 다른 문제

  1. 현재 널리 쓰이는 블록 암호 AES의 블록 길이와 키 길이의 조합으로 올바른 것은?
  2. 이미지 데이터를 AES의 ECB 모드로 암호화했더니, 암호화한 후의 이미지에서도 원래 그림의 윤곽을 알아볼 수 있었다. 이 원인으로 올바른 것은?
  3. AES를 CBC 모드로 사용할 때 초기화 벡터(IV)의 취급으로 적절한 것은?
  4. AES(블록 길이 16바이트)를 CBC 모드로 사용하고, 패딩에는 PKCS#7 방식을 사용한다. PKCS#7 방식에서는 부족한 바이트 수를 n이라 할 때 값이 n인 바이트를 n개 덧붙이며, 평문의 길이가 정확히 16의 배수일 때도 값이 16인 바이트를 16개 덧붙인다. 96바이트의 평문을 암호화했을 때 암호문의 길이(IV는 포함하지 않음)는?
  5. CBC 모드로 암호화한 데이터를 받는 서버가, 복호화한 후의 패딩이 올바르지 않을 때와 패딩은 올바르지만 내용 검사에 실패했을 때 서로 다른 오류를 돌려주고 있었다. 이 상황에 대한 설명으로 올바른 것은?