IT 139

[Transport layer - TCP, UDP] in TCP/IP 4 layer

TCP (Transmission Control Protocol) 신뢰성 흐름 제어 흐름 제어란? 송신자와 수신의 데이터 속도가 다를 수 있기에, 송신자의 데이터 송신 속도를 제어하여, 수신자가 받을 수 있을 만큼의 데이터만 효율적으로 전송함으로써 수신의 Overflow를 방지하는 것입니다. 다음과 같은 방식들로 구현될 수 있습니다. 1. Stop & Wait . 2. Sliding Window Stop & Wait 방식을 거의 병렬적, 독립적으로, 동시에 여러개를 하는 것? 이건 저만의 생각입니다. sliding window란, 수신자가 수신 가능한 크기 (= Window size) 내에서 패킷을 연속으로 전송함으로써 (ACK를 기다리지 않고), Stop & Wait에 비하여 효율을 크게 높인 것입니다...

IT/네트워크 2024.01.04

[Application layer - DNS, DHCP, SMTP, IMAP, POP3, FTP, HTTP] in TCP/IP 4 layer

Application layer의 다양한 프로토콜들을 알아보겠습니다! Name System DNS Domain을 IP address로 전환해줍니다.사용자가 www.example.com이라는 Domain의 IP address를 DNS에게 물으면, DNS는 이에 대한 답을 해줍니다.    사용자가 www.example.com이라는 Domain에 접속하려 할 때, 다음과 같은 과정이 이루어집니다.    (그림의 "recursive"라 표현된 위치는 DNS resolver입니다.) 1. 사용자의 요청은 DNS resolver로 라우팅됨     - DNS resolver는 ISP가 관리함     - 사실, 이렇게 DNS resolver가 요청을 받은 뒤,        DNS resolver의 Cache에 "www..

IT/네트워크 2024.01.02

[Hash Function, MDC, MAC, Digital Signature]

