13.07.2015 Views

교재

교재

교재

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

제 6 장 다자간 키 확립 프로토콜6.1 개요VOD(Video-On-Demand) 서비스, 화상회의처럼 그룹에 속한 멤버들에게만 비밀스럽게 데이터를 전송해야 하는 경우가 있다. 이 때 각 사용자마다 다른 비밀키를 사용하여 암호화하여 전달하는 것은 네트워크 대여폭 측면이나 연산량 측면에서 비효율적이다. 비밀성이 요구되지 않을 경우에는 IP 멀티캐스트(multicast) 기법을 사용하면 하나의 메시지를 이용하여다자에게 네트워크 대여폭을 가장 효율적으로 활용하여 전달할 수 있다. 비밀성이 요구되었을 때 IP 멀티캐스트를 활용하기 위해서는 그룹에 속한 모든 멤버들이 같은 비밀키를 공유해야 한다. 이를 위해 사용되는 암호프로토콜을 다자간 키 확립 프로토콜이라 하며, 이와같은 프로토콜을 다른 말로 그룹키(group key) 확립 프로토콜이라 한다. 그룹키 키 확립 프로토콜의 요구사항은 기존 키 확립 프로토콜의 요구사항을 모두 충족해야 하며, 추가적으로다자가 참여하기 때문에 발생되는 요구사항을 충족해야 한다. 다만, 모든 그룹 멤버가 동일한 키를 가지고 있는지 확인하는 것은 현실성이 없으므로 보통 키 확인 과정이 없다. 그룹키 확립 프로토콜에서 추가적으로 충족해야 할 요구사항을 결정할 때 다음과 같은 요소들이큰 영향을 준다.llll응용의 종류그룹의 크기와 동적성확장성신뢰모델소규모의 그룹인 경우에는 전체적인 연산량이 큰 문제가 되지 않을 수 있지만 대규모의그룹인 경우에는 효율성이 매우 중요한 요소가 되며, 이 효율성은 확장성과도 매우 밀접한관련이 있다. 그룹키 확립 프로토콜에서 기존과 가장 큰 차이가 있는 부분은 그룹의 동적성이다. 그룹의 동적성이란 그룹의 멤버들이 변경될 수 있다는 것을 말한다. 그런데 멤버가변경되면 안전성을 위해 보통 그룹키도 바꾸어야 한다. 이 때 모든 사용자가 프로토콜에 참여해야 하면 확장성 때문에 현실적으로 사용하기가 힘들다. 또한 멤버가 빈번하게 변경되면그룹키 갱신이 매우 효율적이어야 한다.그룹의 멤버들이 변경될 수 있는 환경에서 그룹키 확립 프로토콜은 다음과 같은 추가 요구사항을 충족해야 한다.ll전방향 안전성(forward secrecy): 그룹을 탈퇴한 멤버를 포함하여 이전 그룹키를 알고 있는 공격자는 새 그룹키를 알 수 없어야 한다.후방향 안전성(backward secrecy): 그룹을 새롭게 가입한 멤버를 포함하여 현재 그룹키를 알고 있는 공격자는 이전 그룹키를 알 수 없어야 한다.키 동의 프로토콜에서 정의한 전방향 안전성과 그룹키 확립 프로토콜에서 사용하는 전방향안전성 개념이 서로 다르다. 키 동의 프로토콜에서 전방향 안전성은 과거와 관련된 요소이


지만 그룹키 프로토콜에서는 미래와 관련된 요소이다. 위에 언급된 두 가지 안전성 외에 키독립성(key independence)을 요구사항으로 제시하는 경우도 있다. 키 독립성이란 몇 개의그룹키를 알고 있는 공격자가 이 키를 제외한 다른 그룹키들을 알 수 없어야 한다는 것을말한다. 따라서 키 독립성은 전방향과 후방향 안전성에 포함된 개념이다. 전방향 안전성과후방향 안전성을 보장하기 위해서는 그룹 멤버가 변할 때 그룹키를 다시 확립해야 한다. 그룹 멤버의 변경으로 인하여 그룹키를 갱신할 때 사용하는 프로토콜을 가입(join)과 탈퇴(leave) 프로토콜이라 한다.다자간 키 확립 프로토콜은 중앙 서버의 필요성에 따라 크게 중앙집중형(centralized), 비중앙집중형(decentralized), 분산형(distributed)으로 구분한다. 중앙집중형은 그룹 전체를 관리하는 단일 서버를 사용하는 방식이며, 비중앙집중형은 전체 그룹을 여러 개의 작은 소그룹으로 나누어 관리하는 방식이다. 따라서 비중앙집중형은 여러 개의 서버가 필요하다. 분산형은 서버를 전혀 사용하지 않는 방식이다. 키 관리 측면에서는 가능하지만 그룹 멤버의 가입과 탈퇴를 관리하기 위한 서버는 필요할 수 있다. 여기서 키 관리 측면이란 그룹키 확립프로토콜을 수행할 때 서버가 온라인 형태로 참여하는 것을 말한다.6.2 중앙집중형 그룹키 확립 프로토콜 기본적인 중앙집중 그룹키 확립 프로토콜그룹키 확립하는 가장 쉬운 방식은 그림 6.1처럼 중앙 서버가 각 멤버들과 비밀키를 공유하고 각 멤버들에게 그룹키를 각 멤버와 공유된 비밀키로 암호화하여 전달하는 것이다. 이방식에서 최초의 그룹키 확립은 최초 그룹에 가입된 사용자들에게 앞서 언급한 것과 같이그룹키를 전달하면 된다. 이 방식에서 가입과 탈퇴는 초기 확립 프로토콜과 동일하다. 즉,가입의 경우에는 새 멤버를 포함하여 기존 멤버들 모두에게 새로운 키를 각자의 암호키로암호화하여 전달하면 되고, 멤버가 탈퇴한 경우에는 탈퇴한 멤버를 제외하고 나머지 멤버들에게 새로운 키를 각자의 암호키로 암호화하여 전달하면 된다. 따라서 이 그룹 멤버의 크기일 때 설정, 가입, 탈퇴 프로토콜은 모두 의 유니캐스트 통신비용이 소요되며, 서버의 계산비용도 이다. 여기서 서버의 계산비용은 대칭키 암호연산이다. 이 방식은 각 프로토콜이 가입된 그룹 멤버의 수에 비례하므로 확장성이 떨어진다. 이 방식에서도 가입의경우에는 서버가 새 그룹키를 생성하여 이 키를 기존 그룹키로 암호화하여 기존 사용자들에게 하나의 멀티캐스트 메시지로 전송하고, 새 가입자에게는 그 사용자의 장기간 키로 새 그룹키를 암호화하여 유니캐스트로 전달할 수 있다. 즉, 가입은 매우 효율적으로 쉽게 개선할


