본문 바로가기

Python25

Python: RC4로 파일 암호화 하기 저번에는 3DES로 파일안에 있는 내용을 암/복호화를 하였다. 이번에는 스트림 암호 중 하나인 RC4 암호로 파일을 암/복호화 해보자 RC4란: 스트림 암호의 종류 중 하나로, 전송 계층 보안(TLS/SSL)이나 WEP 등 여러 프로토콜에 사용되었었던 암호방식이다. 현재는 취약점이 발견되어 권장하고있지 않고있다고 한다. 바이트 단위로 처리하기 때문에 다른 비트 단위 암호보다 실행속도가 빠르다. 이번 코드도 전 3DES코드랑 차이가 없다. 차이가 있는 부분만 설명하겠다. 3DES에서는 IV를 선언해 주었지만 RC4에서는 IV를 선언해주지 않는다. 왜일까?? DES, 3DES, AES 블록암호 같은 경우는 CBC모드를 사용하기 때문에 IV가 필요하다. 하지만 RC4같은 스트림 암호에서는 IV가 필요하지 않다.. 2020. 5. 3.
3DES로 파일 암호화 하기. 3DES를 이용하여 텍스트 파일을 읽어 모든 내용을 암호화하고 이를 파일로 저장하는 코드를 구현 해보자. 전체 소스코드. 상세 코드 설명 makeEncInfo(self, filename)은 filename으로 지정된 파일 크기를 구하고 파일 크기가 8바이트 배수가 아닐 경우 8바이트 배수로 만들기 위해 추가할 '0' 문자열 구성한다. 그리고 추가할 문자 '0'의 개수에 대한 정보를 헤더로 만들고 헤더, 그리고 추가할 '0' 문자열을 리턴한다. 암호화 로직 소스코드 분석. enc(self,filename)은 filename으로 지정된 파일 내용을 1KB씩 읽어서 3DES로 암호화 한 후에 새로운 파일을 저장한다. 암호화 된 내용을 저정할 파일 이름은 .TXT파일을 지정에 .TXT 확장자 뒤에 .enc 확장.. 2020. 4. 26.
Python을 이용한 스트림 암호 구현 스트림 암호로 구현하기. Pycryptodome은 스트림 암호를 위해 ARC4 알고리즘을 제공한다. ARC4는 Alleged RC4를 의미한다. 스트림 암호는 보통 8비트 단위로 암호화를 수행하는데 암호 블록 크기는 1바이트이다. 온영 모드로는 ECB모드만 사용 가능하므로 IV는 필요가 없다. 따라서 ARC4 암호는 암호키만 정의되면 1문자 이상의 임의의 메시지에 대해 암호화, 복호화가 가능하다. 소스코드. 해당 코드를 살펴보면 코드 자체는 매우 단순하다. ARC4 모듈을 이용하여 단문 메시지를 암호화,복호화하는 코드이다. 주요 부분만 설명하자면 MYRC4라는 이름으로 클래스를 정의하고 이 클래스의 생성자는 인자로 전달받은 key를 key.encode()를 이용하여 바이트 문자열로 변환한 값을 self... 2020. 4. 25.
python을 이용한 ARP 스푸핑 구현하기 ARP Spoofing은 근거리 통신망 하에서 주소 결정 프로토콜 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다. 이 공격은 데이터 링크 상의 프로토콜인 ARP 프로토콜을 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격이다. ARP 스푸핑은 해커들이 즐겨 사용하는 고전적인 방법 중 하나이며, 중간자 공격 등을 위한 매우효과적인 해킹 기법이다. 만약 이 컴퓨터에서 192.168.30.2라는 IP주소를 가진 사용자에게 정보를 전송한다고 가정하자 그럼 192.168.30.2로 데이터를 전송하기 위해 ARP 브로드캐스트를 수행하기 전 ARP 테이블을 참조하여 캐시된 내용을 찾는다. 그래서 IP주소 192.168.30.2의 MAC주소가 있으면 해당 MAC주소로 정보를 .. 2020. 3. 27.