basis and practice in programming lecture notes (1/19)

46
고려대학교정보보호대학원 고려대학교 정보보호대학원 Brief History of Computer

Upload: seungjoo-kim

Post on 12-Apr-2017

277 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

고려대학교정보보호대학원

Brief History of Computer

Page 2: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

2

Who am I?

Page 3: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

Page 4: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집CyKor @ DEFCON CTF 2015(Advisor : Seungjoo Kim)

Page 5: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

(Founder & Board Member : Seungjoo Kim, 2011)

(사)HARU & SECUINSIDE

Page 6: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

6

컴퓨터 HW, SW의 역사 개요

Page 7: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

7

Page 8: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

8

컴퓨터(HW)의 역사

Page 9: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

9

Page 10: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

10

1927년 : 독일은 에니그마(Enigma) 암호장치를 개발

Enigma의탄생

Page 11: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

11

에니그마의 동작 원리

Enigma의탄생

Page 12: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

12

1937년 : 앨런 튜링(1911~1954)이 튜링머신(Turing Machine)을 고안. 컴퓨터의개념을 제시

단순 계산기계가 아니라 다양한 작업을 처리할수 있는 ‘범용 계산 기계(universal computing machine)'의 개념을 제시

Turing Machine의등장

Page 13: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

13

1939년 : 영국은 블레츨리(Bletchley) 파크에암호연구소를 설립

1943년 : 튜링은 세계 최초의 컴퓨터Colossus를 개발

Colossus의탄생

Page 14: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

14

[참고] Turing Award

Page 15: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

15

1995) Manuel Blum

2000) Andrew Chi-Chih Yao

2002) Ronald L. Rivest, Adi Shamir and Leonard M. Adleman

2012) Silvio Micali and Shafi Goldwasser

2015) Martin E. Hellman and Whitfield Diffie

[참고] Turing Award

Page 16: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

16

[참고] Turing Award

Rivest Adleman

Shamir

Page 17: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

17

[참고] Turing Award

Page 18: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

18

[참고] Turing Award

Hellman Diffie

Page 19: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

19

1946년 : 미국이 ENIAC(Electronic Numerical Integrator and Calculator) 개발

배선을 바꿔 연결함으로써 프로그램을 변경

수식을 바꾸려면 진공관의 연결선을 모두 새로배치해야 했기 때문에, 새로운 수식을 입력하려면엄청나게 많은 시간을 쏟아야 했음

진공관을 사용했으므로 덩치가

크고 엄청난 전력을 소모했음

ENIAC의개발

Page 20: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

20

1950년 : 폰 노이만(von Neumann)이EDVAC(Electronic Discrete Variable Automatic Computer) 개발

ENIAC + 기억장치 : 프로그램 내장방식

계산장치와 메모리, 그리고 저장장치를 분리하여, 컴퓨터에 프로그램을 쉽게 변경할 수 있는 구조를설계

10진수가 아닌 2진수를 사용할 것을 주장

EDVAC의등장

Page 21: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

21

1958년 : 컴퓨터 제작에 트랜지스터가사용되기 시작. 컴퓨터의 소형화.

트랜지스터의등장

Page 22: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

22

인터넷의 역사

Page 23: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

23

배니바르 부시 (Vannevar Bush, 1890~1974) : 1945년 “As We May Think”란 논문을 통해 인간이 가지고 있는지식의 파워를 증폭시키는 연구를 진행할것을 촉구

개개인이 생산하는 정보와 지식을

저장하고 빠르게 검색할 수 있는

개인용 소형 컴퓨터 시스템,

Memex(MEMory EXtender)를 정의

컴퓨터를사용한인류지식의확장

Page 24: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

24

더글러스 엥겔바트 (Douglas Engelbart, 1925~2013) : 1968년 NLS (oN Line System) 시스템을 공개시연

세계 최초로 컴퓨터 마우스 장착, 하이퍼미디어의 실현, 간단한 워드 프로세싱, 협업 작업을 도와주는 온라인 그룹웨어

마우스그이상의발명

Page 25: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

25

빈톤 서프 (Vinton Cerf, 1943~) : 한 네트워크가 다른 종류의 네트워크와 연결될 수있게 하기 위하여 TCP/IP 프로토콜과 게이트웨이(라우터) 개발

인터넷의아버지, TCP/IP의개발자

Page 26: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

26

팀 버너스 리 (Tim Berners-Lee, 1945~) : 1989년, 사람들이 인터넷에서 하이퍼미디어방식으로 정보를 공유하여 협력하는 시스템을 만들자고 주장

월드 와이드 웹이 등장하면서 소수의 학계나 산업계에서 연구 목적으로 사용되던 인터넷은 완전히 대중화됨

World Wide Web의아버지

Page 27: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

27

마크 앤드리슨 (Marc Andreessen, 1971~) : 1993년 모자이크 (Mosaic) 웹브라우저 개발

배니바르 부시가 주장한 메멕스의 비전을 더글러스 엥겔바트가 NLS를 만들어 부분적으로 구현함. 그리고 팀 버너스 리에 와서 가시화 되었지만 마무리가 아쉬운 때에 대학생이었던 마크앤드리슨은 누구나 손쉽게 사용할 수 있는 웹브라우저를 만들어 월드 와이드 웹을 대중화시킴.

웹최초의킬러애플리케이션개발자

Page 28: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

28

SW의 역사

Page 29: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

29

에드거 다익스트라 (Edsger W. Dijkstra, 1930~2002) : 구조적 프로그래밍(Structured Programming) 발견. “goto 문장은 해롭다”라는 에세이 한편으로 구조적프로그래밍의 새벽을 밝힘.

구조적프로그래밍의발견

Page 30: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

30