수 있다. 하지만 탈퇴의 경우에는 사용자 수에 비례한 유니캐스트 메시지가 불가피하다.Wong 등은 이와 같은 기본 방식의 확장성을 개선하기 위해 논리적 키 계층구조(LKH,Logical Key Hierarchy) 방식을 제안하였다. LKH 방식에서 중앙 서버는 그림 6.2와 같은 논리적인 트리를 유지한다. 이 트리는 다음과 같은 특성을 가지고 있다.lll각 노드마다 하나의 키가 유지된다.트리의 루트 노드에 있는 키가 그룹키가 된다.각 사용자마다 하나의 단말 노드와 연관되며, 사용자는 그 노드와 그 노드의 조상 노드에 있는 모든 키를 받아야 한다. 예를 들어 사용자 은 , , , 을 유지해야한다.따라서 초기 설정 프로토콜은 초기 가입된 사용자들을 이용하여 논리적 키 계층구조를 형성하고 서버는 각 사용자에게 각 사용자가 유지해야 하는 키를 각 사용자와 공유된 비밀키로전달하여 준다. 논리적 키 계층구조LKH 방식에서 가입 프로토콜은 그림 6.3과 같이 사용자를 트리에 추가하고, 추가에 따라변경되는 키들을 다른 사용자에게 전달한다. 사용자가 추가될 때 고려해야 하는 것은 후방향 안전성이다. 즉, 이 가입자는 기존에 사용된 키들을 알 수 없어야 한다. 따라서 이 사용자에게 전달해야 하는 키들을 모두 바꾸어야 한다. 그림 6.3에서 가 가입되면 현재 트리가 포화 이진 트리(full binary tree)이므로 아무 곳에 추가하여도 된다. 그림 6.3에서는 의노드를 한 단계 아래로 내리고 그 노드와 형제 노드가 되도록 추가하고 있다. 따라서 기존키 중에 와 기존 그룹키이었던 를 변경해야 한다. 노드의 키가 변경되면 기존 사용자들에게도 그 변경된 값을 전달해야 한다. 전달하는 방식은 크게 두 가지 방법을 생각할수 있다. 하나는 모든 암호문을 하나로 묶어 전체 그룹에게 멀티캐스트하여 각 사용자들이필요한 암호문들을 선택하여 복호화하도록 할 수 있다. 다른 하나는 와 같은 암호문은 과 만 필요하므로 이 사용자들에게만 멀티캐스트를 한다. 이 경우 트리 높이의 2배만큼의 메시지가 필요하다. 따라서 후자로 생각하면 통신비용과 서버의 계산비용이 모두


log 이 된다. 따라서 기본 중앙집중 방식보다 확장성이 많이 향상되었다. LKH 방식에서 가입 프로토콜 LKH 방식에서 탈퇴 프로토콜LKH 방식에서 탈퇴 프로토콜은 그림 6.4와 같다. 탈퇴 프로토콜에서 보장해야 하는 것은전방향 안전성이다. 즉, 탈퇴한 사용자는 더 이상 새로운 그룹키를 얻을 수 없어야 한다. 이를 위해 탈퇴할 사용자가 기존에 알고 있던 키들을 모두 바꾸어야 한다. 그림 6.4에서 우측트리 형태에서 사용자가 탈퇴하면 그 형제 노드를 한 단계 위로 올리고 그것의 모든 조상 노드의 키를 바꾸어야 한다. 즉, 와 을 바꾸어야 한다. 따라서 서버는 이들 키를변경하고 변경된 키를 기존 사용자들에게 전달한다. 이 때 소요되는 비용은 가입 프로토콜


