Computer Science

AES Intro. 3DES로도 부족한 이유, 3 DES는 암호 해독에 대한 저항성이 크기 때문에 꽤나 안전하다. 하지만 단점이 있었으니 구현 속도가 느리다. DEA 보다 라운드 수가 3배나 많기 때문에 당연히 느릴 수 밖에 없다. 또한 DEA와 3DES는 64비트 블록을 사용하였다. 현 시점에서는 보안을 위해 더 큰 비트 블록을 사용 할 때가 되었다. AES는 무엇인가 3DES의 앞선 단점 때문에 AES가 등장하였다. 더 높은 보안성과 월등히 개선된 보안 알고리즘으로써! 블록 길이(크기) 128 비트 대칭 블록 암호 키의 길이는 128 192 256 비트를 지원 페이스텔 암호 구조 with 대칭 블록 암호가 아니다! 각 라운드에서 대체와 치환을 이용해 데이터 블록 전체를 병령 처리를 한다 AES 암호화..
3중 DES 3중 DES는 금융 분야에서 사용할 목적으로 1958년 처음으로 표준화 되었다. 3중 DES는 세 개의 키를 사용하고, DES 알고리즘을 3번 수행한다. 3 개의 서로 다른 키를 이용한 3 DES는 168 비트의 유호 키 길이를 갖는다 K1=K3를 사용해서 2 개의 키를 이용하는 것도 허용 한다. 암호화 알고리즘 알고리즘을 간단하게 설명 하면 암호-복호-암호 순서(EDE)를 따른다. 암호-복호-암호 를 거치는데 이 때 복호 과정 자체는 보안 강도에 크게 기여하지 않는다 복호화 과정은 주로 기존 DES 시스템과 호환성을 유지하기 위한 목적으로 사용된다. 그러나 전체적인 3DES 방식에서 보안 강도를 높이는데에 필요하기 때문에 이 과정이 포함 되었다 3DES 굳이 암호-복호-암호 과정을 가져야 ..
DES Data Encryption Standard는 암호화 알고리즘인 Data Encryption Algorithm (DEA)를 기반으로 한다. 암호화 알고리즘 평문의 길이는 64비트 평문이 길면 64비트로 나눈다 복호화 시에는 서브키의 순서를 뒤집어서 적용한다 키 길이는 56비트 DES의 구조는 [[Notes/페이스텔 암호 구조|페이스텔 암호 구조]]의 변형이다 라운드 회수는 16회 56 비트짜리 원래 키로부터 16개의 서브키를 생성한다 DES의 강도 암호화 알고리즘의 강도에 대한 문제는 두 가지 관점에서 볼 수 있다. 알고리즘 자체의 문제 그리고 56비트 키에 관한 문제이다. 알고리즘 자체 문제란 말은 알고리즘의 특성을 이용한 암호 해독 가능성이다. 하지만, DES는 많은 연구에도 불구하고 치명적인..
람다 대수 수학자 알론조 처치가 순전히 수학적 방식으로 계산 개념을 설명하기 위해 개발한 형식 체계 수행 중인 작업을 명시적으로 정의할 필요 없음 즉 함수를 정의하고 바로 적용하는 방법론 람다식(Lamda expression) 람다식은 익명 함수를 정의하기 위한 식이다. 람다식은 [[일급 객체(first class)]]이다. 즉 인자로 사용 될 수 있다. 반환 값으로 사용 될 수 있다 아래는 람다를 BNF (Backus-Naur Form)로 나타낸 것이다 람다식은 보다시피 상수, 변수, 함수 정의, 함수 적용이 가능한다. 함수형 언어에서 람다식에 관심을 두는 이유는 문법이 간단하기 때문이다. 보통의 프로그래밍 언어는 구문 뿐만아니라 의미까지 분석을 해서 생각해야 한다. 함수형 언어에서는 문법이 너무 간단..
함수형 프로그래밍이란 무엇인가 함수형 언어/프로그래밍의 느낌을 알기 전, 먼저 수학적 함수를 알고 가야 한다. 수학적 함수는 입력 값에 따라 출력 값을 만들어내는 블랙 박스와 같다 수학적 함수의 특징 입력 값에 따라 출력 값이 결정 된다 수학적 함수와 프로그래밍에서의 수학적 함수의 개념은 다르다 [[함수형 프로그래밍의 본질]] 함수형 프로그래밍 언어는 프로그램을 수학적 함수의 조합으로 본다 프로그램의 동작을 즉 수학적 함수로 표현한다 매개 변수로 값을 입력 받은 뒤 적절하게 처리하여 값을 출력한다 함수형 언어의 특징 명령형 언어와의 차이점 함수형 언어는 변수를 할당 할 때, 공간을 새로 할당 하지 않고, 순수 계산에 의존 합니다 명령형 언어는 메모리 공간에 값을 계속 바꾸며 상태를 추적합니다 상태의 개념..
Wireshark에서 HTTP 패킷이 안보여요Intro. 왜 어떤 곳은 보이고 어떤 곳은 안보이는가?위처럼 분명히 MAC에서 와이어 샤크를 사용해서 HTTP를 볼 수 있습니다.하지만 어떤 사이트는 보이지 않는 경우가 있습니다. 사실 요즘은 거의 HTTP를 보기 어렵죠오늘은 왜 HTTP를 보기 어려웠는지, 왜 보였다가 안보였다가 하는지 알아보겠습니다.세상이 흉흉하니 암호화를 하자웹 사이트에 따라 HTTP 요청을 보내는 경우와 그렇지 않은 경우가 있는 이유는 주로 웹 사이트의 보안 설정과 관련이 있습니다.최근에는 많은 웹 사이트가 데이터의 보안과 프라이버시를 보호하기 위해 HTTP 대신 보안 프로토콜인 HTTPS를 사용하고 있습니다.HTTP와 HTTPS의 차이는 다음과 같습니다:HTTP (Hypertext ..
페이스텔 암호 구조 with 대칭 블록 암호 대부분의 대칭 블록 암호 알고리즘 구조는 페이스텔 구조에 기초해서 만들어졌다 페이스텔 암호 구조의 기본 원리 2w 비트인 평문 블록과 키 K가 암호 알고리즘의 입력으로 사용 될 것이다 우선 평문 블록을 L0와 R0로 쪼개서 각 N 번의 라운드를 거쳐 암호문 블록을 생성하기 위해 합쳐진다 페이스텔 암호의 장점은 암호/복호 알고리즘 두 가지를 서로 다른 알고리즘으로 구현할 필요가 없다 라운드 함수와 라운드 키 - 페이스텔 구조의 핵심 각 라운드 과정에 사용 되는 입력 값은 이전 라운드 과정의 결과물인 L과 R 값이다 또한, 각 라운드마다 사용 되는 서브 키 K 또한 모두 다르다. 모든 라운드 과정은 왼쪽 반 데이터에 substitution을 수행한다. 그 후 라운..
Intro. 대칭/비대칭 키와 해쉬 함수를 이용한 Digital Signiture 만드는 방법 Asymmetric from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP import base64 # 키 생성 key = RSA.generate(2048) # 공개키(Pu)와 비공개키(Pr) 추출 Pu = key.publickey() Pr = key # 메시지 암호화 def rsa_encrypt(m, Pu): cipher = PKCS1_OAEP.new(Pu) ciphertext = cipher.encrypt(m) return ciphertext # 암호문 복호화 def rsa_decrypt(ciphertext, Pr): cipher = PK..
프로그래밍 언어의 변천사 폰 노이만에 의해 세계 최초로 프로그램 내장 방식 컴퓨터 등장 일반적으로 말하는 프로그래밍 언어는 이 때부터 시작한다 프로그래밍 언어 살펴보기 포틀란 과학 응용 분야를 위한 효율성을 강초한 최초의 고급 언어 설계 목표 : 매우 빠르게 실행 되는 코드 생성 미리 메모리를 시스템에 넣어둬서 메모리 체크 필요 x 하드웨어 처음으로 부동 소수점 연산 가능 주요 기능 : 배열, For 반복문, 분기 if 문 등 코볼 사무용으로 설계된, 영어와 비슷한 구문을 갖는 명령형 언어 변수를 지정할 때 출력 포맷까지 정해져서 나온다 주요 기능 : 레코드 구조, 프로그램의 실행부와 분리된 자료 구조 다양한 출력 기능 등 LISP (List Processor) 리스트 자료 구조와 함수 적용을 기반으로 ..
대칭 암호 원리 대칭 암호는 관용 암호, 비밀-키 암호 또는 단일-키 암호라고 알려져 있다. 대칭 암호의 보안은 키의 비밀성에 의해 지켜진다. 알고리즘을 모르게해서 지켜지는 것이 아니다 즉 공격자가 암호/복호 알고리즘을 알고 암호문을 가지고 있더라도 그 암호문을 해독할 수 없어야 한다(알고리즘은 공개 되어 있다고 생각하자) 대칭 암호의 필수 요건 강한 알고리즘 안전한 비밀키 공유 대칭 암호 구조의 5가지 요소 평문 원문이나 데이터로서 알고리즘의 입력으로 이용된다 암호 알고리즘 입력으로 들어온 원문을 다양한 방법으로 치환하고 변환한다 비밀 키 알고리즘의 한 입력으로 사용 된다 이 키를 이용하는 알고리즘에 의해 정확한 대체와 전환이 이루어진다 암호문 출력으로 나오는 암호화 된 메시지 평문과 비밀 키에 따라서..
berom
'Computer Science' 카테고리의 글 목록 (16 Page)