컴퓨터 공학
-
네트워크 보안 - 8 | 인가컴퓨터 공학/보안 2023. 2. 10. 21:00
인가 이전 포스트에서는 접근제어의 두 가지 부분 중 하나인 인증에 대해 알아보았다. 그리고 이번 포스트에서는 나머지 반쪽인 인가에 대해 알아보고자 한다. 인가는 접근제어의 한 부분으로서 인증된 사용자의 활동을 제약하는 문제를 다룬다. 좀 더 자세히 말하자면, 인증이 시스템 자원에 접근하려는 사용자에 대한 판별의 문제라면, 인가는 이미 인증된 사용자가 하려는 행동을 제약하는 상황을 다룬다는 것이다. 인증과 인가를 같은 접근제어를 의미하는 용어로 사용하는 경우도 많이 있지만, 이번 포스트에서는 인증과 인가를 나누어 생각해 보기로 한다. 접근제어행렬 접근제어행렬은 주체와 객체를 행렬의 행과 열로 표현하는 방법을 말한다. 여기서 주체는 시스템 사용자로 정의되며, 객체는 시스템의 자원으로 정의된다. 이때 주체의 ..
-
네트워크 보안 - 7 | 인증컴퓨터 공학/보안 2023. 2. 6. 17:31
접근제어 접근제어는 시스템 자원에 대한 접근을 제어하는 것을 말하는데, 보통 인증과 인가라는 두 부분으로 나누어진다. 인증은 사용자 또는 개체가 특정 시스템이나 자원에 접근하는 것을 허용할지 말지를 결정하는 문제이다. 인증의 정의에 따라 인증된 사용자는 시스템 자원에 대한 접근이 허용되는데, 인증된 사용자라 할지라도 시스템의 모든 자원에 대한 접근이 허용되는 것은 아니다. 예를 들어 시스템의 관리자와 같은 특별한 권한을 가지는 사용자에게만 부여되는 권한이 있을 수 있는데, 이렇듯 인증된 사용자에 대해 서로 다르게 접근을 제어하는 것을 인가라고 한다. 인증이 시스템 자원에 대한 접근 허용 또는 접근 거부 중 하나를 선택하는 문제라면, 인가는 다양한 시스템 자원의 접근에 있어서 보다 세분화된 제어와 제약을 ..
-
네트워크 보안 - 6 | 기타 암호 주제컴퓨터 공학/보안 2023. 2. 3. 22:36
비밀 공유 비밀 S가 있고 앨리스와 밥이 이 비밀을 서로 공유하고자 한다. 이때 비밀을 공유한다는 것은 다음의 뜻이다. 앨리스와 밥 단독으로는 비밀 S를 알아낼 수 없다. 앨리스와 밥이 함께 힘을 합치는 경우에만 비밀 S를 알아낼 수 있다. 이는 언뜻 보기에는 어려운 문제처럼 보일 수 있지만 생각보다 간단한 방법으로 해결할 수 있다. 비밀 S를 가지고 (0, S)를 통과하는 직선을 하나 그린다. 그리고 해당 선 위에 존재하는 두 개의 점을 정해서 하나는 앨리스에게 주고, 하나는 밥에게 주면 된다. 직선은 최소 두 개의 선이 존재해야 그릴 수 있으므로, 둘 중 한 명의 정보만 가지고는 S의 값을 알 수 없다. 하지만 앨리스와 밥이 서로의 값을 공개하여 직선을 그린다면 S의 값을 알아낼 수 있을 것이다. 이..
-
자료구조 - 7 | 큐컴퓨터 공학/자료구조 2023. 1. 25. 21:15
큐 이전 포스트에서 알아본 자료구조인 스택은 가장 나중에 삽입한 원소를 가장 먼저 삭제하는 후입 선출 구조(LIFO; Last-In-First-Out)를 가졌다. 반면 이번에 알아볼 자료구조인 큐는 가장 먼저 삽입한 원소를 가장 먼저 삭제하는 선입 선출 구조(FIFO; First-In-First-Out)를 가진다. 따라서 큐 역시 스택과 비슷하게 삽입과 삭제의 위치가 제한되어 있는 리스트의 형식이다. 다만 비교적 구현이 간단했던 스택에 비해, 큐의 경우 삽입하는 부분과 삭제하는 부분의 위치가 서로 달라 구현에 약간의 복잡함이 있을 수 있다. 큐의 연산 큐도 스택처럼 삽입과 삭제 연산을 가진다. 스택에서는 push와 pop이라고 불렀지만, 큐에서는 삽입을 enQueue, 삭제를 deQueue라고 부른다. ..
-
자료구조 - 6 | 스택컴퓨터 공학/자료구조 2023. 1. 19. 16:49
스택 지금까지 선형 자료구조 중 순차 자료구조와 연결 자료구조에 대해 알아보았다. 이 두 자료구조는 단독으로 사용된다기보다는 다른 자료구조를 구현하기 위해 주로 사용된다. 실제로도 리스트를 구현하기 위해 이 두 방식을 사용해 선형 리스트와 연결 리스트를 구현할 수 있었다. 이번에는 단순히 데이터를 순서대로 나열하기만 하는 리스트가 아닌, 특정한 제약을 가지고 동작하는 스택이라는 자료구조에 대해 알아볼 것이다. 스택 역시 순차 자료구조와 연결 자료구조를 이용해 각각 다른 형태로 구현할 수 있으므로, 이전에 설명한 순차 자료구조와, 연결 자료구조의 개념에 대해 다시 한번 확인하기를 바란다. 스택의 개념 스택은 데이터를 접시를 쌓듯이 쌓아 올리는 형태로 저장하는 자료구조이다. 새 접시를 쌓아 올릴 때는 항상 ..
-
자료구조 - 5 | 연결 자료구조컴퓨터 공학/자료구조 2023. 1. 16. 14:42
연결 자료구조 자료들이 서로 1:1의 관계를 가지는 선형 자료구조에는 리스트, 스택, 큐, 데크 등의 여러 형태가 있다. 그중에서도 새로운 데이터를 삽입하거나 기존 데이터를 삭제하는데 별다른 제약이 없는 가장 기초적인 형태의 자료구조가 바로 리스트이다. 이러한 리스트는 순차 자료구조와 연결 자료구조로 분류할 수 있는데, 각각 순차 리스트와 연결 리스트로 부르기도 한다. 순차리스트는 보통 배열, 연결 리스트는 그냥 리스트라고 취급한다. 이전 포스트에서는 순차 자료구조에 대해 간단하게 알아보았다. 이번 포스트에서는 리스트를 만들 수 있는 또 다른 방식인 연결 자료구조에 대해 알아보고자 한다. 순차 자료구조의 문제점 기본적으로 연결 자료구조는 순차 자료구조의 문제점들을 개선한 구조를 가지고 있다. 따라서 순차..
-
자료구조 - 4 | 순차 자료구조컴퓨터 공학/자료구조 2023. 1. 13. 22:29
순차 자료구조 순차 자료구조는 선형 자료구조의 일종으로, 저장할 자료들을 메모리에 연속적으로 저장하는 방식인 자료구조이다. 단순히 메모리에 저장할 자료들을 순서대로 저장하기만 하면 되기 때문에 구현이 매우 간단하다는 특징이 있다. C언어에서 배열이라고 불리는 자료구조가 바로 이 순차 자료구조이다. 선형 자료구조 자료들이 서로 1:1의 관계를 가지는 자료구조로, 데이터가 마치 한 줄로 연결된 듯한 형태를 가지고 있다. 순차 자료구조, 연결 자료구조, 스택, 큐, 데크 등이 선형 자료구조에 해당한다. 반면 같은 선형 자료구조이지만 순차 자료구조와는 다른 방식으로 구현할 수 있는 연결 자료구조라는 방식도 있다. 이는 순차 자료구조를 사용함에 있어서 생길 수 있는 문제점들을 개선하기 위해 고안된 자료구조로, 순..
-
네트워크 보안 - 5 | 해시 함수컴퓨터 공학/보안 2022. 10. 10. 22:17
해시함수 해시함수 또는 해시 알고리즘이라고 불리는 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 변환해 주는 함수이다. 보통 자료구조에서 해시 테이블이라는 용도로 사용되며, 이를 이용해 빠른 데이터 검색을 구현할 수 있다. 이러한 해시함수를 암호로도 사용할 수 있는데, 암호로 사용할 수 있는 해시함수를 암호학적 해시 함수라고 한다. 이때 암호학적 해시함수는 특정 조건을 만족해야 하는데, 이 조건은 다음과 같다. 압축: 입력의 크기와 상관없이 출력의 길이는 항상 작아야 한다. 이때 출력의 크기는 고정되어 있다. 효율성: 입력에 상관없이 해시 함수를 계산하기 쉬워야 한다. 입력의 크기가 커질수록 계산 시간이 증가하는 것은 당연하지만, 너무 빨리 증가해서는 안된다. 단방향: 이미 계산된 해시 값을 가지..