과 동일하다. LKH에서 비용을 최소화하기 위해서는 트리의 높이를 항상 최소화하여야 한다.이를 위해 가입은 트리의 높이를 향상시키지 않는 가장 낮은 레벨(루트의 레벨이 0이다)에가입되는 방식을 사용하고 있다. 6.4.2절에는 이 보다 더 효율적인 방법으로 논리적 트리에서 가입 위치를 결정하는 방법이 설명되어 있다. 논리 키 계층구조를 사용하는 또 다른 장점은 중간 노드의 키를 부분 그룹키로 사용할 수 있다는 것이다. 그림 6.1에 기술된 방식에서는 오직 하나의 그룹키만 존재하기 때문에 이것이 가능하지 않다.McGrew와 Sherman은 LKH 방식보다 비용을 반으로 감소시킨 일방향 함수 트리(OFT,One-way Function Tree) 방식을 제안하였다. 이 방식에서 트리는 그림 6.5와 같이 구성된다. LKH와 마찬가지로 각 노드마다 하나의 키가 유지되지만 중간 노드의 키 값은 그것의자식 노드들의 키 값을 이용하여 계산된다. 즉, 중간 노드의 키는 다음과 같이 계산된다. 여기서 와 는 각각 의 왼쪽 자식과 오른쪽 자식의 키를 나타내며, 와 는 충돌회피 해쉬함수이다. 이와 같은 방식으로 노드의 키가 계산되므로 LKH 방식과 달리 노드는 자신의 노드 값과 자신의 형제 집합에 대한 은닉키(blind key)를 유지한다. 의 은닉키란 를 의미하며, 형제 집합이란 자신의 노드의 모든 조상 노드의 형제 노드들의 집합을 말한다. 예를 들어 그림 6.5에서 사용자 의 형제 집합이란 , , 키를 유지하는 노드들을 말한다. 그림 6.5에 제시되어 있듯이 키 경로, 보조 경로, 조상 집합, 형제 집합이라는 개념이 사용된다. 자신의 키와 형제 집합에 포함된 모든 노드의 은닉키를 알고 있으면 루트 노드의 키를 계산할 수 있으며, LKH 방식과 마찬가지로 트리의 루트 노드의 키 값이 그룹키가 된다. 일방향 함수 트리OFT 방식에서 초기 설정은 LKH와 마찬가지로 초기 가입자들을 이용하여 트리를 구성한다음에 각 사용자들이 알고 있어야 되는 정보를 각 사용자와 공유하고 있는 비밀키로 암호화하여 전달하여 준다.OFT 방식에서 가입 프로토콜은 그림 6.6과 같다. LKH와 마찬가지로 사용자가 가입되면


가입된 위치에 있는 노드의 사용자를 한 단계 아래로 내리고 새 사용자를 그것의 형제 노드가 되도록 한다. 이 때 새 사용자의 형제 노드도 자신의 키를 갱신해야 한다. 새 사용자의형제 노드가 키를 갱신하지 않으면 새 노드는 기존 키를 계산할 수 있게 되어 후방향 안전성을 만족시킬 수 없다. 이와 같이 사용자가 가입하게 되면 그 노드의 조상 노드들의 키 값들은 노드 키 계산 방식에 의해 자동적으로 갱신되어야 한다. 따라서 서버는 각 노드의 새키 값을 계산한 다음에 이들의 은닉키를 사용자들에게 전달한다. 어떤 노드의 키 값이 변경되었을 때 이 노드의 키 값을 계산하기 위해서는 그것의 자식 노드들의 키 값을 알아야 한다. 기존 가입자들을 이미 한 쪽 자식 노드들의 값들을 알고 있으므로 LKH 방식과 달리 필요한 암호문의 메시지 수가 하나 감소한다. 따라서 LKH에 비해 그 비용이 전체적으로 반으로 감소한다. 그림 6.5에서는 (트리 높이-2) 만큼의 멀티캐스트 메시지와 2개의 유니캐스트메시지가 필요하다. 탈퇴 프로토콜도 LKH 방식과 유사하다. OFT 방식에서 가입 프로토콜한 사용자가 탈퇴하면 그 사용자의 노드의 부모 노드를 그 노드의 형제 노드로 교체하고,그 노드의 키 값을 변경한다. 이 경우에도 키를 바꾸지 않으면 전방향 안전성을 보장할 수없다. 노드의 키 값이 변경되면 그 노드의 조상 노드들의 키 값들도 자동으로 갱신되어야하며, 서버는 갱신된 키 값의 은닉키값을 기존 사용자들에게 전달한다. 예를 들어 그림 6.7처럼 좌측 트리에서 가 탈퇴하면 를 부모 노드로 올리고 키 갱신하게 되며, 그 결과루트 키도 바뀌게 된다.


OFT 방식에서 탈퇴 프로토콜Perrig 등은 ELK(Efficient Large-Group Key)라는 프로토콜을 제안하였다. 이 프로토콜에서가입은 LKH와 유사하며, 탈퇴는 OFT와 유사하다. 이 프로토콜은 키가 필요한PRF(Pseudo-Random Function)을 사용한다. 이 함수는 우리가 지금까지 사용한 MAC과 동일하다. ELK에서는 이 함수를 사용하여 키를 주기적으로 갱신하여 가입할 때 통신비용 없이 가입을 처리해 줄 수 있다. LKH와 OFT와 마찬가지로 각 노드마다 키를 유지하며, 이 키를 직접 사용하지 않고 각 용도마다 MAC을 통해 네 개의 키를 만들어 사용한다. 이 중 가입과 탈퇴 프로토콜과 연관된 키들은 다음과 같다.lll : 탈퇴 과정에서 키 갱신을 위해 사용된다. : 탙퇴 과정에서 키 전달을 위해 사용된다. : 주기적인 키 생신에 사용된다.각 사용자는 LKH와 마찬가지로 조상 집합 노드에 해당하는 키들을 유지하며, 사용자들은주기적으로 자신이 가지고 있는 키들을 다음과 같이 갱신한다.ll ′ : 일반 노드 키의 갱신 (여기서 은 그룹키인 루트 노드 키이다.) ′ : 그룹키인 루트 노드 키의 갱신기존처럼 가입과 탈퇴가 발생할 때마다 처리하지 않고 이처럼 정해진 시간 간격마다 처리하면 가입과 탈퇴의 효율성을 높일 수 있다. 특히, 가입 위치 등을 조절할 수 있기 때문에 그렇다. 하지만 즉시 결과를 처리하지 않으므로 보안적으로 문제가 될 수 있다.


