Security Threat [ Malware ] : 악성 코드. 컴퓨터나 네트워크 시스템에 설치해 데이터를 파괴하거나 도용함. · Trojan Horse : 정상 프로그램으로 위장한 악성 프로그램. · Root kit : System의 Root 권한을 얻어 악성 코드를 숨김. · Backdoor : 인증 절차를 우회하여 접속하도록 하는 방식. · Virus : 프로그램 안에 숨어 복제 및 감염하는 악성 코드. 기생 형태. · Worm : 능동적으로 전파하며, 스스로 복제하는 악성 코드. · Ransomware : 기기나 데이터를 암호화시키며, 복구 시 비용을 주도록 요구하는 방식. [ Black Market ] : 온·오프라인으로 운영되는 암시장. : 신용카드, 체크카드, 페이팔 계정, 개인정보, 악성..
Classical Encryption Techniques [ Plaintext & Ciphertext ] · Plaintext : 암호화되기 전의 원래 텍스트. 평문. · Ciphertext : 평문을 암호화하여 얻은 암호문. [ Secure ] · Unconditionally Secure : 수학과 관련없는 통계적인 암호화 방식. · Computationally Secure : 수학적으로 풀어낼 수 있으나 계산량 측면에서 현실적으로 불가능한 암호화 방식. [ Classical Encryption ] : 고전적인 암호화 방식으로, 대부분 암호화와 복호화에 동일한 Key를 이용하는 Symmetric Cipher를 이용. · Substitution Cipher - Caesar Cipher : 알파벳 테이블을..
Basic Number Theory [ Euclidean Algorithm ] : GCD(Greatest Common Divisor; 최대공약수)를 구하는 알고리즘. #include // a > b라고 가정 int gcd(int a, int b) { while(b != 0) { int r = a % b; a = b; b = r; } return a; } [ Modular Arithmetic ] · a ≡ b (mod m) : a와 b가 m에 의해 나누어졌을 때 나머지가 동일. · (a ± b) mod m = (a mod m ± b mod m) mod m · (a * b) mod m = (a mod m * b mod m) mod m · 나눗셈의 경우 Modular Inverse를 이용하여 계산하며, 이를 ..
Scheduling [ Non-preemption & Preemption ] · Non-preemption : Process가 수행 중일 시 Priority가 높은 것이 들어와도 끝날 때 까지 Context Switch를 하지 않는 방식. (System Call) : ~Linux 2.4 버전까지는 이러한 방식으로 Kernel이 구성되었다. · Preemption : Process가 수행 중일 시 Priority가 높은 것이 들어오면 중간에 Context Switch를 하는 방식. (System Call) : Linux 2.6 버전부터 이러한 방식으로 Kernel이 구성되었다. : Real-Time 응용을 위해 도입. [ Dispatcher ] : Schedule..
Thread [ Thread ] : Process 내에서 실행되는 작은 실행 단위. : 공유할 수 있는 메모리와 자원을 공유. → Heap, Data, Code는 공유하며, Stack과 Register는 별도. : 자원을 공유하므로 IPC가 매우 간단해짐. : fork 대신 pthread_create를 이용. → pthread_create(&tid, &attr, argv[i]) : 각 Thread는 Concurrent하게 수행됨. : Process 간 Context Switch에 비해 Context Switch에 대한 Overhead가 매우 적음. : 다른 작업을 처리하는 중에도 작업 실행이 가능하므로 응답성(Responsiveness)이 향상된다. : Multi-Processor Architecture..