안녕하세요! 카미입니다.
최근에 너무 바빴네요!
저는 지금 디지털 헬스 케어 기업에서 일하면서
기존 의학 분야에 존재하는 수많은 건강 정보들을 데이터화하는 작업들을 하고 있습니다.
예전 병원에서 일할 때는 환자분들을 직접 만나고, 이야기하며, 또 검사 결과들을 보는 것이 전부였습니다.
사실 수많은 데이터들이 함께 존재해도 이를 활용할줄 모르는 세계에 속해 있었습니다.

이런 모든 정보가 데이터화가 된다는 것을 실감하고 있습니다.
그러면서 자연스럽게 이런 데이터 분석, 자료 구조와 알고리즘 등에 관해 책을 읽고 있습니다.
의료와 디지털 헬스 케어 도메인에 속한 개발자나 기획자분들과 함께 관련 지식들을 공유하고자 포스팅을 작성하였습니다. ☺️☺️
건강정보. 너무 보안이 소중하겠죠?
그래서 오늘 이야기해볼 내용은 '해시함수'와 '컴퓨터보안 기초'입니다!

해시는 '어떤 길이의 임의 데이터를 고정 길이의 데이터로 매핑' 하는 것입니다.
가령 우리가 1이라는 데이터를 입력했을 때 그것을 16진수로 4a1432fb로 바꿔주는 과정인 거죠.
엥? 이 과정이 왜 필요할까요? 굳이 1로 저장하면 되는데 왜 16진수로 바꿔주는 거야?
바로 보안을 하기 위해서입니다. 제 3자가 의료진인 것처럼 행세하여 개인의 건강 정보를 빼갈 수도 있겠죠. 이를 막기 위해 암호화를 사용하게 됩니다.
암호 시스템이란 기본적으로 일반적인 언어 '평문'을 '암호문' 출력으로 변환하는 알고리즘입니다.
평문 → 암호문 과정을 암호화
암호문 → 평문 과정을 복호화 라고 합니다.
이 때, 열쇠가 있어 이 키를 사용하면 데이터는 암호문으로 변경됩니다.
이 암호문을 복호화, 다시 말해 돌리려면 키가 필요한 거죠.
꽤 안전해 보이지만, 키를 타인한테 보낼 때 누군가가 그것을 가로챈다면, 복호화되겠죠.
이를 막기 위해 공개 키 암호 시스템이 등장하게 됩니다. 암호화/복호화에 서로 다른 키를 사용하는 건데 암호화에 사용하는 키를 공개 키, 복호화에 사용하는 키를 비밀 키라고 합니다. 데이터를 보내는 사람은 데이터와 공개 키를 함께 보내서 이를 걸려도 복호화할 수는 없죠.
그럼 해싱이 왜 보안과 관련이 있는 걸까요?
해싱은 고정 길이의 출력을 만드는 겁니다.
우리가 예를 들어 비밀번호를 이용한다고 합시다. 비밀번호를 입력하면 이게 데이터베이스의 비밀번호와 일치하는지 비교하는 과정이 필요합니다. 그 속에서 비밀번호가 평문 그대로 저장되어 있다면 해커다 모든 비밀번호를 확인할 수 있습니다. 반대로 해시를 사용하게 되면, 비밀번호를 생성한 시점부터 데이터베이스에는 평문이 아닌 해시 함수의 출력인 해시값으로 저장이 되니, 사용자는 비밀번호가 무슨 값으로 저장되어 있는지 알 수 없습니다.
'책 한 잔' 카테고리의 다른 글
| 우리가 치열하게 우리의 정치, 경제 제도를 지키고 발전시켜 나가야 하는 이유: 『국가는 왜 실패하는가』 (6) | 2025.01.01 |
|---|---|
| 『디지털 마인드셋』 마무리하며 (6) | 2024.11.18 |
| AI, 나를 위해 일하게 하라 AI에 대한 이해! (20) | 2024.11.14 |