목록3학년 2학기 (76)
오래 못 할 짓 하지 않기

Original Design 저번에 봤던 AES Encryption은 각 Round와 Key를 Set로 묶어서 Inverse도 이론상 가능하다.하지만 그 Round 안에서도 [ sub - shift - mix - round ] 를 뒤집어서 Decrypte한다. 순서가 Inv만 붙은 채로 평행하다.( 사실 반대로 하는 거긴한다. ) Alternative Design Subytes ➡️ Shift Rows 를 Inverse할 때는InvSubByte ➡️ InvShiftRows 로 해도 Inversion이 가능하다. 암호화할 때랑 복호화 할 때 거치는 순서가 같다.Inv만 붙인 채로 같은 순서로 하면 됨 따라서 최종적인 디자인은 아래와 같다 장점)MixCoulumns 의 역할을 Key Expansio..

AES 암호화 방식은 다음과 같다. 128 혹은 192 , 256 bits key를 사용해서128 bits round key를 만든다. (DES보다 Key bits 수가 많다.) 📌 Units 1. Block to statePlaintext를 State로 바꾸는 방법은 다음과 같다.각각의 문자에 대해서 Hex 값이 있다. 이를 Matrix에 넣어서 State 값으로 가지고 있는다. 해당 State 를 위해 Transformation 단계를 거치는데- Substitution (대체)- Permutation (재배열) = shift rows- Mixing (순서 섞기)- Key-adding 방식이 있다. Transformation 📌 Substitution (a,b) 에 있는 문자열에 대응..

세세한 함수를 쓰기엔 너무 많아서 함수 설명은 빼고어떤 흐름으로 돌아가는지만 파악해보자. TCP / UDP가 Port를 통해 Socket을 통해 APP과 연결이 되고 Socket ↔️ socket descriptor 가 소통하며 Application 에 데이터들이 들어간다. 소켓과 관련해서는 5가지 정보가 필요하다.Port - Socket()에 쓰임Src addr - bind()Src port - bind()Dest addr - connect()Dest port - sendto() 연결 형태는 아래와 같다. 1. 양쪽 모두 Socket을 만든다. ➡️ sd 생성2. [ Server ] Port와 sd를 통해 Bind를 한다.3..

Product Cipher= Substitution + Permutation + other component- Diffusion : Ciphertext ↔️ Plaintext 의 관계를 감추어 유추하지 못하게- Confusion : Ciphertext ↔️ Key 의 관계를 감추어 유추하지 못하게- Rounds. : Diffusion 과 Confusion을 여러 번 돌리기 (S-box,P-box,other component 를 사용) 📌Diffusion: 알리바이(영향력)를 엄청 꼬아서 유추하지 못하게 - 8번째 비트는 S-box 04에 들어간다.- S-Box의 결과가 P box 안에서 섞이다가 2,4번째 비트에 영향을 준다. [ 1라운드 끝 ] - 그럼 2번째 비트에 들어갔..

TCP Congestion Control3가지 방법이 있다.Slow StartCongestion AvoidanceFast recovery / Fast Retransmission Varialbescwnd : Congestion Windowssthresh : Slow-Start threshold = 이 이후로는 위험할 수도 있으니 천천히 늘려라...rwnd : Receiver's Advertised WindowSlow Start: 첫 Loss가 나기 전까지 Rate를 2배로 올린다. - 시작할 때 : cwnd = 1 MSS- 매 RTT마다 ACK 를 받으면 보내는 cnwd를 2배로 늘린다. ➡️ 첫 Rate 는 천천히 낮게, 점점 Exponentially 하게 증가시켜 Rate를 올린다. 누울 자리 보고 ..

Flow controlQ : 만약 Application Layer가 받는 속도보다 Network Layer가 보내는 속도가 더 빠르다면? 이에 대해서 문제가 생기지 않도록Packet Header에 주고받는 Bytes 수를 정해두었다. 이 덕분에 Receiver는 Sender에 대한 조정을 하여Sender가 Receiver의 Buffer에 넘쳐 흐르도록 담지 않도록 ( 양 , 속도 측면으로) 조정한다. ➡️ 이를 위해 Receiver는 Buffer에 얼만큼의 공간이 남았는지 알려준다. ( TCP header에 rwnd(Receive WiNDow) 로 담는다. ) RcvBuffer = rwnd(여유 공간) + Buffered data Connection Management: 데이터..

암호 시스템의 구성1) 암호화시키는 방법 - 치환 ( Substitution ) - 재배열 ( Transposition ) - 혼합 ( Product ) 2) 사용되는 Key의 종류 - Single key (or secret) ➡️ Symmetric key - Two-ket (or public) ➡️ Asymmetric key 3) Plaintext 처리 방법 - Block 단위 - Stream 단위 Symmetric Key대칭키 방식Encryption / Decryption에 같은 Key를 사용한다. = Key 하나로 다 돌려 쓴다.단, 둘 중에 한 곳에서 털리면 다 털린다. Asymmetric Key비대칭키 방식 Encryption과 De..

암호학이란: 데이터를 Encode 과정을 거쳐서 읽을 수 없는 형태로 만드는 것 혹은 그 반대 Decode 과정 Plain Text ( 평문 ) ↔️ Cipher Text ( 암호문 ) 📌 목적: To Keep Confidentiality of Data 암호화 알고리즘의 종류 어떻게 바꾸냐에 따라 다르다. - Substitution = 치환- Transposition = 재배열 Substitution( 해당 문자를 다른 문자로 대체,치환 ): Plain message의 text ➡️ 다른 문자 , 숫자 , Symbols 들로 바꾼다. - Monoalphabetic Substitution Ciphers: 평문에서의 하나의 문자 ↔️ 다른 문자로 매핑 ex) Caesar Ciph..

TCP: 안전하고 정확한 데이터 전송을 해주는 프로토콜이다. 📌 전반적인 기능- Reliable하며, 순서가 맞춰진 상태로 정보를 받는다. - Cumulative ACKs를 사용한다. ex) ACK(n) : 0번부터 n번까지는 다 받은 상태다. = 이제 (n+1)번째 받을 준비를 하겠다. - Connetion Oriented 소통을 한다. ➡️ handshaking 을 통해서 Sender와 Receiver 상태를 설정한 뒤 통신한다. - Connetion이 되었다면, 양방향 통신이 가능하다. - Pipelining 기능이 있어서, Congestion + flow control 이 가능하다. ✚ flow control : Sender가 너무 과하게 메시지를 보내지 않는 것 📌 TCP se..

rdt 3.0 에서 Performance를 생각해보자.Sender가 보내는 데이터에 대해 Utilization 을 생각해보면Time to transmit packet을 생각해보면 = 보내는 양 / Link Capacity 근데 우리는 Stop and wait 방식을 사용하기 때문에 Diagram으로 흐름을 보면 다음과 같다위에서 구한 정보들을 생각해본다면사용률이 그닥 높지 않다. ➡️ 시간은 많이 쓰면서 Stop-and-wait이라서 하나의 packet만 주고받기 때문이다. 📌 해결법: Pipelining= Sender는 여러 개의 Packet이 먼저 전송되는 걸 허용한다. 아직 이전 패킷이 ACK 받지 않아도 우르르 먼저 간다. - Sender : Data Packet을 먼저 보내고..