2010-1 학기현대암호학 제 9 장디지털서명 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr
9.1 주요내용 디지털서명 문서에하는인감날인이나사인에해당하는기능을컴퓨터의세계에서실현하기위한기술 디지털서명을사용하면 변경이나거짓행세를검출 부인을방지
9.2 디지털서명 서명을할경우에요구되는조건 문서가읽을수있는평문으로저장되어있어야한다 분쟁발생시증명에사용될해당문서의암호문도저장하고있어야한다 메시지전문을암호화하는방법을통해서명을할경우에는분명히이두조건을만족한다. 하지만위와똑같은효과를가지면서더효율적인방법이있다.
인증자 인증자 (authenticator) : 문서의기능을대신하는작은비트블록을암호화하는방법을사용 인증자가갖춰야할성질 인증자는변경하지않으면서문서만변경하는것이불가능해야한다함
인증자 이인증자가송신자의개인키를이용하여암호화되었다면메시지의출처, 내용, 그리고순서까지확인해주는서명이되는것이다. 예 SHA-1 같은안전한해시코드
9.2.1 앨리스의차용서 이메일로차용서 밥님께, 귀하로부터일금 100 만원을차용합니다. 앨리스 를보낸다고할경우 이메일로보낸차용서는간단히위조를할수있고법적인효력도갖지못한다. 앨리스가쓴메일을누군가가변경했을지도모르고, 처음부터앨리스인것처럼거짓행세를한누군가가보낸것인지도모르고, 나중에앨리스가 그런차용서난몰라 라고부인할수도있다.
9.2.2 메시지인증코드에서디지털 서명으로
메시지인증코드의한계 메시지인증코드를사용하면메시지의변경과거짓행세를검출할수있음 메시지의무결성을확인하여인증을행할수있음 차용서를만드는데메시지인증코드를사용할수는없다. 메시지인증코드는부인방지에는도움이되지않기때문
디지털서명을이용한해결 앨리스가사용하는키는앨리스만이알고있는개인적인것 앨리스는메시지송신시에그개인적인키를써서 서명 을작성 수신자밥은앨리스의키와는다른키를써서 서명 을검증 => 디지털서명 (digital signature)
9.2.3 서명작성과서명검증 메시지의서명을작성하는행위 메시지의송신자앨리스가수행 간단히 메시지에서명한다 라고도함 서명작성은 나는이메시지의내용을인정한다 라는표시로메시지를기초로디지털서명값을계산하는행위 메시지의서명을검증하는행위 서명의검증은 이메시지서명은분명히앨리스의것인지어떤지 를조사하는행위 서명의검증결과 : 성공 or 실패
전용키 앨리스는 서명용키 를사용해서메시지서명을작성 밥이나빅터는 검증용키 를사용해서메시지서명을검증. 디지털서명에서는 서명용키 와 검증용키 가나누어져있어서검증용키로서명을작성할수는없음 서명용키 : 서명을하는사람만이가지고있음 검증용키 : 서명을검증하는사람이라면누구라도가질수있음
디지털서명과공개키 디지털서명은공개키암호와밀접한관계가있음 디지털서명은공개키암호를 역으로사용 함으로써실현
공개키암호와디지털서명의키사 용방법
9.2.4 공개키암호와디지털서명 디지털서명에서도마찬가지로공개키와개인키의키쌍을사용 그러나두키의사용방법은공개키암호시스템을사용할때와는반대 메시지를개인키로암호화하는것이서명작성 그암호문을공개키로복호화하는것이서명검증
공개키에의한암호화 ( 공개키암호 )
개인키에의한암호화 ( 디지털서명 )
공개키암호는누구라도암호화할 수있다 ( 공개키암호 )
디지털서명은누구라도서명의검 증을할수있다 ( 디지털서명 )
9.3 디지털서명방법 메시지에직접서명하는방법 메시지의해시값에서명하는방법
9.3.1 메시지에직접서명하는방법
앨리스가메시지에서명하고, 밥이 서명을검증한다
9.3.2 메시지의해시값에서명하는 방법 메시지전체를암호화 ( 메시지에서명 ) 하는대신 일방향해시함수를사용해서메시지의해시값을구함 그해시값을암호화 ( 해시값에서명 ) 하도록함 메시지가아무리길어도해시값은짧기때문에암호화 ( 서명 ) 하는것이훨씬수월해짐
절차 (1) 앨리스는일방향해시함수로메시지의해시값을계산한다. (2) 앨리스는자신의개인키로해시값을암호화한다. (3) 앨리스는메시지와서명을밥에게송신한다. (4) 밥은수신한서명을앨리스의공개키로복호화한다. (5) 밥은수신한서명으로부터얻어진해시값과앨리스로부터직접수신한메시지의해시값을비교한다.
앨리스가메시지의해시값에서명하고밥이서명을검증한다
앨리스가메시지의해시값에서명하고밥이서명을검증한다 ( 시간적인흐름 )
9.4 디지털서명에대한의문
9.4.1 암호문의서명사용 의문 메시지를개인키로암호화하는것이서명의작성이되고, 공개키로복호화해서비교하는것이서명에대한검증이된다는흐름은이해했다. 그러나암호문이어떻게서명으로서의의미를갖는것일까?
답 개인키로암호화한다는것은, 행하고있는처리의내용을설명한것임 기밀성을실현하기위해암호화하고있는것은아님
9.4.2 기밀성의유지 의문 그림 9-5와그림 9-6을보면메시지가암호화되지않은채보내지고있다. 이래서는메시지의기밀성을유지할수없는것은아닐까?
9.4.2 기밀성의유지 답 맞다. 디지털서명은기밀성을지키기위한것은아니다. 만약기밀성이필요하다면메시지를그대로보내는것이아니고, 암호화를별도로행해서보내야된다.
9.4.3 복사된서명 의문 디지털서명이라고해도단지컴퓨터상의데이터에지나지않으므로, 간단하게복사본을만들수있을것같은느낌이든다. 만약같은내용의복사본을간단히만들수있다면서명이라고말할수없지않을까?
복사된서명 답 사실서명이라고해도단지컴퓨터상의데이터에지나지않는다. 메시지의마지막에이름이첨부되어있는경우도있고, 메시지와는분리되어서명이별도의파일로되어있는경우도있다. 어느경우라도통상의파일복사처럼같은내용에대한복사를몇개라도간단히만들수있다.
복사된서명 답 서명은그것이원본이냐사본이냐하는오리지널리티의진위가중요한것이아니고, 특정서명자와특정메시지가결부되어있다는사실이중요한것이다. 아무리많이복사를해도 그메시지에누가서명했는가 하는사실에는조금도변화가없다. 복사는할수있다. 그러나그것에의해서명이무의미해지는것은아니다.
9.4.4 서명변경 의문 디지털서명이라고해도단지데이터이므로메시지와서명양쪽을원하는만큼변경할수있을것이다. 그렇다면서명이라고는말할수없는것이아닐까?
9.4.4 서명변경 답 확실히서명한후에메시지와서명의내용을수정할수는있다. 그러나수정해버리면서명의검증에실패하기때문에, 검증하는사람은수정이되었다는것을검출할수있다. 디지털서명이실현하고자하는것은 변경하지못하도록막는방지가아니라 문서에변경행위가있었는지아닌지를검출하는것
의문 서명대상의메시지와서명양쪽을수정해서서명의검증에성공할수있도록앞뒤를잘맞출수있지는않을까?
답 아니다. 그것은사실상불가능하다. 해시값에서명하는경우를예로들겠다. 메시지를 1 비트라도수정하면새로계산한해시값은변화한다. 앞뒤를맞추고자하는사람은개인키를모르는상태에서그새로운해시값을암호화하지않으면안되는데, 그것은사실상불가능하다. 개인키를알지못하면개인키를사용한암호문을새롭게만들수는없기때문이다.
9.4.5 서명부분의재이용 의문 구체적인누군가의디지털서명을손에넣었다면그서명부분만잘라내서다른메시지에첨부할수있다고생각한다. 그렇다면서명이되는것이아닐까?
9.4.5 서명부분의재이용 답 확실히서명부분만을잘라내서다른메시지에첨부하는것은가능하다. 그러나서명의검증에는실패한다. 서명부분을잘라낸다는행위는 현실세계의종이로된계약서에서서명을베끼는행위와같은공격 그러나디지털서명의경우에는메시지와서명사이에는수학적인이론에기초한대응관계가있다. 메시지가다르면서명도다르기때문에서명만잘라내서재이용하는것은사실상불가능하다.
9.4.6 서명의파기 의문 종이로된차용서는찢어서버리면파기할수있다. 하지만디지털서명이붙은차용서는단지컴퓨터의파일이므로아무리삭제해도파기할수없다. 삭제해도어딘가에복사본이남아있을지모르기때문이다. 파기할수없는서명은불편하지않을까?
답 분명히디지털서명이붙은차용서는삭제해도파기할수없다. 디지털서명이붙은차용서를파기하는경우에는 영수증 에상당하는문서를새로만들고, 그것에대해상대에게디지털서명을부탁하게된다. 즉, 돈을갚는사람은채권자로부터차용금액을받았다는사실을기록한영수증을작성하도록하고채권자로하여금서명을하게하여그것을보관하는것이다. 이행위는차용서자체를없애는것이아니고차용서의본질적인내용을다른행위 ( 돈을지불했다는새로운사실 ) 로무효화시키는것이다.
9.4.7 부인방지 의문 메시지인증코드로는부인방지를할수없는데, 디지털서명으로는부인방지를할수있는것은왜인가?
답 부인방지는 키를가지고있는것은누구인가? 라는물음과깊은관계가있다. 메시지인증코드의경우 MAC 값을계산할수있는키 ( 공유키 ) 는송신자와수신자양쪽이가지고있었다. 그러므로송신자와수신자의어느쪽이라도 MAC 값을계산할수있었다. 그 MAC 값을계산한것은내가아니라수신자쪽이다 라고주장하는것이가능했다. 디지털서명의경우 서명을작성할수있는키 ( 개인키 ) 는송신자만가지고있다. 서명을작성할수있는것은송신자뿐 송신자는 그서명을작성한것은내가아니다 라고주장할수가없다.
9.4.8 종이서명의대응 의문 종이로된차용서에도장이찍혀져있지않으면왠지불안하다. 디지털서명은정말로현실세계의서명이나날인의대용으로서유효한것일까? 답 그의문은정당하다. 디지털서명기술은물리적으로계약서를이동시키지않아도계약할수있다는점과컴퓨터상의임의의데이터에서명할수있다는등의장점이있다. 그러나 실제로서명의대용이되는것인가? 라는불안은남는다. 그큰이유는계약을하거나뭔가를인증하거나하는행위는다분히인간적이고사회적인행위이기때문이다.
9.5 디지털서명활용예
9.5.1 보안공지 보안에관련된단체가보안위협에관한경고문을웹사이트에서공개 그경고문은정말로그단체가쓴것일까? 악의있는제삼자가웹페이지를변경한것이아니라는것은어떻게하면확인할수있을까? 이과같은때에디지털서명이사용
클리어서명 (clearsign) 메시지는암호화하지않고디지털서명만해서공포할필요도있음 메시지를암호화하지않고서명만할경우 클리어서명 (clearsign)
경고메시지에대한디지털서명활용
9.5.2 소프트웨어의다운로드 이와같은경우에소프트웨어의작성자가소프트웨어에디지털서명을작성 사용자가다운로드한후, 서명을검증하면 적극적공격자맬로리에의한내용변경을검출하는것이가능
서명이딸린애플릿 서명이딸린애플릿이라불리는소프트웨어 자바로작성된애플릿 (Web 브라우저가다운로드해서실행하는소프트웨어의일종 ) 에작성자가서명을한것 사용자가자신의컴퓨터로다운로드하면사용자컴퓨터의 Web 브라우저가그서명을검증
9.5.3 공개키인증서 디지털서명을검증하려면서명자의개인키와쌍을이루는바른공개키가필요 자신이입수한공개키가바른공개키인지어떤지를검증하기위해서공개키를메시지로간주하고그것에제 3 자가디지털서명을하는경우가있음. 제 3 자는메시지의송신자와수신자로부터동시에신뢰를받고있다는가정 공개키인증서 : 공개키에디지털서명을붙인것
9.5.4 SSL/TLS 서버와클라이언트의관계를생각해보자. 한클라이언트가서버에접속요청을한다고했을때클라이언트입장에서자신이접속하고자하는서버가진짜서버인지아니면위장된서버인지를확실히알고싶을것이다. 이경우에 SSL/TLS에서는서버가올바른것이라는것을인증하기위해서서버인증서를이용 서버인증서 : 신뢰받는제 3자가서버의공개키에제 3자의개인키로서명을한것 서버의입장을생각해보면 서버에접속을요청하는클라이언트가진정한클라이언트인지를검증하기위해서클라이언트에게인증서를요청
9.6 RSA 에의한디지털서명 RSA 에의한디지털서명알고리즘을사용해서실제로서명을해보자. 서명의작성과검증에대해서만설명하기로한다. 번잡함을피하기위해일방향해시함수는사용하지않고메시지에직접서명하기로한다.
9.6.1 RSA 에의한서명의작성 RSA에서는서명대상이되는메시지도키도작성된서명도모두수로표현 문장에서명하고싶을경우에는부호화를행해서문장을수로변환야함 RSA에의한서명작성은다음식으로표현할수있다 (D와 N은서명자의개인키 ). 서명 = 메시지 D mod N
9.6.2 RSA 에의한서명의검증 서명으로부터 얻어진메시지 = 서명 E mod N E 와 N 은서명자의공개키
RSA 서명의작성과서명의검증
9.6.3 자세한 RSA 서명 구체적인수를써서, RSA 를사용한서명의작성과서명의검증을해보자. 키쌍으로는 RSA 공개키암호에서사용했던다음의수들을이용한다. 공개키 : E = 5 N = 323 개인키 : D = 29 N = 323 여기서는 123 이라는메시지에서명을해보자.
서명의작성 메시지 D mod N = 123 29 mod 323 = 157 서명은 157 이된다. 당신은수신자에대해서 ( 메시지, 서명 ) = (123, 157) 이라는수의짝을송신한다.
서명의검증 수신자는 ( 메시지, 서명 ) = (123, 157) 을받았다. 공개키 (E, N) = (5, 323) 을사용해서서명으로부터얻어진메시지를계산한다. 서명 E mod N = 157 5 mod 323 = 123
9.7 다른디지털서명 ElGamal 방식, DSA, Rabin 방식 에대해서만간단히소개
9.7.1 ElGamal 방식 ElGamal 방식 Taher ElGamal 에의한공개키알고리즘 mod N 으로이산대수를구하는것이곤란하다는것을이용 이산대수문제가효과적으로풀린다면 ElGamal 방식도깨진다는것을의미 ElGamal 방법의안전성은 실제로소위말하는결정적 Diffie-Hellman(Decisional Diffie- Hellman: DDH) 가정에있음 이가정은이산대수문제보다도더강력함 ElGamal 방식은공개키암호와디지털서명에이용할수있고, 암호소프트웨어 GnuPG 에서도알고리즘의하나로사용하고있음
9.7.2 DSA DSA(Digital Signature Algorithm) 디지털서명알고리즘의일종 NIST(National Institute of Standards and Technology) 가 1991 년에제정한디지털서명규격 (DSS) 용으로만들어진것 DSA 는 Schnorr 의알고리즘과 ElGamal 방식의변종으로디지털서명에만이용할수있음
9.7.3 Rabin 방식 M. O. Rabin 에의한공개키알고리즘 mod N으로제곱근을구하는것이곤란하다는것을이용 공개키암호와디지털서명에이용할수있음
9.8 디지털서명에대한공격
9.8.1 중간자 (man-in-the-middle) 공격 공개키암호에대한중간자공격은디지털서명에도위협이되는공격임 디지털서명의중간자공격은적극적공격자맬로리가송신자와수신자의사이에들어가송신자에대해서는수신자처럼, 수신자에대해서는송신자처럼거짓행세를하는공격 이것은디지털서명의알고리즘자체를깨지않아도가능하다.
방어방법 앨리스와밥이각각일방향해시함수로해시값을계산해서그해시값을전화로서로확인하는것이좋은방법 공개키를취급하는소프트웨어는공개키의해시값을표시하는수단을준비해놓고있음 이해시값을핑거프린트 (fingerprint) 라부름
9.8.2 일방향해시함수에대한공격 디지털서명에서사용하는일방향해시함수는충돌내성을갖아야함 만약충돌내성을없으면디지털서명을한해시값과같은해시값을갖는, 다른메시지를만들수있게됨
9.8.3 디지털서명을사용한공개키 암호공격 서명을해주세요 라는의뢰는 복호화를해주세요 라는의뢰라고생각할수있음 이것을이용하면 디지털서명을사용해서암호문을해독한다 는교묘한공격이가능 이런공격에대한대책은의미를모르는메시지에는절대로디지털서명을하지않는것이다. 특히랜덤하게보이는메시지에는디지털서명을해서는안됨
9.8.4 기타공격 공개키암호에대한공격의대부분은디지털서명에대한공격으로서도사용할수있음 예 ) 개인키를전사공격으로찾거나 RSA 의 N 을소인수분해하려고시도하거나하는것등
9.9 기타기술과의비교
9.9.1 메시지인증코드와디지털서 명
대칭암호와공개키암호의비교및메시지인증코 드와디지털서명의비교
9.9.2 하이브리드암호시스템과해 시값에대한디지털서명 하이브리드암호시스템 메시지전체를대칭암호로암호화 대칭암호키만을공개키암호로암호화 대칭암호키를메시지로간주하고이것을공개키로암호화한것 디지털서명에서도똑같은기법을이용 메시지전체를일방향해시함수에입력해서해시값을구함 해시값에대해서명한 해시값을메시지로간주하고이것을개인키로암호화 정리하면, 대칭암호의키는기밀성의엣센스이고, 일방향해시함수의해시값은무결성의엣센스라고할수음
9.10 디지털서명으로해결할수없 는문제 디지털서명으로메시지내용변경이나거짓행세를검출하여부인을방지한다. 변경되않은공개키를 거짓행세 하고있지않은송신자로부터받을필요가있다.
기술적인방법만으로는해결되지않 는문제
바른공개키를입수하기위해고안된것이인증서임 인증서 공개키를메시지로간주하고, 신뢰할수있는다른사람이자신의개인키로디지털서명을한공개키 인증서에포함된공개키를제 3 자의개인키로암호화한디지털서명을검증하기위해서는 제 3 자의바른공개키가필요해지기때문
어떻게하면신뢰할수있는디지털서명연쇄를구축할수있을까? 원래누가신뢰할수있는인증서를발행하는것일까? 공개키암호및디지털서명의기술을사회적인기반 ( 기반구조 ) 으로만들어가는것 공개키기반 (Public Key Infrastructure): PKI
질의및응답 - 끝 -