ELK의 가입 프로토콜ELK에서 가입 프로토콜은 그림 6.8과 같다. 새 사용자가 가입하면 서버는 그 가입자의삽입 위치를 결정한다. 그 결과 기존 멤버의 형제 노드가 된다. 새 가입자의 형제 노드가되는 사용자는 한 단계 아래로 내려오게 되고 새 부모 노드가 추가된다. 그림 6.8에서 는기존 가입자 의 형제 노드가 되며, 원래 노드 위치에 새 노드가 추가된다. 새 가입자가 가입되면 후방향 안전성을 보장하기 위해 기존 키를 모두 갱신하여야 한다. 특히 새 가입자에게 전달되는 그 가입자의 조상 집합에 속하는 노드들의 키는 반드시 갱신되어야 한다. 기존 가입자들은 새 가입자의 가입 사실을 통보받으면 키 갱신 방법에 따라 기존 키들을 갱신한다. 다만 가입자의 형제 노드가 되는 가입자는 자신의 새 부모 노드의 키 값을 그림 6.8에 제시된 것처럼 자신의 기존 키로부터 를 계산하고, 이 키로 자신의 키와 부모노드의 키를 계산한다. 새롭게 갱신된 키들은 MAC 함수의 일방향성 때문에 새 가입자는 새키들을 받아도 이들로부터 기존 키를 계산할 수 없다. 이 프로토콜의 효율성은 다음과 같다. 기존 가입자들은 스스로 모든 키들을 갱신할 수 있다. 따라서 하나의 멀티캐스트 메시지로 새 가입자의 가입 사실만 통보하면 된다. 새 가입자에게는 새 키들을 가입자의 키로암호화하여 전달하면 되므로 추가적으로 하나의 유니캐스트 메시지가 필요하다. 즉, OFT는트리의 높이만큼의 메시지를 전달해야 했지만 이 방식에서는 항상 하나의 멀티캐스트와 하나의 유니캐스트 메시지만 필요하다.


ELK의 탈퇴 프로토콜가입은 주기적인 갱신을 통해 기존 방식들보다 비용을 절감할 수 있었지만 탈퇴의 경우에는 탈퇴하는 사용자도 동일한 방식으로 갱신할 수 있으므로 가입과 유사한 방식으로 처리할수 없다. 따라서 ELK에서 탈퇴는 OFT 방식을 응용하고 있다. 그림 6.9에서 가 탈퇴하면그것의 형제 노드가 한 단계로 위로 올라간다. 이 때 탈퇴한 사용자가 알고 있던 키 값들은모두 변경되어야 전방향 안전성을 보장할 수 있다. 이를 위해 변경이 되어야 하는 키 값들은 오른쪽과 왼쪽 자식을 이용하여 갱신한다. 기존 사용자들은 한 쪽 방향의 키 값들만 알고 있으므로 다른 쪽 방향의 갱신된 키 값들을 받아야 한다. 예를 들어 그림 6.9에서 를갱신하기 위해 우선 그것의 자식 노드의 키 값인 과 을 이용하여 와 를 계산하고 이 키와 기존 를 이용하여 와 를 계산한다. 이 두 값을 결합한 키와 기존 그룹키를 이용하여 를 갱신한다. 입장에서는 를 모르기 때문에 스스로 를 갱신할 수없다. 따라서 중앙 서버는 값을 로 암호화하여 전달하여 준다. 따라서 (트리 높이×2)만큼의 암호문이 필요하다.6.3 비중앙집중형 그룹키 확립 프로토콜비중앙집중형 방식에서는 전체 그룹 멤버가 여러 개의 부분 그룹으로 나누어지며, 각 부분그룹마다 그 소그룹을 담당하는 서버를 두는 방식이다. 이 방식에서는 다음과 같은 추가적인 요구사항이 있다.lll지역키 독립성: 부분그룹의 멤버 변화는 전체에 영향을 주지 않아야 한다.그룹 간 독립성: 한 멤버는 여러 부분 그룹에 동시에 가입할 수 없어야 한다.키와 데이터 간에 관계: 키 관리 경로와 데이터 전달 경로가 독립적이어야 한다. 즉, 부분 그룹의 멤버 변화가 데이터 전달을 방해하거나 지연시키지 않아야 한다.


