bonk, boink, teardrop 문제 찾아보기
º 암호와 관련된 기본 용어:
암호문:
비밀을 유지하기 위해 당사자끼리만 알 수 있도록 꾸민 약속 기호
암호화 알고리즘:
암호화를 수행하거나, 복호화를 수행할 때 양쪽이 서로 알고 있어야 하는 수단(rsa로 교환하면 rsa 방식을 알고 있어야 겠지)
암호화키:
약속한 규칙
문제1. : 다음 중 암호화 키에 대한 설명으로 가장 적절한 것은 무엇일까요?
(1) 비밀을 유지하기 위해 당사자끼리만 알 수 있도록 꾸민 약속 기호
(2) 암호화를 수행하거나 복호화를 수행할 때 양쪽이 서로 알고 있어야 하는 수단
(3) 암호화 또는 복호화 과정에서 사용되는 약속된 규칙
(4) RSA와 같이 암호화 방식을 지칭하는 용어
정답은 무엇일까요?
정답: 3번
1번은 암호문에 대한 설명입니다.
2번은 암호화 알고리즘에 대한 설명입니다.
3번은 암호화 키에 대한 설명으로, 암호화나 복호화를 할 때 적용하는 약속된 규칙을 의미합니다.
4번은 암호화 알고리즘의 한 종류를 예시로 든 것입니다.
암호는 work factor를 높게 설정해야 함.
workfactor란?
비밀번호 해싱과 같은 작업을 의도적으로 증가시킨다는 의미임.
쉽게 말해 암호화 연산을 수행하는 데 더 많은 시간과 자원(cpu, 메모리)이 들게 만든다는 뜻입니다.
workfactor를 늘리는 법:
1. key 사이즈를 늘린다
2. round 횟수를 늘린다
3.block 사이즈를 늘린다
암호 공개 가능 범위:
알고리즘(수학적 함수)는 공개 가능하다.
암호화 키는 공개하면 안 된다.
키의 길이는 공개 가능하다.
1. 다음 중 비밀번호 해싱 시스템의 workfactor를 높이는 방법이 아닌 것은?
a) Key 사이즈 늘리기 b) Round 횟수 늘리기 c) Block 사이즈 늘리기 d) 암호화 키 공개하기
2. 암호화 시스템에서 외부에 절대 공개해서는 안 되는 정보는 무엇인가?
a) 사용된 암호화 알고리즘 b) 암호화 키의 길이 c) 암호화 키 d) workfactor를 높인 방법 (예: Round 횟수를 늘렸다는 사실)
정답 1. d) 암호화 키 공개하기 (암호화 키 공개는 보안을 약화시키는 행위이며 workfactor를 높이는 방법이 아닙니다.)
정답 2. c) 암호화 키 (암호화 키는 암호화 시스템의 핵심 보안 요소로, 외부에 공개되어서는 안 됩니다.)
해시: 임의의 데이터를 고정된 길이의 고유한 값으로 변환하는 과정을 의미함.
전치 암호(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에서 앨런 튜링과 동료들을 모아 암호 해독에 전념하도록 하였습니다. 애니그마의 암호를 풀려면 이에 상응하는 기계가 필요하다고 판단, 몇 년간의 연구 끝에 튜링 기계를 완성하여 독일의 암호를 해독하는데 성공하였습니다.
튜링 기계 이미지 예시
º 대칭 알고리즘 개념
대칭키: 암호화키 = 복호화키
특징: 공개키하고 비밀키를 합성해서 암호화 한 키로 복호화 ㄱㄴ
장점:
키가 같으니까 암, 복호화 속도가 빠름, 회로 간단함.
단점:
키 전달에서의 보안 취약점이 있다 그리고 관리 불편
비대칭키: 암호화키 따로 복호화키 따로
특징: 공개키, 개인키 말하는 것.
장점:
키 분배 문제 해결: 대칭키는 송신자와 수신자가 동일한 비밀 키를 안전하게 공유해야 하는 어려움이 있습니다. 하지만 비대칭키는 공개키는 누구나 가질 수 있고, 개인키는 오직 소유자만 가지고 있기 때문에 키 분배 문제를 근본적으로 해결합니다.
단점:
느린 연산 속도, 높은 연산 자원 요구
** 키의 전달 및 관리암호학적 강도 높이는 방법
혼돈과 확산을 이용한다.
혼돈:
암호문과 평문 사이의 관계를 숨기는 것
암호문에 대한 통계 테스트를 통하여 평문을 찾고자 하는 공격자를 좌절시킴
확산:
암호문과 키의 관계를 숨기는 것
암호문을 이용하여 키를 찾고자 하는 공격자를 좌절시킴
키의 단일 비트가 변하면 암호문의 거의 모든 비트가 변함
문제 1: 비대칭키 암호화는 대칭키 암호화에 비해 훨씬 느린 연산 속도를 가집니다. 이러한 단점 때문에 대용량의 데이터를 직접 암호화하는 데 비대칭키 방식을 주로 사용하지 않는 가장 주된 이유는 무엇인가요?
a) 비대칭키는 데이터 무결성을 보장하지 못하기 때문이다. b) 비대칭키는 키 길이가 너무 짧아 보안 강도가 낮기 때문이다. c) 비대칭키 암호화/복호화에 필요한 연산 자원과 시간이 매우 크기 때문이다. d) 비대칭키는 오직 한 방향으로만 암호화가 가능하기 때문이다.
문제 2: 비대칭키 암호화는 '디지털 서명' 기능을 통해 메시지의 무결성(위변조 여부)과 송신자의 신원을 확인할 수 있게 합니다. 디지털 서명 과정에서 메시지를 서명할 때 사용하는 키와 서명된 메시지를 검증할 때 사용하는 키가 올바르게 짝지어진 것은 무엇인가요?
a) 메시지 서명: 수신자의 공개키 / 서명 검증: 수신자의 개인키 b) 메시지 서명: 송신자의 개인키 / 서명 검증: 수신자의 공개키 c) 메시지 서명: 송신자의 공개키 / 서명 검증: 송신자의 개인키 d) 메시지 서명: 수신자의 개인키 / 서명 검증: 수신자의 공개키
문제 3: 비대칭키 암호화 시스템에서 '개인키 관리의 중요성'이 매우 강조되는 이유는 무엇인가요?
a) 공개키가 유출되면 시스템 전체가 마비될 수 있기 때문이다. b) 개인키가 유출되면 공격자가 해당 개인키로 암호화된 데이터를 복호화하거나, 소유자를 사칭하여 서명할 수 있기 때문이다. c) 개인키를 주기적으로 교체하지 않으면 암호화 속도가 현저히 느려지기 때문이다. d) 개인키를 다른 사람과 공유해야만 통신이 가능하기 때문이다.
문제 4: 다음 설명 중 혼돈(Confusion)과 확산(Diffusion)에 대한 설명으로 가장 적절하지 않은 것은?
a) 혼돈은 평문과 암호문 간의 통계적 관계를 숨기는 데 중점을 두며, 이는 주로 치환(Substitution) 과정을 통해 달성된다. b) 확산은 평문의 한 비트 변화가 암호문의 여러 비트에 영향을 미치도록 하여 패턴 분석을 어렵게 만든다. c) 혼돈과 확산은 모두 암호학적 공격으로부터 암호 시스템을 보호하기 위한 핵심 원리이다. d) 확산은 주로 순열(Permutation) 또는 전치(Transposition) 연산을 사용하여 구현되며, 이는 암호문 내에서 비트의 위치를 변경하는 방식이다.
정답 1: 정답: c) 비대칭키 암호화/복호화에 필요한 연산 자원과 시간이 매우 크기 때문이다.
정답 2: 정답: b) 메시지 서명: 송신자의 개인키 / 서명 검증: 송신자의 공개키
정답 3: 정답: b) 개인키가 유출되면 공격자가 해당 개인키로 암호화된 데이터를 복호화하거나, 소유자를 사칭하여 서명할 수 있기 때문이다.
정답 4: 정답: a) 혼돈은 평문과 암호문 간의 통계적 관계를 숨기는 데 중점을 두며, 이는 주로 치환(Substitution) 과정을 통해 달성된다.
국가용과 민간용이 나눠짐. 둘은 용도와 쓰임이 다름.
대칭키 방식에는 블록 암호화가 사용되는데,
한 번에 하나씩 데이터 블록을 암호화하는 방식임.
조금 더 자세히 설명하자면, 고정된 N 비트 블록(P)을 N비트 블록(C)으로 변환시키는 함수를 의미함.
또 대칭키 방식에는 스트림 암호화가 사용되는데,
이진화된 평문스트림과 이진스트 수열의 XOR 연산으로 암호문을 생성
난수를 사용한 비밀키 길이를 평문의 길이와 같게 함.
비트, 바이트, 단어들을 순차적으로 암호화 함.
EX) RC4
블록암호의 수식구조 이미지
음악이나 영상을 보낼 때 암호화를 하여 보낼 수 있음
사용 예) 데이터 암호화, 의사 난수 생성기, mac해시함수, 디지털 서명용 등
º Feistel vs SPN
feistel 구조란?
상상해 보세요. 암호화하고 싶은 데이터가 긴 종이 띠라고 쳐요.
반으로 잘라요. (왼쪽 반, 오른쪽 반)
오른쪽 반을 이상한 기계(라운드 함수)에 넣어서 뭔가 복잡하게 만들어요.
그 결과를 왼쪽 반이랑 섞어요 (XOR 연산).
이제 왼쪽 반과 오른쪽 반의 자리를 바꿔요.
이 과정을 여러 번(라운드) 반복하는 거예요.
가장 중요한 점: 이렇게 복잡하게 만들었지만, 신기하게도 거꾸로 할 때(복호화)는 그냥 똑같은 과정을 반대로 하면 돼요! 라운드 함수가 뭐든 상관없이 복호화가 된다는 게 Feistel 구조의 큰 장점이에요.
이번엔 종이 띠를 자르지 않고 전체를 가지고 놀 거예요.
데이터에 열쇠(라운드 키)를 살짝 섞어줘요.
데이터의 특정 부분을 다른 모양으로 바꿔요 (치환, S-box). 예를 들어, 'A'를 'Z'로, 'B'를 'Y'로 바꾸는 식이죠. 이렇게 하면 누가 보더라도 원래 뭔지 알아보기 어렵게 돼요. (혼돈)
이제 바꿔진 조각들의 위치를 마구잡이로 섞어줘요 (순열, P-box). 예를 들어, 1번 조각은 5번으로, 2번 조각은 8번으로 보내는 식으로요. 이렇게 하면 원래 조각들 간의 관계를 파악하기 어렵게 돼요. (확산)
이 과정을 여러 번(라운드) 반복하는 거예요.
가장 중요한 점: SPN 구조는 모든 단계(치환, 순열)가 정확히 반대로 돌릴 수 있어야(가역적이어야) 복호화가 돼요. 그래서 복호화할 때는 암호화할 때 썼던 S-box, P-box를 반대로 적용해야 합니다.
Feistel 구조: DES, SEED, FEAL 등
SPN 구조: AES, SHARK 등
기타: IDEA
다음 중 제시된 설명 중 가장 적절한 것은?
문제 1: a) Feistel 구조는 데이터 블록 전체에 걸쳐 치환(Substitution)과 순열(Permutation)을 직접 적용하며, 복호화 시 S-box와 P-box의 역함수가 필요하다.
b) SPN 구조는 데이터 블록을 두 개의 절반으로 나누어 한쪽 절반에 라운드 함수를 적용한 후 다른 절반과 XOR 연산하고 자리를 바꾸는 과정을 반복한다.
c) Feistel 구조의 가장 큰 장점은 라운드 함수(F)가 단방향 함수(가역적이지 않아도 됨)여도 복호화가 가능하다는 점이다.
d) SPN 구조는 DES, SEED와 같은 구형 암호화 알고리즘에 주로 사용되었으며, 현대 암호 알고리즘에서는 거의 사용되지 않는다.
문제 2.: Feistel 구조는 암호화 과정에서 라운드 함수(F)를 사용하며, SPN 구조는 S-box와 P-box를 사용합니다. 이 두 구조의 복호화 메커니즘을 비교했을 때, 다음 중 Feistel 구조가 가지는 중요한 복호화 상의 특징은 무엇인가요?
a) Feistel 구조는 SPN 구조보다 항상 더 빠른 복호화 속도를 보장한다.
b) Feistel 구조는 복호화 시 암호화에 사용된 라운드 함수의 역함수가 반드시 필요하다.
c) Feistel 구조는 라운드 함수가 가역적이지 않아도(단방향이어도) 복호화가 가능하다는 장점이 있다.
d) Feistel 구조는 복호화 과정에서 암호화 라운드와 완전히 다른 순서로 라운드 키를 적용해야 한다.
정답1. : c) Feistel 구조의 가장 큰 장점은 라운드 함수(F)가 단방향 함수(가역적이지 않아도 됨)여도 복호화가 가능하다는 점이다.
정답 2. 정답: c) Feistel 구조는 라운드 함수가 가역적이지 않아도(단방향이어도) 복호화가 가능하다는 장점이 있다.
대칭키 Ek = Dk, 비 대칭키 Ek =/ Dk
패딩(Padding)이란?
평문 뒤에 데이터를 붙혀
평문이 블록 크기의 배수가 될 때까지 데이터를 추가합니다.
-> 평문을 블록 크기의 배수로 만들어서 블록으로 쪼개기 위해.
º DES
평문 -> 암호화 과정 키가 56BIT라는 건 0,1이 56개 있다는 뜻임. 2^56
암호화 -> 평문 과정
99년에 가서는 DES가 22시간만에 뚫렸다는 얘기임. 암호문과 평문을 가지고 시간이 오래 지난 현재에 와서는 저것보다 더 빨리 뚫릴 수 있다는 뜻. 그래서 암호로는 사용이 어렵다. 대신 DES의 흔적들을 현대 암호에서 찾아볼 수는 있습니다.
표현 방식에 따라 몇가지 방법으로 나눌 수 있는데,
ECB 방식이 있음. (Electronic Code Book)
문제 1. 다음 중 DES가 현대 암호 환경에서 보안에 취약하다고 평가받는 가장 주된 이유는 무엇인가요?
a) 비대칭키 암호화 방식이어서 키 분배에 어려움이 있기 때문이다. b) 라운드 함수가 역함수를 가지지 않아 복호화가 불가능하기 때문이다. c) 56비트의 비교적 짧은 유효 키 길이로 인해 무차별 대입 공격(Brute-force attack)에 취약하기 때문이다. d) 데이터를 블록 단위가 아닌 스트림 단위로 처리하여 데이터 무결성을 보장할 수 없기 때문이다.
정답: c) 56비트의 비교적 짧은 유효 키 길이로 인해 무차별 대입 공격(Brute-force attack)에 취약하기 때문이다.
EBC 과정 예시 이미지
º 비대칭 알고리즘 개념
문제 1: 실제 대용량 데이터를 암호화하여 전송할 때, 비대칭키 암호화만 단독으로 사용하기보다는 대칭키 암호화와 결합된 하이브리드 암호화 방식을 사용하는 것이 일반적입니다. 이러한 방식을 채택하는 가장 주된 이유는 무엇인가요?
a) 비대칭키 암호화는 키 길이가 너무 짧아 충분한 보안 강도를 제공하지 못하기 때문이다. b) 비대칭키 암호화는 암호화 및 복호화 연산 속도가 느리고, 요구되는 연산 자원이 많아 대용량 데이터 처리에 비효율적이기 때문이다. c) 비대칭키 암호화는 디지털 서명 기능만 제공하고 데이터 암호화 기능은 제공하지 않기 때문이다. d) 비대칭키 암호화는 오직 한 방향으로만 암호화가 가능하여 양방향 통신에 적합하지 않기 때문이다.
문제 2: 수많은 사용자가 서로 안전하게 통신해야 하는 대규모 네트워크 환경에서, 비대칭키 암호화가 대칭키 암호화에 비해 '키 분배 문제 해결'에 훨씬 유리한 가장 큰 이유는 무엇인가요?
a) 모든 통신 참여자가 하나의 공통된 비밀 키만 안전하게 공유하면 되기 때문이다. b) 각 사용자가 자신의 개인키만 안전하게 보관하고, 공개키는 누구나 자유롭게 사용할 수 있도록 공개해도 보안에 문제가 없기 때문이다. c) 비대칭키 암호화는 키 자체를 암호화하여 전송하므로 중간에 키가 탈취될 위험이 전혀 없기 때문이다. d) 비대칭키 암호화는 통신 시 암호화 키를 전혀 사용하지 않으므로 키 분배 자체가 필요 없기 때문이다.
문제 3: 어떤 시스템에서 송신자가 보낸 메시지의 내용이 위변조되지 않았음을 보장하고, 해당 메시지가 실제로 송신자에 의해 작성되었음을 강력하게 증명해야 할 필요가 있습니다. 이러한 '메시지 무결성'과 '송신자 부인 방지' 기능을 가장 효과적으로 제공하는 비대칭키 암호화의 활용 분야는 무엇인가요?
a) 공개키를 이용한 대용량 데이터의 고속 암호화 b) 안전한 통신을 위한 대칭 세션 키 교환 c) 개인키를 이용한 디지털 서명 생성 및 공개키를 이용한 서명 검증 d) 모든 사용자의 공개키를 한 곳에 모아 관리하는 공개키 인프라(PKI) 구축
문제1. 정답: b) 비대칭키 암호화는 암호화 및 복호화 연산 속도가 느리고, 요구되는 연산 자원이 많아 대용량 데이터 처리에 비효율적이기 때문이다.
문제2. 정답: b) 각 사용자가 자신의 개인키만 안전하게 보관하고, 공개키는 누구나 자유롭게 사용할 수 있도록 공개해도 보안에 문제가 없기 때문이다.
문제3. 정답: c) 개인키를 이용한 디지털 서명 생성 및 공개키를 이용한 서명 검증
RSA:
RSA는 1970년대 후반에 개발된 암호 방식입니다. 리베스트와 샤미르가 암호를 만들어내면 애들먼이 해독하는 방식으로 암호가 발전해왔는습니다. 소통 방식은 크게 다음과 같은데,
B가 공개키/ 비밀키를 만듭니다.
만든 공개키를 A에게 전송합니다.
A는 B에게서 받은 공개키를 데이터를 암호화합니다.
암호문을 B에게 전송합니다.
B는 받은 암호문을 비밀키를 이용해 복호화 합니다.
보안성 우수, 암 복호화 속도가 느림.
회로가 복잡함
ECC (이산대수 기반)
문제 1: RSA 암호화 알고리즘은 현대 공개키 암호 시스템의 대표 주자입니다. RSA가 데이터를 안전하게 보호할 수 있는 기반이 되는 수학적 난제와 RSA가 속하는 암호 시스템의 종류가 올바르게 연결된 것은 무엇인가요?
a) 이산 로그 문제; 대칭키 암호 b) 소인수분해의 어려움; 비대칭키 암호 c) 충돌 저항성; 해시 함수 d) 키 스트림 생성의 난수성; 스트림 암호
문제 2: RSA 암호화에서 공개키 (e,n)와 개인키 (d,n) 쌍을 생성하는 과정은 여러 단계로 이루어집니다. 이 키 생성 과정에서 가장 먼저 선택되어야 하는 핵심 요소는 무엇인가요?
a) 공개 지수 (e)와 개인 지수 (d) b) 두 개의 아주 큰 소수 (p, q) c) 모듈러스 값 (n)과 오일러 파이 함수 (ϕ(n)) d) 암호화할 메시지 (M)와 복호화할 암호문 (C)
문제 3: RSA 암호 시스템에서 사용자 A가 사용자 B에게 메시지를 암호화하여 보내고, 사용자 B가 그 메시지를 안전하게 복호화하여 확인하고자 합니다. 이 과정에서 사용자 A가 메시지 암호화에 사용하는 키와 사용자 B가 메시지 복호화에 사용하는 키의 조합으로 가장 적절한 것은 무엇인가요?
a) 사용자 A: 자신의 개인키 / 사용자 B: 사용자 A의 공개키 b) 사용자 A: 사용자 B의 공개키 / 사용자 B: 사용자 B의 개인키 c) 사용자 A: 사용자 B의 개인키 / 사용자 B: 자신의 공개키 d) 사용자 A: 자신의 공개키 / 사용자 B: 사용자 A의 개인키
정답1 : b) 소인수분해의 어려움; 비대칭키 암호
정답2 : b) 두 개의 아주 큰 소수 (p, q)
정답3 : b) 사용자 A: 사용자 B의 공개키 / 사용자 B: 사용자 B의 개인키
비대칭 암호화의 기능
대칭키 알고리즘과 비대칭키 알고리즘의 차이는
보안기사 정리집을 참고
º 해시 함수
해시 함수란
주어진 데이터를 고정 길이의 불규칙적인 숫자로 변환하는 함수입니다.
일단 길이가 일정해야 하고,
내용이 변경되면 길이도 변경됩니다.
실제로는 해시 함수는 컴퓨터 내부에서 수치를 계산하고 있습니다.
메시지 위조, 변조 확인에 사용됩니다.
** 해시값을 통해 해시되기 전의 값을 추축하는 것이 불가능하게 함.
사용되는 해시 함수
MD5: 32개 16진수
RIPEMD-160
SHA-224, SHA-256, SHA-384, SHA-512
다음 중 해시 함수의 주요 특징이나 용도에 대한 설명으로 가장 적절하지 않은 것은 무엇인가요?
a) 해시 함수는 입력 데이터의 크기와 관계없이 항상 동일한 고정 길이의 해시값을 생성한다. b) 원본 메시지의 내용이 단 한 글자라도 변경되면, 계산된 해시값은 크게 달라진다. c) 해시값만으로 해시되기 전의 원본 데이터를 쉽게 역추적하여 복원할 수 있다. d) 파일이나 메시지의 무결성(데이터가 변조되지 않았음)을 확인하는 데 유용하게 사용된다.
c) 해시값만으로 해시되기 전의 원본 데이터를 쉽게 역추적하여 복원할 수 있다.
문제 1: 이미지에 나타난 공개키 기반 구조(PKI)에서 '인증서 발급'의 주체는 어디입니까?
(1) 등록대행기관(RA)
(2) 인증기관(CA)
(3) 검증기관
(4) 사용자
문제 2: 사용자가 온라인 상점과 안전하게 통신하기 위해 이미지에서 어떤 절차를 거치게 되나요? (두 가지를 선택하세요)
(1) 인증서 발급 요청
(2) 인증서 전자서명
(3) 유효성 확인
(4) 인증서 확인 요청
문제 3: 공개키 기반 구조(PKI)가 제공하는 핵심적인 기능은 무엇입니까? (하단의 설명 참고)
(1) 사용자 등록 및 관리
(2) 암호화 알고리즘 개발
(3) 보안이 되지 않는 네트워크를 통한 안전한 전송
(4) 하드웨어 보안 모듈(HSM) 제공
문제 1 정답: 2. 인증기관(CA)
설명: 그림에서 '인증서 발급' 화살표가 인증기관(CA)에서 나가는 것을 볼 수 있습니다.
문제 2 정답: 2. 인증서 전자서명, 4. 인증서 확인 요청
설명: 사용자는 온라인 상점으로 '인증서 전자서명'을 보내고, 온라인 상점은 '인증서 확인 요청'을 검증기관으로 보내서 인증서의 유효성을 확인하는 과정을 거칩니다.
문제 3 정답: 3. 보안이 되지 않는 네트워크를 통한 안전한 전송
설명: 그림 하단에 PKI에 대한 설명으로 "문서, E-commerce, 메일을 보안이 되지 않는 네트워크를 통해 안전한 전송이 가능하게 하는 플랫폼"이라고 명시되어 있습니다.
객체인식 알고리즘이란? 딥러닝, 머신러닝을 활용해 산출되는 기술로, 이미지나 비디오와 상에서 객체를 식별하는 것이라고 할 수 있습니다.
객체 검출 노이즈를 최소화해야 함. 특히 카메라를 움직일 때 검출 노이즈가 크게 증가하기 때문에 다중객체추적을 통해 리스크를 줄여야 함.
적대적 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, 전자 상거래