2023/06

매크로 함수와 인라인 함수 일반 함수 사용 시 단점 호출과 반환으로 인한 메모리 할당 등 오버헤드가 발생 짧은 길이의 C 함수를 이용하는 것은 장점보다는 비효율적인 면이 많음 매크로 함수 함수 이용으로 인한 오버헤드가 발생하지 않음 매크로 함수의 정의 부분이 길면 프로그램의 크기가 커지게 되는 문제점이 있음 짧은 길이인 경우에 매크로 함수를 이용하고 긴 경우에는 일반적인 함수를 이용하는 것이 바람직 발생하는 문제 해결 방법은 괄호! 를 사용하라 #define substraction(x,y)((x)-(y)) 헷갈린다면, 매크로 함수는 식이 그대로 입력 된다. 생각하라 위의 문제도, 연산자 우선순위가 바로 적용되어서 발생한 문제이기 때문이다 C++의 인라인 함수 일반 함수처럼 정의하기 쉽고, 매크로 함수처럼..
프로그래밍 언어론 - 구조적 프로그래밍 다익스트라 알고리즘(Dijkstra’s Algorithm)만든 다익스트라가 발표한 논문에 저작 되어 있음 goto 문 쓰지마, if 구문 나눠서 실행하거나, 조건이 맞으면 다시 실행하도록하거나 오직 하나의 입구와 출구만이 있는 제어 구조를 사용해야 한다는 프로그래밍 설계 기법 프로그램을 복잡하게 하는 goto 문은 이용하지 않고 구조화된 순차, 선택, 반복 제어 구조만을 이용하여 프로그램을 설계한 것이다 구조적 프로그래밍의 핵심을 이루고 있는 순차, 선택, 반복 구조이다 부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
하트 비트 프로토콜 In 컴퓨터 네트워크, 하트 비트의 의미 시스템이 정상적으로 동작한다는 걸 나타내기 위한, 또는 시스템의 다른 부분과 동기화를 하기 위해 하드웨어나 소프트웨어가 생성하는 주기적인 신호를 말한다 즉 일반적으로 하트비트 프로토콜은 프로토콜 개체의 가용성을 모니터링 할 때 사용하는 프로토콜이다. 하트 비트 프로토콜은 TLS Record Protocol 위에서 구동 되면, 2개의 메시지 유형으로 구성된다 heartbeat_request 핸드 쉐이크 프로토콜 1단계에서 사용된다 각 대등은 자신이 하트비트 지원 여부를 표명한다 또는 단순히 heartbeat_reequest 메시지만 보낸다고 표명 heartbeat_response 대등은 요청에 대한 응답으로 메세지로 응답 할지말지를 표명 하트 비..
PRF 암호화에서 PRF라는 용어는 일반적으로 키 생성, 데이터 난독화 등을 비롯한 다양한 목적에 사용되는 함수 유형인 PseudoRandom 함수를 나타냅니다. 한편, TLS(Transport Layer Security) 프로토콜의 맥락에서 PRF라는 용어는 키 자료 및 기타 암호화 값을 생성하는 데 사용되는 프로토콜 내에서 정의된 특정 기능을 나타내는 데 사용됩니다. 이 함수는 일반적으로 무작위로 나타나고 결합된 입력 및 비밀을 알지 못하는 한 예측하기 어려운 출력을 생성하도록 설계되었습니다. 이 함수의 출력은 실제로 프로토콜에서의 사용 맥락에서 의사 난수로 취급될 수 있습니다. TLS에서의 PRF 의사 랜덤 함수 (PRF) TLS에서는 PRF라고 하는 의사랜덤 함수를 사용해서 비밀을 확장하여 데이터..
TLS 지정 프로토콜 암호 명세 프로토콜 이 프로토콜은 한 바이트로 구성되고, 값 1을 갖는 한 개의 메시지로 구성 된다. 이 메시지의 유일한 목적은 계류 상태를 현재 상태에 복사하는 것이다. 최종적으로 연결에 사용할 암호도구(cipher suites)를 갱신한다 경고 프로토콜 대등 개체에게 TLS 관련 경고를 할 때 사용한다. TLS 경고 메시지는 현재 상태에 의해 압축되고 암호화 된다 이 프로토콜은 2바이트로 구성 된다ㅓ. 1번째 바이트 : 경고/심각 레벨이 심각이면, TLS는 즉시 연결을 단절한다 동일한 세션 중 다른 연결은 계속 될 수 있지만, 이 세션에는 어떤 새로운 연결을 설정하지 못한다. 2번째 바이트 : 특정 경고 표시 특정 경고 표시는 매우 많아서, 자세한 코드 내용까지는 필요할 때 찾아..
유한 오토마타 어떤 알파벳 Σ로부터 만들어지는 문자열의 특별한 것들을 받아들이는 시스템의 수학적 모델로서, 그 시스템에서 변화할 수 있는 상태가 유한개이다. 컴퓨터의 여러 분야에서 널리 사용되고 있다. 특히 플립플롭(flip-flop)을 비롯한 여러 컴퓨터 관련 고안물들, 형식언어의 연구, 그리고 컴파일러 등에 유용하게 쓰인다 또, 컴파일러의 어휘 분석(lexical analysis) 또한 유한 오토마타의 대표적인 것이다. 상태 전이 함수의 형태에 따라 결정적 유한 오토마타 (Deterministic Finite Automata; DFA)와 비결정적 유한 오토마타(Nondeterministic Finite Automata; NFA)를 구분한다. 오토마타의 전이 함수는 유한 오토마타의 상태 전이를 행렬(m..
BNF 표현 방법 BNF (Backus-Naur Form)는 프로그래밍 언어의 형식적 정의(formal definition)을 위해 가장 널리 사용되는 방법입니다 이 표기법은 메타 기호(meta-symbol; 메타기호는 표현하려는 언어의 일부분이 아니라, 그 언어를 표현하려고 사용된 특수기호)로서 세 가지 기호를 사용합니다 논터미널기호는 로 묶어 표현 대체(replacement)는 ::= 사용 양자택일은 | 를 사용 예제 3.24 BNF로 표현하기 1 논 터미널 기호인 E,T,F는 각각 , , 로 나타난다. → 는 ::= 로 표시한다 P: ::= + | - | ::= * | / | ::= () | id 예제 3.25 BNF로 표현하기 2 첫 번째 기호가 영문 소문자로 시작하고, 두 번째 기호부터는 영문 ..
정규 문법 표현하는 방법 해당 글은 정규 문법의 연산 순서의 양줄이기 버전입니다 정규 문법을 가장 잘 표현 할 수 있는 방법에 대해 알아보자! 위의 정의에서 연산자의 우선 순위는 *(클리니 클로저) > •(접속) > +(합집합)이다. 사칙 연산과 동일하게 왼쪽 결합 법칙 이 적용 된다 예제. 다음 정규 표현의 연산 순서는? 앞서 말한, 연산자 우선 순위와 왼쪽 결합 법칙을 이용하면 위와 같은 연산 순서를 가지게 된다. 이렇게 보니, 사칙 연산과 동일하다 생각해도 될 듯하다 예제 3.20 정규표현에 의해 생성 되는 언어 0 + 1은 언어 {0 , 1 }을 나타낸다 (0 + 1) 0은 {00, 10}을 나타낸다 0*는 언어 { ε, 0, 00, 000, ⋯}를 나타낸다 (0 + 1)*는 언어 {ε, 0, 1..
정규 문법(regular grammar) 모든 규칙이 다음과 같은 형태를 가지는 문법을 말합니다. A -> aB A -> a A -> ε A와 B는 비터미널 심볼(nonterminal symbol) a는 터미널 심볼(terminal symbol) ε는 빈 문자열(empty string)을 나타냅니다. 정규 문법은 주로 언어의 구문 분석에 사용되며, 정규 표현식(regular expression)과 같은 형식 언어(formal language)의 기본적인 표현 방법 중 하나입니다. 비터미널 심볼(nonterminal symbol) 다른 비터미널 심볼 또는 터미널 심볼로 대체될 수 있습니다. 예를 들어 위의 정규 문법에서 A가 다른 비터미널 심볼이나 터미널 심볼로 대체될 수 있다는 의미입니다. Right-l..
암호도구 IPsecv3와 IKEv3 프로토콜은 다양한 종류의 암호화 알고리즘에 의존합니다. 암호화 알고리즘과 매개변수로 구성된 권장 암호화 도구를 정의합니다 VPN-A 3DES와 HMAC에 의존 VPN-B AES에 의존 주로 3가지 유형의 대칭키 알고리즘 사용합니다 암호: 암호 블록 체인 모드 (CBC) 메시지 인증: VPN-A HMAC 및 출력의 96비트만 사용하는 SAH-1 사용 VPN-B 수정된 CMAC을 사용하여 출력의 96비트만 잘라서 사용합니다. 의사랜덤 함수 3 가지 대칭 암호 알고리즘 비밀번호 ESP에서 128비트 또는 256비트 AES 키를 사용하여 GCM 모드에서 인증된 암호화를 수행합니다. IKE 암호화: VPN 도구와 마찬가지로 CBC를 사용합니다. 메시지 인증 ESP: GMAC을 ..
berom
'2023/06 글 목록 (3 Page)