본문 바로가기

Crypto

Visual Cryptography [Crypto] M. Naor 와 A. shamir 가 1994년에 개발한 시각적 암호 시스템입니다. 그림이나 텍스트 등 시각적인 정보를 암호화하는 용도로 사용됩니다. - 위와 같은 그림이나 텍스트를 하나로 합치게 되면 아래와 같은 새로운 형태의 그림이 완성됩니다. - 본인이 숨기고 싶은 하나의 그림을 Visual Crytography로 암호화 시 2개의 그림으로 생성이 되며 필요할 때 하나로 합쳐 볼 수 있는 암호화입니다. - 위의 그림과 같이 픽셀을 나누는 형태로 암호화를 하여 2개의 그림이 생성됩니다. 더보기
스트림암호와 블록암호 [Crypto] 현대 암호로 넘어오게 되면서 암호화의 단위는 알파벳이 아닌 bit단위로 바뀌게 됩니다. 가장큰 이유는 컴퓨터에 대한 보급과 대부분의 통신이 컴퓨터로 이루어지게 되면서 네트워크를 이용한 통신 때의 위험성과 보관된 데이터에 대한 권한이 없는 사용자로 부터 안전하게 보관하기 위해서 등 여러 이유로 암호화를 진행하게 되고 그렇기에 bit단위로 암호화를 하게됩니다. 그 중 해당 bit를 어떻게 나누어 암호화를 하는가 애서 두가지로 나뉘게 됩니다. 바로 스트림암호와 블록암호 입니다. 이번 포스팅에서는 두 가지 방식에 대해 설명을 진행하겠습니다. - 먼저 스트림 암호입니다. 스트림 암호는 암호문과 키의 길이가 동일하여 각각의 암호문과 키값을 이용하여 암호화를 진행합니다. 이러한 스트림 암호의 특징은 평문과 키의 길이.. 더보기
Feistel 암호 시스템 [Crypto] 1973년, IBM의 Horst Feistel에 의해 개발되었습니다. 흔히 Feistel network 라고도 합니다. Feistel network는 IBM의 Lucifer 암호시스템에 처음 적용되었습니다. 유명한 DES 암호의 전신입니다. Lucifer는 Shannon의 이론을 적용한 암호 시스템입니다. Shannon의 이론은 '환자와 전치를 반복적용하면 평문의 통계적 특성이나, 키와 관계가 나타나지 않아 안전하다.' 라는 이론입니다. 여기서 통계적 특성이란 영어는 자주 사용되는 알파벳 배열이 있습니다. the, to, a 등 여러 배열이 있는데 해당 배열에 대한 통계를 내어 특정 알파벳의 배열이 자주 사용됨을 이용한 특성입니다. 아래는 통계적 특성의 예시 입니다. - Feistel 암호 시스템 Luc.. 더보기
Affine 암호 [Crypto] 근대 암호 중 하나인 Affine 암호입니다. 해당 압호는 Shift 암호를 개선한 형태라고는 하지만 Shift 암호보다 약합니다. 해당 암호의 원리를 알기전에 Shift 암호에 대해 간단히 설명하겠습니다. - Shift 암호는 시저 암호의 발전된 형태입니다. 시저암호는 단순히 알파벳에 +3 형태였습니다. 즉 [abc]라는 평문을 상대방에게 암호화하여 전달하게 되면 [def]가 됩니다. 그럼 해당 암호문을 받은 상대방은 알파벳에 -3을 해주면 [abc]라는 평문을 알 수 있게됩니다. 즉 키값이 3입니다. shift 암호는 고정된 키값 3이 아닌 유동적인 여러 키값을 사용이 가능합니다. 하지만 알파벳의 개수는 26개 즉 키값을 여러개를 사용하여도 키값이 26이 되면 원래의 평문이 출력되게 됩니다. 이는 m.. 더보기
Pigpen 암호 [Crypto] 근대 암호 중 암호문을 알파벳으로 구성하지 않고 심볼로 구성하는 경우도 있습니다. 그 중 하나가 Pigpen 암호입니다. 기하학적 단순 대체 암호라고도 불리는 Pigpen 암호는 알파벳 26자에 대한 심볼을 만들에 심볼을 이용한 암호문을 생성합니다. - 해당 심볼들을 이용한 암호문은 아래와 같습니다. 더보기
정보보호 역사(근대 암호) [Crypto] - 근대 암호에서도 환자와 전치를 사용한 암호 방식이 사용됩니다. - Vigenere Cipher는 고대암호인 시저 암호의 확장판입니다. 시저 암호가 무조건 알파벳 3칸 앞으로 미는 형태여서 키값이 '3'였다면 Vigenere 는 고정된 3이 아닌 암호화하는 사용자 가 원하는 키값으로 변경을 할 수 있습니다. 오늘은 5칸을 밀겠다. 내일 7칸을 밀겠다. 이런식으로 임의로 바꿀 수 있게 됩니다. 하지만 알파벳은 총 26개 최대 키값은 25까지 밖에 안되기 때문에 25번의 시도만 하면 암호를 해독할 수 있게 됩니다. - 2차 세계대전 당시에 사용했던 에니그마 역시 근대 암호화기계 입니다. 애니그마의 작동원리는 알파벳을 입력할 수 있는 자판이 있고 해당 자판 내부에 회전자와 여러 기계적, 전기적 하부체제로 이.. 더보기
정보보호 역사 (고대암호) [Crypto] 암호학 (Cryptography) - 암호는 정보를 제3자가 판독할 수 없는 문자로 대체하는 방식입니다. 유의미한 정보를 무의미한 문자로 변경하는 것입니다. 주로 암호화는 비밀(보안) 통신을 하거나 정보를 안전하게 저장, 보관할 때 사용합니다. 암호는 시기별로 고대암호 > 근대암호 > 현대암호로 구분됩니다. - 고대 암호 - - 고대 암호 : 환자(Substitution)암호, 전치(Transposition)암호 - 환자 암호는 다른 문자로 대체하는 방식의 암호입니다. - 전치 암호는 문장 내에서 문자의 위치를 바꾸는 암호입니다. - 두 암호방식의 기본원리는 지금까지도 사용중에 있습니다. - 고대 암호에는 스파르타에서 사용한 암호방식 중 하나인 Sctale 암호 방식이 있습니다. - Scytale 암호는.. 더보기
'Euclid 호제법'을 이용한 역원 구하기 'Euclid 호제법'은 두 수에 대한 최대공약수를 구하기 위해 사용하는 알고리즘 입니다. 해당 알고리즘을 이용하여 곱셈에 대한 역원 값을 구할 수 있습니다. 먼저 호제법을 시작할 때 두 수가 역원이 존재하는지를 확인해야 합니다. '3 mod 26' 을 계산한다고 가정하여 진행 합니다. [26 * x + 7 * y = 1]의 형태를 만들어야 합니다. 26 = 7 * 3 + 5 7 = 5 * 1 + 2 5 = 2 * 2 +1 - 두 수가 역원이 존재 하는지 점검합니다. 식의 마지막 부분이 1이 나올 때 까지 진행하고 만약 마지막까지 진행 하였을때 1이 아닌 수가 나오면 역원이 존재하지 않는 수 입니다. 5 = 7 - 5 * 1 * 2 + 1 더보기