케르크호프스의 원리

Kerckhoffs's principle

암호학케르크호프스의 원리(케르크호프스의 신성, 가정, 공리, 교리 또는 법이라고도 함)는 네덜란드가 19세기에 태어난 암호학자 오귀스트 케르크호프스에 의해 명기되었다. 를 제외한 시스템의 모든 것이 공적인 지식이라고 해도 암호체계는 안전해야 한다는 것이 원칙이다.

케르크호프스의 원칙은 미국의 수학자 클로드 섀넌에 의해 "이 시스템을 알고 있다"[1] 즉, "적들이 즉시 그들과 완전히 친숙해질 것이라는 가정 하에 시스템을 설계해야 한다"로 개편(또는 독자적으로 공식화되었다. 그런 형태로 샤논의 격언이라고 한다.

또 다른 공식은 "상대방이 자세히 알고 있다고 가정해 시스템을 설계한다"는 것이다. (NSA National Computer Security Center의 전직 관리는 나에게 어떤 새로운 장치 중 일련 번호 1이 크렘린에 전달되었다는 표준 가정이 있다고 말했다.)"[2]

이러한 개념은 암호학자들이 폭넓게 수용하고 있는데, 그렇지 않은 '무명을 통한 안보'와는 대조적이다.

오리진스

1883년 오귀스트 케르크호프스는 라 크립토그래피 밀리타이어에 관한 두 개의 저널 기사를 썼는데,[4] 그 첫 번째 저널에서 그는 군사 암호를 위한 여섯 가지 설계 원칙을 진술했다. 프랑스어에서 번역된 내용은 다음과 같다.[5][6]

  1. 이 시스템은 수학적으로 파악되지 않더라도 실질적으로 판독이 불가능해야 한다.
  2. 비밀을 요해서는 안 되며, 적의 손에 넘어가는 경우에도 문제가 되지 않아야 한다.
  3. 서면 메모를 사용하지 않고도 키를 전달하고 기억할 수 있어야 하며, 통신원은 임의로 키를 변경하거나 수정할 수 있어야 한다.
  4. 전신 통신에 적용 가능해야 한다.
  5. 이 장치는 휴대할 수 있어야 하며 여러 사람이 취급하거나 조작할 필요가 없어야 한다.
  6. 마지막으로, 시스템이 사용되어야 하는 상황을 고려할 때, 시스템은 사용하기 쉬워야 하며 사용자가 긴 규칙의 목록을 알고 준수하도록 요구하거나 사용하는 데 스트레스를 받지 않아야 한다.

어떤 것들은 복잡한 암호화를 수행하는 컴퓨터의 능력을 감안할 때 더 이상 관련이 없지만, 현재 케르크호프스의 원리로 알려진 그의 두 번째 공리는 여전히 대단히 중요하다.

원칙 설명

케르크호프스는 암호화를 19세기에 군대 메시지의 의미를 숨긴 스테가노그래픽 인코딩보다 더 좋은 대안으로 보았다. 인코딩 방식의 한 가지 문제점은 그들이 예를 들어 단어의 비밀의 의미를 밝히는 "전술서"와 같은 인간적으로 간직하고 있는 비밀에 의존한다는 것이다. 스테가노그래픽 같은 사전은 일단 드러나면 해당 인코딩 시스템을 영구적으로 손상시킨다. 비밀을 쥐고 있는 이용자가 많아질수록 노출 위험이 높아지는 것도 문제다.

이와는 대조적으로 19세기 암호학은 영숫자의 전위치를 제공하는 간단한 표를 사용했으며, 일반적으로 짧고 숫자적이며 인간의 기억력에 전념할 수 있는 키에 의해 변형될 수 있는 행-기둥 교차로들이 주어졌다. 이 시스템은 테이블과 키가 스스로 의미를 전달하지 않기 때문에 "지각할 수 없는" 것으로 간주되었다. 비밀 메시지는 일치하는 테이블, 키, 메시지 세트가 관련 기간 내에 적의 손에 들어갈 경우에만 타협될 수 있다. 케르크호프스는 전술적 메시지가 단지 몇 시간만 관련이 있다고 보았다. 시스템의 구성 요소(즉, 영숫자 문자표 및 키)는 쉽게 변경될 수 있기 때문에 시스템이 반드시 손상되는 것은 아니다.

비밀 키의 장점

보안 암호화를 사용하는 것은 메시지를 안전하게 유지하는 어려운 문제를 비교적 작은 키의 보안을 유지하면서 훨씬 관리하기 쉬운 문제로 대체하는 것이다. 암호 시스템의 전체 설계만큼 크고 복잡한 것에 대해 장기적인 비밀을 요하는 시스템은 분명히 그 목적을 달성할 수 없다. 그것은 단지 하나의 어려운 문제를 다른 문제로 대체한다. 그러나, 만약 적이 키를 제외한 모든 것을 알고 있을 때에도 시스템이 안전하다면, 필요한 것은 키를 비밀로 유지하는 것이다.

There are a large number of ways the internal details of a widely used system could be discovered. The most obvious is that someone could bribe, blackmail, or otherwise threaten staff or customers into explaining the system. In war, for example, one side will probably capture some equipment and people from the other side. Each side will also use spies to gather information.

If a method involves software, someone could do memory dumps or run the software under the control of a debugger in order to understand the method. If hardware is being used, someone could buy or steal some of the hardware and build whatever programs or gadgets needed to test it. Hardware can also be dismantled so that the chip details can be examined under the microscope.

Maintaining security

A generalization some make from Kerckhoffs's principle is: "The fewer and simpler the secrets that one must keep to ensure system security, the easier it is to maintain system security." Bruce Schneier ties it in with a belief that all security systems must be designed to fail as gracefully as possible:

principle applies beyond codes and ciphers to security systems in general: every secret creates a potential failure point. Secrecy, in other words, is a prime cause of brittleness—and therefore something likely to make a system prone to catastrophic collapse. Conversely, openness provides ductility.[7]

Any security system depends crucially on keeping some things secret. However, Kerckhoffs's principle points out that the things kept secret ought to be those least costly to change if inadvertently disclosed.

For example, a cryptographic algorithm may be implemented by hardware and software that is widely distributed among users. If security depends on keeping that secret, then disclosure leads to major logistic difficulties in developing, testing, and distributing implementations of a new algorithm – it is "brittle". On the other hand, if keeping the algorithm secret is not important, but only the keys used with the algorithm must be secret, then disclosure of the keys simply requires the simpler, less costly process of generating and distributing new keys.

Applications

In accordance with Kerckhoffs's principle, the majority of civilian cryptography makes use of publicly known algorithms. By contrast, ciphers used to protect classified government or military information are often kept secret (see Type 1 encryption). However, it should not be assumed that government/military ciphers must be kept secret to maintain security. It is possible that they are intended to be as cryptographically sound as public algorithms, and the decision to keep them secret is in keeping with a layered security posture.

Security through obscurity

It is moderately common for companies, and sometimes even standards bodies as in the case of the CSS encryption on DVDs, to keep the inner workings of a system secret. Some argue this "security by obscurity" makes the product safer and less vulnerable to attack. A counter-argument is that keeping the innards secret may improve security in the short term, but in the long run, only systems that have been published and analyzed should be trusted.

Steven Bellovin and Randy Bush commented:[8]

Security Through Obscurity Considered Dangerous

Hiding security vulnerabilities in algorithms, software, and/or hardware decreases the likelihood they will be repaired and increases the likelihood that they can and will be exploited. Discouraging or outlawing discussion of weaknesses and vulnerabilities is extremely dangerous and deleterious to the security of computer systems, the network, and its citizens.

Open Discussion Encourages Better Security

The long history of cryptography and cryptoanalysis has shown time and time again that open discussion and analysis of algorithms exposes weaknesses not thought of by the original authors, and thereby leads to better and more secure algorithms. As Kerckhoffs noted about cipher systems in 1883 [Kerc83], "Il faut qu'il n'exige pas le secret, et qu'il puisse sans inconvénient tomber entre les mains de l'ennemi." (Roughly, "the system must not require secrecy and must be able to be stolen by the enemy without causing trouble.")

메모들

  1. ^ Shannon, Claude (4 October 1949). "Communication Theory of Secrecy Systems". Bell System Technical Journal. 28 (4): 662. doi:10.1002/j.1538-7305.1949.tb00928.x. Retrieved 20 June 2014.
  2. ^ Bellovin, Steve (23 June 2009). "Security through obscurity". RISKS Digest.
  3. ^ Kahn, David (1996), The Codebreakers: the story of secret writing (second ed.), Scribners p.p.c.
  4. ^ Petitcolas, Fabien, Electronic version and English translation of "La cryptographie militaire"
  5. ^ Kerckhoffs, Auguste (January 1883). "La cryptographie militaire" [Military cryptography] (PDF). Journal des sciences militaires [Military Science Journal] (in French). IX: 5–83.
  6. ^ Kerckhoffs, Auguste (February 1883). "La cryptographie militaire" [Military cryptography] (PDF). Journal des sciences militaires [Military Science Journal] (in French). IX: 161–191.
  7. ^ Mann, Charles C. (September 2002), "Homeland Insecurity", The Atlantic Monthly, 290 (2).
  8. ^ Bellovin, Steven; Bush, Randy (February 2002), Security Through Obscurity Considered Dangerous, Internet Engineering Task Force (IETF), retrieved December 1, 2018

참조

본 기사는 Creative Commons Attribution-ShareAlike 3.0 Unported License에 따라 허가되었지만 GFDL에 의거하지 않은 Civilidium 기사 "Kerckhoffs's Principle"의 자료를 포함하고 있다.

외부 링크