전치 암호(Transposition Cipher)란?
문자의 위치를 바꾸는 방법
Scytale 암호
BC400년 고대 희랍인들이 사용한 암호 방식
글자를 쓴 다음 풀어쓰는 방식으로 암호화.
통을 감은 후에 가로로 읽는 것이 원문임.
참고로 저 통을 통해서 복호화가 가능했음. 통의 크기로 복호화를 하였다는 뜻임.
평문(Plaintext): 암호의 대상이 되는 일반 언어
키(Key): 암호화와 복호화 과정에 필요한 파라미터
암호화 키, 복호화 키
암호화 (Encryption)
복호화 (Decryption)
암호 A
암호해독(Cryptanalysis) : A, B가 아니라 E같은 친구가 암호문에서 평문을 얻으려는 시도를 의미함.
Kerckhoff's principle
케르히호프의 원리:
설계자는 반드시 어떤 전제를 깔고 가야 하냐면, 암호 해독을 시도하는 EVE가 현재 사용하는 암호 방식(알고리즘)을 알고 있다는 전제를 두어야 함.
암호해독 방법에는 COA(Ciphertext Only Attack)
시저 암호도 단일 치환 암호의 하나다.
암호를 풀 때 중요한 것은 시간입니다.
카이사르 암호에 대해서 설명을 하겠습니다. 알파벳을 미는 형식으로 암호가 작동이 되고, 암호 키가 1이면 A -> B, B -> C 암호 키가 3이면 A -> D, B->E가 됩니다. 단어 하나를 해독을 하면 문장 전체가 해독됩니다.
아핀 암호:
카이사르 암호를 보완하기 위한 암호로 이동 암호와 곱셈 암호를 결합한 방식으로 알려져 있습니다.
힐 암호:
힐 암호는 수동으로 계산하기에는 너무 복잡하여 기계장치를 이용한 다표식 치환 암호 쪽으로 방향이 바뀌었다고 합니다.
평문 공격에 약하지만, 현대 암호의 물꼬리를 텃다는데에 의의가 있습니다.
Atbash 암호:
유대인들이 사용하던 방식으로 암호문은 평문을 역순으로 적어놓은 것과 같습니다.
평문: a, b, c, d, e, f, g, h, i, g, k, l, m, n ,o, p, q, r, s ,t u, v, w, x, y, z
암호문: Z, Y, X, W, V, U, T, S, R, Q, P, O, N ,M , L, K, G, I, H, G, F, E, D, C, B, A
알베르티 암호:
앨리스와 밥이 같은 원판을 가지고 있어야 합니다.
단어를 몇 번 암호화하면 다시 원판을 돌려야 하는데, 돌렸다는 신호는 소문자를 붙혀 확인합니다.
ex) eQTWaCFI 이런 식으로 암호화 복호화를 할 수 있습니다.
위에 암호가 키가 3인지 4인지 5인지 아니면 힐 암호일지 뭐 어떻게 알아 그래서 빈도 분석법으로 대치를 해본다고 하네요..
uhm.. y가 빈도 수가 높네요...
일반적인 영어 알파벳의 출현 빈도표.. 일반적인 영어에서는 e가 가장 많이 나옴. 그런데 이 암호문에서는 y가 많이 나오니.. e -> y로 바뀔 걸까? 라고 추측을 할 수 있슴메. 그래서 추리를 했으면 증거를 찾아야하니.. y를 e로 바꾸어 봅시다. 영어에는 중간 중간에 The 라던가 She, He 등 특정 단어를 유추할 수 있는 문단이 있잖아요? 그래서.. mee -> The 가 아닐까..? 라고 추측을 해보고 바꾸어보자고..
그래서 일련의 과정을 거치다 보면 평문의 가닥이 잡히는 시점이 있는데,
잘 안 잡힌다고 해도 문제를 풀어나가는 과정이 재밌으면 Ok입니다.
예.. 그래서 평문을 열어보니 다음과 같았다.. 이 정도면 양반이죠?
애니그마:
마르코니라는 인물이 무선 통신 기술을 실용화 화면서 도감청을 막을 암호 기술이 필요했습니다.
독일의 암호가 1차 세계대전에서 뚫렸기 때문에 2차 세계대전에서는 이를 보완할 암호 체계가 필요했습니다.
그래서 등장한 것이 이 애니그마이고, 작동원리는 다음과 같습니다.
밑에 전선 같은 것을 배전반이라고 하는데, A와 B를 연결하면 서로의 위치가 바뀌는 식입니다. (A -> B, B -> A)
그리고 중간에 회전판이라고 있는데, 키보드를 한 번 누르면 회전판이 돌아가게 됩니다.
이렇듯 애니그마는 경우의 수를 많이 만들어냈기 때문에 난공불락의 암호라고 불리기도 했습니다.
애니그마 이미지
기밀성(Confidentiality): 메세지의 내용을 다른 사람에게 비밀로 유지하는 것.
인증(Authentication): 내가 나임을 다른 사람에게 증명하는 것.
무결성(Integrity): 메세지의 내용이 중간에 변경되지 않았음을 보장하는 것.
부인 방지(Non-Repudiation): 자신이 한 행동을 부인하지 못하게 하는 것.
접근 제어(Acesss Control): 기밀 정보에 대한 접근을 통제하는 것.
무결성: 외부의 요인으로 인해 데이터가 파손, 변조되지 않음.
튜링 기계:
2차 세계대전으로 인해 연합국의 피해는 계속해서 늘어났고, 독일의 암호를 해독해야만 했습니다. 그래서 GCCS에서 앨런 튜링과 동료들을 모아 암호 해독에 전념하도록 하였습니다. 애니그마의 암호를 풀려면 이에 상응하는 기계가 필요하다고 판단, 몇 년간의 연구 끝에 튜링 기계를 완성하여 독일의 암호를 해독하는데 성공하였습니다.
튜링 기계 이미지 예시
국가용과 민간용이 나눠짐. 둘은 용도와 쓰임이 다름.
대칭키 방식에는 블록 암호화가 사용되는데,
한 번에 하나씩 데이터 블록을 암호화하는 방식임.
또 대칭키 방식에는 스트림 암호화가 사용되는데,
이진화된 평문스트림과 이진스트 수열의 XOR 연산으로 암호문을 생성
난수를 사용한 비밀키 길이를 평문의 길이와 같게 함.
비트, 바이트, 단어들을 순차적으로 암호화 함.
EX) RC4
대칭키 Ek = Dk, 비 대칭키 Ek =/ Dk
패딩(Padding)이란?
평문 뒤에 데이터를 붙혀
평문이 블록 크기의 배수가 될 때까지 데이터를 추가합니다.
-> 평문을 블록 크기의 배수로 만들어서 블록으로 쪼개기 위해.
평문 -> 암호화 과정 키가 56BIT라는 건 0,1이 56개 있다는 뜻임. 2^56
암호화 -> 평문 과정
99년에 가서는 DES가 22시간만에 뚫렸다는 얘기임. 암호문과 평문을 가지고 시간이 오래 지난 현재에 와서는 저것보다 더 빨리 뚫릴 수 있다는 뜻. 그래서 암호로는 사용이 어렵다. 대신 DES의 흔적들을 현대 암호에서 찾아볼 수는 있습니다.
RSA:
RSA는 1970년대 후반에 개발된 암호 방식입니다. 리베스트와 샤미르가 암호를 만들어내면 애들먼이 해독하는 방식으로 암호가 발전해왔는습니다. 소통 방식은 크게 다음과 같은데,
B가 공개키/ 비밀키를 만듭니다.
만든 공개키를 A에게 전송합니다.
A는 B에게서 받은 공개키를 데이터를 암호화합니다.
암호문을 B에게 전송합니다.
B는 받은 암호문을 비밀키를 이용해 복호화 합니다.
보안성 우수, 암 복호화 속도가 느림.
회로가 복잡함
ECC (이산대수 기반)
해시 함수란 주어진 데이터를 고정 길이의 불규칙적인 숫자로 변환하는 함수입니다.
일단 길이가 일정해야 하고,
내용이 변경되면 길이도 변경됩니다.
실제로는 해시 함수는 컴퓨터 내부에서 수치를 계산하고 있습니다.
메시지 위조, 변조 확인에 사용됩니다.
사용되는 해시 함수
SHA-224, SHA-256, SHA-384, SHA-512
객체인식 알고리즘이란? 딥러닝, 머신러닝을 활용해 산출되는 기술로, 이미지나 비디오와 상에서 객체를 식별하는 것이라고 할 수 있습니다.
객체 검출 노이즈를 최소화해야 함. 특히 카메라를 움직일 때 검출 노이즈가 크게 증가하기 때문에 다중객체추적을 통해 리스크를 줄여야 함.
적대적 AI 공격 예시
노이즈를 추가했을 때 이미지
이러한 문제를 해결하기 위해서 적대적 샘플과 일반 이미지를 넣고 저것은 고양이라는 것을 모델을 통해 훈련시켜야 함. 이것을 적대적 훈련(Adversarial Training)이라고 함.
CIFAR-10 (Canadian Institute for Advanced Research )
10개 중에 하나를 분류한다.
R,G,B
Resolution: 32 x 32
Num_training set: 60000
num_training set은 학습 데이터 중에서 실제로 모델을 훈련시키기 위해 사용되는 데이터의 수를 의미합니다.
딥러닝 모델의 훈련 과정에서는 num_training set의 크기가 중요한 역할을 합니다. 큰 num_training set이 모델의 성능과 일반화 능력을 향상시키는 데 도움이 되는 경향이 있습니다. 따라서 훈련 데이터를 더 많이 사용할수록 모델이 학습한 패턴이 보다 효과적이고 일반적이며, 새로운 데이터에 대해 더 잘 일반화할 수 있습니다
imageNet: 대규모 데이터셋으로 이미지 분류 및 객체 검출과 같은 딥러닝 모델의 성능을 평가하는데 사용됩니다.
암호의 응용 분야 . A
전자 서명, 인증기술, PEM, PGP, S/MIME, 전자 상거래