동형암호 기반의 개인정보 보호 언어 모델에서 암호문-암호문 행렬 곱 연산을 수행하는 방법 및 이를 수행하기 위한 컴퓨팅 장치
A method for performing a ciphertext-ciphertext matrix multiplication operation in a privacy-preserving language model based on homomorphic encryption and a computing device for performing the same
특허 요약
동형암호 기반의 개인정보 보호 언어 모델에서 암호문-암호문 행렬 곱 연산을 수행하는 방법 및 이를 수행하기 위한 컴퓨팅 장치가 개시된다. 개시되는 일 실시예에 따른 방법은, 암호화 되어 있고 정방 행렬인 제1 행렬 및 제2 행렬을 각각 획득하는 단계, 제1 행렬에 대해 i번째 행을 i만큼 왼쪽으로 회전시키는 시그마 변환을 수행하는 단계, 제2 행렬에 대해 j번째 열을 j만큼 위로 회전시키는 타우 변환을 수행하는 단계, 타우 변환된 제2 행렬을 상기 제2 행렬의 행 또는 열의 길이만큼 오른쪽으로 회전하여 상기 타우 변환된 제2 행렬에 대한 보조 행렬을 생성하는 단계, 시그마 변환된 제1 행렬의 각 열 블록을 추출하여 저장하는 단계, 및 시그마 변환된 제1 행렬, 타우 변환된 제2 행렬, 타우 변환된 제2 행렬에 대한 보조 행렬, 및 시그마 변환된 제1 행렬의 각 열 블록에 기초하여 제1 행렬과 제2 행렬의 곱을 블록 단위로 계산하는 단계를 포함한다.
청구항
번호청구항
1

하나 이상의 프로세서들, 및상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되고 동형 암호 기반의 개인정보 보호 언어 모델에서 CCMM(Ciphertext-Ciphertext Matrix Multiplication) 연산을 수행하는 방법으로서, 암호화 되어 있고 정방 행렬인 제1 행렬 및 제2 행렬을 각각 획득하는 단계;상기 제1 행렬에 대해 i번째 행을 i만큼 왼쪽으로 회전시키는 시그마 변환을 수행하는 단계;상기 제2 행렬에 대해 j번째 열을 j만큼 위로 회전시키는 타우 변환을 수행하는 단계;상기 타우 변환된 제2 행렬을 상기 제2 행렬의 행 또는 열의 길이만큼 오른쪽으로 회전하여 상기 타우 변환된 제2 행렬에 대한 보조 행렬을 생성하는 단계;상기 시그마 변환된 제1 행렬의 각 열 블록을 추출하여 저장하는 단계; 및상기 시그마 변환된 제1 행렬, 상기 타우 변환된 제2 행렬, 상기 타우 변환된 제2 행렬에 대한 보조 행렬, 및 상기 시그마 변환된 제1 행렬의 각 열 블록에 기초하여 상기 제1 행렬과 상기 제2 행렬의 곱을 블록 단위로 계산하는 단계를 포함하는, 방법.

2

청구항 1에 있어서, 상기 제1 행렬과 상기 제2 행렬의 곱을 블록 단위로 계산하는 단계는, 상기 타우 변환된 제2 행렬의 계산의 대상이 되는 k번째 열을 재구성하는 단계를 포함하는, 방법.

3

청구항 2에 있어서, 상기 k번째 열을 재구성하는 단계는, 상기 타우 변환된 제2 행렬에서 기 설정된 제1 마스크를 통해 상기 k번째 열의 일부분을 추출하는 단계;상기 타우 변환된 제2 행렬에 대한 보조 행렬에서 기 설정된 제2 마스크를 통해 상기 k번째 열의 나머지 부분을 추출하는 단계; 및상기 제1 마스크를 통해 추출한 상기 k번째 열의 일부분과 상기 제2 마스크를 통해 추출한 상기 k번째 열의 나머지 부분을 합하여 상기 k번째 열을 재구성하는 단계를 포함하는, 방법.

4

청구항 3에 있어서, 상기 제1 행렬과 상기 제2 행렬의 곱을 블록 단위로 계산하는 단계는, 상기 재구성된 제2 행렬의 k번째 열을 상기 제1 행렬의 곱셈이 이루어지는 열과 동일한 위치로 회전 정렬시키는 단계;상기 시그마 변환된 제1 행렬의 곱셈의 대상이 되는 열 블록과 상기 회전 정렬시킨 제2 행렬의 k번째 열 블록을 곱하고 그 결과를 상기 제1 행렬과 상기 제2 행렬의 행렬 곱 결과 중 i번째 행의 결과에 누적하는 단계를 더 포함하는, 방법.

5

청구항 4에 있어서, 상기 제1 행렬과 상기 제2 행렬의 곱을 블록 단위로 계산하는 단계는, 상기 제1 행렬과 상기 제2 행렬의 행렬 곱 결과 중 i번째 행의 누적된 결과를 상기 제1 행렬과 상기 제2 행렬의 행렬 곱의 최종 결과의 해당 행의 위치로 회전시켜 정렬한 후 누적시키는 단계를 더 포함하는, 방법.

6