Mittra는 Iolus라는 비중앙집중형 방식의 그룹키 확립 프로토콜을 제안하였다. 이 방식에서는 GSC(Group Security Controller)와 GSA(Group Security Agent) 두 종류의 서버를 사용한다. GSC는 전체 그룹을 관리하는 서버이고, GSA는 각 부분그룹을 관리하는 서버이다.GSA들은 GSC를 통해 그룹키를 형성하고, 각 사용자들은 자신이 속한 부분 그룹의 GSA를통해 부분 그룹키를 형성한다. 한 사용자가 전체 그룹 멤버들에게 메시지를 전송하는 과정은 다음과 같다.lll단계 1. 부분 그룹키로 멀티캐스트한다.단계 2. 사용자가 속한 그룹의 GSA는 다른 GSA에게 멀티캐스트한다.단계 3. 수신한 GSA는 각자의 부분 그룹키를 이용하여 그룹 멤버들에게 전송한다.이 방식에서 가입 프로토콜은 다음과 같다.lll단계 1. 각 사용자는 가입하고 싶은 부분그룹 관리자 GSA에게 가입을 요청한다.단계 2. 가입이 승인된 사용자는 GSA와 비밀키를 공유한다.단계 3. 기존 부분그룹 멤버에게는 기존 부분 그룹키로 새 그룹키를 암호화하여 멀티캐스트하고, 새 멤버에게는 그 멤버와 공유한 비밀키로 암호화하여 유니캐스트한다.따라서 가입 비용은 하나의 멀티캐스트 메시지와 하나의 유니캐스트 메시지가 필요하다. 새가입자는 기존 부분 그룹키를 모르기 때문에 후방향 안전성이 보장된다. 이 방식에서 탈퇴프로토콜은 다음과 같다.l단계 1. 각 사용자와 GSA 간에 공유된 비밀키로 새 부분 그룹키를 암호화하여 전달한다.따라서 탈퇴 비용은 소그룹 멤버 크기만큼의 유니캐스트 메시지가 필요하다.Dondeti 등은 이중암호화(dual-encryption)라는 방식의 비중앙집중형 방식의 그룹키 확립프로토콜을 제안하였다. 이 방식은 Iolus와 마찬가지로 각 부분 그룹마다 그 그룹을 관리하는 SGM(SubGroup Manager)이 있으며, 전체 그룹을 관리하는 GC(Group Controller)가 있다. SGM은 자신이 관리하는 부분 그룹 에 속한 사용자들과 공유하는 부분 그룹키 이있다. GC는 각 부분그룹에 속한 사용자들과 공유하고 있는 부분 그룹키 가 있다. 이 부분 그룹의 SGM은 이 키를 모른다. 각 SGM은 GC와 비밀키 를 공유하고 있다.이 방식의 설정 프로토콜은 다음과 같다.ll단계 1. GC는 각 SGM에게 를 전달한다.단계 2. 각 SGM은 자신에 그룹에 속한 멤버들에게 를 전달한다.각 SGM은 단계 1에서 받은 암호문의 바깥 쪽 암호는 복호화할 수 있지만 를 모르기 때문에 그룹키인 를 복호화할 수 없다. 이 방식에서 한 사용자가 가입을 하고자 하면 특정


소그룹에 가입하게 되며, 그 그룹의 SGM은 새 사용자에게 새 부분 그룹키 ′을 그 사용자의 공개키로 암호화하여 전달하고, 기존 사용자들에게는 기존 키로 암호화하여 전달한다.한 사용자가 탈퇴하면 기존 사용자들에게 새 부분 그룹키를 각자의 공개키로 암호화하여 전달한다. 따라서 탈퇴 비용이 소 그룹 크기에 비례한다. 이와 같은 과정으로 끝나는 것이 아니라 설정 프로토콜을 다시 수행하여 기존 그룹키를 변경해야 한다.6.4 분산형 그룹키 확립 프로토콜6.4.1 Diffie-Hellman 프로토콜을 다자간으로 확장 Ingemarsson 등의 분산형 그룹키 확립 프로토콜Ingemarsson 등은 그림 6.10과 같은 기본 Diffie-Hellman 키 동의 프로토콜을 다자간으로확장한 그룹키 확립 프로토콜을 제안하였다. 각 사용자는 먼저 일회성 Diffie-Hellman 키를교환한 후에, 2자간 Diffie-Hellman 키를 다시 교환하고, 이것을 참여자가 명일 때 번반복하여 그룹키를 확립하게 된다. 물론 기본 Diffie-Hellman 키 동의 프로토콜과 마찬가지로 중간자 공격이 가능하므로 각 값들이 인증될 수 있도록 해야 한다. 이 부분은 그림에 생략되어 있다. 전체적인 비용은 라운드가 필요하고, 각 사용자는 번의 지수승 계산이필요하다. 여기서 한 가지 주목해야 할 사항은 순차적으로 메시지를 교환할 필요가 없다는것이다. Steiner 등의 분산형 그룹키 확립 프로토콜 버전 1Steiner 등은 Ingemarsson 등의 기법보다 각 사용자의 평균 계산 비용이 감소된 그림6.11과 같은 키 동의 프로토콜을 제안하였다. 첫 번째 사용자는 2번, 두 번째 사용자는 3번,마지막 사용자는 번의 지수 연산이 필요하다. 전체적으로 평균 의 지수 연산이 필요하다. 하지만 통신 비용은 Ingemarsson 등의 기법보다 오히려 증가하였다. 이 기법에서 각 메시지는 반드시 순차적으로 전송해야 한다. 따라서 라운드의 메시지가 필요하다.


