본문 바로가기

정보보안7

비대칭 암호화 비대칭 암호화 방식의 필요성대칭 암호화 방식의 키 배포 문제에 대한 보완책 필요 비대핑 암호화 방식디피-헬만 키 교환: 소수(prime)를 이용한 나머지(mod) 연산을 이용 -> 통신을 통해 미리 배포되지 않은 새로운 비밀키 s를 공유하는 것이 목표 과정공개된 숫자 p와 g 설정앨리스 : 자신의 개인키 a에서 숫자 A를 계산밥 : 자신의 개인키 b에서 B를 계산앨리스 : 밥이 전달한 B와 자신의 개인키 a를 이용하여 비밀키 s를 계산밥 : 앨리스가 보내준 A와 자신의 개인키 b를 이용하여 비밀키 s를 계산 RSA1977년 미국의 로널드 리베스트(Ronald Rivest), 아디 샤미르(Adi Shamir), 레오나르도 애들먼 (Leonard Adleman)의 공동 고안된 비대칭 암호화의 대표적인 알고리.. 2025. 5. 27.
암호화, 대칭 암호화 암호의 역사 스키테일 암호BC400년 스파르타에서 군사용으로 사용하던 암호화 방식스키테일은 막대기를 의미하며 같은 굵기의 막대기를 가진 두 사람이 메시지를 전달하기 위해 사용됨전치법 방식으로, 문자의 순서를 바꾸는 암호이다. 암호화 방법보내는 사람과 받는 사람은 똑같은 굵기의 막대기를 가지고 있음종이를 막대기에 나선형으로 감는다종이위에 평문을 가로로 작성종이를 막대기에서 풀면, 글자각 뒤섞인 순서로 나열됨뒤섞인 글자들이 암호문이 된다. 시저 암호BC100년경에 로마의 줄리어스 시저가 군사적인 목적으로 사용한 암호단일 치환 알고리즘: 알파벳 한 글자를 다른 한 글자로 대체키 = 3인 경우 A->D, B->E, C->F시저 암호는 치환 규칙이 단 하나의 키로만 결정되기 때문에 가능한 경우의 수가 26개밖에 .. 2025. 5. 26.
쓰레드를 이용한 소켓 통신 쓰레드가 필요한 이유기본 TCP 서버는 한 번에 하나의 클라이언트만 처리.하나의 클라이언트가 접속해서 메시지를 주고받는 동안, 다른 클라이언트는 기다려야 함-> 쓰레드를 사용하면 클라이언트마다 별도의 작업 흐름을 만들어 동시에 처리할 수 있게 됨. 쓰레드 예시import threadingimport timedef t1(): for i in range(5): print("thread1 +++++") time.sleep(0.1) def t2(): for i in range(5): print("thread2 +++++") time.sleep(0.1)th1 = threading.Thread(target=t1)th2 = threading.T.. 2025. 5. 25.
소켓 통신 소켓 통신이란?네트워크 상에서 다른 컴퓨터 간 데이터를 주고받기 위한 통신 방식. IP주소와 포트 번호를 사용함 소켓 통신의 흐름서버 측1. 소켓 생성: 통신을 위한 소켓을 만듬2. 바인딩: 소켓에 IP와 포트 연결3. 리스닝: 클라이언트의 접속 대기4. 접속 수락: 클라이언트가 접속하면 연결 수락5. 데이터 송수신: 클라이언트와 데이터 주고 받기6. 연결 종료 클라이언트 측1. 소켓 생성2. 서버에 연결 요청3. 데이터 송수신4. 연결 종료 소켓의 종류TCP 소켓: 연결지향형, 데이터 신회성 높음UDP 소켓: 비연결지향형, 속도가 빠르지만 신뢰성이 낮음 전송방식에 따른 속도차이TCP는 데이터를 주고받기 전에 3-way handshake로 연결부터 설정해야함, UDP는 handshake없이 바로 전송 서.. 2025. 5. 25.