1. Multiplicative Cipher 알파벳은 26자리고, key는 Z26*에 들어있으니까 1, 3, 5, 7, 9, 11, 15, 17, 18, 21, 23, 25 중에 하나이다. 12개밖에 안된다!! 만약 key가 7이라고 치면, hello -> 7 4 11 11 14 encryption하면 (7 * 7) mod 26 ... 해서 23 02 25 25 20이고 XCZZU이다. 키가 12개밖에 없다는 Multiplicative Cipher의 단점을 보완하는 Affine Cipher!! 2. Affine Cipher 12개 * 26개 의 키가 가능해진다.
프로세스 == 하나의 프로그램 프로세스 안의 프로그램 실행의 흐름을 'Thread'라고 한다. 스레드는 분기가 가능해서 여러 개의 스레드를 동시에 실행할 수 있다. => Multi-Thread Thread = Light Weight Process ⭐️동일한 프로세스의 스레드는 같은 메모리 공간을 참조함⭐️ Thread는 스케줄러에 의해서 독립적으로 관리 될 수 있다. 예) 인터넷 브라우저는 하나의 프로세스인데, 그 안에서 여러가지 탭은 여러 쓰레드로 관리된다.
[정의] $Zn$에서 $(a*b)\mod n = 1 $이면 $a, b$는 곱셈역 관계이다. [구하는 방법 3가지] 1. 노가다로 구하기 2. 페르마의 소정리를 이용하기 3. extended euclid algorithm 사용하기 ex) [Q] Z10에서 모든 곱셈역을 찾아보자. [A] Z10 = {0, ..., 9} (3, 7), (1, 1), (9, 9) [Q] Z11에서 모든 곱셈역을 찾아보자. [A] Z11 = {0, ..., 10} (1, 1), (2, 6), (3, 4), (5, 9), (7, 8), (10, 10) 그러면 Zn에 들어있는 b가 곱셈역을 가지고 있는지 어떻게 알 수 있을까? b * (Zn에 들어있는 수) == n * 임의의 수 + 1인지 확인해도 되겠지만... gcd(n, b) ..
delegate에게 앱이 거의 실행 직전의 상태라고 알려준다!!!!! Declaration optional func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool launchOptions 딕셔너리에는 앱이 실행된 이유가 온다. 유저가 직접 앱 아이콘을 눌러서 실행한 경우에는 이 값이 비어있을 수 있다!! 왜 둘다 nil인지는 모르겠지만... Return Value 앱이 URL Resourse를 handle 할 수 없거나, user activity를 계속할 수 없으면 false를 리턴하고, 정상적인 행..