프로세서; 및상기 프로세서에 의해 실행되는 하나 이상의 프로그램을 저장하는 메모리를 포함하고, 동형 암호 기반의 개인정보 보호 언어 모델에서 CCMM(Ciphertext-Ciphertext Matrix Multiplication) 연산을 수행하는 컴퓨팅 장치로서, 상기 프로세서는,암호화 되어 있고 정방 행렬인 제1 행렬 및 제2 행렬을 각각 획득하는 동작;상기 제1 행렬에 대해 i번째 행을 i만큼 왼쪽으로 회전시키는 시그마 변환을 수행하는 동작;상기 제2 행렬에 대해 j번째 열을 j만큼 위로 회전시키는 타우 변환을 수행하는 동작;상기 타우 변환된 제2 행렬을 상기 제2 행렬의 행 또는 열의 길이만큼 오른쪽으로 회전하여 상기 타우 변환된 제2 행렬에 대한 보조 행렬을 생성하는 동작;상기 시그마 변환된 제1 행렬의 각 열 블록을 추출하여 저장하는 동작; 및상기 시그마 변환된 제1 행렬, 상기 타우 변환된 제2 행렬, 상기 타우 변환된 제2 행렬에 대한 보조 행렬, 및 상기 시그마 변환된 제1 행렬의 각 열 블록에 기초하여 상기 제1 행렬과 상기 제2 행렬의 곱을 블록 단위로 계산하는 동작을 수행하는, 컴퓨팅 장치.

7

청구항 6에 있어서, 상기 제1 행렬과 상기 제2 행렬의 곱을 블록 단위로 계산하는 동작은, 상기 타우 변환된 제2 행렬의 계산의 대상이 되는 k번째 열을 재구성하는 동작을 포함하는, 컴퓨팅 장치.

8

청구항 7에 있어서, 상기 k번째 열을 재구성하는 동작은, 상기 타우 변환된 제2 행렬에서 기 설정된 제1 마스크를 통해 상기 k번째 열의 일부분을 추출하는 동작;상기 타우 변환된 제2 행렬에 대한 보조 행렬에서 기 설정된 제2 마스크를 통해 상기 k번째 열의 나머지 부분을 추출하는 동작; 및상기 제1 마스크를 통해 추출한 상기 k번째 열의 일부분과 상기 제2 마스크를 통해 추출한 상기 k번째 열의 나머지 부분을 합하여 상기 k번째 열을 재구성하는 동작을 포함하는, 컴퓨팅 장치.

9

청구항 8에 있어서, 상기 제1 행렬과 상기 제2 행렬의 곱을 블록 단위로 계산하는 동작은, 상기 재구성된 제2 행렬의 k번째 열을 상기 제1 행렬의 곱셈이 이루어지는 열과 동일한 위치로 회전 정렬시키는 동작;상기 시그마 변환된 제1 행렬의 곱셈의 대상이 되는 열 블록과 상기 회전 정렬시킨 제2 행렬의 k번째 열 블록을 곱하고 그 결과를 상기 제1 행렬과 상기 제2 행렬의 행렬 곱 결과 중 i번째 행의 결과에 누적하는 동작을 더 포함하는, 컴퓨팅 장치.

10

청구항 9에 있어서, 상기 제1 행렬과 상기 제2 행렬의 곱을 블록 단위로 계산하는 동작은, 상기 제1 행렬과 상기 제2 행렬의 행렬 곱 결과 중 i번째 행의 누적된 결과를 상기 제1 행렬과 상기 제2 행렬의 행렬 곱의 최종 결과의 해당 행의 위치로 회전시켜 정렬한 후 누적시키는 동작을 더 포함하는, 컴퓨팅 장치.

11

비일시적 컴퓨터 판독 가능한 저장 매체(non-transitory computer readable storage medium)에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 명령어들을 포함하고, 상기 명령어들은 하나 이상의 프로세서들을 갖는 컴퓨팅 장치에 의해 실행될 때, 동형 암호 기반의 개인정보 보호 언어 모델에서 CCMM(Ciphertext-Ciphertext Matrix Multiplication) 연산을 수행하도록 하되,상기 컴퓨팅 장치로 하여금, 암호화 되어 있고 정방 행렬인 제1 행렬 및 제2 행렬을 각각 획득하는 단계;상기 제1 행렬에 대해 i번째 행을 i만큼 왼쪽으로 회전시키는 시그마 변환을 수행하는 단계;상기 제2 행렬에 대해 j번째 열을 j만큼 위로 회전시키는 타우 변환을 수행하는 단계;상기 타우 변환된 제2 행렬을 상기 제2 행렬의 행 또는 열의 길이만큼 오른쪽으로 회전하여 상기 타우 변환된 제2 행렬에 대한 보조 행렬을 생성하는 단계;상기 시그마 변환된 제1 행렬의 각 열 블록을 추출하여 저장하는 단계; 및상기 시그마 변환된 제1 행렬, 상기 타우 변환된 제2 행렬, 상기 타우 변환된 제2 행렬에 대한 보조 행렬, 및 상기 시그마 변환된 제1 행렬의 각 열 블록에 기초하여 상기 제1 행렬과 상기 제2 행렬의 곱을 블록 단위로 계산하는 단계를 수행하도록 하는, 비일시적 컴퓨터 판독 가능한 저장 매체에 저장된 컴퓨터 프로그램.