전공/컴퓨터보안
-
기밀성, 무결성, 가용성의 예시전공/컴퓨터보안 2020. 6. 6. 16:14
암호의 3요소인 기밀성, 무결성, 가용성을 인터넷 뱅킹을 사용할 때 예시를 들어 설명해본다. 기밀성은 비인가된 사람이 정보를 볼 수 없는 성질이다. 인터넷뱅킹으로 송금을 할 때 비밀번호를 통해 통장의 주인임을 인증한다. 이 때 기밀성이 적용된다. 비밀번호를 모른다 -> 비인가자 -> 통장 정보를 볼 수 없다 무결성은 비인가된 사람의 정보 변경을 막는 성질이다. 무결성은 비밀번호도 쓰일 수 있는데 그보다는 보안카드, 공인인증서가 더 알맞다고 할 수 있다. 만약 타인이 로그인을 통해 통장의 입출금내역, 잔고는 볼 수 있어도 변경을 할 수는 없다. 그렇다 해도 실제 돈을 송금하기 위해서는 보안카드, 공인인증서, 생체 보안 과정을 거쳐야 최종적으로 전송되는 경우가 많다. 마지막으로 ..
-
서명 후 암호화 vs 암호화 후 서명전공/컴퓨터보안 2020. 6. 6. 15:13
서명을 하면 무결성은 보장되지만 비밀성은 보장이 되지 않고, (공개키로)암호화를 하면 비밀성은 보장되지만 무결성은 보장이 되지 않는다. 그렇다면, 무결성과 비밀성을 같이 챙기기 위해서는 둘을 합치면 될 듯하다. 방법은 두 가지로 나뉜다. 1. 서명 후 암호화 앨리스는 자신의 개인키로 서명을 하고 밥의 공개키로 암호화를 한다. 그리고 밥한테 보낸다. 밥은 앨리스를 엿먹이기 위해 자신의 개인키로 복호화를 한다. 그러면 [M]앨리스 만 남는데, 이걸 찰리의 공개키로 암호화를 해서 찰리에게 보낸다. 받은 찰리는 자신의 개인키로 복호화를 하고, 앨리스가 자신에게 보낸 내용으로 오해를 한다. 즉, 원래 의도한 사람이 암호문을 공개키로 복호화를 한 뒤, 그 내용을 다른 사람한테 보낼 수 있게 된다...
-
블록암호 모드(ECB, CBC, CTR)전공/컴퓨터보안 2020. 6. 5. 14:02
스트림암호를 암호화하는 방식은 간단하다. 평문 길이만큼의 키 길이를 생성해 XOR 연산을 하는 것이다. 그렇다면, 블록암호는 어떻게 할까? 블록암호는 스트림암호와 달리 여러 블록의 조합으로 이루어졌기 때문에 스트림 암호화하는 방식을 쓸 수는 없다. 블록암호를 하는 방식은 크게 세 가지로 나뉜다. 1. ECB ECB(Electric CodeBook)를 한글로 풀어 쓰면 '전자 코드북'이다. 코드북과 비슷한 기능을 함을 유추할 수 있다. 구체적으로 설명하자면, 키 K가 동일할 때 동일한 평문 블록은 동일한 암호문 블록으로 바뀐다는 소리다. ECB 방식은 블록을 독립적으로 암호화한다. 그만큼 직관적이고 단순하다. 그렇기 때문에 치명적인 단점이 존재한다. 트루디가 암호문을 보고 ..
-
해시 함수전공/컴퓨터보안 2020. 6. 5. 12:59
해시함수는 입력값을 '압축'해서 입력값보다 훨씬 짧은 길이의 출력값을 내보내기 때문에 '효율성'이 좋다. 해시함수는 양방향이 아닌 '단방향'이 특징이다. h(x) = h(z)을 만족하는 z값이 존재하지만 x와 z는 같지 않은 값을 찾기 어려워야 한다. 이걸 해시 충돌이라고 하는데, 해시 충돌을 막지 않는다면 키가 아닌 다른 값도 키라고 인식하는 치명적인 오류가 발생한다. 위와 같은 특징들을 갖고 있는 해시 함수는 개인키와 콜라보할 때 진가를 발휘한다. 개인키는 안전한데 대칭키에 비해 속도가 굉장히 느린 단점이 있다. 이러한 단점을 극복하기 위해 해시 함수를 평문에 적용시키면 평문의 길이가 줄어들어 암호화, 복호화하는 시간도 적어지는 것이다. 평문 M의 길이보다 해시함수를 적용한 ..
-
공개키 - 서명과 부인봉쇄(Non-repudiation)전공/컴퓨터보안 2020. 6. 5. 11:57
공개키 챕터를 공부하면서 '서명한다'는 뜻이 도대체 무슨 뜻인지 감을 잡지 못했다. 하지만 이제는 확실히 알겠다. '서명'은 평문(M)을 '개인키'로 암호화하는 것이다. 기호로 표기하면 [M]인 것이다. 이와는 별개로 공개키 방식은 보통 '공개키'로 평문(M)을 암호화하는데, 기호로 표현하면 {M}이다. 이러한 서명 또는 전자서명은 어떠한 장점이 있을까? 바로 무결성과 부인봉쇄다. 무결성은 신뢰하는 사람만 값을 바꿀 수 있는 성질이다. 부인봉쇄(Non-repudiation)는 송신자가 수신자에게 보낸 정보를 자신이 보내지 않았다고 '부인'하는 것을 막아버리는 것이다. 송신자는 왜 저런 짓을 하는 걸까? 자기한테 이득이 되니까 그러겠지? 책의 예시를 통해 보다 쉽게 설명하겠다...
-
합성 암호체계(hybrid cryptosystem)전공/컴퓨터보안 2020. 6. 5. 10:56
합성 암호체계(hybrid cryptosystem)란, 공개키 방식에 '효율성'이 장점인 대칭키 방식을 섞어 둘의 장점만을 취한 암호화 기법이다. 공개키의 가장 큰 장점은 '키를 공유하지 않아도 된다'는 것이다. 공개키는 누구나 알기 때문에 공개키로 암호화를 할 수는 있으나, 복호화는 개인키로만 가능하니까 개인키를 알고 있는 특정한 사람만 풀 수 있기 때문이다. 대칭키 방식이 효율성이 좋은 이유는 공개키 방식보다 암호화, 복호화 속도가 훨씬 빠르기 때문이다. 하지만 대칭키 방식에서는 암호화, 복호화를 단 하나의 키로 할 수 있기 때문에 암호화, 복호화를 하는 사람들끼리만 알고 있어야 한다. 합성 암호체계는 이 두 방식의 장점만을 취한다. 밥이 앨리스에게 정보를 보낸다고 하자. 밥..
-
공개키 암호 - 디피헬먼(DH)전공/컴퓨터보안 2020. 6. 4. 15:25
디피-헬먼(DH)은 암호화, 복호화를 하는 알고리즘이 아닌, 키 교환을 하는 알고리즘이다. 공개키에서는 키 교환을 할 필요가 없다. 그러므로 디피헬먼은 공개키가 아닌 대칭키 암호 방식에서 키 교환을 위해 쓰인다. 키교환을 하기 위해 필요한 식이 있다. p를 소수라고 하고, g를 생성자라고 하며, p와 g는 공개키이다. 앨리스와 밥이 대칭키에 필요한 키를 교환한다고 가정하자. 앨리스와 밥은 각각 개인키 a 와 b를 가지고 있다. 앨리스(a소유)는 밥(b소유)에게 g^a mod p 를 보내고, 밥은 g^b mod p 를 앨리스에게 보낸다. 앨리스는 a를 가지고 있기 때문에 g^b mod p를 밥에게서 받은 뒤, 자신의 개인키인 a를 제곱하면 (g^b)^a mod p 라는 값을..
-
공개키암호 - RSA전공/컴퓨터보안 2020. 6. 4. 14:23
RSA는 교수님께서 공개키 중에서 가장 중요한 암호라고 언급하셨다. 엇 그럼 시험출제각? 얘는 배낭 암호보다 이해하기 어려운데, 공식만 외운다면 푸는 방법은 배낭 암호보다 훨씬 간단하다. RSA는 배낭 암호와 동일하게 공개키로 암호화를 하고 개인키로 복호화를 한다. RSA를 이용해 공개키와 개인키를 만들어내기 위해서는 제법 큰 수인 서로소 관계인 p와 q가 필요하다. 얘들로 계수인 N, 암호화 지수인 e, 복호화 지수인 d를 만든다. N = p*q e = (p-1)(q-1)과 서로소 관계인 정수 ed = 1 mod(p-1)(q-1) 공개키는 (N,e)가 되고 개인키는 d가 된다. 암호화, 복호화하는 공식은 아래와 같다. 가장 아래의 식은 오일러 정리를 통해 성립이 된다. 예시..