미래를 바꾼 아홉 가지 알고리즘

저자
존 맥코믹 지음
출판사
에이콘출판 | 2013-05-31 출간
카테고리
컴퓨터/IT
책소개
우리는 날마다 컴퓨터를 이용해 놀라운 일을 한다. 간단한 웹 검...
가격비교

- 단순한 덧셈 트릭이 실제로 작동하지 않게 하는 장치가 하나 더 있음. 덧셈은 통계적으로 분석가능한 결과를 낳고 이는 누군가가 암호화된 메시지 분석을 기반으로 키를 계산할 수도 있음. 그러므로 오늘날 암호화 기법은 블록암호라는 변형된 덧셈 트릭을 이용. 우선 긴 메시지를 통상 10~15자로 이뤄진 고정된 크기의 작은 블록으로 쪼갬. 그 다음, 그냥 메시지 한 블록과 키를 더하는 대신 각 블록을 덧셈과 유사하지만 메시지와 키를 더 공격적으로 섞는 고정된 규칙에 따라 수차례 변형. 예를 들어 키의 앞 절반을 블록 뒤 절반에 더하고 결과를 뒤집은 다음 키의 나머지 절반을 블록의 마지막 절반에 더하라 같은 규칙을 말할 수 있음. 물론 실제규칙은 이보다 훨씬 복잡함. 오늘날 블록암호는 주로 10차례 혹은 그 이상 작업을 함. 이는 계산목록을 반복적으로 적용한다는 의미. 충분히 많은 횟수로 계산하면, 원래 메시지는 정말로 잘 섞여 통계 공격을 방어할 수 있게 됨. 그러나 키를 아는 사람은 모든 계산을 역으로 구동해 해독된 원래 메시지를 얻을 수 있음. 이 글을 쓰는 시점에서 가장 많이 쓰는 블록 암호는 고급 암호표준(AES, advances encryption standard)임. AES는 16자짜리 블록을 128비트 키와 함께 이용해 10차례의 혼합계산을 하는 방식으로 사용.
- 일반적으로 체크섬은 오류정정보다 오류검출에 널리 사용. 아마도 가장 보편적인 예는 이더넷일 듯함. 이더넷은 오늘날 지구에 있는 거의 모든 컴퓨터가 쓰는 네트워킹 프로토콜로서, CRC-32란 체크섬을 이용해 오류를 검출. 가장 유명한 인터넷 프로토콜인 TCP(transmission control protocol, 전송제어 프로토콜)도 보내는 데이터의 각 청크 또는 패킷에 체크섬을 이용. 체크섬이 부정확한 패킷은 그냥 폐기됨. TCP는 필요한 경우 이를 나중에 자동으로 재전송하도록 설계되었기 때문. 인터넷상에 배포되는 소프트웨어 패키지는 대개 검사합계를 이용해 검증됨. 자주 쓰는 체크섬은 MD5와 SHA-1임. 둘다 암호학적 해시함수로 고안돼 무작위 통신 오류뿐 아미라 소프트웨어의 악성 변형으로부터 보호기능을 제공. MD5 체크섬은 40자리 숫자 정도를 이용하고 SHA-1은 50자리 숫자를 만듬. 그리고 SHA-256과 SHA-512 등 이와 같은 유형의 오류방시 체크섬은 훨씬 더 큰 자릿수를 만듬. 오류 정정 및 검출 코드에 관한 과학은 꾸준히 그 범위를 넓혀가고 있음. 90년대 이래 저밀도 패리티 검사 코드로 알려진 접근이 상당한 주목을 받아왔으며, 오늘날 위성 TV로부터 심우주 탐사기에 이르는 애플리케이션에서 이 코드를 이용함
- 안타깝게도 컴퓨터가 손글씨 같은 흥미로운 분류과제를 풀도록 명시적으로 교육할 수는 없음. 그래서 컴퓨터 과학자는 컴퓨터가 샘플의 분류법을 자동으로 학습하게 하는 또 다른 전략을 지향. 기본전략은 컴퓨터에게 엄청난 양의 분류된 데이터를 주는 것. 즉 이미 분류된 샘플을 제공. 각 샘플엔 라벨이 있기 때문에 컴퓨터가 다양한 분석트릭을 이용해 각 클래스의 특징을 추출할 수 있음. 나중에 컴퓨터는 분류되지 않은 샘플을 보면 이와 가장 유사한 특징을 가진 라벨을 선택해서 클래스를 추측할 수 있음. 각 클래스의 특징을 학습하는 과정을 대개 훈련이라고 부르고 분류된 데이터는 훈련 데이터임. 다라서 아주 간단히 패턴인식과제를 두 단계로 나눔. 첫째는 분류된 훈련 데이터를 기반으로 컴퓨터가 클래스에 관해 학습하는 훈련단계이고, 둘째는 컴퓨터가 분류되지 않은 새로운 데이터 샘플을 나누는 분류단계임
- 최초의 디지털 컴퓨터가 탄생한 이래로, 인간 두뇌의 탁월한 능력은 컴퓨터 과학자들을 매료시켰고 영감을 불러 일으켰음. 실제로 컴퓨터를 이용한 뇌 시뮬레이션에 관한 최초의 논의 중 하나는 영국의 탁월한 수학자이자 엔지니어이며 암호해독자인 과학자 앨런 튜링의 논문이었음. 50년에 출판된 튜링의 계산기계와 지능이란 고전적 논문은 컴퓨터가 인간을 가장할 수 있는지에 관한 철학적 논의로 가장 유명함. 이 논문은 오늘날 튜링 테스트로 알려진 컴퓨터와 인간 사이의 유사성 평가에 관한 과학적 방법을 소개. 그러나 이 논문에서 잘 알려지지 않은 부분이 있는데, 여기서 튜링은 컴퓨터를 이용해 인간 뇌를 모델링하는 가능성을 직접 분석. 그는 몇 기가바이트의 메모리면 충분하리라 추정했음. 6년 후 튜링이 인간 뇌 시뮬레이션에 필요한 작업의 양을 상당히 과소평가했다는 점은 대부분 동의했음. 그러나 컴퓨터 과학자들은 다양한 모습으로 이 목표를 추구해왔음. 그 결과 중 하나가 인공 신경망 또는 줄여서 신경망 분야임
- 직관이 좌우하는 업무에서 기계적 업무로의 점진적 변화는 꾸준히 이어지고 있음. 인공지능과 패턴인식은 서서히 범위를 확장하고 있으며 성능을 향상시키고 있음. 이 장에서 설명한 알고리즘(인접이웃 분류자, 의사결정 나무, 신경망)을 방대한 범위의 실용적 문제에 적용할 수 있음. 이중 소수만 언급하자면 휴대전화 가장 키보드 철자 자동수정하기, 수많은 복잡한 검사결과로부터 환자의 질병 진단하기, 고속도로 요금소에서 자동차 번호판을 자동인식하기, 특정 컴퓨터 사용자에게 보여줄 광고 결정하기 등을 들 수 있음. 그러므로 이 알고리즘은 패턴인식 시스템의 주춧돌 중 일부임. 사람들이 이를 진정한 지적활동이라고 생각하지 않을 수도 있지만, 향후에는 훨씬 더 많은 사례를 접하게 될 것임.
- 컴퓨터의 전형적 집 압축파일 제작 배후에 있는 중요 개념
(1) 압축되지 않은 원본파일을 전과 같은 트릭을 이용해 변형해서 파일에 있는 반복 데이터 대부분을 돌아가서 데이터를 복사하라는 훨씬 짧은 지시로 교체
(2) 변형된 파일에서 어떤 심벌이 자주 등장하는지 검토. 예를 들어 원본파일이 영어라면 컴퓨터는 e와 t가 가장 흔한 심벌임을 발견하게 될 것임. 그러면 컴퓨터는 자주 쓰는 심벌엔 짧은 숫자코드를, 거의 쓰지 않는 심벌엔 긴 숫자코드를 부여한 표를 구축
(3) 단계2의 숫자코드를 직접 번역해 다시 파일을 변형
- 압축파일을 원본과 매우 유사하지만 똑같지는 않은 파일로 재구성할 수 있게 하는 손실압축을 이용하는 편이 훨씬 유용할 때도 있음. 예를 들어 손실압축은 이미지나 오디오 데이터를 담은 파일에 흔히 쓰임. 사람이 눈으로 보기에 똑같아 보이는 이미지라면 컴퓨터에 저장하는 파일이 카메라에 저장한 파일과 똑같을 필요는 없음. 오디오 데이터도 마찬가지임. 사람 귀에 똑같이 들리기만 하면 디지털 뮤직 플레이어에 저장한 노래파일과 CD에 저장한 노래파일이 정확히 같을 필요는 없음.

 

'IT' 카테고리의 다른 글

포스트 스마트폰, 경계의 붕괴  (0) 2014.10.18
새로운 디지털 시대  (0) 2014.10.17
플랫폼의 시대  (0) 2014.10.13
비트 코인  (0) 2014.10.12
빅데이터 게임화전략과 만나다  (0) 2014.10.12
Posted by dalai
,