맨위로가기

암호 (암호학)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

암호(cipher)는 정보를 숨기거나 보호하기 위해 사용되는 기술로, 어원은 아랍어 '사파르(sifr)'에서 유래되었다. 암호는 코드와 달리 글자나 비트와 같은 작은 단위에서 작동하며, 역사적으로는 카이사르 암호와 같은 고전 암호에서 비즈네르 암호와 같은 다중 치환 암호로 발전했다. 현대 암호는 키 유형(대칭/공개 키)과 데이터 유형(블록/스트림 암호)에 따라 분류되며, 키의 크기와 컴퓨팅 파워가 암호 해독의 난이도를 결정하는 중요한 요소이다.

2. 어원

"사이퍼(cipher)"는 원래 숫자 0을 의미하는 아랍어 단어 '사파르(صفر|sifrar)'에서 유래했다.[1] 이 단어는 중세 프랑스어 'cifre프랑스어'와 중세 라틴어 'cifra'를 거쳐 영어 'cipher'로 변화했다.

로마 숫자 체계에는 0의 개념이 없었기 때문에, 중세 유럽인들은 0을 나타내는 '사이퍼'라는 단어를 낯설고 혼란스럽게 여겼다. 그래서 '사이퍼'는 이해하기 어려운 말이나 비밀스러운 통신을 의미하는 단어로 사용되기 시작했다.[1]

시간이 지나면서 '사이퍼'는 숫자를 이용한 암호화 방식을 가리키는 말로 의미가 확장되었다.

2. 1. 유럽 각국 언어에서의 '사이퍼'

이전 시대에 "사이퍼(cipher)"는 숫자 0을 뜻했으며 어원도 같았다. 중세 프랑스어 cifre프랑스어중세 라틴어 cifra는 모두 아랍어에서 0을 뜻하는 사파르(wikt:صفر, sifr'')''에서 유래되었다. 이후 사이퍼(cipher)는 10진수 또는 모든 숫자를 뜻했다. 사이퍼(cipher)라는 단어가 암호화(encoding, encryption)를 의미하게 된 이유는 다음과 같은 이유가 있다.

  • 암호화에는 숫자들이 연계된 경우가 많았다.
  • 로마 숫자 체계에는 0의 개념이 없어, 당시 유럽인들은 사이퍼(cipher)라고 불리던 0의 개념을 혼란스러워했다. 그래서 "분명하게 말해. 사이퍼 같이 터무니 없는 말 하지말고" 와 같은 말을 했다.


이후 사이퍼는 뜻을 숨기거나 암호화의 뜻으로 사용되었다.

여러 유럽 언어에서 '사이퍼'는 숫자 또는 읽기 어려운 서명을 의미하는 단어로 사용된다.

  • 프랑스어 chiffre프랑스어는 이탈리아어 제로(zero)에서 가져왔다.[1]
  • 영어에서는 제로를 0으로 썼고, 사이퍼(cipher)는 사이퍼링(ciphering)이라는 컴퓨터 용어에서 가져왔다.[1]
  • 독일어는 ziffer(숫자)와 chiffre라는 단어를 사용했다.[1]
  • 네덜란드어 cijfer는 숫자를 나타낸다.[1]
  • 슬로바키아어 cifra는 숫자 개념으로 사용한다.[1]
  • 보스니아어, 크로아티아어, 세르비아어 cifra는 숫자를 나타낸다. cifra 외에도 broj라는 단어를 사용한다.[1]
  • 이탈리아어, 스페인어 cifra는 숫자를 나타낸다.[1]
  • 스웨덴어 siffra는 숫자를 나타낸다.[1]
  • 그리스어 τζίφρα(tzifra)는 읽기 힘든 서명, 특히 한 획으로 쓰여진 서명을 나타낸다.[1]


이브라힘 알 카디(Ibrahim Al-Kadi)는 아랍어 숫자 0인 사파르(sifr)가 유럽에서 암호화를 뜻하는 기술적인 용어로 발전했다고 결론을 내렸다.[7]

