티스토리 뷰

문자를 숫자로 바꾸기

 

A=0 B=1 이런식으로 , 근데 5 넘어가는수를 쓸수가 없으니 5진법으로 계산함

BED = 143(5)이므로 1X25 + 4X5 + 3X1 = 48 계산한다

48 5진법으로 바꾸려면? = 9X5+3 = (1X5+4)X5+3 = 1X5^2 + 4X5 + 3 = 143(5) 하여 BED 글이 나온다.

 

95 = 340(5) = DEA

 

알파벳 뿐만 아니라 특수문자들도 필요함

아스키코드를 사용 , 0부터 255까지 수를 이용

 

Ord() 함수는 해당하는 아스키코드 값을 알려준다.

Ex) Chr(65) = 'A'  ord('A') = 65

 

비밀나누기

비밀메시지 : M =777

두개의 비밀 조각으로 나누기

 

R=111  M-r = 666

 

임의의 정수를 고를때 모든 정수가 선택될 화귤이 똑같을 수가 없음=> 무한

 

먼저 정수 n 가능한 모든 비밀메시지보다 큰값으로 잡고 비밀 M이나 비밀조각 r,

M-r n으로 나눈 나머지로

=> 큰값으로 잡아야되나? 4자리 비밀이라고 할때 1000으로 나누면 9999 8999 나머지가 동일하여 머가 비밀메시지 인지 알수가 없음.

 

여러개의 조각으로 나누고 싶으면 어떻게 할까?

=> 4명이면 3명에게 임의의 숫자를 주고 나머지 한명에게 빼고 남은거를 준다.

 

N(sqrt(2))

N(pi,digits=100) = > 100자리까지 pi값을 알고싶다.

Tan? 라고 하면 해당 명령어를 알수있다.

Range(3) => 0 1 2   range(1,3) = 1 2

 

Mod(7,3) = > 7 3으로 나눈 나머지

여기서 Mod(7,3) %5 하면 에러가 난다.

 

보물지도의 조각 미리 정한 개수보다 많이 모으기만 하면 완성할 있음

=> 샤미르의 쓰레스 홀드

 

Lagrange 보간다항식

-> 평면에서 점을 지나는 직선은 항상 존재하고 유일

-> 세점의 경우 : 2 혹은 이하 함수

-> t개의 점의 경우 t-1(혹은 이하) 다항함수가 항상 존재하고 또한 유일함

 

S.expand()하면 식이 예쁘게 나열됨

 

시프트 암호

A-> B, B-> C (한자리씩 민다)

HELLO => IFMMP

A->C  B->D ..(두자리씩 민다)

HELLO => JGNNQ

평문(메시지)들의 공간(집합) { A,B,C---Z}

암호문들의 공간(집합) { A,B,C,….Z}

암호화 키들의 공간 { 0,1,2….25}=> 몇칸 밀리는가

복호화 키들의 공간 {0,1,2….25}

 

암호화/복호화는 키마다 서로 다른 일대일 함수!!\

 

>k=2 경우

암호화 함수 X->X+2(mod 26)

복호화 함수 X->X-2(mod 26)

 

암호공격하기

  • 특정 평문과 거기에 해당하는 암호문을 아는 경우

  평문 : PLAY , 암호문 : RNCA  => 뒤로 두칸 가는구나~

  • 암호문만 아는경우

 암호문 : SODB  => 모든 경우의 수를 해본다.

 

SAGE구현

  • AlphabeticStrings() 대문자만 사용하겠다.
  • S= ShiftCryptosystem(AlphabeticStrings())-> shift암호 사용
  • S.encoding() 소문자,특수문자( ' ',@,?,!) 소문자는 대무자로 , 특수문자는 삭제
  • S.random_key()
  • S.enciphering(K,P):암호화   (,평문)
  • S.deciphering(K,C): 복호화  (,암호문)

 

Shift 안전하지 않다.

 

대치암호

->A,B,C...Z 마구 섞는 암호

암호화는 겹치지않게 보내야함

키들의 개수 ?

A->B 26    B->25  C->24개…   26X25… => 26!

 

공격하기

  1. 특정한 평문과 암호문을 아는경우 -> 쉽게 해결
  2. 암호문만 알고 있는 경우 -> 어렵다.

그럼 어떻게 공격? -> 빈도수를 이용한다.

 

DES

->블록암호 : 한글자씩 암호화 되지않고 여러 글자를 묶어서 함호화하는 방식

블록크기 : 2진법 64자리(아스키코드 : 256진법 8자리)

암호화키(=복호화키 ) : 2진법 56자리

 

AES

->블록크기 :2진법 128자리 (아스키코드 : 256진법 16자리)

암호화 (=복호화키) : 2진법 128,192,256 가능

 

 

RSA -> 암호화키와 복호화 키가 다르다.

 

합동 (  정수 a,b n으로 나눈 나머지가 같을때)

 

 

 

 

 

 

거듭제곱 효율적으로 하기

 

M^17(mod n)계산하려면 곱셉 몇번?

-단순히 하면 16 , 제곱으로 계산하면 5번만하면

M^23(mod n)

-단순히 하면 22 , 제곱으로 하면

RSA 공겨하기

 

1.n pq 소인수분해 할수 있으면?

이걸 전개하면 p q 합과 곱을 알기때문에 값을 알수있다.

 

결론-> n 소인수분해 못하면 파이(n) 구할수 없음

=> d 알면 n 소인수 분해 가능

고로 RSA구현할때 p q 차이가 너무 적으면 안된다.

 

RSA 안전함은 매우 n 소인수 분해가 아주 오래 걸린다는것이 핵심

하지만 매우 소수를 만들어야되는데 => 소인수분해를 하지않고 소수를 만들어야됨

 

페르마/오일러 정리

P=3일때 a a^2 둘다 1이다.

 

가로세로가 동일할때 1이나온다.

 

페르마 소정리

=>p 소수이고 정수 a p 배수가 아니면 a^p-1 p 나눈 나머지는 1

 

 

 

 

 

'3학년2학기 > 4차산업혁명과수학' 카테고리의 다른 글

10/14  (0) 2019.10.14
10/13  (0) 2019.10.13
9.30  (0) 2019.09.30
4차시  (0) 2019.09.23
3주차  (0) 2019.09.17
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함