Steiner 등의 분산형 그룹키 확립 프로토콜 버전 2Steiner 등은 그림 6.11의 통신 문제를 어느 정도 해결한 그림 6.12와 같은 프로토콜을제안하였다. 지수 연산 비용은 그림 6.11의 프로토콜과 유사하지만 통신 라운드는 총 번필요하다. Steiner 등의 분산형 그룹키 확립 프로토콜 버전 3Steiner 등은 버전 2보다 라운드 수가 증가했지만 각 사용자의 평균 연산 비용이 감소한그림 6.13과 같은 또 다른 프로토콜을 제안하였다. 이 프로토콜은 다음과 같은 총 4단계로구성된다.llll단계 1. 번째 사용자까지 앞 사용자에게 받은 값을 자신의 랜덤 값으로 지수승하여다음 사용자에게 전달한다. 그림 6.13에서는 첫 번째 사용자가 를 두 번째 사용자에게전달하면 두 번째 사용자는 를 세 번째 사용자에게 전달한다.단계 2. 번째 사용자는 받은 값을 자신의 랜덤 값으로 지수승하여 이 값을 모든 사용자에게 방송한다. 그림 6.13에서는 세 번째 사용자가 를 모든 사용자에게 방송한다. 실제 마지막 사용자는 이 값이 필요가 없다.단계 3. 마지막 사용자를 제외하고 각 사용자는 최종 값에서 자신의 랜덤 값의 역원으로지수승하여 이 값을 최종 사용자에게 전달한다. 그림 6.13에서 첫 번째 사용자는 를,두 번째 사용자는 값을, 세 번째 사용자는 값을 마지막 사용자에게 전달한다.단계 4. 마지막 사용자는 받은 모든 값에 자신의 랜덤 값으로 지수승하여 모든 사용자들에게 방송한다. 각 사용자는 이 값을 받아 이 중에 자신이 필요한 값을 선택하여 자신의랜덤값으로 지수승하여 최종 그룹키를 계산한다.마지막 사용자를 제외하고는 모두 3번의 지수 연산을 사용하며, 마지막 사용자는 번 지수연산을 하여야 한다. 대략 각 사용자마다 평균 4번의 지수 연산이 필요하다. 따라서 Steiner


등의 기법 중에서 지수 연산 측면에서는 가장 저렴하다. 하지만 통신 비용은 번의 유니캐스트 비용과 2번의 멀티캐스트 비용이 필요하다. 따라서 통신 비용은 버전 1과 유사하다. Burmester와 Desmedt의 분산형 그룹키 확립 프로토콜Burmester와 Desmedt는 그림 6.14와 같은 프로토콜을 제안하였다. 이 프로토콜은 참여자들을 링 구조로 구성하여 수행하며, 크게 다음과 같은 두 단계로 이루어진다.ll단계 1. 각 사용자는 자신의 왼쪽과 오른쪽 사용자에게 기본 Diffie-Hellman의 일회성 공개키를 전달한다.단계 2. 각 사용자는 자신의 오른쪽에서 받은 값을 왼쪽에서 받은 값으로 나눈 다음에그 값을 자신의 일회성 개인키로 지수승한 값을 다른 모든 사용자에게 전달한다. 각 사용자는 이 라운드에서 받은 값들을 이용하여 그룹키를 계산한다. Becker와 Willie의 분산형 그룹키 확립 프로토콜


Becker와 Wille는 그림 6.15와 같은 프로토콜을 제안하였다. 이 프로토콜은 참여자들을 하이버큐브(hypercube) 형태로 구성하여 수행하며, 그룹의 총 인원이 이면 각 사용자마다 번의 기존 Diffie-Hellman 프로토콜을 수행해야 한다.6.4.2 논리 키 트리를 사용하는 분산형 그룹키 확립 프로토콜 Perrig의 분산형 그룹키 확립 프로토콜Perrig은 그림 6.16과 같은 분산형 LKH를 제안하였다. 이 프로토콜은 각 멤버가 유지하는정보 측면에서는 오히려 OFT와 유사하다. Perrig이 제안한 프로토콜의 논리 키 트리는 다음과 같이 유지된다.llll각 멤버는 단말 노드와 연관되어 있으며, 각 단말노드에는 Diffie-Hellman의 일회성 개인키가 연관되어 있다.중간 노드는 그것의 오른쪽과 왼쪽 자식 노드의 값을 Diffie-Hellman의 일회성 개인키로사용하여 Diffie-Hellman 키 동의 방식으로 그 노드의 키 값이 계산된다.루트 노드의 키 값이 그룹키가 된다.각 사용자는 자신의 노드 값과 형제 노드 집합의 은닉키를 유지한다. 여기서 은닉키란그 노드의 값을 Diffie-Hellman의 일회성 개인키로 하였을 때 대응되는 공개키를 말한다.예를 들어 그림 9,16에서 가 노드의 키 값이면 그것의 은닉키는 가 된다.Perrig이 제안한 방식에서 초기 설정 프로토콜은 다음과 같다.l단계 1. 각 사용자들은 자신의 형제 노드와 Diffie-Hellman 키 동의 프로토콜을 수행한다.이와 같은 방식으로 단말 노드의 바로 아래 레벨의 노드 키가 계산된다.


