분류 전체보기
-
[2021/02/08][짤막한 공지 - 해피칼리지]짤막한 공지 2021. 2. 8. 13:39
[2021/02/08][짤막한 공지 - 해피칼리지] 안녕하세요, 루니프입니다. “해피칼리지”에서의 전자책 판매 등록이 완료되었습니다. 금일부로 [핀툴 프로그래밍 기본서] “제1부” ~ “제4부”가 해피칼리지에서 판매됩니다. “구글 이메일” 계정을 가지고 계신 분만 구매하실 수 있으니 참고바랍니다. 해피칼리지 판매처에 관한 상세한 내용은 “제0부”에 업데이트 되었으니 참고바랍니다. ※ 각 부 당 25,000원에 판매됩니다. #공지 #루니프 #해피칼리지 #등록 #완료 #전자책 #판매 [2021/02/08][Short Notice - HappyCollege] Hello, this is LootNiP. The registration process for eBook sales at “HappyCollege” ha..
-
[2021/02/07][짤막한 이야기 - 생일 문제]짤막한 이야기 2021. 2. 7. 10:16
[2021/02/07][짤막한 이야기 - 생일 문제] “생일 문제”는 임의의 수의 사람이 모였을 때 생일이 같은 두 명이 존재할 확률에 대한 이야기이며, “생일 역설”이라고도 알려져 있다. 상상하는 것과는 달리 “23명”의 사람이 모여있다면, 그 중 생일이 같은 사람이 존재할 확률이 50%를 넘어간다(=50.73%). 생일이란 365일(윤년 제외) 중 하나에 들어가기 때문에 366명이 모이면 100% 확률로 생일이 겹치는 사람이 존재한다. 이는 앞선 “비둘기집의 원리”에서도 확인하였다. 그러나 366명이 아니라 23명만 모여도 생일이 겹치는 사람이 50% 확률이 넘게 존재하게되는데, 이는 중요한 문제를 시사하게 된다. “생일 문제”를 다시 잘 상상해보면 해쉬 함수에서 “충돌쌍”(입력값이 다르지만 동일한 ..
-
[2021/02/05][짤막한 이야기 - 비둘기집의 원리]짤막한 이야기 2021. 2. 5. 14:27
[2021/02/05][짤막한 이야기 - 비둘기집의 원리] “비둘기집의 원리”는 N+1마리의 비둘기를 N개의 집에 넣는 경우 최소한 한 집에는 비둘기가 두 마리 이상 들어가게 된다는 원리이다. 해당 원리는 귀류법으로 쉽게 증명할 수 있으며, 암호학에서는 매우 기본적이며 중요한 원리에 해당한다. 특히, 손실 압축(Lossy Compression)과 비손실 압축(Lossless Compression)에 대한 이야기에서 매우 중요하게 다루어진다. 앞선 포스팅에서의 해쉬 함수는 대표적인 손실 압축 함수에 해당하는데, 손실된 부분은 복원이 되지 않기 때문이다. 임의 길이의 입력값으로부터 고정 길이의 출력값을 출력하는 것이 해쉬 함수인데, 이 고정 길이가 N개의 비둘기집이 되는 것이다. 임의 길이의 입력값이라는 것..
-
[2021/02/04][짤막한 이야기 - 해쉬 함수]짤막한 이야기 2021. 2. 5. 14:26
[2021/02/04][짤막한 이야기 - 해쉬 함수] “해쉬 함수”는 임의의 길이의 데이터를 입력으로 하여 고정된 길이의 데이터(=”해쉬 값”)를 출력하는 함수이다. 해쉬 값을 획득하더라도 입력 값(원본 데이터)을 알 수는 없기 때문에 해쉬 함수는 일방향 함수의 일종이다. 암호학에서는 해쉬 함수를 주로 “무결성”을 보장하기 위하여 사용한다. “앨리스(Alice)”가 “밥(Bob)”에게 특정한 메시지를 보내고자 할 때, 해당 메시지의 해쉬 값도 별도로 전송하는 것이다. 해당 메시지는 “이브(Eve)”에게 내용이 노출되어도 무방하지만, 내용이 변경되면 안되는 메시지이다. 메시지의 해쉬 값은 메시지마다 거의 고유하다고 생각할 수 있으며, 메시지가 변조되었을 경우 그 메시지의 해쉬 값도 다르게 계산되기 때문에,..
-
[2021/02/03][짤막한 공지 - 티스토리 계정 생성]짤막한 공지 2021. 2. 5. 14:25
[2021/02/03][짤막한 공지 - 티스토리 계정 생성] 안녕하세요, 루니프입니다. 티스토리 계정을 생성하였습니다. 티스토리에는 기본적으로 인스타그램과 페이스북에 포스팅되는 내용이 동일하게 게시됩니다. 티스토리의 주소는 “https://lootnip.tistory.com/”입니다. 티스토리에서 “LootNiP”를 검색하셔도 됩니다. ※ 참고로 인스타그램과 페이스북의 계정명은 “@lootnip”과 "lootnip"입니다. ※ 티스토리의 게시 제한은 하루 15개라 현재 인스타그램 혹은 페이스북의 모든 포스트가 티스토리에 올라가지는 않은 상태입니다. #공지 #루니프 #티스토리 #계정 #생성 [2021/02/03][Short Notice - Tistory Account Created] Hello, this ..
-
[2021/02/03][짤막한 이야기 - 일방향 함수]짤막한 이야기 2021. 2. 5. 14:24
[2021/02/03][짤막한 이야기 - 일방향 함수] “일방향 함수”는 함수 중에서도 “역연산이 어려운 함수”를 의미한다. 즉 역함수의 계산이 어렵다는 의미이며, 이는 추후 포스팅할 “공개키 암호”에서의 기본 설계 원리에 해당한다. 대표적으로 “이산대수 문제”와 “인수분해 문제”가 “일방향 함수”에 해당한다. 인수분해 문제는 “X*Y”를 연산하는 것은 쉽지만 “Z”가 무엇의 곱인지 알아내는 것은 어렵다는 문제이다. 만약 특정한 값이 추가로 주어진다면 “역연산도 쉽게 해결”할 수도 있는 경우가 있는데, 이러한 함수는 “트랩도어 일방향 함수”라고 칭한다. #이야기 #루니프 #일방향 #함수 #역연산 #공개키 #트랩도어 [2021/02/03][Short Story - One-Way Function] “One-..
-
[2021/02/02][짤막한 이야기 - 코드 가상화]짤막한 이야기 2021. 2. 5. 14:24
[2021/02/02][짤막한 이야기 - 코드 가상화] “코드 가상화”는 소프트웨어 보호 기술의 한 종류이다. 보호 대상이 되는 코드 영역에 변형을 가한다는 점에서는 “코드 패킹”과 유사하다. 그러나 “패킹된 코드”와는 달리 “가상화된 코드”는 다시 원본 코드로 복원될 필요가 없다. 패킹된 코드와 가상화된 코드 모두 CPU에서 올바르게 해석되지 않는다. 가상화된 코드의 경우 프로그램 내에 “가상CPU(VCPU)”가 코드 형태로 존재하고, 해당 가상CPU에서 코드를 해석한다. 즉, 가상화된 코드를 해석할 수 있는 VCPU와 해석 결과에 따라 실제로 기능을 실행하는 “핸들러 코드”가 존재하게 된다. 가상화된 코드를 에뮬레이션하는 형태의 보호기법이기 때문에, 원본 코드로 복원되지는 않지만 성능이 매우 크게 저..
-
[2021/01/30][짤막한 이야기 - 카이사르 암호]짤막한 이야기 2021. 2. 5. 14:23
[2021/01/30][짤막한 이야기 - 카이사르 암호] “카이사르 암호”는 대표적인 치환 암호이다. 위의 예시에서는 치환을 위한 키가 “1”이고 각 영문자에 1을 더하는 방식으로 암호문을 생성한다. 앞선 포스트에서 언급하였지만, 키로 사용할 수 있는 숫자는 26가지이다. 따라서 공격자는 26번의 시도만으로 올바른 키를 찾아낼 수 있다. (단, 평문이 “Hello”와 같은 의미있는 영문자가 아니라면, 올바른 평문을 선택하는 것은 또 다른 문제이다.) 카이사르 암호는 또 다른 의미가 있다. 이 암호는 특정한 조건하에서 완전 안전성(Perfect Secrecy)을 보장하는 암호이다. 이상한 말이 아닐 수 없다. 암호알고리즘 자체가 사용 가능한 키의 개수가 적어서 취약한데, 완전 안전성을 보장한다는 것이 말이..