
복잡도와 안전성 ()
은 현대 보안의 '최소 안전 가이드라인'입니다.
컴퓨터 성능이 좋아짐에 따라, 공격자가 모든 키를 다 대입해 보는 데 걸리는 시간이 번의 연산보다 많이 필요하다면 "현재 기술로는 깨기 어렵다(Computationally Secure)"고 판단합니다.
Modern Application of cybersecurity

problem: comms over insecure channel
how to Alice to communication to Bob
insecure channel (wifi, internet, 4G,5G, ETC)
Bad guy "Trudy" can be active attacker
so Alice use Encryption
trudy can see it but only bob decrypt
Alice use k for encryption, Bob also use k for decryption (Symmetric)
they use same K, only both know K.
Question
how to share "K" safely?
that is the biggest issue at Symmetric alogrithm
we have to get secure channel first
Alice와 Bob이 똑같은 키 를 써야 하는데, "그 키를 처음에 어떻게 안전하게 보낼 것인가?"가 대칭키 암호화의 최대 난제입니다. 이를 해결하기 위해 나중에 수업에서 '비대칭키(공개키)'나 '디피-헬먼 키 교환' 같은 개념을 배우게 되실 거예요.
"암호 알고리즘(방법)이 적에게 알려지더라도, 키(K)만 비밀로 유지된다면 시스템은 안전해야 한다."
secure system should be be secure even if attacker know all the possible details except the "secret K".
즉, "우리가 어떤 수식을 쓰는지 비밀이야!"라고 숨기는 '보안을 통한 은닉(Security by obscurity)'은 나쁜 보안입니다. 알고리즘은 공개하고 검증받되, 오직 Key의 힘으로만 지키는 것이 현대 암호학의 정석입니다.
x -> plaintext
y -> ciphertext
e -> encryption function
d -> decryption function
Ek(x) -> y enycriptn
Dk(y) -> x decruption
K -> key
e-1k(y) -> x
|K| -> key space
exhaustive key search
가능한 모든 키를 다 넣어보는 것.
A,B,C,D...Z
262524*....(26!) = ()> ()

빈도 분석 공격
치환 암호(Substitution Cipher)가 키 공간이 로 매우 커서 브루트 포스에 강함에도 불구하고 사용되지 않는 이유입니다.
영어 문장에서 가장 많이 쓰이는 알파벳(E, T, A 등)의 통계적 특성을 이용하면, 키를 몰라도 암호문을 금방 풀어낼 수 있습니다.
a. Brute-force attack: 가능한 모든 키를 다 넣어보는 것.
b. Analytical attack: 알고리즘의 수학적 약점을 찾아 공격
c. implementation attack: 알고리즘 자체가 아닌, 하드웨어의 전력 소모나 소요 시간 등을 측정해 정보를 캐냄.
d. social engineering: 기술이 아닌 사람의 심리를 이용 (피싱, 사칭).