Computer Science
[Computer Network] Cryptography
[Computer Network] Cryptography
2025.12.14네트워크 보안의 기초는 Symmetric Key Cryptography (대칭키 암호화) 항상 그렇듯 Alice와 Bob이 통신함. 동일한 키를 공유하고, 키는 Ks로 표현.Ks(m)은 공유키로 평문을 암호화함을 의미. 동일한 Ks를 사용해 암호문을 평문으로 변환할 수 있다. 서로 만나지 않은 상태에서 네트워크로 키를 주고받으면 공격자가 키를 가로챌 수 있는데. Ks 값을 어떻게 설정해야 할까? Data Encryption Standard56비트 대칭키를 사용해 데이터를 64비트 크기의 블록으로 쪼개서 암호화.Block Cipher 방식을 사용해 블록들을 서로 연결해 암호화 강도를 높이는 Cipher Block Chaning 기법을 사용한다. 다만.. 56비트 키는 브루트포스 때리면 너무 쉽게..
[Computer Network] Multimedia Streaming
[Computer Network] Multimedia Streaming
2025.12.14텍스트나 이미지같은 정적 리소스 말고 대용량의 음성, 영상 데이터를 네트워크로 전송할 때 사용하는 프로토콜이 있음. RTMP / RTMPS (Real Time Messaging Protocol)어도비가 개발한 실시간 메세징 프로토콜으로, 스트리머가 영상을 서버로 보낼 때 사용한다.OBS같은 Encoder 프로그램에서 원격 서버로 영상을 업로드 할 때 표준처럼 사용됨. TCP인데도 연결을 유지하고, 데이터를 Stream으로 보내기에 지연시간이 짧다.다만 End User에 도달할 때는 HLS/DASH 등 다른 프로토콜으로 변환된다. HLS (HTTP Live Streaming)애플이 제안한 HTTP 기반 스트리밍 프로토콜으로, 거대한 영상 파일을 Segment로 잘게 나눠서 전송한다.HTTP 80 포트를 ..
[Computer Network] IP Address
[Computer Network] IP Address
2025.12.13IP 주소는 컴퓨터나 라우터 등 인터페이스에 할당된다.여기서 인터페이스는 호스트 / 라우터와 물리적 링크 사이의 연결 지점을 의미함.즉, 디바이스 자체는 방이고, 인터페이스는 그 방으로 들어갈 수 있는 문, IP 주소는 그 문에 붙은 번호판으로 보면 된다. 노트북은 하나지만 C타입 포트도 있고 USB 포트도 있고 무선 와이파이도 잡을 수 있다. 그러면 노트북의 인터페이스는 3개. 라우터도 비슷하게 생각하자. 여러 네트워크를 연결해 줘야 하니 라우터는 연결된 네트워크 수 만큼 IP 주소를 가진다. IP 주소를 표기할 때는 CIDR 쓰는데 이건 다 아니까 패스.. 원래 클래스 썼다가 CIDR로 바꿈. CIDR이 표준. 루프백 사설 브로드캐스트 등 특수 목적 IP 주소가 있고 IPv4가 부족해지면서 1..
[Computer Network] Router
[Computer Network] Router
2025.12.13인터넷은 Packet Switched Network. 데이터는 IP 패킷으로 쪼개져서 전송되고, 라우터는 패킷 교환망의 교차로에 있는 신호등 역할을 수행한다.즉, Input Port로 들어온 패킷을 적절한 Output Port로 연결해줌. 경로를 만드는거랑 실제로 패킷을 전달하는건 다름. Routing은 출발지부터 목적지까지의 전체 경로를 결정하는 과정으로, Routing Table을 기반으로 수행된다.최단 경로, 정책 기반 등 경로 탐색 알고리즘을 사용함. Forwarding은 Input Port로 들어온 패킷을 Output Port로 실제로 넘겨주는 작업.Forwarding Table을 검색해 어디로 보낼지 결정한다. Control Plane - Software상단의 Routing Process..
[ML] Dimensionality Reduction
[ML] Dimensionality Reduction
2025.12.08차원이 늘어날수록 공간은 기하급수적으로 커진다. 데이터는 한정되어 있는데, 공간만 넓어지면 데이터 사이의 거리가 멀어진다.텅 빈 고차원 공간을 제대로 설명하기 위해 더 많은 입력 데이터가 필요함. (Feature n개 == n차원) Feature 수가 늘어날수록 Classifier의 성능이 올라갈 수 있음. 정보가 많아지니까~하지만, Optimal Point를 지나면 오히려 성능이 급격히 떨어진다. 정답을 맞추는데 필요 없는 데이터가 섞이고, 같은 정보를 담은 변수가 여러 개 생기고, Overfitting이 발생하고 오버헤드가 커지기 때문. 모든 Feature가 독립적이라면, Feature가 많을수록 성능이 좋아야 한다.그런데 현실의 데이터에서 모든 Feature가 독립적인건 절대 불가능하고, 데이터에 ..
[ML] Kernel Method
[ML] Kernel Method
2025.12.07Deep Neural Network나 Decision Tree를 학습시킬 때, Empirical Risk Minimization을 목표로 했음.훈련 데이터 (Empirical) 에 대한 에러 (Risk) 를 최소화 하는 것. Neural Network에서는 정답값과 예측값의 차이를 최소화 하기 위해 가중치를 조정했고,Decision Tree에서는 데이터의 엔트로피를 줄이는 방향으로 가지를 쳤다. 다만, 훈련 데이터에만 너무 집착하다 보면 Overfitting이 발생한다. Validation과 Regularization을 사용함. 두 클래스를 구분하는 선을 긋는다고 하자. 사실 Solution1과 Solution2 모두 잘 구분하긴 함.ERM 관점으로는 완벽한 분류임. 근데 새로운 데이터가 들어온..
[ML] Deep Neural Networks
[ML] Deep Neural Networks
2025.12.06그냥 말 그대로 깊이가 다르다. Simple Neural Network는 Input Layer와 Output Layer 사이에 있는 Hidden Layer가 적거나 하나밖에 없는 구조고, Deep Neural Network는 Hidden Layer가 많이 배치된 구조. 이렇게 층이 깊어질수록 네트워크는 더 복잡한 문제를 해결할 수 있음. 신경망을 설계할 때 가장 중요한게 모델의 Capacity. 클 수록 더 복잡한 패턴을 학습할 수 있다. Hidden Layer에 있는 Neuron의 수를 늘리면 Width가 늘어나고, Capacity도 늘어난다.Universial Approximation Theorem에 따르면 은닉층이 하나만 있어도 Neuron이 충분히 많다면 어떤 함수든 근사할 수 있지만.. 비효율적..
[ML] Neural Networks
[ML] Neural Networks
2025.12.06인간의 뇌가 작동하는 방식을 모방한 수학적 모델을 Neural Networks 라고 부름.데이터들이 가중치를 가진 네트워크 형태로 연결되어있고, 들어오는 신호가 강할 때만 해당 노드가 활성화되고 신호를 전달함. 가장 기초적인 역할은 데이터를 분류하는 것. 그냥 지금까지 한 것 처럼 Linear Function으로 공간을 두 개로 나누는거랑 똑같음. 기하 관점에서는 그래프그리는거고, 대수 관점은 g(x) > 0 이면 Class 1, g(x) 대수 관점에서 수식을 세워두면, 네트워크 형태로 표현할 때 입력값에 가중치를 곱해서 더하는 구조가 된다. Multivariate 문제로 일반화하면, 신경망의 구조가 명확해진다. 1. Inputs, Weightsx0, x1.. 입력변수들이 들어온다. x0..
[ML] Ensemble Method
[ML] Ensemble Method
2025.12.05모델을 하나만 써서 예측하는 것 보다, 여러 모델을 만들어 각각 예측하게 하고 결과를 종합해서 최종 결론을 내리게 하는 방법이다. Bias - 정답 값과 예측값의 차이. 높을수록 모델이 단순해서 패턴을 제대로 학습하지 않았음을 의미한다.Variance - 예측값들의 흩어진 정도. 높을수록 모델이 너무 복잡해서 학습 데이터에 강하게 반응함을 의미한다. (LaTex 하나하나 적기 너무 힘드니 이미지로...) 전체 에러인 MSE는 Variance와 Bias의 제곱의 합으로 분해된다. 즉, 좋은 모델을 만드려면 저 두 가지를 동시에 줄여야 함. Capacity가 증가할수록 Bias는 줄어드는데, Variance는 커진다.그러니 최적의 선을 찾아야 함. 저 둘을 합친 Generalization Er..
[SSS] CPU vulnerabilities and SideChannel Attack
[SSS] CPU vulnerabilities and SideChannel Attack
2025.12.04BOF 같은 버그는 모두 프로그래머가 코드를 잘못 작성해서 발생하는 취약점이다.근데 당연히 취약점 중에는 이런 소프트웨어 버그 말고도 CPU 아키텍처 자체의 구조적 허점을 찌르는 공격 방식도 많음.Meltdown과 Spectre가 그 예시. 설계나 명세의 오류가 아니고, CPU의 성능을 위해 필수적인 기능이기에.. 보안을 위해 기능을 끌 수도 없음. Meltdown 공격자가 데이터를 가져가려면 데이터가 어떻게 저장되고 보호되는지 알아야 한다.운영체제에서 다 다룬 내용이긴 함.. A 프로세스의 주소 공간은 B 프로세스와 완전히 격리되어 있다.그런데 커널 코드와 데이터는 모든 프로세스의 가상 주소 공간에 매핑됨. 커널 데이터가 내 주소 공간에 있다고 읽을 수 있는건 아니긴 함..유저 모드 코드가 커널 메..
[Compiler Design] Analysis and Optimization
[Compiler Design] Analysis and Optimization
2025.12.04Machine Dependent Processing에서는 가상의 코드를 실제 하드웨어에 맞춰서 매핑하는 작업을 수행함.Instruction Selection - Instruction Scheduling - Register Allocation Machine Independent Optimization에서는 특정 하드웨어와 상관없이 논리적으로 코드를 개선하는 작업을 수행함.Control Flow Analysis를 통해 프로그램의 분기 구조를 파악하고 최적화한다. 최적화의 목표는 실행 시간 단축 + 메모리 사용량 최소화.코드를 분석하고, 분석 결과를 통해 최적화를 수행해보자. Control Flow는 프로그램의 실행 순서를 의미함.그냥 위에서부터 순차적으로 쭉~ 실행되면 분석할거도 없는데, 분기문으..
[Compiler Design] Machine Dependent Processing
[Compiler Design] Machine Dependent Processing
2025.11.30이전까지는 IR을 어떻게 만드는지에 대해 다뤘으니, 이제 IR을 타겟 머신의 어셈블리 명령어로 매핑하고 명령어 순서를 재배치하는 작업에 대해 살펴보자. 즉, 컴파일러의 백엔드 부분에서는..Instruction Selection / Instruction Scheduling / Register Allocation을 수행함. Instruction Selection을 수행학시 위해 IR을 트리 구조로 표현한다. 좌측 트리는 e + c가 메모리에 있는 값을 나타내는 구조.MEM / BINOP / PLUS / CONST 등의 노드로 트리를 표현한다. MEM(e) - 주소 e에 있는 메모리의 값을 의미한다.SEQ(s1, s2) - s1을 수행한 후 s2를 수행한다.ESEQ(s, e) - s를 수행한 후 e의 ..