Ⅰ.서론
본 논문에서는 애드혹 환경에 가장 적합한 최초의 RSA기반 임계치 서명(Threshold Signature) 알고리즘으로 알려진 URSA (Ubiquitous and Robust Security Architecture) 알고리즘(2)(3)(4)을 분석하고, 원저자들의 주장과는 달리, 단지 1개의 비정상노드에 의한 DoS (Denial of Service) 공격에 대해서도 프로토콜이 정상적으로 동작하지 못함을 지적하고, 이의 오류를 수정한 알고리즘을 제안한다. 또한, 제안 알고리즘의 성능 분석을 통하여 DSA 기반 임계치 서명 알고리즘인 TS-DSA⑸보다 계산량 및 통신량 측면 모두에서 효율적임을 보여준다.
본 논문의 구성은 다음과 같다. 2장에서는 기존 URSA 알고리즘의 소개와 보안오류들을 지적하고, 3장에서는 발견된 오류들을 수정 보완한 새로운 알고리즘을 제안한다. 4장에서는 제안 알고리즘의 특성과 성능을 비교 분석하고, 5장에서 결론을 맺는다.
Ⅱ. URSA 알고리즘의 보안 오류
최근에 Luo, et al.이 다수의 논문(2), 〔3〕, 〔4〕을 통해 애드혹 환경에 적용 가능한 분산 PKI (Public Key Infrastructure) 구현을 위한 RSA 기반 임계치 서명 알고리즘인 URSA를 제안하였는데, Narashimha, et ale이 알고리즘의 보안오류를〔5〕에서 지적한 바 있다. 본 장에서는 URSA 알고리즘을 간단하게 소개하고, 〔5〕 에서 지적한 제안 알고리즘이 정확성 검증기능 (및 오류추적 기능)을 제공하지 못함을 요약 정리한다.
2.1. 초기화
신뢰할 수 있는 딜러(tmsted dealer)가 RSA 키 쌍을 생성한 후, Shamir의 secret sharing"〕을 위한 다항식 了(z)를 아래와 같이 생성한다.
#(1)
이때, /(o) = d7\ 되도록 한다. 여기서 d는 RSA 비밀키 이고, Ne RSA 모듈로(modulus)이다. 그 다음, t 개 이상의 초기 노드들(R)에게 쉐어(share) d, 와 서명 (signature) 岛를 발급한다. 서명은 4 의 공개키 인증서 (PKG) 발급에 필요한 인증서 요청 메시지 mr를 대상으로 한다.
#(2)
#(3)
또한, VSS (Verifiable Secret Sharing)〔6〕를 위한 witness들을 다음과 같이 계산하여 공개한다. 즉,
#
네트워크가 초기화된 후에는 딜러는 더 이상 필요로하지 않는다.
2.2. 부분서명 생성 및 조합
신규노드(R+i)가 네트워크에 조인하기 위해서는 자신의 공개키 인증서를 기존 노드들(4)로부터 발급 받아야 한다. 이를 위해 기존 노들이 신규노드의 인증서요청 메시지 (”妇+1)에 대한 다음과 같이 부분서명 (partial signature)을 생성하여 신규노드에게 전송한다.
#(4)
서로 다른 t개의 S&] 수신한 신규노드는 이들 값들을 곱한 다음, t-bounded offsetting 알고리즘〔4〕을 적용하여 실제 서명 s“+i를 획득한다.
2.3. 부분쉐어 생성 및 조합
신규노드가 네트워크에 조인한 후에, 자신도 나중에 다른 신규노드들의 부분서명을 발급해 주려면 자신의비밀췌어가 필요한데, 이를 위해 기존노드들이 다음과 같이 신규노드에게 부분쉐어 (partial share) 생성하여 전달한다.
#(5)
서로 다른 t개의 茁'를 단순하게 더하기만 하면 신규노드는 자신의 비밀쉐어 爲+ 1를 구할 수 있다. 즉,
#
참고로, 水.계산시, Lagrange 계수인 入(汹讦。는 t 개의 ID 정보만 있으면 누구나 계산할 수 있다. 따라서, 신규 노드가 cgli 수신 후, 기존노드들의 비밀키인 & 을추출할 수 있기 때문에, 이를 방지하기 위해 水丄랜덤화하여 전송하여야 하는데, 이를 위한 기법을 PSRS (Paritai Share Random Shuffling) 이라 부른다'”.
2.4. 정확성 검증 오류
신규노드가 s“+i와 &+1을 획득한 후, 이의 정확성을 검증하여야 하는 더】, S“ + 1의 검증은 시스템 공개키 (e, 」V)으로 표준 RSA 서명 검증 과정을 거치면 된다. 의 검증의 경우, VSS 기법을 적용하여야 하는데, 여기서 URSA 알고리즘의 문제점이 노출된다.
#(6)
즉, URSA 알고리즘은 저자들의 주장과 달리, 위의검증성 테스트를 만족하지 못한다. 다시 말하면, 정상적으로 계산된 么+1와 (공격자에 의한 조작 또는 통신상의 오류 등으로 인한) 비정상적인 赤4를 구분하지 못한다. 좀더 정확히는 두 값도 모두 항상 비정상적인 값으로만 신규노드가 받아들이게 된다.
Ⅲ. . URSA 알고리즘의 오류수정
본 장에서는 URSA 알고리즘의 정확성 검증 오류의원인을 살펴보고, 이의 수정방법과 오류추적 메카니즘을 제안한다.
정확성 검중 오류의 원인 수식 (1)과(5)에서 a와 水' 값들이 모듈로 妇川)이 아닌 N에 의해 계산되어졌기 때문에 일반적인 VSS 기법”)을 이용하여 4.의 정확성을 검증할 수가 없게 된다. 또한, <叭N) 는 초기화 때 신뢰할 수 있는 딜러에게만 알려지는 비밀 값이므로 네트워크 초기화 후에는 어떤 노드에게도 알려지지 않는다. 따라서, 부분 쉐어 계산시에 기존노드가 d&i = d, *(4 + i) (mod 的V))와 같이 계산할 수도 없다.
오류 수정: 위의 오류를 수정하기 위해서는 쉐어들을유한체 么상에서 계산하는 것이 아니라, 일반 정수 상에서 계산함으로써 해결할 수 있다. 즉, 상기 수식 (1)과 (5)를 아래의 수식 ⑺과 (8)로 각각 변경하면 쉐어의 정확성 검증과 오류추적은 정상적으로 동작하게 된다. 부서 별도로 설명한다.
#(7)
#(8)
3.1. 부분서명 생성 및 조합
부분서명 생성은 2.3 절의 방법과 유사하지만 Lagrange 계수 為 (0) 을 계산에 포함하지 않는다. 대신 馬 (0) 는 부분서명 조합시 에 신규노드가 계산하도록 한다 즉,
#(9)
그런 다음 부분서명의 단순 곱셈만으로도 원래 서명 값을 구할 수다. 참고로, 아래 수식의 入 (0)도 정수 상에서 계산한다.
#(10)
기존 URSA 알고리즘과의 차이점을 살펴보면, 부분 서명 생성에 사용된 기존노드들의 쉐어를 정수 상에서 계산하였기 때문에, 최대 t번의 추가 지수승 연산이 요구되는 t-bounded offsetting 알고리즘의 적용없이 부분 서명들의 단순 곱셈만으로 실제 서명을 구할 수 있다. 또한, 為(0) 계산을 기존 노드들이 부분서명 생성시에 포함한 것과는 달리, 신규노드가 서명 조합시에 포함하도록 변경함으로써, 토폴로지 수시로 변화는 애드혹 네트워크에서 정확히 t개의 기존 노드들이 동시에 為(0)계산에 참여야 하는 단점인 Interaction을 제거할 수 있게 된다.
3.2. 오류 추적
부분쉐어 추적은 VSS 기법을 적용하면 쉽게 확인 할 수 있지만, 부분서명의 경우에는 VSS 기법의 단순 적용으로 해결되지 못한다. 따라서 이를 위해 Schnorr 서명''1에 기반한 다음의 ZKP (Zero Knowledge Proof) 프로토콜 제안한다.
3.2.1. 부분서명 생성
2.2절에서 생성된 부분서명 과정과 함께 다음의 절차가 추가적으로 필요하다.
(1) = 尸 (mod/V)을 계산한다.
(2) 랜덤 비밀값 r £ 么을 생성한다.
(3) 甘 = 寸 (mod TV)을 계산한다.
(4) v=(mn+1)r (mod 丿V)을 계산한다.
(5) 을 계산한다.
(6) z = djC+r을 계산한다.
(7) (如\, c, z)를 신규노드에게 전송한다.
3.2.2. 부분서명 검증
신규 노드의 부분서명 검증과정은 다음과 같다. (1) Witness값들을 이용하여 다음과 같이 边 를 계산한다.
#
여기서, w= U(I矽"=9, (modJV) 이 된다. t-o
(2) u =g"(w)~c (modA, )을 계산한다.
여기서, u = <f(w)~c = ^ (mod, V)이 된다.
(3) M = (m“+)(s2i)f (mod W)을 계산한다.
여기서, M=(m, , + i)'(&)* = m, , +) 이 된다.
(4) c = a(s"i, u, u)을 계산한다.
(5) c = c 를 비교한다.
위 검증과정에서 단계 (2)와 (3)을 모두 거쳐야 하는 이유는 다음과 같다.
1) 3만으로 검증할 경우, 4의 정확성은 검증할 수 있으나, 부분서명 생성에 올바른 & 가 사용되었는지를 확인할 수 없게 된다.
2) 부분서명 S&1의 위변조 유무를。'만으로 검증할 경우, 공격자가 임의의 키 衣로 위조된 서명 ;組 = (风+濟을 생성하고 또 다른 랜덤값 彳으로 £ = 을 계산하여 검증자에게 전달할 경
우, 검증자는 위조서명을 정상으로 받아들이게 된다.
Ⅳ. 비교 분석
본 장에서는 수정한 알고리즘의 특성과 성능을 DSA 기반 임계치 서명 알고리즘인 TS-DSA⑸와 비교한다.
〔표 1〕에서는 제안 알고리즘의 특성을 TS-DSA 뿐만 아니라 기존 URSA와도 비교한다. TS-DSA는 서명 및 쉐어 생성시에는 DSA 알고리즘 자체의 randomness 성질과 Lagrange 계수 계산을 위해 t개의 기존 노드 가동 시에 참여하여야 하는 Interaction이 필요로 한 반면, 제안 알고리즘을 이용한 서명생성 시에는 이러한 Interation을 필요로 하지 않는다.
(표 1) 제안 알고리즘의 특성 비교
〔표 2〕는 제안 알고리즘의 성능을 TS-DSA와 계산 및 통신 복잡도 측면에서 비교 분석한다. 좀더 구체적으로 설명하면, 서명연산과 관련하여 제안알고리즘의 경우 t개의 부분서명과 3.2.1 절에서 알 수 있듯이 부분 서명의 오류추적을 위한 추가 연산点 2t번의 지수승을 필요로 하므로, 서명 생성을 위해 총 3t번의 지수승 연산이 필요하고, 검증은 표준 RSA 검증을 하므로 지수승이 1회 필요로 한다. 또한 322절의 부분 서명 추적이 필요할 경우, 砂+ 也번의 지수승이 필요로 하게 된다. 쉐어 연산과 통신 복잡도의 경우, 대부분의 연산이 PSRS⑺때문에 발생하는 것으로 자세한 내용은 〔기을참조하길 바란다. TS.DSA의 경우는 알고리즘 특성상 최소 2t.l개의 부분서명과 부분췌어가 필요로 하는데, 자세한 내용은〔5〕를 참조하면 된다.
(표 2) TS-DSA4 제안 알고리즘의 성능 비교
〔표 2〕의 분석 결과에서 알 수 있듯이, 제안 알고리즘이 서명 생성, 정확성 검증, 오류추적 모든 면에서 TS-DSA 보다 효율적이며, 쉐어 연산은 동일한 복잡도를 나타낸다. 또한, 제안 알고리즘이 TS-DSA보다 통신 오버헤드를 대폭 줄일 수 있음을 알 수 있다. 특히, 대략 4.5배 정도(logy m logW로 가정)의 대역폭 감소는 무선통신에서 데이터 전송량이 네트워크 노드의 전력소모량과 아주 밀접한 관련이 있으므로⑻, 제안 알고리즘이 배터리 기반의 무선망 장비들의 전력 소비량 감소에 많은 기여를 할 수 있을 것으로 기대된다.
Ⅴ. 결론
본 논문에서는 최근에 제안된 RSA 기반 애드혹 서명 알고리즘인 URSA의 분석을 통하여, 이 알고리즘의 보안 오류가 있음을 지적하였다. 또한 오류의 원인을 파악한 후, 이를 수정한 새로운 알고리즘을 제안하였다. 제안한 알고리즘은 기존 DSA 기반 애드혹 서명 알고리즘인 TS-DSA 보다 계산량 및 통신량 측면에서 보다 효율적임을 보였다. 제안 알고리즘을 통해 발급되는 인증서의 서명은 표준 RSA 서명과 호환이 되기 때문에 DSA 보다 훨씬 빠른 검증속도를 가진 RSA의 장점을 그대로 살릴 수 있다.
참고문헌
- A. Shamir, 'How to Share a Secret', Communications of the ACM, 22(11), 1979
- J. Kong, H. Luo, K. Xu, D. L. Gu, M. Gerla, and S. Lu, 'Adaptive Security for Multi-level Ad-hoc Networks', Journal of Wireless Communications and Mobile Computing, volume 2, pp.533-547, 2002 https://doi.org/10.1002/wcm.75
- J. Kong, P. Zerfos, H. Luo, S. Lu, and L. Zhang, 'Providing Robust and Ubiquitous Security Support for MANET', IEEE International Conference on Network Protocols (ICNP'01), pp.251-260, 2001
- H. Luo, J. Kong, P. Zerfos, S. Lu, and L. Zhang, 'URSA: Ubiquitous and Robust Access Control for Mobile Ad Hoc Networks', IEEE/ACM Transactions on Networking, 12(6), pp.1049-1063, 2004 https://doi.org/10.1109/TNET.2004.838598
- M. Narasimha, G. Tsudik, and J. H. Yi, 'On the Utility of Distributed Cryptography in P2P and MANETs: the Case of Membership Control', IEEE International Conference on Network Protocols (ICNP'03), pp.336-345, 2003
- P. Feldman, 'A Practical Scheme for Non-interactive Verifiable Secret Sharing', Symposium on Foundations of Computer Science (FOCS'87), pp.427-437, 1987
- T. P. Pedersen, 'A Threshold Cryptosystem without a Trusted Party', Eurocrypt'91, LNCS No. 547, pp.522-526, 1991
- K. Barr and K. Asanovic, 'Energy Aware Lossless Data Compression', International Conference on Mobile Systems, Applications, and Services (MobiSys'03), May 2003
- C. P. Schnorr. 'Efficient Signature Generation by Smart Cards', Journal of Cryptology, Vol. 4, No. 3, pp.161-174, 1991