보안 공부/암호학 14

양자암호와 블록체인

블록체인 관련 수업만 5번 이상 들었는데 이해가 안되어서 블록체인 자체를 포기하고 있었다.하지만 어쩌다 보니 "양자암호와 블록체인"을 주제로 발표를 해야만 했고, 주제를 이해하지도 못하도 발표하는 건 못할 짓이였기에 발표 준비 겸 관련 공부를 시작하였다. 내가 이해한 내용은 이렇다. 목차블록체인 용어 설명블록체인과 암호화폐란?양자 컴퓨터의 등장양자 컴퓨터가 블록체인에게 끼치는 영향양자 암호 시대를 향한 정책과 미래 계획결론블록체인이란?블록 체인을 설명하기 전에 간단한 용어 설명트랜잭션: 사용자가 간 자산(BTC, 데이터 등)을 전송하거나 데이터를 기록하는 단위예시: A가 B에게 10BTC를 보낸다.(트랜잭션) 블록: 여러 트랜잭션이 모여 생성된 데이터 묶음이며, 체인을 연결하는 단위그래서 블록체인이란?..

[9장 암호수학] 소수, 소인수분해, CRT, 합동방정식

Positive integers 양의 정수는 1, 소수, 합성수로 이루어진다. 1: 숫자 1 소수: 1과 자기자신만을 약수로 갖음 합성수: 3개 이상의 약수를 갖는다. 서로 소(Relatively Prime) - 두 개의 양의 정수가 gcd(a,b)=1를 만족할 때. - 만약 p가 소수라면 1부터 p-1까지의 모든 정수는 p와 서로소가 된다. 소수판정 Q. 임의로 주어진 양의 정수 n이 소수인지 아닌지를 판단하는 법 A. 루트(n)보다 작은 모든 소수로 나누어 지는지 확인해본다. ex) 97은 소수인가? 루트97은 9보다 크고 10보다는 작다. 9 이하의 소수는 2, 3, 5, 7이다. 2, 3, 5, 7 중 어느 소수도 97을 나누지 못하므로 97은 소수이다. 에라토스테네스의체-양의 정수로 된 모든 수..

[암호학] 전치암호과 대치암호의 비교 & 확산과 혼돈

전치암호는 전수조사 공격에 취약하다. 따라서 현대 블록 암호는 전수조사 공격에 안전하기 위해서 대치암호로 설계되어야 한다. 하지만 대치암호는 암호화되고 같은 단어가 반복한다는 점을 통해 키의 길이를 추정할 수 있다. 이를 보안하기 위해 전치암호를 사용한다. -->결과적으로 대치암호, 전치암호 둘 모두 다 사용 정의 box 최소한으로 필요한 키의 길이 대치암호 평문에 포함된 1의 갯수!=암호문에 포함된 1의 갯수 P-box 전치암호 평문에 포함된 1의 갯수==암호문에 포함된 1의 갯수 X-box 현대 암호는 확산과 혼돈을 위해 여러가지 구성요소를 사용한다. [여러가지 구성 요소의 종류] 전치요소: P박스 대치요소: S박스 배타적 논리합 연산 순환이동 (circular shift) 스왑(swap) 분할(sp..

[암호학] 3장 정리(2). 단일 문자 대치 암호, 다중 문자 대치 암호의 예시

2. 단일 문자 대치 암호(Monoalphabetic Substitution Cipher) 정의 덧셈암호와 곱셈암호처럼 평문의 기호와 암호문에 대응되는 기호는 항상 일대일 대응 관계를 가진다. 공격 방법 전수조사 공격을 이용한 암호 해독, 통계적인 공격을 이용한 암호 해독 문제점&특성 덧셈암호, 곱셈암호, 아핀암호는 작은 키 공간(ex. 알파벳의 갯수: 26)을 갖기 때문에 전수조사 공격에 취약하다. 덧셈암호, 곱셈암호의 키 공산: 26(알파벳의 갯수), 아핀암호의 키 공간: (Z26의 원소 수)*(Z26*의 원소 수) --> 키 공간에 있는 모든 키를 대입해 보면 된다. 암호화 복호화에 공유되는 비밀키는 전송되는 문자들과 독립적이다. 각 알파벳들의 조합을 생각해보면 키 공간은 26!이 된다. 해결 방법..

[암호학] 3장 정리(1). 대칭 키 암호의 용어&개념 정리

1. 대칭 키 암호 알고리즘 1. 일반적인 개념 1. 용어정리 암호화(Encryption): 평문을 암호문으로 변환하는 과정 복호화(Decryption): 암호문을 평문으로 변환하는 과정 평문(plaintext): Alice가 BOb에서 보낼려는 메시지 원본 암호문(ciphertext): 평문을 암호화한 후 채널을 통해 실제 저송하는 메시지 암호 알고리즘(encryption algorithm):암호화를 하는 방법 키(key): 암호가 동작하는데 필요한 값들의 집합 비밀키(secret key): 암호알고리즘을 통화 암호화를 할 때 필요한 키 복호 알고리즘(decryption algorithm): 복호화를 하는 방법 2. 대칭키 암호의 일반적인 알고리즘 0. 가정: 공격자가 도청하여 메시지 내용을 알아낼 수..

[암호학] 2장 정리(2). 모듈로 연산과 일변수 선형 방정식

잉여집합(set of residues) : 모듈로 연산 즉, a mod n의 결과값은 항상 0과 n-1사이의 정수이다. --> 정수에서의 연산을 항상 닫혀있는 연산으로 할 수 있다. 잉여류(Residue Classes) : 모듈로 n에 함동인 정수들의 집합 키 공간 덧셈암호의 키 공간 Zn=0~n-1의 연속된 정수 Z5={0, 1, 2, 3, 4} 곱셈암호의 키 공간 Zn*: n의 약수를 약수로 가지고 있지 않은 수들 ex) Z26*를 구해보자. 1. 26의 약수는 2와 13 2. 1~n-1까지의 수 중 2와 13을 약수로 가지는 수를 뺀다. 3. Z26*={1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25} 일반적으로 암호는 모듈러가 소수인 Zp와 Zp*를 사용한다. p는 pr..