10진법 0과 새로운 수학이 아랍 세계에서 중세 유럽으로 퍼져 나감에 따라 사파르(sifr)와 제피로스(zephyrus)라는 단어는 특권층의 지식과 비밀코드를 뜻하기 시작했고, 나아가 계산을 뜻하는 의미도 되었다. 조르주 이프라(Georges Ifrah)에 따르면, 13세기 파리에서는 '가치없는 사람'을 '계산을 못하는(cifre en algorisme)'라는 단어로도 쓰였다.[8] 사이퍼(cipher)는 아랍어 사파르(sifr)의 유럽 발음이었으며 사이퍼(cipher)는 쉽게 이해할 수 없는 메시지나 소통을 의미했다.[9]

3. 코드와 다른 점

코드와 암호(cipher)는 종종 혼용되지만, 기술적으로는 다른 개념이다. 코드는 의미를 가진 단어나 구절을 다른 기호나 숫자로 대체하는 방식이다. 예를 들어, 과거 전보 통신에서는 효율성을 위해 문장 길이를 줄이는 상업 전신 코드가 사용되었다. 일본에서는 한자를 모스 부호로 보내기 위해 여러 의미를 조합해서 사용하기도 했다.

반면, 암호는 글자, 비트 등 더 작은 단위에서 작동한다. 과거에는 글자 단위로 암호를 구성했지만, 현대에는 비트 단위까지 더 작게 나누어 암호화한다. 어떤 경우에는 코드와 암호를 함께 사용하여 보안을 강화하는 초암호화를 하기도 한다.

역사적으로 암호는 코드와 암호로 구분되었고, 코딩에는 "인코딩", "코드 텍스트", "디코딩"과 같은 고유한 용어가 있었다. 그러나 코드는 암호 분석에 취약하고, 코드북 관리가 어렵다는 단점이 있다. 이러한 이유로 현대 암호학에서는 코드가 거의 사용되지 않고 암호가 주로 사용된다.[1]

4. 유형

암호는 크게 역사적 암호와 현대 암호로 나눌 수 있다. 암호학의 역사 초기에 사용된 알고리즘은 현대적인 방식과 상당히 다르며, 현대 암호는 작동 방식과 키 사용 여부에 따라 분류할 수 있다.[10]

4. 1. 과거

과거 펜과 종이를 사용한 방식은 고전 암호로도 알려져 있다. ROT13과 같이 간단한 치환 암호 또는 레일펜스 암호와 같이 위치를 바꾸는 전치형 암호가 이에 해당한다. 예를 들어 "GOOD DOG"는 L을 G로, O를 P로, D를 X로 대체하여 "PLLX XLP"로 암호화하거나, 위치를 바꾸는 전치형 암호의 경우 "DGOGDOO"로 암호화할 수 있다. 이렇게 간단한 암호는 평문-암호문을 쌍으로 비교하지 않더라도 쉽게 해독될 수 있다.[10]

비즈네르 암호와 같이 같은 문자라도 다르게 치환되는 다중 치환 암호로 발전되었다. 예를 들어, "GOOD DOG"은 "PLSX TWF"로 암호화 될 수 있는데, 여기서 O는 L, S, W 3개의 다른 문자로 바뀌었다. 하지만 펜과 종이로 암호화를 하던 시대에서는 사전에 알려진 몇 개의 문자나, 쉽게 추정할 수 있는 문자를 사용하면 다중 치환 암호도 쉽게 해독될 수 있었다.[11]

20세기 초반에는 전기 기계 장치를 통한 다중 치환 방식과 부가적 치환 방식을 이용한 암호가 발명되었다. 로터 기계는 여러 개의 로터 디스크로부터 다중 치환 문자를 생성하고 플러그보드로 다시 치환했다. 이러한 방법은 이전 체계보다 훨씬 더 복잡했지만 영국에서 발명된 봄브와 같은 기계 장치에 의해 해독되었다.

카이사르 암호가 작동하는 방식의 시각적 표현