엘런 케이 (Alan Kay, 1940~) : 객체 지향의완성자. 최초로 완전한 객체 지향 언어인 스몰토크(Smalltalk)를 설계했고 객체 지향 패러다임의 이론을 완성함. 그 결과로 지금과같은 C++, 자바와 같은 객체 지향의 시대가오게 됨.

객체지향의완성

Page 31: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

31

데니스 리치 (Dennis Ritchie, 1941~2011) : C 언어의 아버지. 친구인 켄 톰슨(Ken Tompson)과 유닉스를 만들다가 우연히 C 언어를 만듦.

C 언어의탄생

Page 32: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

32

C 언어의탄생

Page 33: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

33

C 언어의탄생

Page 34: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

34

제임스 고슬링 (James Gosling, 1956~) : Java의 아버지

Java의탄생

Page 35: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

35

프레더릭 브룩스 (Frederick P. Brooks, Jr., 1931~) : "The Mythical Man Month"를 통해 소프트웨어 공학의 필요성을 주창

개발 기간이 지연되는 SW 프로젝트의 관리자가있음. 그는 원래 의도한 날짜에 프로젝트를 마치기 위해 더 많은 인력을 추가했음. 그 결과는 어떻게 되었을까?

소프트웨어공학의중요성

Page 36: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

36

와츠 험프리 (Watts S. Humphrey, 1928~2010) : CMM(Capability Maturity Model for SW) 제국의 황제. 소프트웨어및 시스템을 개발하는 회사의 품질 관리 기준과 개선 시스템을 '프로세스'의 관점에서확립.

미 국방부에 소프트웨어를 납품하려면 소프트웨어 개발 회사의 능력이 CMM(Capability Maturity Model)이 제시하는 특정 레벨 이상인지를 확인받아야 함.

소프트웨어프로세스의품질개선운동

Page 37: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

37

에리히 감마 (Erich Gamma, 1957~) : 디자인 패턴의 보급자. 여기서 패턴은 '자주 발생되는 문제들을 해결할 때 일정하게 반복되는 솔루션'을 의미.

디자인패턴의보급자

Page 38: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

38

기타

Page 39: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

39

1982년 미국의 이론물리학자 리처드파인먼에 의해 처음 제안

1985년 영국 옥스퍼드대학교의 데이비드 도이치에 의해 그 구체적 개념이 정립됨

1994년 벨연구소의 피터 쇼어(Peter Shor)에 의하여 최초의 양자알고리즘(커다란 수의 소인수분해 알고리즘)이 발견됨

1997년 IBM의 아이작 추앙이 2비트 양자컴퓨터를 처음 개발

IBM 알마덴 연구소와 로스알라모스 연구소는최근 7비트 양자컴퓨터까지 개발

우리나라에서도 2001년 KAIST의 연구팀이 3비트 양자컴퓨터 개발에 성공

양자컴퓨터

Page 40: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

40

원자 이하의 모든 실체는 우리가 보는 관점에 따라 때로는 파동처럼, 때로는 입자처럼행동하는 양면성을 갖고 있음.

컴퓨터의 소자가 매우 작아져서 원자 단위가 된다면 양자 크기의 소자들은 바로, 양자역학의 법칙에 따라 작동함. 양자컴퓨터는양자역학의 “중첩현상”과 “얽힘현상”을 활용한 컴퓨터.

중첩현상 (superposition) : 입자가 동시에 여러개의 상태에 있는 것

얽힘현상 (entanglement) : 두 입자가 거리와무관하게 결합되어 상태에 영향을 미치는 상호작용

양자컴퓨터

Page 41: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

41

양자정보의 기본 단위인 큐비트(qubit) 또는 양자비트는 중첩현상이 발생하기 때문에 0과 1, 2개의 상태를 동시에 가질 수 있음. 또한 얽힘현상 때문에 2개의 큐비트는 4개의 상태 00, 01, 10, 11을 동시에 공유할 수 있음.

즉 n개의 큐비트로 2n만큼의 연산이 가능하게 되므로, 입력 정보량의 병렬 처리에 의해 연산 속도는기존의 디지털 컴퓨터와 비교할 수 없을 만큼 빨라짐.

정수를 소인수 분해할 경우 가령 400 자릿수는가장 빠른 디지털 컴퓨터로 수십억년이 소요되지만, 쇼어의 양자 알고리즘으로는 1년여 정도밖에 걸리지 않음.

크기가 N인 수를 소인수 분해할 때 O((log N)3)의시간과 O(log N)의 저장공간이 필요함.

양자컴퓨터

Page 42: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

42

양자암호? 양자키분배!

Page 43: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

43

양자암호? 양자키분배!

Page 44: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

44

미국 USC의 Leonard Adleman 교수에 의해고안됨. 그는 1994년 Science Journal에 “여행하는 판매원”으로 알려진 수학문제를DNA가 어떻게 풀어낼 수 있는지 발표해 주목을 받음.

7개의 도시를 같은 길을 건너지 않고 가장 빠른시간 안에 통과하는 방식에 대한 해법을 내놓았는데 DNA컴퓨터는 기존 컴퓨터에 비해 엄청나게 짧은 시간 안에 이 문제를 해결할 수 있었음.

DNA 컴퓨터

Page 45: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

45

DNA 컴퓨터 : 기존 컴퓨터의 이진법을DNA를 구성하는 아데닌(A), 사이토신(C), 구아닌(G), 타이민(T) 등 네 가지 요소로 바꾼뒤, 문제를 지닌 DNA 가닥과 해답을 지닌DNA 가닥들을 만들어 나가는 방식

DNA 컴퓨터

Page 46: Basis and Practice in Programming Lecture Notes (1/19)

고려대학교정보보호대학원

마스터제목스타일편집

고려대학교정보보호대학원

Brief History of Computer