l단계 2. 중간 노드들의 키 값은 그 노드의 왼쪽 부분 트리 중 가장 오른쪽에 위치한 사용자와 오른쪽 부분 트리 중 가장 오른쪽에 위치한 사용자 간에 Diffie-Hellman 키 동의프로토콜을 수행하여 계산된다. 또한 이 때 참여한 사용자는 반대쪽 은닉키를 같은 부분트리에 속한 사용자들에게 전달한다. Kim 등의 분산형 방식의 가입 프로토콜Kim 등은 Perrig의 프로토콜을 확장한 새로운 프로토콜을 제안하였다. 이 프로토콜에서논리 키 트리의 형태는 Perrig의 프로토콜과 동일하다. Kim 등의 방식에서 새 사용자가 가입되었을 때 그 사용자의 가입 위치는 다음과 같이 결정된다.ll현재 트리가 포화 이진 트리이면 루트 노드를 기준으로 가입이 이루어진다. 이것은 새로계산해야 하는 계산량을 최소화하기 위한 것이다.현재 트리가 포화 이진 트리가 아니면 레벨이 가장 낮은 오른쪽에 있는 단말 노드의 형제 노드로 추가된다.Kim 등이 제안한 방식에서는 후원자(sponsor) 개념을 사용한다. 중앙 서버가 없는 방식이므로 그룹의 멤버 중에 한 사용자가 다른 사용자들을 대신하여 다른 사용자들과Diffie-Hellman 키 동의 프로토콜을 수행하고, 은닉키를 다른 사용자들에게 전달하여 준다.후원자는 해당 부분 트리의 가장 오른쪽 단말 노드에 해당하는 사용자가 된다. Kim 등이 제안한 방식의 가입 프로토콜은 그림 6.17과 같다. 그림 6.17에서 새 사용자가 가입하기 전트리가 포화 이진 트리이므로 루트 노드를 기준으로 가입이 이루어진다. 새 노드가 추가되면 후방향 안전성을 보장하기 위해 그것의 조상 노드들은 모두 갱신되어야 한다. 그림 6.17의 경우에는 기존 사용자들 중에 가 후원자가 된다. 이 후원자는 새 가입자인 와Diffie-Hellman 키 동의 프로토콜을 수행하여 새 그룹키를 계산한다. 또한 의 은닉키를 기존 멤버들에게 전달한다. 새 가입자는 기존 그룹키의 은닉키만을 수신하므로 이산대수 문제의 어려움 때문에 기존 그룹키를 계산할 수 없다. 따라서 후방향 안전성이 보장된다. 그림


6.17에서 또 다른 사용자 가 가입하면 그 결과는 그림 6.18과 같다. 가장 낮은 레벨에 있는 노드가 이므로 이 노드를 기준으로 새 사용자가 가입되며, 가 후원자가 된다. 는새 가입자의 오른쪽 형제 노드가 되며, 새 가입자와 키 동의 프로토콜을 수행한 다음에 그룹키를 갱신하고, 나머지 사용자들에게 새 은닉키 값을 멀티캐스트한다. 그림 6.19의 최종 트리에 새 사용자가 가입한 경우의 결과 트리 그림 6.16에서 가 탈퇴한 경우의 결과 트리Kim 등의 방식에서 탈퇴 프로토콜의 경우 탈퇴한 사용자의 형제 노드가 후원자가 되며,이 후원자는 자신의 키 값을 변경한 후에 자신의 조상 노드들의 키 값들을 갱신하고, 새로운 은닉키들을 기존 사용자들에게 전달한다. 그림 6.16의 트리에서 사용자가 탈퇴한 경우에 결과 트리는 그림 6.19와 같다. 탈퇴한 사용자는 루트 노드의 오른쪽 자식 노드의 은닉키 값을 알고 있지만 왼쪽 자식 노드의 키 값은 변경되었으므로 새 그룹키를 계산할 수


없다. 따라서 전방향 안전성이 보장된다. Ren 등이 제안한 분산형 그룹키 확립 프로토콜Ren 등은 그림 6.20과 같은 프로토콜을 제안하였다. Ren 등은 각 형제 노드 간에 반드시Diffie-Hellman 방식으로 키 동의를 할 필요가 없다는 것을 발견하였다. 단말 노드의 부모노드들을 제외한 나머지 중간 노드들은 자식 노드들의 키 값들을 해쉬한 값을 해쉬하여 계산한다. 이를 위해 중간 노드의 오른쪽 부분 트리에 가장 오른쪽 단말 노드에 해당하는 사용자와 왼쪽 부분 트리에 가장 오른쪽 단말 노드에 해당하는 사용자 간에 키 동의 프로토콜을 수행하고, 확립된 키로 노드의 키 값의 은닉키 값을 교환한다.6.5 기타 그룹키 확립 프로토콜Chiou와 Chen은 중국인 나머지 정리를 이용한 중앙집중 방식의 그룹키 확립 프로토콜을제안하였다. 이 방식에서 각 사용자 는 중앙 서버와 비밀키 를 공유하고 있으며, 사용자가 가입하게 되면 각 사용자에게 하나의 정수 가 할당된다 각 사용자에게 할당된 는모두 서로소이어야 한다. 그룹키의 설정은 다음과 같이 이루어진다.lll단계 1. 중앙서버는 그룹키 를 임의로 선택한다.단계 2. 중국인 나머지 정리를 이용하여 아래의 식의 해를 구한다. 그 다음에 을 모든사용자에게 멀티캐스트한다. ≡ mod ≡ mod ⋮ ≡ mod 단계 3. 각 사용자는 을 중앙서버와 공유하고 있는 비밀키 로 복호화하여 그룹키를


