컴퓨터 공학
-
네트워크 보안 - 4 | 공개키 암호컴퓨터 공학/보안 2022. 10. 10. 18:29
공개키 암호 현대의 암호체계를 크게 대칭키 암호체계, 공개키 암호체계, 해시함수로 나눌 수 있다고 했는데, 이번에는 공개키 암호방식에 대해 알아보고자 한다. 이전에 알아본 대칭키 암호체계의 경우 암호화와 복호화에 필요한 키가 서로 같은 암호방식이었다. 암호화와 복호화의 속도가 빠르고, 비교적 간단한 방식으로 설계가 가능하기 때문에 과거에서부터 현대에 이르기까지 널리 쓰이는 암호방식이지만, 송신자와 수신자가 같은 키를 공유해야 한다는 것 자체가 가장 큰 어려움이라고 볼 수 있었다. 이를 해결할 수 있는 방법이 바로 공개키 암호체계이다. 공개키 암호체계에서는 암호화에 사용되는 키와 복호화에 사용되는 키가 서로 다른데, 이 중 암호화에 사용되는 키는 모두에게 공개를 할 수 있다. 왜 공개를 해야 하고, 키를 ..
-
네트워크 보안 - 3 | 대칭키 암호컴퓨터 공학/보안 2022. 10. 3. 14:59
현대 암호의 분류 2차 세계대전과 함께 놀랍도록 발전한 암호학은 고전 암호에서 현대 암호로 성장하게 되었다. 고전 암호에 비해 훨씬 수학적이고 학문적인 깊이가 깊어진 현대 암호는 시간이 지나면서 계속해서 발전해오고 있다. 여러 암호체계가 새로 생겨나고 또 도태되어 사라지면서, 현대 암호체계를 다양하게 분류할 수 있는데, 그중에서도 크게 세 가지 주제로 이를 분류할 수 있다. 바로 대칭키 암호체계, 공개키 암호체계, 해시함수이다. 이 중에서도 이번 포스트에서 알아볼 내용은 바로 대칭키 암호체계이다. 대칭키 암호체계는 대칭인 키를 이용하는 암호체계를 말하는데, 여기서 말하는 대칭키란 암호화와 복호화에 필요한 키가 서로 같다는 뜻이다. 즉, 데이터를 전송함에 있어 송신자와 수신자가 서로 같은 키를 공유해야 한..
-
네트워크 보안 - 2 | 고전 암호컴퓨터 공학/보안 2022. 9. 24. 17:53
암호학(Cryptology) 이전 포스트에서 정보보안의 3가지 요소인 CIA를 소개했었다. 이때 기밀성(Confidentiality)과 무결성(Integrity)의 경우, 암호화를 통해 그 목적을 달성할 수 있었다. 따라서 보안을 위해서라면 암호학을 공부하게 되는 것은 사실상 필수적인 과정이라 할 수 있을 것이다. 다만, 실제 현대 암호학의 경우 복잡한 수학적인 이론이 동반되는 경우가 많기 때문에, 단순 네트워크 보안을 위해 암호학을 공부하려는 사람들에게는 너무 깊이 들어가는 것이 너무 어렵고, 비효율적일 수 있다. 이러한 이유로 먼저 깊은 수학적인 지식이 없어도 직관적으로 이해 가능한 고전 암호에 대해 먼저 살펴본 다음, 현대에서 실제 사용하고 있는 암호화 방법에 대해 알아보도록 한다. 암호의 개본 개..
-
자료구조 - 3 | 알고리즘컴퓨터 공학/자료구조 2022. 9. 17. 16:44
알고리즘의 이해 알고리즘 문제 해결 방법을 추상화하여 단계적 절차를 논리적으로 기술해 놓은 명세서 알고리즘이란 컴퓨터가 특정 문제를 해결하기 위한 절차나 방법을 논리적으로 설명하는 과정 또는 명세서를 말한다. 컴퓨터 프로그램은 굉장히 많은 종류가 있는데, 각각은 모두 만들어진 목적이 다르다. 즉, 해당 프로그램을 이용해서 실현할 수 있는 결과가 다 다르다는 것인데, 이를 위해 각 프로그램에는 각자에 맞는 알고리즘이 사용된다. 일상생활에서 간단한 예시를 들어보자면, 요리 레시피가 알고리즘의 한 예라고 볼 수 있다. 요리 레시피에는 요리 재료와, 해당 재료를 이용해 어떠한 순서로 요리를 진행하는지 알려주는 부분이 있다. 여기서 재료에 해당하는 부분이 데이터(자료)에 해당할 것이고, 해당 자료를 어떠한 순서와..
-
자료구조 - 2 | 자료의 표현컴퓨터 공학/자료구조 2022. 9. 11. 01:32
디지털 시스템에서의 자료 표현 컴퓨터에서는 숫자, 문자, 그림, 소리 등의 모든 형식의 자료를 내부적으로 2진수 코드로 변환하여 저장하고 처리한다. 여기서 말하는 2진수 코드란 0과 1의 조합으로 이루어진 코드를 의미하며, 이때 0 또는 1을 나타내는 기본적인 단위를 비트라고 한다. 즉, 디지털 시스템에서는 어떠한 형태의 자료든지 0 또는 1로 이루어진 비트단위로 정보를 처리하게 된다. 따라서 만약 n개의 비트가 존재한다면, 이를 이용해 2^n개의 상태를 표현할 수 있다. 컴퓨터 내부에서 표현할 수 있는 자료 컴퓨터 내부에서 이러한 2진수 방식을 이용해 표현할 수 있는 자료의 형태는 다음과 같다. 수치 자료 문자 자료 논리 자료 포인터 자료 문자열 자료 이에 관한 자세한 내용은 아래에서 순차적으로 확인할..
-
자료구조 - 1 | 자료의 분류컴퓨터 공학/자료구조 2022. 9. 10. 21:42
자료구조의 개념 자료구조란, 자료(Data)를 효율적으로 표현하고 저장하고 처리할 수 있도록 정리하는 것으로, 일종의 정리정돈을 하는 방식에 대한 개념이다. 컴퓨터 프로그래밍에서 문제를 효율적으로 처리하기 위해서는, 해당 문제를 정의하고 분석하여 그에 대한 최적의 프로그램을 작성해야 할 필요가 있다. 이때 문제에 대한 처리 방식을 결정하는 것이 알고리즘에 관한 것이라면, 문제에 대한 처리 대상을 결정하는 것은 자료 정의에 관한 것이다. 따라서 처리할 자료의 구조에 대한 개념과 활용 능력이 반드시 필요하다고 볼 수 있다. 자료의 형태에 따른 분류 자료는 그 형태에 따라 분류할 수 있는데, 크게 아래의 4가지 구조로 나눌 수 있다. 단순 구조 단순 구조는 컴퓨터 프로그래밍에서 가장 기본적으로 사용하는 기본 ..
-
네트워크 보안 - 1 | 보안의 기본개념과 CIA컴퓨터 공학/보안 2022. 9. 10. 15:42
정보보안이란? 역사적으로 정보라는 것은, 그 존재만으로도 중요한 가치를 가진 경우가 많았다. 따라서 서로 자격이 있는 사람들끼리만 정보를 공유하고, 다른 사람의 귀에는 들어가지 않도록 보안을 신경 쓰는 행위는, 너무나도 당연하게 동반되는 행동이었다. 이를 위해 옛사람들은 특정 정보가 담긴 문서들을 한데 모아 찾을 수 없는 공간에 숨겨두거나, 열쇠와 자물쇠와 같은 물리적인 도구들을 이용해 접근 자체를 막는 방법을 사용하였다. 또는 정보를 담은 글 자체를 제삼자가 이해하지 못할 암호문으로 작성하여, 해당 암호의 구조를 이해하고 있는 사람만 정보를 확인할 수 있도록 하는 방식을 사용하기도 하였다. 이러한 정보에 대한 보안은, 무선통신의 발전에 의해 여러 중요한 정보들이 굉장히 먼 거리까지 빠르게 전달되는 시대..
-
CORS Policy (교차 출처 리소스 공유 정책)컴퓨터 공학/네트워크 2022. 5. 20. 18:43
CORS란? CORS란 Cross-Origin Resource Sharing의 줄임말로, 교차 출처 리소스 공유라고 번역할 수 있다. 이는 쉽게 풀어서 설명하면 서로 다른(Cross) 출처(Origin)에서 리소스(Resource)를 제공받는(Sharing) 행위를 의미한다. CORS 정책 위반으로 에러가 발생한다는 뜻은, 서로 다른 출처에서 리소스를 동시에 제공받으려고 시도했기 때문이다. 이때 왜 이러한 점을 금지하는 정책이 생겼는지는 아래에서 다시 설명한다. 출처(Origin) 여기서 말하는 출처란, 리소스를 제공하는 서버의 위치를 의미한다. 웹에서는 이러한 서버의 위치나 리소스의 위치를 나타내기 위해서는 URI라는 방식을 사용하는데, 통합 자원 식별자(Uniform Resource Identifie..