해시함수 란? 일반적인 양방향 암호기법 (대칭키, 공개키 암호기법 등)과 달리, 단방향 암호기법이며, key를 사용하지 않는다. - 복호화가 사실상 불가능함을 의미. 입력으로는 임의의 크기가 들어갈 수 있지만, 출력은 크기가 고정되어 있다. 암호학적 관점에서 안전한 해시함수의 성질은 아래와 같다. (H: 해시함수) 1. 역상 저항성: H(x)가 주어졌을 때, x를 찾기 어렵다. 2. 제2 역상 정항성: x가 주어졌을 때, H(y) = H(x)인 y를 찾기 어렵다. 3. 충돌 저항성: H(x) = H(y)인 (x, y) 쌍을 찾기 어렵다. 이러한 암호학적 해시함수의 설계 방식으로는 Merkle-Damgard 구조가 있다. (f: 압축 함수) f_i = f(m_i, f_i-1) (i = 2~n) MDC (M..

IT/암호학 2023.12.31

[ElGamal] in Public-key cryptosystem

수식 입력이 번거로워서 수식 표현이 좀 매끄럽지 못합니다. 특히 주의해서 보실 것: 예를 들어 a의 역원인 경우, a역 이라 표현했습니다. 키생성 public key: (e1, e2, p)이고, private key: d이다. 큰 소수 p 선택 1 ≤ d ≤ (p - 2) 범위에서 임의의 d 선택 (Z_p)*에서 원시근 e1 선택 e2 ≡ e1^a mod p 암/복호화 암호화 임의의 r 선택 c1 ≡ e1^r mod p c2 ≡ (m * e2^r) mod p 최종 암호문은 (c1, c2)이다. 복호화 m ≡ c2 * (c1^a) mod p 취약점 알려진 평문 공격 동일한 r을 이용하면 알려진 평문 공격에 위험해진다. 공격자가 m, c1, c2, c1', c2'을 알고 있을 때, (또한, m, m'은 같은..

IT/암호학 2023.12.27

[RABIN] in Public-key cryptosystem

수식 입력이 번거로워서 수식 표현이 좀 매끄럽지 못합니다. 특히 주의해서 보실 것: 예를 들어 a의 역원인 경우, a역 이라 표현했습니다. 키 생성 public key: n이고, private key: (p, q)이다. 서로다른 두 소수 p, q (4k+ 3 형태)를 선택한 뒤, n을 얻는다: n = p * q 암호화 c ≡ m^2 mod n 복호화 먼저, c1 ≡ c mod p, c2 ≡ c mod q를 계산한다. 이를 이용하여, a1 and a2 ≡ +- c1^(p+1 / 4) mod p, b1 and b2 ≡ +- c2^(q+1 / 4) mod q를 계산한다. 여기서, a1 또는 a2, 그리고 b1 또는 b2 중 하나씩 고르는 경우의 수는 2*2 = 4가지이므로, m = p * (p역 mod q) ..

IT/암호학 2023.12.27

[RSA] in Public-key cryptosystem

수식 입력이 번거로워서 수식 표현이 좀 매끄럽지 못합니다. 특히 주의해서 보실 것: 예를 들어 a의 역원인 경우, a역 이라 표현했습니다. 키 생성 public key: (e, n)이고, private key: d이다. 생성 단계 p, q 선택: p != q, p와 q는 소수 n 계산: n = p * q psi(n) 계산: psi(n) = (p - 1)(q - 1) e 선택: 1 < e < psi(n) - 1이며 psi(n)과 서로소 d 계산: d ≡ e역 mod psi(n) 암/복호화 암호화 c ≡ m^e mod n 복호화 m ≡ c^d mod n 효율적인 복호화 CRT를 활용한다. 즉, c^d mod n을, 아래와 같이 나누어서 하는 것이다. 먼저, m1 ≡ c^d mod p와 m2 ≡ c^d mod..

IT/암호학 2023.12.27

[Pipeline CPU] in RV32I CPU microarchitecture

이 글에 포함된 모든 사진 자료들은 (서태원 지음) 에서 가져왔습니다. Pipeline CPU란 “ pipeline CPU란, single-cycle CPU 구조를 여러 stage로 나누어, 각 부분을 동시에 활용되게끔 하는 것이다. (아래 사진 참고) single-cycle CPU에서는, 하나의 instruction이 완료되고 나서야 그 다음 instruction을 수행한 데 비해, pipeline CPU의 경우, 매 clock cycle의 각 stage에서는 다른 instruction이 실행되고 있다. (아래 사진 참고) “ 전형적인 것은 5-stage pipeline CPU이며, 각 stage는 다음과 같다: IF(Instruction Fetch): 명령어를 읽는 단계 ID(Instruction D..

[Pyinstaller] exe 파일 못 만드는 오류! (yolo ultralytics 관련)

상황 설명은 필요 없고 빠른 해결을 원하신다면 빨간 글자를 따라가주세요! 상황. pyqt를 이용해 인터페이스의 구성과 기능을 정의했으며, 그 기능들 중에는 yolo v8 모델의 predict 메서드를 활용하는 것이 있다. 실제로 실행시킬 main.py는 별개로 작성했으며, 여기서는 위에서 만들어진 인터페이스 py 내의 클래스를 임포트한다. 나는 이 main.py를 exe로 만드려 한다. 우선 새로운 폴더에 프로그램 구동에 필요한 모든 파일 (인터페이스 py 파일, main.py, yolo v8 모델의 pt 파일 정도?) 들을 넣어놓고, 이 폴더 위치에서 터미널을 열어 아래와 같이 실행하였다. pyinstaller -w -F main.py 이를 통해 생성된 작업폴더 > dist > exe 파일을 실행해보았..

IT/DevOps 2023.08.18

[Object Detection / Recognition / Tracking] Feature Extraction 기법: SIFT, SURF, ORB

SIFT (Scale Invariant Feature Transform) detects distinctive keypoints(local features) or features in an image that are robust to changes in scale, rotation, and affine transformations We naturally understand that the scale or angle of the image may change, but the object remains the same. BUT machines have an almighty struggle with the same idea. It’s a challenge for them to identify the object..

IT/인공지능 2023.07.29