얻는다.현재 그룹의 멤버가 아니면 와 을 알고 있더라도 을 복호화하기 위해 필요한 를얻을 수 없으므로 그룹키를 얻을 수 없다. 이 방식에서 중국인 나머지 정리는 그룹키 확립프로토콜의 안전성을 높이기 위한 수단으로 활용된 것이 아니고 하나의 값을 전달하여 여러사용자가 그 값으로부터 같은 그룹키를 얻을 수 있게 하는 방법으로 활용되고 있다. Bresson 등이 제안한 저전력 환경을 위한 그룹키 확립 프로토콜Bresson 등은 저전력 환경을 고려한 그림 6.21과 같은 프로토콜을 제안하였다. 이 방식도중앙 서버가 필요하므로 중앙집중 방식이다. 각 사용자 는 개인키 를 선택하고 공개키 와 중앙 서버의 공개키를 자신의 개인키로 지수승한 를 계산한다. 그 다음에공개키가 인증될 수 있도록 서명하여 중앙 서버에게 전달한다. 따라서 각 사용자는 그룹키계산을 위해 선택한 공개키 쌍 외에 장기간 사용하고 있는 또 다른 공개키 쌍을 가지고 있다. 중앙 서버는 각 사용자로부터 수신한 공개키를 자신의 개인키인 로 지수승한 값을계산한다. 그 다음 모든 값과 카운터 값을 해쉬하여 그룹키를 계산한다. 그 다음에는 각사용자마다 ⊕ 를 전달한다. 각 사용자만이 를 계산할 수 있으므로 각 사용자는 그룹키를 얻을 수 있지만 그룹에 속하지 않는 사용자들은 그룹키를 계산할 수 없다.Bresson 등의 방식의 장점은 값을 서버에 전달한 이후에는 각 모바일 단말은 단순 XOR연산를 한번만 수행하여 그룹키를 얻을 수 있다는 것이다. 하지만 사용자가 가입하고 탈퇴할 때마다 각 사용자마다 를 계산하고 전달해야 하므로 가입과 탈퇴비용은 사용자 수에비례하게 된다.참고문헌[1] Chung K. Wong, Mohamed Gouda, and Simon S. Lam, "Secure GroupCommunications using Key Graphs," IEEE/ACM Trans. on Networking, Vol. 8, No. 1,


pp. 16–30, 2000.[2] Alan T. Sherman and David A. McGrew, "Key Establishment in Large DynamicGroups using One Way Function Trees," IEEE Trans. on Software Engineering, Vol.29, No. 5, pp. 444–458, 2003.[3] Adrian Perrig, Dawn Song, and J.D. Tygar, "ELK, a New Protocol for EfficientLarge-Group Key Distribution," Proc. of the IEEE Symp. on Security and Privacy,pp. 247–262, 2001.[4] Suvo Mittra, "Iolus: A Framework for Scalable Secure Multicasting," Proc. of theACM SIGCOMM, pp. 277–288, 1997.[5] Lakshminath R. Dondeti, Sarit Mukherjee, and Ashok Samal, "A Dual EncryptionProtocol for Scalable Secure Multicasting," , Proc. of the IEEE Symp. on Computersand Communications, pp. 2–9, 1999.[6] Ingemar Ingemarsson, Donald T. Tang, and Chung K. Wong, "A Conference KeyDistribution System," IEEE Transactions on Information Theory, Vol. 28, No. 5, pp.714–720, 1982.[7] Michael Steiner, Gene Tsudik, and Michael Waidner, "Diffie-Hellman Key DistributionExtended to Group Communication," Proc. of the 3rd ACM Conf. on Computer andCommunications Security, pp. 31–37, 1996.[8] Mike Burmester and Yvo Desmedt, "A Secure and Efficient Conference KeyDistribution System," Advances in Cryptology, Eurocrypt 1994, LNCS 950, pp. 275–286, 1995.[9] Klaus Becker and Uta Wille, "Communication Complexity of Group Key Distribution,"Proc. of the 5th ACM Conf. on Computer and Communications Security, pp. 1–6,1998.[10] Adrian Perrig, "Efficient Collaborative Key Management Protocols for SecureAutonomous Group Communication", Proc. of the Int. Workshop on CryptographicTechniques and Electronic Commerce, pp. 192–202, 1999.[11] Yongdae Kim, Adrian Perrig, and Gene Tsudik, "Simple and Fault-tolerant KeyAgreement for Dynamic Collaborative Groups," Proc. of the 7th ACM Conf. onComputer and Communications Security, pp. 235–244, 2000.[12] Kui Ren, Hyunrok Lee, Kwangjo Kim, and Taewhan Yoo, "Efficient AuthenticatedKey Agreement Prptocol for Dynamic Groups," Proc. of the WISA 2004, LNCS3325, pp. 233–247, 2004.[13] Emmanuel Bresson, Olivier Chevassut, Abdelilah Essiari, and David Pointcheval,"Mutual Authentication and Group Key Agreement for Low-Power Mobile Devices,"Journal of Computer Communications, Elsevier, 2004.연습문제1. 다음과 같은 논리 키 트리가 있을 때, 새 멤버 와 가 가입하는 과정을 LKH와 OFT기법을 사용할 때에 대해 각각 설명하시오. 단, 포화 이진 트리일 때 루트에 가입한다고


가정하고 설명하여야 하며, 각 멤버가 가입하였을 때 전달되어야 하는 메시지와 새 트리를 보여야 한다.2. 기존 중앙집중형 그룹키 확립 프로토콜을 Iolus 방식을 활용하여 비중앙집중형으로 바꿀수 있는가? 바꿀 경우에는 어떻게 해야 하는가?3. Ingemarsson 등이 제안한 분산형 그룹키 확립 프로토콜은 교환되는 값들을 인증하지 않으면 기본 Diffie-Hellman 프로토콜과 마찬가지로 중간자 공격이 가능하다. 그 방법을 설명하시오.4. 그림 6.1에 제시된 기본적인 중앙집중 그룹키 확립 프로토콜은 6.2절에 설명되어 있듯이가입의 경우에는 O(1)의 비용으로 처리할 수 있는 방법이 있다. 만약 이와 같은 방식에서 탈퇴는 6.5절에 제시된 Chiou와 Chen 방법을 사용하였다고 가정하자. 그러면 이 방법은 OFT에 비교하여 어떤 차이가 있는지 설명하시오.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!