암호학

암호학 및 컴퓨터보안#2

june__Park 2022. 5. 16. 20:44

암호
• 암호학 - 정보의 기밀성 및/또는 신뢰성을 보장하기 위한 기술에 대한 연구인 "비밀 코드"를 

   만들고 해독하는 기술과 과학은 암호학과 암호 분석을 모두 포함한다.
   • 암호학 - "비밀 코드"를 만드는 것으로, 숨겨진 글을 의미하며, 암호화를 사용하여 텍스트를 숨기는 관행을 말한다.
   • 암호화 분석 - 암호화 및 암호화된 메시지를 연구하여 "비밀 코드"를 해독하여 숨겨진 의미를 찾기를 바란다.

 

기본 용어
• Plaintext - 원본 메시지 M, P
• Ciphertext - 암호화된 메세지
• Cipher - 이해할 수 있는 메시지를 이해할 수 없는 메시지로 변환하는 알고리즘
• Key - 발신자 및 수신자 K에만 알려진 암호에서 사용되는 일부 중요한 정보
• Encrypt(Encipher) - 암호와 키를 사용하여 일반 텍스트를 암호 텍스트로 변환하는 프로세스, E
• Decrypt(Decipher) - 암호와 키를 사용하여 암호문을 일반 텍스트로 다시 변환하는 프로세스, D
• Correctness condition : ∀ Ek :M ->C and ∀ Dk :C ->M:
                       Dk(Ek(M)) = M, for ∀M, ∀K

 

암호 말하는 방법
• 암호 또는 암호 시스템은 일반 텍스트를 암호화하는 데 사용됩니다.
• 암호화 결과는 암호문입니다.
• 일반 텍스트를 복구하기 위해 암호문을 해독합니다.
• 키는 암호 시스템을 구성하는 데 사용됩니다.
• 대칭 키 암호 시스템은 암호 해독 시와 동일한 키를 사용합니다.
• 공개 키 암호 시스템은 암호화하기 위해 공개 키를 사용하고 개인 키는 암호화하기 위해 사용합니다.
암호 해독(또는 디지털 서명에 대한 개인 키 및 서명 확인에 대한 공개 키)

 

커크호프의 원리
• 기본 가정
• 시스템이 공격자에게 완전히 알려져 있습니다.
• 오직 열쇠만이 비밀이다.
• 즉, 암호 알고리즘은 비밀이 아닙니다.
• 이는 케르크호프의 원리(1883년 오귀스트 케르크호프)로 알려져 있다.
• 왜 이런 가정을 하는 걸까요?
   • 경험상 독점 알고리즘이 노출될 경우 취약하다는 것을 알 수 있습니다.
   • 독점 알고리즘이 절대 비밀로 유지되지 않음 

   • 약점을 사전에 찾는 것이 더 낫다

 

암호화 알고리즘 분류
• 암호화 알고리즘
   • 대칭(개인 키) 암호화 알고리즘 

      • 블록 암호
      • 스트림의 암호.
   • 공개 키(비대칭) 암호화 알고리즘 

   • 디지털 서명 알고리즘
   • 해시 함수

 

대칭 암호 모델
• 대칭 암호화 알고리즘은 송신자와 수신자가 공통 비밀 키를 공유하는 알고리즘이다.
• 기존의 모든 암호화 알고리즘은 비밀 키입니다.

 

비대칭 암호 모델
• 송신자와 수신자가 다른 키, (공용 키 및 개인 키)를 사용합니다.
• 발신인은 수신인의 공용 키를 사용하여 암호화하고 수신인은 개인 키를 사용하여 암호를 해독합니다.
• 또는 발신인은 개인 키를 사용하여 서명하고 수신인은 발신인의 공용 키를 사용하여 서명을 확인합니다.

 

무차별 공격
• 또는 완전한 키 검색
• 이론적으로 항상 모든 키를 간단히 사용해 볼 수 있습니다.
• 키 크기에 정비례하는 가장 기본적인 공격
• 일반 텍스트가 발견되었을 때 알거나 인식할 수 있다고 가정합니다.
• 가능한 작업 수에 대한 합리적인 가정을 표로 작성합니다. »

고대 암호
• 약 4000년의 역사를 가지고 있다.
• 고대 이집트인들은 기념물에 상형문자 몇 개를 부호화했다.
• 암호화된 유약을 만드는 공식을 사용한 메소포타미아 토기판
• 고대 히브리어들은 ATBASH 암호인 https://en.wikipedia.org/wiki/Atbash를 사용하여 경전의 특정 단어들을 암호화했다.
• 그리스의 글들은 비밀 글의 사용에 대한 최초의 논의를 보여준다.

 

고전 암호
• 두 가지 간단한 암호화 형식
• 하나의 편지가 다른 편지와 교환되는 대체물,
• 단일 알파벳 대체 - 메시지당 단일 암호 문자(일반 알파벳에서 암호 알파벳으로 매핑)가 사용됩니다.
• 다발성 치환 - 관련된 단성 치환 규칙이 사용됩니다. 키는 지정된 변환에 대해 선택된 특정 규칙을 결정합니다.
• https://en.wikipedia.org/wiki/Substitution 암호
• 그리고 글자의 순서가 뒤바뀌는 전치.

 

허용 가능한 문자
• 허용 가능한 알파벳은 일반 텍스트와 암호 텍스트를 모두 포함하는 유한 요소 집합입니다. 허용되는 알파벳은 일반 텍스트와 암호 텍스트에 대해 다를 수 있습니다.
• 일반 텍스트(열린) 알파벳, 암호 텍스트(암호) 알파벳, • 공백 없는 영어 알파벳,
• 공백이 있는 영어 알파벳,
• {0,1},
• ...

 

Caesar Cipher
2000년 전에 줄리어스 시저는 간단한 단문자 치환 암호를 사용하였다.
C = L FDPH VDZ L FRQTXHUHG
M= I CAME I SAW I CONQUERED
는 이 매핑(또는 변환 알파벳)을 다음과 같이 설명할 수 있다.
Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ 

Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC

 

시프트 암호
• 시저 암호 일반(일반화된 시저 암호)
• https://en.wikipedia.org/wiki/Caesar 암호
• 일반적으로 1에서 25까지의 변속을 사용할 수 있습니다.
• 즉, 메시지의 각 문자를 일정한 거리 떨어진 문자로 대체한다.
• 일반 텍스트 A가 매핑하는 문자로 키 문자를 지정합니다(예: F의 키 문자 평균).
• 지도 F, B to G...YtoD,ZtoE
• 글자를 다섯 자리 옮기다.
• 그러므로 26개의 (25개의 유용한) 암호를 갖는다.

 

• 시프트 암호
• 알파벳은 공백없이 'A'=0, 'B'=1, ..., 'Z'=25 • M=C=K={0, 1, 2, ..., 25},
• m, c, k²{0, 1, ..., 25},
• ek(m)=(m+k) 모드 26,
• dk(c)=(c-k) 모드 26
• 시저 암호는 k=3인 시프트 암호이다.