길어야 3편일거고 아마 1편에서 걍 귀찮아서 때려칠 확률 높음

그래도 트라이해본다

엄밀한 표기나 구체적 레퍼런스 귀찮아서 안씀 키워드로 구글에서 검색하셈


1.1 왜 필요한가?

짧게 요약하면, 민감한 개인정보를 쓸 때의 제약을 줄이고 싶기 때문이다.


현대사회에서 데이터는 자원이다. 만약 충분히 좋고 많은 데이터가 있다면, 뭔가를 해볼 수 있다. 글 데이터가 있다면 번역을, 이미지 데이터가 있다면 객체 검출을, 영상 시청 기록 데이터가 있다면 영상 추천을, 물류 데이터가 있다면 수요 예측을, ... 흔히 FAANG이라 불리는 기업들은 이런 자원을 수집할 수 있고 그래서 강한 것이다. 그렇기에 후발주자들도 이런 데이터를 수집하는 것이고.


아무리 좋은 알고리즘이 있어도, 데이터가 없으면 소용없다. 그리고 현업에 있는 사람 말로는, 알고리즘 자체의 성능보다 데이터의 질과 양이 훨씬 더 결정적으로 작용한다고 한다. 그리고, 이런 데이터에서 가장 민감하면서 가장 큰 이익을 불러올 것이라 생각되는 건, 개인에 대한 직접적인 정보, 특히 의료정보다.



의료 정보는 정말로 민감한데, 유출되면 정말로 뒤진다. 유전자 연구하는 대학에서 usb하나가 잘못 유출되면 벌금으로 대학이 파산할 수도 있다더라. GDPR 같은 법들도 있고, 아무튼 유출되면 뒤지기 때문에 제약이 있다.


de-identification이라는 건데, HIPPA PHI등의 기준이 있으며, HIPPA 18 PHI에서는 이름, 구체적 주소, 이메일 주소, ..같은 누가봐도 개인을 특정할 수 있는 Direct Identifier를 지우게 된다. 그리고 이런 것들 외에도 조합되어서 개인을 특정할 수 있으면 안될것이다. 출신 대학, 직장, ... 이런 것들을 조합해서, 예를 들면 해당 데이터베이스에서 1000명 이하로 후보를 추릴 수 없도록 해야한다고 하자. 이런걸 다 지우고 나서야 데이터베이스를 만들 수 있고 공유할 수 있다.



de-identification 끝났으니 이제 해-피하게 활용하면 되는걸까? 문제는 그게 아니란것. re-identification이란게 있다. 이러한 데이터베이스들이 여러개 모인다면, 혹은 외부정보가 있다면 개인을 특정할 수 있다는것. Netflix는 영화 평점 관련 데이터를 de-identification후에 공개한적 있는데, IMDB 데이터를 활용해서 개인들을 특정할 수 있다. 미국 국립보건원에서는 여러 의료정보들을 공개해놨었는데, 역시 비슷한 식으로 re-identification을 성공하여 비공개처리된 데이터가 있다. 아하! 공유도 마음대로 하면 망하겠구나?


근데 의료 정보는 기관별로 수집해놨으며 마음대로 이동도 못한다. 즉 각 기관은 서로 공유만 할 수 있으면 엄청난 양의 데이터를 활용할 수 있을텐데, 공유를 못하니까 자급자족하면서 찔찔대고 있어야한다. 아니 데이터가 있는데 왜 쓰질 못하니!



때문에 re-identification을 막으면서 데이터를 공유하고 싶은데, 여러 방법이 있다. perturbation, differential privacy, (딥러닝에서) federated learning 등이 있는데, Homomorphic Encryption(동형암호, 이하 HE)가 그 중 하나다. 아무튼 쓸데가 많고 돈이 될게 뻔하기 때문에, 2011년 MIT에서 10대 유망기술로 뽑았던거다. (그리고 differential privacy는 올해 뽑혔더라)




1.2 HE는 무엇인가?

일단 이름부터 따져보자. Homomorphic Encryption. Homomorphic한 암호화겠지. 근데 homomorphic이 뭐냐?

현대대수시간에 들어봤을 이 용어는, 사실 그 때 배운 뜻 그대로다. Group에서, 혹은 Ring에서 연산을 보존하는 함수를 homomorphism이라 한다. 그리고 우린 암호화한게 이런 특징을 갖길 원하기 때문에 HE라 부르는거다.

즉, Group에서는 E(m1) ☆ E(m2) = E(m1 +m2)를 만족하는 E와 연산 ☆를 원하는거고, Ring에서는 저런 연산이 곱셈에 대해서 하나더 있으면 좋겠다. 물론 암호화니까 충분히 강해야하고, 동시에 연산과정에서 이 암호화를 깰 정보가 필요하면 의미가 없겠지.


예를 들어보자. RSA는 공개키 n과 e가 있고, E(m) = m^e mod n으로 정의된다. 그리고 E(m1)*E(m2) = (m1^e) * (m2^e) = (m1*m2)^e = E(m1*m2) mod n 이니까, 적어도 곱셈에 대해서는 homomorphic encryption이라 부를 수 있겠다.


viewimage.php?id=20bcc42e&no=24b0d769e1d32ca73ced81fa11d02831edca684dcd73c50d611ea9794e01f84e274b65970adb73807fade743ed4152fc9f36832804c179d6969f955c1643b95e

왜 이런 성질을 원하냐? 그럼 날로 먹을 수 있거든. 병원 A는 데이터가 있는데, 이걸 연산시킬 능력이 없다. 그리고 구글이나 아마존에서 서버를 빌리면 할 수 있다. 근데 그냥 올린다? 그럼 뒤진다고. 하지만 원하는 연산들에 homomorphic한 E가 있으면, E로 암호화한 데이터들과 연산 방법만을 서버에 올리고 실행시키면 된다. 구글 아마존은 이 연산들을 실행시키면서도 원문을 해독할 수 없으므로 개인정보 유출 걱정 없이 병원 A는 목적을 달성할 수 있다. '내용은 모르면서 일은 다하는 하인'이 성립한다.


병원 B가 우리 협업을 하자고 한다. 당연히 그냥 서로 공유하면 뒤진다. 하지만 E로 암호화해서 올리고, 서버에서 연산을 수행한 결과들만을 서로가 공유가능하다면? 대충 Secure Multi-Party Computation라 하는데, 서로가 서로의 데이터를 접근할 수 없음에도 불구하고, 그 모두를 활용한 결과는 얻을 수 있다. 그리고 대충 대부분의 연산은 더하기와 곱하기만 되면 할 수 있으므로, 이제 적당한 E(와 Ring)만 찾으면 망할 걱정 없이 서로의 데이터를 맘껏 쓸 수 있다!! 눈부신 미래가 우릴 기다리고 있어!







문제는 그런 E와 Ring이 없다는거다. 증명이 되었다. 이렇게 HE는 개소리로 끝나고 마는 것인가? 이 연재는 끝인가? 병원 A와 B는 결국 망할 운명인가? 수학적 증명은 도망칠 구멍도 없어!







하지만 좆간들의 잔머리는 결국은 답을 찾아냈고, 그 결과 그런 E를 찾아냈다. 단 이 E는 Ring homomorphism이 아니다. homomorphic스럽긴 한데, homomorphism이 아닌거시다. 즉 이름값도 제대로 못하는 놈인 셈인데, 뭐 잘 굴러가면 뭔상관이 있겠는가? 돈이 되면 장땡인거다 ㅅㄱ