23년 2학기 학교공부 (82) 썸네일형 리스트형 [CN] IPSec - IP계층 보안 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 IPsec IPsec란 IP security의 약자로, 통신 세션의 각 IP패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜 통신을 위한 인터넷 프로토콜 스위트를 지칭한다. 이 보안은 통신 세션의 개별 IP 패킷을 인증하고 암호화하는 방식으로 동작하며, 암호화(encryption), 인증(authentication), 무결성(integrity)를 제공한다. 두개의 모드가 있다. 1. transport mode datagram의 payload부분만 암호화 및 인증한다. 2. tunnel mode 전체 datagram이 암호화 및 인증되고, 암호화된 datagram은 새로운 IP헤더를 갖는 새 datagram 안에 캡슐화.. [CN] 이메일 보안(PGP) 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 E-mail Security 이메일을 전송할 때 보안과 관련하여 중요한 점은 세가지가 있다. 기밀성(confidential) 무결성(integrity) 인증(authentication) 1. with Confidentiality Alice가 Bob에게 기밀성을 유지하는 이메일을 보내고 싶어한다고 하자. Alice의 입장 먼저 Alice는 Ks라는 대칭키를 제작한다. (이것을 Bob과 안전하게 나눠갖는 것이 목적) 보내려는 메세지 m 을 Alice가 제작한 대칭키 Ks로 암호화 한다. 그 대칭키 Ks를 Bob의 공개키 Kb 로 암호화 한다. (포인트!!) -> 이 말은 Bob만이 자신의 비밀키로 저것을 열 수가 있음. .. [CP] Machine Dependent Processing 2023학년도 2학기 충남대학교 조은선 교수님의 컴파일러개론 수업 정리자료입니다. 이제부터는 물리적인 제약조건도 생각하자. 컴파일러 후반부는 빠른 코드로 바꾸는 최적화 부분과 실제 머신에서 도는 코드로 바꾸는 부분으로 나뉜다. 회색 부분이 실제 머신에서 도는 코드로 바꾸는 부분. Machine-independent Optimization부분은 CPU나 컴퓨터구조와 관련없는 부분. 아래부분은 좀더 물리적 제약조건이 있고 머신 각각에 특화된 최적화를 하기 위해 노력하는 부분. 이번 시간에는 Instruction Selection과 Instruction Scheduling과 Register Allocation부분을 다뤄보자. 📁 Instruction Selection 명령어를 할당하는 것을 insturctio.. [CP] Semantic Analysis : Type Checking 2023학년도 2학기 충남대학교 조은선 교수님의 컴파일러개론 수업 정리자료입니다. 📁 Type Checking 수행 중 변수가 가지는 값에 대한 기술을 타입(Type)이라고 한다. 예를 들어 int x라고 하면, x가 integer값 범위에 들어가는 값을 가지게 된다. 라는 뜻 타입 오류라는건 값을 부적절하게 사용하거나, 값의 범위를 벗어남. 타입 오류가 없다는건 타입 안정성이 있다고 표현할 수 있으며, 타입 안정성을 보장하는 방법은 다음과 같다. 타입을 선언(binding)한다. 선언 방법에는 int x와 같이 명시적인 방법과 x=1과 같이 암묵적인 방법이 있다. 타입을 검사(checking)한다. 타입 규칙을 세우고 이에 대해 검사한다. 타입과 관련된 몇가지 개념들을 보자. 1. Static vs. .. [CP] Semantic Analysis : Symbol Tables 2023학년도 2학기 충남대학교 조은선 교수님의 컴파일러개론 수업 정리자료입니다. 컴파일러 전반부는 어휘분석, 구문분석, 의미분석, 중간코드 생성으로 나뉜다. 구문분석까지 진행하고, 중간코드를 생성하기 전에 프로그램이 semantics를 분석해두기 위한 의미분석 program semantics에는 두가지 종류가있다. 1. run time에 어떻게 동작하는지에 대한 얘기 2. 프로그램을 돌리지 않고 읽어봤을때 분석. static semantics는 거의 타입분석과 비슷하다고 할 수 있음. 의미분석 단계에서는 static semantics를 대상으로 진행된다. symbol tables, types에 대해 알아보자. 📁 Semantic Analasis semantics analysis는 정석적인 분석 과정이라.. [CP] Stack Management 2023학년도 2학기 충남대학교 이민선 교수님의 컴파일러개론 수업 정리자료입니다. 프로그램의 여러가지 메모리 중 Stack에 대해 살펴보자. 📁 Memory Organization (Stack) Stack과 Heap은 런타임에 크기가 변한다. Stack은 아래쪽으로 증가하고, Heap은 위로 증가한다. 이때 Stack과 heap 위치가 바뀔 수 있다. Code, Static Data : 컴파일러에 의해 크기가 결정된다. 📁 Run-Time Stack Run-Time Stack이란 Call-Stack이라고도 불리며 함수 하나를 호출할때마다 생성되는 Frame 혹은 Activation record이 구성하는 Stack을 말한다. 이때 스택에 쌓이는 한칸을 Activation record라고 부른다. Acti.. [CP] Storage Management 우리가 사용하는 storage는 크게 두가지가 있다. 1. Register 2. Memory register는 접근이 빠르고 프로그래머에는 보이지 않는다. 간접접근이 불가능하다. 그 말은 즉 주소를 딸 수 없다. 메모리는 상대적으로 느리지만 간접접근이 가능하다. 이런 특성을 고려하여 HIR에서 LIR로 변환하는 과정에 변수를 레지스터로 할 것인지 메모리로 할 것인지를 많이 결정한다. 결정하는 방법은 두가지가 있다. 1. Standard approach 글로벌 변수나 static은 메모리에 둔다. 로컬 변수 중 struct나 array 등 주소를 사용하여 메모리 연산이 가능한 경우 메모리에 둔다. int x처럼 scalar들 중 '&' 오퍼레이터로 접근하는 경우는 메모리, 다른 경우는 virtual reg.. [CP] 3-addr Code Translation 규칙 * 여러가지 중간코드 중 3-addr Code로 바꾸는 걸 보자. HIR code가 C코드 혹은 상위언어코드 혹은 AST 등으로 생각할 수 있고, 이걸 LIR 즉 3-addr 코드같은걸로 바꿀땐 nested 구조때문에 필연적으로 한 줄의 HIR 코드가 여러줄의 LIR 코드로 바뀐다. 이렇게 여러줄로 바뀔때 중간중간 임시변수를 정의하고 가져다 쓰는 형태로 바뀐다. 이때 여러줄로 바뀔 때 규칙이 있음.컴파일러가 하는 일. 그 방법에 대해 알아보자. 빨간글씨가 notation. 연산. 속에 들어가는 e는 하이레벨코드가 하나이상 섞여있는 코드.이게 [[ ]]를 만나면 LIR expression이 나온다. t = [[e]]에서 e가 어떤 표현식. 마지막 결과값을 t에 저장하자. t가 임시변수. t = [[v]]에.. 이전 1 2 3 4 5 6 ··· 11 다음