[암호학] 2장 정리(1). 암호학의 개념과 암호수학

1. 암호학이란? 정보를 보호하기 위한 언어학적 및 수학적 방법론을 다루는 학문 암호학의 목표: 보안의 3요소+부인봉쇄 기밀성(confidentiality): 송신하고자 하는 정보의 내용이 다른 사람이 알아보지 못하도록 하기 위한 기능 무결성(Integrity): 정보가 전달되면서 인가되지 않은 제 3자에 의하여 변형되지는 않았는지 확인하는 기능 가용성(availability): 서비스가 계속 유지되어 인가된 대상에서 정보를 제공하는 기능 부인봉쇄(Non-repudiation):메시지를 전달했거난 전달 받았다는 사실을 증명하는 기능 2. 암호수학 1. 정수집합과 사칙연산 암호학에서는 정수집합을 사용하여 암호함수를 만들고, 암호화, 복호화를 한다. 컴퓨터는 한정된 수만을 다룰 수 있기 때문에, 무한대인 정..

[암호수학1] 유클리드 알고리즘 + 디오판투스 방정식 (특수해와 일반해 구하기)

https://sh1256.tistory.com/90 [암호수학1] 유클리드 알고리즘 이론~코딩 유클리드 알고리즘(Euclidean algorithm)이란? 유클리드 알고리즘(유클리드 호제법)은 자연수 2개의 최대공약수를 구하는 하나의 알고리즘이다. 유클리드 알고리즘을 쓰면, a와 b의 공약수들을 나열하 sh1256.tistory.com 위 게시물(유클리드 알고리즘 (+확장))을 먼저 보고 오셔야 이해가 됩니다. 자 그럼 ax+by=c 중 (x,y)가 무수하게 많아지는 경우가 있습니다. 아래 예재의 10x + 5y=30만 봐도 쉽게 알 수 있죠. 컴퓨터는 이렇게 많은 (x,y)쌍 중 하나를 골라서 사용해야 합니다. 여러개를 혼용해서 사용하면 에러가 뜨로 혼동이 오니까요. 여러개의 (x,y) 중 특수해(P..

[암호수학1] 유클리드 알고리즘 이론~코딩

유클리드 알고리즘(Euclidean algorithm)이란? 유클리드 알고리즘(유클리드 호제법)은 자연수 2개의 최대공약수를 구하는 하나의 알고리즘이다. 유클리드 알고리즘을 쓰면, a와 b의 공약수들을 나열하지 않고, 연산만으로 a와 b의 최대공약수를 구할 수 있다. 유클리드 알고리즘 계산법 gcd(a,b)=a와 b의 최대공약수 최대공약수(Greatest Common Divisor, GCD) 유클리드 알고리즘 코딩 [파이썬] def gcd(m,n): if m0: q=r1//r2 print('q={}'.format(q)) r=r1-r2*q print('r1={}, r2={}, r={}'.format(r1, r2, r)) s=s1-s2*q s1=s2; s2=s print('s1={}, s2={}, s={}'..

[암호학] 1장 정리. 현대암호 이론 기본정리

1. cryptosystem(암호시스템)이란 : 정보보호를 위해 암호화,복호화,키 등을 사용해 안정성을 보장할 수 있는 일련의 과정 1.1 안전한 통신을 위해선 기밀성(Confidentiality): 메시지 내용 자체 보호, 인증(Authentication): 송신자의 신분확인, 무결성(integrity): 메시지 변조여부 확인, 재시도 공격(replay attack) 방지를 만족해야함. ++용어 정리++ plaintext, ciphertext, key, encryption, decrption 현대 암호: 현대 암호는 1970년대 후반 미국 스탠퍼드 대학교과 MIT 대학교에서 시작되었다. 1976년 스탠퍼드 대학교의 휫필드 디피(Whitfield Diffie)와 마틴 헬만(Martin Hellman)은 ..