분류 전체보기 146

패딩과 운영모드

패딩 : 평문에 데이터를 붙여서 평문의 크기가 블록 크기의 배수가 되도록 만드는 과정 1. 비트패딩 - 마지막 블록에서 평문이 채우지 못하는 비트 중 쵱상위 비트를 1로 설정하고 나머지는 모두 0으로 채우는 패딩 기법 ∣ 1011 1011 1111 0111 ∣ 1011 0110 1000 0000∣ **평문의 크기가 블록 크기의 배수일 때: 1000 0000 0000 0000 를 패딩으로 추가. 2. 바이트 패딩 -바이트 단위로 패딩을 수행하는 패딩 기법 대표적: ASNI X.923 : 마지막 블록의 남는 바이트를 임의의 값 (0)으로 채우고 마지막 바이트에 패딩의 길이를 기록하는 기법) A3 B2 91 81 50 23 00 00 ∣ 14 50 00 00 00 00 00 04 --> 마지막 바이트가 4라서..

블록암호 : AES

블록암호 : AES(Advanced Encryption Standard) SPN(Substitution Permutation Network)암호 구조 사용 --> 곱 암호의 일종, 페이스텔에 비해 두 배의 암호학적 안정성을 가짐 0. 배열 재구성 암호화 하기 전, 각 블록을 4행 4열의 상태배열로 재구성함. 1. SubBytes State의 각 바이트를 S-Box를 참조하여 치환하는 함수 Ex) 첫번째 D7은 s-box의 D행 7열을 참조하여 0E로 치환됨. 2. ShiftRows 바이트들의 쉬프트 연산 수행 4. MixColumns(어려운 부분 skip) 4. AddRoundKey 키 생성 함수(Key Schedule)로 생성된 라운드 키의 state를 각 바이트별로 XOR진행. 4-1. Key Sch..

블록암호 : DES

DES(Data Encryption Standard)--페이스탈 암호 기법 미국의 보안 안보국에서 IBM의 루시퍼 알고리즘을 개량하여 만든 대칭키 암호 -->현재는 DES에 대한 공격 기법이 많이 연구되어 DES를 더이상 블록 암호의 표준으로 사용하진 않음. 블록암호: 평문을 블록 단위로 암호화하는 대칭키 암호 시스템 곱 암호의 일종 ->곱 암호: 치환이나 순열 같은 단순한 연산들로 한 라운드를 구성하고, 각 라운드를 여러번 반복하여 암호학적 아전성을 확보하는 암호 복호화 방식과 암호화 방식이 같음. 시작할 땐 초기순열(Initial Permutation, IP), 마지막에는 최종순열(Final Permutation, FP)를 수행 --> IP와 FP는 DES의 암호학적 안전성을 증가시키진 않음, 대신 ..

암호학 입문(인코딩, 암호화 차이점)

암호화, 인코딩 차이점 암호화: 다른 사람이 알아 볼 수 없도록 바꾸는 것. 인코딩: 기밀성을 고려하지 않음. 컴퓨터가 이해하기 쉽게 하는 형식 변환(URL 인코딩), 압축 등-->누구나 디코딩을 하여 원문을 구할 수 있다. 배타적 논리합(eXclusive OR, XOR) 입력으로 들어온 두 인자가 서로 다를 때, 참을 반환하는 연산 합동식(mod) a,b 를 각각 정수 mm으로 나눴을 때 나머지가 같은지를 판별하는 식

이미지 크롤링(python, google_images_download)

이전글(html크롤링--> https://sh1256.tistory.com/52?category=991734 ) 1. google_images_download 다운 --> https://pypi.org/project/google_images_download/ google_images_download Python Script to download hundreds of images from 'Google Images'. It is a ready-to-run code! pypi.org 터미널에 붙여넣기 (ctrl+shift+v) 그러면 설치된다. 홈페이지에 있는 documentation에서 예제를 실행해보자. Code sample - Importing the library 소스코드를 실행해보자. (google..

파이썬 텍스트 파일 쓰기

이전 글 --> https://sh1256.tistory.com/52 웹크롤링 하는 법(파이썬(python), beautifulsoup4) 1. goormIDE 접속 --> 회원가입 --> 컨테이너 생성(python 언어 선택) -->터미널에 pip install bs4 2. 빨간 네모 부분만 끌어오기 name --> link 형식 사용된 beautifulsoup4문법들: -->https://www.crummy.c.. sh1256.tistory.com python write text file 검색 -->https://wikidocs.net/26 아래코드 복붙 ++ 경로 설정 시 슬래시 방향 주의!!++경로 설정 없을 시 현재 폴더 아래에 생성 (현재 가상머신 이용중이여서 경로설정X) 성공

웹크롤링 하는 법(파이썬(python), beautifulsoup4)

1. goormIDE 접속 --> 회원가입 --> 컨테이너 생성(python 언어 선택) -->터미널에 pip install bs4 2. 빨간 네모 부분만 끌어오기 name --> link 형식으로 만들자. 사용된 beautifulsoup4문법들: -->https://www.crummy.com/software/BeautifulSoup/bs4/doc/ 파일에 저장해보자 (참고)--> https://sh1256.tistory.com/53?category=991734 파이썬 텍스트 파일 쓰기 이전 글 --> https://sh1256.tistory.com/52 회원가입 --> 컨테이너 생성(python 언어 선택) -->터미널에 pip install bs4 2. 빨간 네모 부분만 끌어오기 name --> li..

webhacking.kr 12번 풀이

js를 통해서 푸는 문제인 것 같다. 항상 하는 것처럼 개발자 도구(ctrl+shift+i)를 열었다. 하지만 이렇게 마지막이 ... 으로 끝나는 것을 보니 소스코드를 다른 방법으로 열어야 할 것 같다. 그래서 마우스 우클릭-->페이지 소스보기(ctrl+u)를 통해서 소스코드를 보았다. 그러면 제대로 된 소스코드를 볼 수 있다. 이 암호문은 AAencode로 만들어진 것이라고 한다. AAencode 디코딩 사이트에서 해당 소스코드를 복붙해서 해석해보자. var enco=''; var enco2=126; var enco3=33; var ck=document.URL.substr(document.URL.indexOf('=')); for(i=1;i