카이사르 암호는 가장 초기의 암호 시스템 중 하나로 알려져 있다.

1640년대에 의회군 사령관인 에드워드 몬태규(제2대 맨체스터 백작)는 잉글랜드 내전 동안 동맹군에게 암호화된 메시지를 보내기 위해 암호를 개발했다.[4]

4. 2. 현대

현대 암호는 키 유형과 데이터 유형에 따라 분류할 수 있다.

키 유형에 따라 다음과 같이 나뉜다.

DES 또는 AES와 같은 대칭 키 알고리즘은 발신자와 수신자가 미리 키를 저장하고 외부로부터 비밀로 유지해야 한다. 발신자는 이 키를 통해 암호화하고 수신자도 해독에 동일한 키를 사용한다. 파이스텔 암호는 치환과 전치를 조합해서 사용한다. 대부분의 블록 암호 알고리즘은 이러한 구조를 기반으로 한다. RSA와 같은 비대칭 키 알고리즘은 공개된 키를 통해 누구나 암호를 만들 수 있지만, 암호 해독은 비밀이 유지된 개인 키를 통해서만 할 수 있다.

데이터의 유형에 따라서는 다음 두 가지 유형으로 구분할 수 있다.

  • 블록 암호는 고정된 크기의 단위로 데이터를 블록화해서 암호화한다.
  • 스트림 암호는 연속적으로 데이터를 전송하면서 동시에 암호화한다.

5. [[키 (암호)|키]]의 크기와 취약점

암호를 깨는 데 도움이 되는 정보가 전혀 없는 순수 수학적 공격에는 다음 두 가지 요소가 중요하다.


  • 컴퓨팅 파워: 계산에 투입될 수 있는 컴퓨터의 총 연산 능력이다. 컴퓨터 한 대만의 성능이 중요한 것이 아니다. 예를 들어 공격에는 여러 대의 컴퓨터를 동시에 사용하여 무차별 대입 공격의 성공 확률을 높일 수 있다.
  • 의 크기(key size): 메시지를 암호화하는 데 사용된 키의 크기는 클수록 무차별 대입 공격처럼 직접 키를 해독하는 것을 더 어렵게 만든다.


키의 길이가 길수록 계산상의 난이도가 올라가기 때문에 이론적으로 알고리즘과 원하는 난이도를 결정할 때 키 길이를 결정한다.

128비트의 대칭 암호, 3072비트 키의 비대칭 암호 및 512비트의 타원 곡선 암호는 현재 모두 비슷한 난이도를 가지고 있음을 [http://www.keylength.com/ keylength.com]에서 비교할 수 있다.

클로드 섀넌은 이론적으로 암호는 키의 길이가 최소 평문만큼 길어야 하고, 키는 단 한 번만 사용(일회용 패드)되어야 깨질 수 없다고 증명했다.

참조

[1] 서적 The Muslim Next Door: The Qur'an, the Media, and That Veil Thing White Cloud Press
[2] 저널 Vt hkskdkxt: Early Medieval Cryptography, Textual Errors, and Scribal Agency (Speculum, forthcoming) https://www.academia[...]
[3] 서적 Top Secret
[4] 웹사이트 English Civil War cipher belonging to Cromwell ally goes on display https://the-past.com[...] 2023-07-12
[5] 서적 Cryptogtaphy / Theory and Practice CRC Press
[6] 웹사이트 Communication Theory of Secrecy Systems http://netlab.cs.ucl[...] 2019-02-03
[7] 간행물 암호화 및 데이터 보안 : 아랍어의 암호 속성 제 3 회 사우디 엔지니어링 회의 1991-11-24
[8] 서적 신비로운 수의 역사 예하
[9] 서적 옆집의 회교도 : 코란, 언론, 그리고 베일에 관한 이야기
[10] 저널 Ut hkskdkxt: Early Medieval Cryptography, Textual Errors, and Scribal Agency (Speculum, forthcoming) https://www.academia[...]
[11] 문서



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com