KR102654687B1 - Efficient Verifiable Convolutional Neural Netwrok Model - Google Patents

Efficient Verifiable Convolutional Neural Netwrok Model Download PDF

Info

Publication number
KR102654687B1
KR102654687B1 KR1020210187604A KR20210187604A KR102654687B1 KR 102654687 B1 KR102654687 B1 KR 102654687B1 KR 1020210187604 A KR1020210187604 A KR 1020210187604A KR 20210187604 A KR20210187604 A KR 20210187604A KR 102654687 B1 KR102654687 B1 KR 102654687B1
Authority
KR
South Korea
Prior art keywords
verifier
verification
function
convolution operation
prover
Prior art date
Application number
KR1020210187604A
Other languages
Korean (ko)
Other versions
KR20230097779A (en
Inventor
서재홍
이현범
정희원
주찬양
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020210187604A priority Critical patent/KR102654687B1/en
Publication of KR20230097779A publication Critical patent/KR20230097779A/en
Application granted granted Critical
Publication of KR102654687B1 publication Critical patent/KR102654687B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명에서 제안하는 컨볼루션 연산을 기반으로 하는 딥러닝 모델인 CNN의 연산결과에 대한 효율적인 무결성 검증 방법은 제1 검증단계에서의 증명자가 컨볼루션 연산에 관한 다변수 함수에서 특정 일변수함수의 결과값 중 복수 개의 결과값을 검증자에게 전송하는 단계, 제1 검증단계에서의 검증자가 컨볼루션 연산을 이용하여 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 단계, 제2 검증단계에서의 증명자가 또 다른 일변수함수의 결과값 중 복수 개의 결과값을 검증자에게 전송하는 단계, 제2 검증단계에서의 검증자가 컨볼루션 연산을 이용하여 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 단계 및 제2 검증단계에서의 검증식을 계산하고, 상기 검증식을 만족할 경우 검증자가 해당 프로토콜을 수락하는 단계를 포함한다.An efficient integrity verification method for the operation results of CNN, a deep learning model based on convolution operation proposed in the present invention, is that the prover in the first verification step determines the result of a specific univariate function from the multivariate function related to the convolution operation. A step of transmitting a plurality of result values among the values to a verifier, where the verifier in the first verification step performs a connectivity check between the plurality of result values and the previous function using a convolution operation, and the verifier generates a new random value. Transmitting to the prover, the prover in the second verification step transmitting a plurality of result values of another single variable function to the verifier, the verifier in the second verification step using a convolution operation A connection check is performed between the plurality of result values and the previous function, the verifier transmits a new random value to the prover, and a verification formula is calculated in the second verification step. If the verification equation is satisfied, the verifier Includes the step of accepting the protocol.

Description

컨볼루션 연산을 기반으로 하는 딥러닝 모델인 CNN의 연산결과에 대한 효율적인 무결성 검증 기법{Efficient Verifiable Convolutional Neural Netwrok Model}Efficient integrity verification technique for the calculation results of CNN, a deep learning model based on convolution calculation {Efficient Verifiable Convolutional Neural Netwrok Model}

본 발명은 컨볼루션 연산을 기반으로 하는 딥러닝 모델인 CNN의 연산결과에 대한 효율적인 무결성 검증 기법에 관한 것이다. The present invention relates to an efficient integrity verification technique for the calculation results of CNN, a deep learning model based on convolution calculation.

근래에 주목받고 있는 기술 중 하나인 딥러닝 기술은 주어진 표본 데이터를 통한 학습으로 예측 모델을 만들어 적용하는 기술이다. 많은 표본데이터를 활용하여 구축된 딥러닝 모델의 연산량은 상당하기에 연산 능력이 비교적 떨어지는 PC에서 수행하기 어려운 점이 있다. 따라서 직접 연산을 하는 것이 아닌 연산 능력이 우수한 서버를 활용하여, 클라우드 컴퓨팅을 통해 위탁연산을 하는 방법으로 딥러닝 모델을 이용하며 이를 지원하는 기업으로는 Amazon, Microsoft 등이 있다. 하지만 해당 서비스들은 모두 연산 결과에 대한 무결성 검증을 지원하고 있지 않기 때문에 서비스 제공자가 연산을 정직하게 수행했다는 믿음을 가지고 서비스를 이용하는 방법밖에 없는 상황이다.Deep learning technology, one of the technologies that has been attracting attention recently, is a technology that creates and applies a predictive model by learning from given sample data. The amount of computation of a deep learning model built using a large amount of sample data is considerable, making it difficult to perform on a PC with relatively low computing power. Therefore, deep learning models are used to perform consignment calculations through cloud computing by using servers with excellent computing capabilities rather than performing calculations directly. Companies that support this include Amazon and Microsoft. However, since none of the relevant services support integrity verification of calculation results, the only way to use the service is with the belief that the service provider performed the calculation honestly.

해당 문제점에 대한 해결 방법으로는 검증가능한 연산(Verifiable Computation)이 있다. 검증가능한 연산은 위탁연산을 수행하는 서버가 해당 연산에 대한 무결성 증명을 생성하는 과정, 서버로부터 받은 연산 결과값과 증명을 통해 유저가 연산의 결과를 검증하는 과정으로 이루어져 있다. 딥러닝 모델 중 이미지 인식에 많이 사용되고 있는 CNN(Convolution Neural Network) 모델의 무결성 검증에 대한 연구로는 Safetynet이라는 기법이 있다. 하지만 해당 기법은 증명을 생성하는데 필요한 연산량이 크다는 단점이 있어 실제 응용에 바로 적용되기에는 힘들다는 단점이 있다. A solution to this problem is verifiable computation. A verifiable operation consists of a process in which the server performing the entrusted operation generates an integrity proof for the operation, and a process in which the user verifies the result of the operation through the operation result and proof received from the server. Among deep learning models, a technique called Safetynet is being studied to verify the integrity of the CNN (Convolution Neural Network) model, which is widely used in image recognition. However, this technique has the disadvantage of requiring a large amount of computation to generate a proof, making it difficult to apply it directly to actual applications.

한국 공개특허 제10-2020-0093418호2020.08.05)Korean Patent Publication No. 10-2020-0093418 2020.08.05)

본 발명이 이루고자 하는 기술적 과제는 CNN 모델의 핵심 연산 중 하나인 컨볼루션 연산에 대한 무결성 검증 기법을 제공하는데 있다. 본 발명에서는 Safetynet에서 문제가 되고 있는 컨볼루션을 위한 증명 생성 비용을 컨볼루션 연산의 수학적 특성을 활용하여 줄이고, 효율적으로 무결성 검증을 지원하는 CNN 모델의 핵심이 되는 무결성 검증 기법을 제공하고자 한다. The technical task to be achieved by the present invention is to provide an integrity verification technique for convolution operation, one of the core operations of CNN model. The present invention seeks to reduce the proof generation cost for convolution, which is a problem in Safetynet, by utilizing the mathematical characteristics of convolution operations, and to provide an integrity verification technique that is the core of the CNN model that efficiently supports integrity verification.

일 측면에 있어서, 본 발명에서 제안하는 컨볼루션 연산을 기반으로 하는 딥러닝 모델인 CNN의 연산결과에 대한 효율적인 무결성 검증 방법은 제1 검증단계에서의 증명자가 컨볼루션 연산에 관한 다변수 함수에서 특정 일변수함수의 결과값 중 복수 개의 결과값을 검증자에게 전송하는 단계, 제1 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 단계, 제2 검증단계에서의 증명자가 또 다른 일변수함수의 결과값 중 복수 개의 결과값을 검증자에게 전송하는 단계, 제2 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 단계 및 제2 검증단계에서의 검증식을 계산하고, 상기 검증식을 만족할 경우 검증자가 해당 프로토콜을 수락하는 단계를 포함한다. In one aspect, an efficient integrity verification method for the calculation results of CNN, a deep learning model based on convolution operation proposed in the present invention, is performed when the prover in the first verification step specifies a multivariate function related to the convolution operation. A step of transmitting a plurality of result values among the result values of a single variable function to a verifier, where the verifier in the first verification step checks the connectivity of the plurality of result values with the previous function, and the verifier proves a new random value. transmitting to the verifier, the prover in the second verification step transmitting a plurality of result values of another single variable function to the verifier, the verifier in the second verification step transmitting the plurality of result values and the transfer It includes performing a connectivity check with the function, the verifier transmitting a new random value to the prover, calculating a verification equation in the second verification step, and accepting the protocol if the verification equation is satisfied. do.

상기 제1 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 단계는 상기 검증자는 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 과정을 반복 수행한 후, 마지막으로 제1 검증단계의 검증식을 계산하고, 제2 검증단계로 이동한다. In the first verification step, the verifier performs a connectivity check between the plurality of result values and the previous function, and the verifier transmits a new random value to the prover. After performing a connectivity check and repeating the process of the verifier transmitting a new random value to the prover, finally, the verification equation for the first verification step is calculated, and the process moves to the second verification step.

상기 제1 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크 및 상기 제2 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크는 상기 복수 개의 결과값과 이전 함수에 대한 두 벡터의 관계를 체크하여 조건을 만족하면 1 만족하지 않으면 0을 출력하는 함수를 이용하고, 상기 함수는 발명을 실시하기 위한 구체적인 내용의 식(5)로 나타낼 수 있다. The verifier in the first verification step checks the connectivity between the plurality of result values and the previous function, and the verifier in the second verification step checks the connectivity between the plurality of result values and the previous function. A function is used that checks the relationship between the two vectors with respect to the previous function and outputs 1 if the condition is satisfied and 0 if the condition is not satisfied. The function can be expressed as Equation (5) for specific details for carrying out the invention.

본 발명의 실시예에 따른 식(5)의 함수를 사용하여 썸-체크 프로토콜을 적용한 컨볼루션 연산을 발명을 실시하기 위한 구체적인 내용의 식(6)으로 나타낼 수 있다. Using the function of Equation (5) according to an embodiment of the present invention, the convolution operation applying the thumb-check protocol can be expressed as Equation (6) with specific details for carrying out the invention.

본 발명의 실시예에 따른 썸-체크 프로토콜을 적용한 컨볼루션 연산검증기법은 썸메이션(Summation) 내의 함수들이 다중 선형 다항식들(Multi linear polynomial)의 곱으로서, 풀리 커넥티드(fully connected), 썸 풀링(Sum pooling), 쿼드러틱 액티베이션(Quadratic activation)으로 구성된 CNN 검증기법에 적용 가능하다.In the convolution operation verification technique applying the thumb-check protocol according to an embodiment of the present invention, the functions in the summation are products of multi linear polynomials, and are fully connected and thumb pooling. It can be applied to CNN verification techniques consisting of (Sum pooling) and Quadratic activation.

본 발명의 실시예들에 따른 컨볼루션 연산을 기반으로 하는 딥러닝 모델인 CNN의 연산결과에 대한 효율적인 무결성 검증 기법을 통해 Safetynet에서 문제가 되고 있는 컨볼루션을 위한 증명 생성 비용을 컨볼루션 연산의 수학적 특성을 활용하여 줄이고, 효율적으로 무결성 검증을 지원하는 CNN 모델의 핵심이 되는 무결성 검증 기법을 제공할 수 있다.Through an efficient integrity verification technique for the operation results of CNN, a deep learning model based on convolution operation according to embodiments of the present invention, the proof generation cost for convolution, which is a problem in Safetynet, can be reduced through the mathematical method of convolution operation. It is possible to provide an integrity verification technique that is the core of a CNN model that utilizes characteristics to reduce and efficiently supports integrity verification.

도 1은 종래기술에 따른 종래기술에 따른 나이브 접근 기법을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 컨볼루션 연산 기반 무결성 검증 기법을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 컨볼루션 연산을 기반으로 하는 딥러닝 모델인 CNN의 연산결과에 대한 효율적인 무결성 검증 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 썸-체크 프로토콜을 적용한 컨볼루션 검증 알고리즘을 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 컨볼루션, 풀리 커넥티드, 썸 풀링 및 쿼드러틱 액티베이션으로 구성된 CNN의 검증 프로토콜 알고리즘을 나타내는 도면이다.
1 is a diagram for explaining a naive access technique according to the prior art.
Figure 2 is a diagram for explaining an integrity verification technique based on a convolution operation according to an embodiment of the present invention.
Figure 3 is a flowchart illustrating an efficient integrity verification method for the operation results of CNN, a deep learning model based on convolution operation, according to an embodiment of the present invention.
Figure 4 is a diagram showing a convolution verification algorithm applying the thumb-check protocol according to an embodiment of the present invention.
Figure 5 is a diagram showing a verification protocol algorithm of a CNN consisting of convolution, fully connected, thumb pooling, and quadratic activation according to an embodiment of the present invention.

종래기술에 따르면, Safetynet에서 컨볼루션 연산을 검증하기 위해서 매트릭스 곱(Matrix multiplication)을 위한 썸-체크 프로토콜(Sum-check protocol)을 사용한다. Safetynet의 핵심 아이디어는 다음과 같다. 차원이 , 채널이 , 배치(batch)의 크기가 번째 레이어에 차원이 인 가중치 매트릭스(weight matrix)에 대한 컨볼루션 연산에 대한 결과로 차원에 채널 개를 가지는 번째 레이어가 나오며 이 컨볼루션 관계식을 2차원 매트릭스 곱 연산으로 변환 후 검증을 한다. 이때 정도의 증명자 연산량이 필요하게 된다. According to the prior art, the Sum-check protocol for matrix multiplication is used to verify the convolution operation in Safetynet. The core idea of Safetynet is as follows. dimension , the channel , the size of the batch is person The dimension in the second layer is As a result of the convolution operation on the weight matrix, in dimension channel having a dog The second layer appears, and this convolution equation is converted to a two-dimensional matrix multiplication operation and then verified. At this time A certain amount of prover computation is required.

이와 같은 컨볼루션 관계식을 2차원 매트릭스로 변환하는 과정에서 비효율이 발생할 수 있다. 따라서, 본 발명에서는 컨볼루션 관계식을 2차원 매트릭스로 변환하지 않고 3차원 배열 상태에서 검증할 수 있는 방법을 제안하고자 한다. 본 발명의 실시예에 따르면, 의 증명자 연산량만을 필요로 하여 Safetynet보다 더 효율적임을 확인할 수 있다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다. Inefficiencies may occur in the process of converting such convolution relations into a two-dimensional matrix. Therefore, the present invention proposes a method that can verify convolution relations in a three-dimensional array without converting them to a two-dimensional matrix. According to an embodiment of the present invention, It can be confirmed that it is more efficient than Safetynet by requiring only the amount of prover calculations. Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.

먼저, 본 발명의 실시예에서 사용되는 용어 및 기호를 설명한다. First, terms and symbols used in embodiments of the present invention will be explained.

(1) 수학적 구조/집합 (1) Mathematical structure/set

는 길이가 인 소수를 나타내며 는 모듈로(modulo) 인 유한체를 나타낸다. is the length represents a decimal number. is modulo represents a finite field.

볼드체 기호 는 각각 유한체 벡터 를 나타낸다. bold symbol are each finite field vector represents.

두 자연수 에 대해 서브스크립트(subscript 부터 까지 연속된 정수로 이루어진 벡터를 나타낸다. 즉 벡터 에 대해 가 성립한다. two natural numbers About subscript Is from Represents a vector made up of consecutive integers. i.e. vector About is established.

이하, 등장하는 log 기호는 밑이 2인 log를 나타낸다.Hereinafter, the log symbol that appears represents log with base 2.

매트릭스(Matrix) 의 첫 번째 행과 열은 으로 표기하며 앞의 인덱스(index)는 0부터 까지 차례로 번째 행을 나타내고, 뒤의 인덱스는 0부터 까지 차례로 번째 열을 나타낸다. Matrix The first row and column of It is expressed as , and the preceding index starts from 0. one by one until Indicates the th row, with subsequent indices starting from 0. one by one until Indicates the second column.

CNN(Convolutional Neural Network) 모델은 컨볼루션 연산을 사용하는 인공 신경망(Neural Network)이며 이미지 학습에 많이 사용되는 모델이다. 본 발명에서는 CNN 모델의 추론(inference) 과정, 즉 트레이닝 과정을 통해 모델이 결정되고 난 뒤 해당 모델을 통해 분류작업을 시도하는 과정에서 적용할 수 있다. CNN 모델은 각 레이어들을 이어주는 함수들로 구성되어 있으며 입력 값을 넣으면 각 함수를 통하여 여러 레이어를 거친 뒤 결과값을 출력하는 구조이다. 이때 사용되는 함수로는 컨볼루션(Convolution), 액티베이션(activation), 풀링(pooling), 풀리 커넥티드(fully connected) 들이 있다. The CNN (Convolutional Neural Network) model is an artificial neural network that uses convolution operations and is a widely used model for image learning. In the present invention, it can be applied in the inference process of a CNN model, that is, in the process of attempting a classification task through the model after the model is determined through the training process. The CNN model is composed of functions that connect each layer, and when an input value is input, it passes through several layers through each function and then outputs the result. Functions used at this time include convolution, activation, pooling, and fully connected.

본 발명에서는 CNN의 번째 레이어의 폭(width)과 높이(height)의 컴포넌트(component) 개수들을 로 나타내고 채널의 개수를 로 나타내며 배치(batch) 크기는 로 나타낼 것이다. 특히 본 발명은 쿼드러틱 액티베이션(Quadratic activation), 썸 풀링(Sum pooling)을 사용하여 컨볼루션 연산 이외의 함수에 대해서도 썸-체크 프로토콜(Sum-check protocol) 만을 이용하여 검증하도록 설계하였다.In the present invention, CNN The number of components for the width and height of the th layer It is expressed as and the number of channels is It is expressed as and the batch size is It will be expressed as In particular, the present invention was designed to use quadratic activation and sum pooling to verify functions other than convolution operations using only the sum-check protocol.

종래기술에 따른 CNN에서 사용되는 컨볼루션 연산은 2차원 컨볼루션 연산으로 가중치 매트릭스(Weight Matrix)가 움직이면서 내적하는 형태를 띄고 있다. 이전레이어를 나타내는 매트릭스(Matrix)를 , 가중치 매트릭스(weight Matrix)를 , 결과로 얻어지는 매트릭스를 라고 하면 다음 식을 만족한다: The convolution operation used in CNN according to the prior art is a two-dimensional convolution operation in which the weight matrix moves and performs an inner product. Matrix representing the previous layer , weight matrix , the resulting matrix is This satisfies the following equation:

식(1) Equation (1)

썸-체크 프로토콜은 다변수 함수에 대한 합에 대한 연산결과를 검증하는 프로토콜이다. 썸-체크 프로토콜은 검증하는데 드는 연산이 직접 연산을 하는 것의 log 수준으로 떨어지기 때문에 연산 검증 기법에 사용되는 빌딩 블록(building block) 중 하나이다. 썸-체크 프로토콜은 다변수함수 에 대해서 다음 연산에 대한 무결성을 검증하는 프로토콜이다: The thumb-check protocol is a protocol that verifies the result of the sum of a multivariate function. The thumb-check protocol is one of the building blocks used in computation verification techniques because the computation required for verification drops to the logarithm level of performing the computation directly. Thumb-check protocol is a multivariate function It is a protocol that verifies the integrity of the following operations:

식(2) Equation (2)

썸-체크 프로토콜은 매트릭스 곱을 검증하는데 적용될 수 있으며 매트릭스를 다중 선형 연장(Multi linear extension)을 통해 다변수 다항식으로 변환하여 썸-체크 프로토콜을 진행한다. 이때 Matrix M을 다중 선형 연장해서 얻어진 다변수 다항식도 으로 표기를 하였으며 다변수 다항식 은 2진 표현된 인덱스 벡터를 받아 인덱스에 해당하는 원소를 내는 함수이다. 즉 다변수함수 에 대해서 값은 Matrix M의 2번째 행 4번째 열의 원소 를 나타낸다. 매트릭스에 대한 다중 선형 연장은 유일성이 보장되며 널리 알려진 자연스러운 변환이기 때문에 다항식과 행렬 형태를 혼용하기도 한다. The thumb-check protocol can be applied to verify matrix products, and the matrix is converted into a multivariate polynomial through multi linear extension to proceed with the thumb-check protocol. At this time, the multivariate polynomial obtained by multiply linearly extending Matrix M is also It is written as a multivariate polynomial. is a function that receives an index vector expressed in binary form and returns an element corresponding to the index. That is, multivariate function about The value is the element of the 2nd row and 4th column of Matrix M. represents. Because multiple linear extensions to matrices guarantee uniqueness and are widely known natural transformations, polynomial and matrix forms are sometimes used interchangeably.

기본적으로 매트릭스는 대문자 알파벳으로 표시를 한다. 특히 매트릭스 는 정방단위행렬을 나타내고 매트릭스 는 다음을 만족하는 매트릭스로 다음을 만족한다.By default, matrices are displayed in uppercase letters. especially the matrix represents the square identity matrix and matrix satisfies the following: The matrix satisfies the following:

식(3) Equation (3)

도 1은 종래기술에 따른 종래기술에 따른 나이브 접근 기법을 설명하기 위한 도면이다. 1 is a diagram for explaining a naive access technique according to the prior art.

종래기술에 따른 나이브 접근(Naive approach) 기법은 Safetynet에서 사용하는 방법으로 앞서 말한 바와 같이 3차원 형태의 배열로 이루어진 레이어들을 일렬로 늘어뜨려 컨볼루션 연산을 두 매트릭스의 곱으로 표현을 한 후 매트릭스 곱에 대한 썸-체크를 사용한다. 매트릭스 곱에 대한 썸-체크에서 증명자가 해야 하는 연산은 매트릭스의 크기에 비례하기 때문에 가운데 가중치 매트릭스의 크기인 에 비례하게 된다. 이때, 2차원 매트릭스로 변환하는 과정에서 크기가 커지기 때문에 해당 변환을 거치지 않으면서 썸-체크 기법을 사용하는 기법이 필요하다. Naive approach according to the prior art is a method used in Safetynet. As mentioned above, layers consisting of a three-dimensional array are lined up in a row, and the convolution operation is expressed as the product of two matrices, and then the matrix product is performed. Use a thumb-check for . In the thumb-check for matrix multiplication, the operation that the prover must perform is proportional to the size of the matrix, so the size of the center weight matrix is It becomes proportional to At this time, since the size increases in the process of converting to a two-dimensional matrix, a technique that uses the thumb-check technique without going through the conversion is needed.

도 2는 본 발명의 일 실시예에 따른 컨볼루션 연산 기반 무결성 검증 기법을 설명하기 위한 도면이다. Figure 2 is a diagram for explaining an integrity verification technique based on a convolution operation according to an embodiment of the present invention.

본 발명에서는 레이어를 변환하지 않고 그대로 가지고 있는 상태에서 포지션(Position)을 나타내는 벡터를 도입해 식을 다시 표현한다. 즉 번째 레이어의 특징 맵(feature map) , 가중치 매트릭스 그리고 컨볼루션으로 얻어진 번째 레이어를 이라고 하면 다음 식을 만족한다: In the present invention, the equation is re-expressed by introducing a vector representing the position without converting the layer. in other words Feature map of the th layer , weight matrix And obtained by convolution the second layer This satisfies the following equation:

식(4) Equation (4)

여기서 사각형 덧셈기호 는 두 벡터의 이진 덧셈을 의미한다. 이진 덧셈은 선형 연산이 아니기 때문에 해당 매트릭스를 다중 선형 연장하게 되면 연산 보존이 되지 않는다는 문제가 있기 때문에 다른 방법을 사용해야 한다. Here, the square plus sign means binary addition of two vectors. Since binary addition is not a linear operation, if the matrix is multi-linearly extended, there is a problem that the operation is not preserved, so another method must be used.

본 발명에서는 이러한 문제점을 해결하기 위해 두 벡터의 관계를 체크하여 조건을 만족하면 1 만족하지 않으면 0을 출력하는 새로운 함수를 도입한다. 새로 도입한 함수는 다음과 같다: In order to solve this problem, the present invention introduces a new function that checks the relationship between two vectors and outputs 1 if the condition is satisfied, and 0 if not. The newly introduced functions are as follows:

식(5) Equation (5)

상기 함수를 사용하여 컨볼루션 연산을 표현하면 다음과 같다: The convolution operation can be expressed using the above function as follows:

식(6) Equation (6)

상기 식에 대해서는 썸메이션(Summation) 내의 함수들이 다중 선형 다항식들(Multi linear polynomial)의 곱이기 때문에 썸-체크 프로토콜을 적용할 수 있다. 여기서 이다. For the above equation, the sum-check protocol can be applied because the functions in the summation are products of multi linear polynomials. here am.

도 3은 본 발명의 일 실시예에 따른 컨볼루션 연산을 기반으로 하는 딥러닝 모델인 CNN의 연산결과에 대한 효율적인 무결성 검증 방법을 설명하기 위한 흐름도이다.Figure 3 is a flowchart illustrating an efficient integrity verification method for the operation results of CNN, a deep learning model based on convolution operation, according to an embodiment of the present invention.

제안하는 컨볼루션 연산을 기반으로 하는 딥러닝 모델인 CNN의 연산결과에 대한 효율적인 무결성 검증 방법은 제1 검증단계(310) 및 제2 검증단계(320)를 포함한다. The efficient integrity verification method for the operation results of CNN, a deep learning model based on the proposed convolution operation, includes a first verification step (310) and a second verification step (320).

먼저 제1 검증단계(310)는, 제1 검증단계에서의 증명자가 컨볼루션 연산에 관한 다변수 함수에서 특정 일변수함수의 결과값 중 복수 개의 결과값을 검증자에게 전송하는 단계(311), 제1 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 단계(312)를 포함한다. First, in the first verification step 310, the prover in the first verification step transmits to the verifier a plurality of result values among the result values of a specific univariate function in the multivariate function related to the convolution operation (311), In the first verification step, the verifier checks the connectivity of the plurality of result values with the previous function, and the verifier transmits a new random value to the prover (312).

먼저 입력으로는 레이어랑 가중 매트릭스의 차원인 와 보안 파라미터(security parameter)를 담고 있는 공용 파라미터(public parameter)와 특징 맵 매트릭스(feature map matrix) , 가중 매트릭스 , 랜덤하게 생성된 그리고 출력 레이어의 매트릭스를 다중 선형 연장한 다변수 함수에 해당 랜덤값을 대입한 결과값 가 있다. First, the input is the dimensions of the layer and weight matrix. and a public parameter and feature map matrix containing security parameters. , weighted matrix , randomly generated And the result of substituting the corresponding random value into a multivariate function that is a multi-linear extension of the matrix of the output layer. There is.

단계(311)에서, 제1 검증단계에서의 증명자가 컨볼루션 연산에 관한 다변수 함수에서 특정 일변수함수의 결과값 중 복수 개의 결과값을 검증자에게 전송한다. In step 311, the prover in the first verification step transmits to the verifier a plurality of result values among the result values of a specific univariate function in the multivariate function related to the convolution operation.

본 발명의 실시예에 따르면, 다변수 함수 에 대한 썸-체크 방법의 일종으로 증명자가 컨볼루션 연산에 관한 다변수함수 에서 번째 변수만 남긴 일변수함수 의 결과값 3개 를 전송한다. According to an embodiment of the present invention, a multivariate function It is a type of thumb-check method for , where the prover is a multivariate function related to the convolution operation. at A single variable function that leaves only the first variable 3 results transmit.

단계(320)에서, 제1 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송한다. In step 320, the verifier in the first verification step checks the connectivity of the plurality of result values with the previous function, and the verifier transmits a new random value to the prover.

상기 검증자는 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값 을 증명자에게 전송하는 과정을 반복 수행한 후, 마지막으로 제1 검증단계의 검증식()을 계산하고, 제2 검증단계로 이동한다. The verifier performs a connectivity check between the plurality of result values and the previous function, and the verifier selects a new random value. After repeating the process of transmitting to the prover, finally, the verification formula of the first verification step ( ) is calculated and moves to the second verification step.

제2 검증단계(320)는, 제2 검증단계에서의 증명자가 또 다른 일변수함수의 결과값 중 복수 개의 결과값을 검증자에게 전송하는 단계(321), 제2 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 단계(322) 및 제2 검증단계에서의 검증식을 계산하고, 상기 검증식을 만족할 경우 검증자가 해당 프로토콜을 수락하는 단계(323)를 포함한다. In the second verification step 320, the prover in the second verification step transmits a plurality of result values of another one-variable function to the verifier (321), and the verifier in the second verification step transmits the above results to the verifier. Checking the connectivity of a plurality of result values and the previous function, the verifier transmits a new random value to the prover (322), calculating the verification equation in the second verification step, and verifying if the verification equation is satisfied. It includes a step 323 in which the user accepts the protocol.

단계(321)에서, 제2 검증단계에서의 증명자가 또 다른 일변수함수의 결과값 중 복수 개의 결과값을 검증자에게 전송한다. In step 321, the prover in the second verification step transmits a plurality of result values of another one-variable function to the verifier.

단계(322)에서, 제2 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송한다. In step 322, the verifier in the second verification step checks the connectivity of the plurality of result values with the previous function, and the verifier transmits a new random value to the prover.

단계(323)에서, 제2 검증단계에서의 검증식을 계산하고, 상기 검증식을 만족할 경우 검증자가 해당 프로토콜을 수락한다. In step 323, the verification equation in the second verification step is calculated, and if the verification equation is satisfied, the verifier accepts the protocol.

상기 제1 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크 및 상기 제2 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크는 상기 복수 개의 결과값과 이전 함수에 대한 두 벡터의 관계를 체크하여 조건을 만족하면 1 만족하지 않으면 0을 출력하는 함수를 이용하고, 상기 함수는 상기 식(5)으로 나타낼 수 있다. The verifier in the first verification step checks the connectivity between the plurality of result values and the previous function, and the verifier in the second verification step checks the connectivity between the plurality of result values and the previous function. A function is used that checks the relationship between the two vectors with respect to the previous function and outputs 1 if the condition is satisfied, and 0 if the condition is not satisfied. The function can be expressed as Equation (5) above.

본 발명의 실시예에 따르면, 상기 식(5)를 사용하여 썸-체크 프로토콜을 적용한 컨볼루션 연산을 하기 식(6)으로 나타낼 수 있다. According to an embodiment of the present invention, a convolution operation applying the thumb-check protocol can be expressed as the following equation (6) using equation (5).

본 발명의 실시예에 따른 썸-체크 프로토콜을 적용한 컨볼루션 연산은 썸메이션(Summation) 내의 함수들이 다중 선형 다항식들(Multi linear polynomial)의 곱이므로, 풀리 커넥티드(fully connected), 썸 풀링(Sum pooling), 쿼드러틱 액티베이션(Quadratic activation)을 위한 썸-체크 프로토콜 적용이 가능하다. The convolution operation using the thumb-check protocol according to an embodiment of the present invention is fully connected and sum pooling because the functions in the summation are products of multi linear polynomials. It is possible to apply the thumb-check protocol for pooling and quadratic activation.

도 4는 본 발명의 일 실시예에 따른 썸-체크 프로토콜을 적용한 컨볼루션 알고리즘을 나타내는 도면이다. Figure 4 is a diagram showing a convolution algorithm applying the thumb-check protocol according to an embodiment of the present invention.

식(6)에 대해 썸-체크 프로토콜을 적용한 컨볼루션 알고리즘은 도 4와 같다.The convolution algorithm applying the thumb-check protocol to equation (6) is shown in Figure 4.

먼저 해당 알고리즘의 입력으로는 레이어랑 가중 매트릭스의 차원인 와 보안 파라미터(security parameter)를 담고 있는 공용 파라미터(public parameter)와 특징 맵 매트릭스(feature map matrix) , 가중 매트릭스 , 랜덤하게 생성된 그리고 출력 레이어의 매트릭스를 다중 선형 연장한 다변수 함수에 해당 랜덤값을 대입한 결과값 가 있다. First, the inputs to the algorithm are the dimensions of the layer and weight matrix. and a public parameter and feature map matrix containing security parameters. , weighted matrix , randomly generated And the result of substituting the corresponding random value into a multivariate function that is a multi-linear extension of the matrix of the output layer. There is.

첫 번째 스텝은 다변수 함수 에 대한 썸-체크 방법의 일종으로 증명자가 다변수함수 에서 번째 변수만 남긴 일변수함수 의 결과값 3개 를 보내면(1행, 4행), 검증자는 해당 값들이 이전 함수와의 연결성 체크를 하고 새로운 랜덤값 를 증명자에게 보내고 이 과정을 반복한다(2행, 5행). 해당 과정을 반복한 뒤에 검증자는 을 계산한 후(6행), 두 번째 스텝으로 진입한다. The first step is a multivariate function It is a type of thumb-check method for which the prover is a multivariate function. at A single variable function that leaves only the first variable 3 results is sent (lines 1 and 4), the verifier checks the connectivity of the values with the previous function and generates a new random value. is sent to the prover and this process is repeated (lines 2 and 5). After repeating the process, the verifier After calculating (line 6), enter the second step.

두 번째 스텝도 썸-체크 프로토콜로서 상기 방법과 유사하게 진행된다. 증명자가 함수값을 보내면(7행, 10행), 검증자가 확인하고 랜덤값을 보내고(8행, 11행), 이후 마지막에 검증자가 검증식(12행)을 체크한 뒤 모든 검증을 통과하면 검증자는 해당 프로토콜을 수락한다.The second step is also a thumb-check protocol and proceeds similarly to the above method. When the prover sends the function value (lines 7 and 10), the verifier checks it and sends a random value (lines 8 and 11). Finally, the verifier checks the verification expression (line 12) and passes all verifications. The verifier accepts the protocol.

해당 프로토콜은 컨볼루션 레이어의 연산 검증을 하는 프로토콜이며 해당 프로토콜을 기반으로 CNN모델 전체에 대한 연산 검증 프로토콜을 설계할 수 있다. 본 발명인 컨볼루션 알고리즘과 Safetynet에서 사용된 풀리 커넥티드(fully connected), 썸 풀링(Sum pooling), 쿼드러틱 액티베이션(Quadratic activation) 검증 기법을 결합하여 Convolution - Quadratic activation - Sum pooling - fully connected 로 구성된 CNN의 검증 프로토콜은 도 5와 같다.This protocol is a protocol that verifies the operation of the convolution layer, and based on this protocol, an operation verification protocol for the entire CNN model can be designed. By combining the inventor's convolution algorithm with the fully connected, sum pooling, and quadratic activation verification techniques used in Safetynet, a CNN consisting of Convolution - Quadratic activation - Sum pooling - fully connected The verification protocol is shown in Figure 5.

도 5는 본 발명의 일 실시예에 따른 컨볼루션, 풀리 커넥티드, 썸 풀링 및 쿼드러틱 액티베이션으로 구성된 CNN의 검증 프로토콜 알고리즘을 나타내는 도면이다.Figure 5 is a diagram showing a verification protocol algorithm of a CNN consisting of convolution, fully connected, thumb pooling, and quadratic activation according to an embodiment of the present invention.

해당 알고리즘의 입력으로는 레이어랑 가중 매트릭스의 차원인 와 분류 클래스 수(Class number) , 보안 파라미터(security parameter)를 담고 있는 공용 파라미터(public parameter)와 검증하고자 하는 CNN의 입력 레이어 매트릭스(input layer matrix) 및 출력 레이어 매트릭스(output layer matrix) , 은닉 레이어 매트릭스(hidden layer matrix),,, 컨볼루션 가중 매트릭스 , 풀리 커넥티드 가중 매트릭스 가 있다.The inputs to the algorithm are the dimensions of the layer and weight matrix. and classification class number , public parameters containing security parameters and the input layer matrix of the CNN to be verified. and output layer matrix , hidden layer matrix , , , convolutional weighted matrix , fully connected weighted matrix There is.

도 5의 풀리 커넥티드를 위한 썸-체크, 썸 풀링을 위한 썸-체크, 쿼드러틱 액티베이션을 위한 썸-체크는 Safetynet의 아이디어를 적용한 것으로 각각 썸-체크 프로토콜로 구성되어 있다. 각 단계마다 순서대로 썸-체크 프로토콜을 사용하여 증명자는 함수값 3개를 검증자에게 보내고 검증자는 연산관계를 확인 후 증명자에게 랜덤값을 보내는 과정을 반복한 후 마지막에 최종 관계식을 검증하는 방식으로 진행된다. 도 5의 알고리즘을 활용하여 더 복잡한 CNN 모델에 대해서도 검증 프로토콜 구상이 가능하다. The thumb-check for pulley connection, thumb-check for thumb pulling, and thumb-check for quadratic activation in FIG. 5 apply the idea of Safetynet and each consists of a thumb-check protocol. Using the thumb-check protocol in order at each step, the prover sends three function values to the verifier, and the verifier checks the operational relationship and repeats the process of sending a random value to the prover, and finally verifies the final relationship. It proceeds as follows. Using the algorithm in Figure 5, it is possible to design a verification protocol even for more complex CNN models.

현재 클라우드 컴퓨팅을 이용한 딥러닝 서비스가 Amazon, Microsoft 등에서 제공되고 있으나 클라우드 컴퓨팅을 통한 연산결과에 대한 무결성 검증에 대해서는 기술적 문제 및 인식 부족으로 인해 실제 서비스되는 사례는 없는 상태이다. 하지만 클라우드 컴퓨팅을 통한 연산 무결성 검증은 서비스 제공자의 신뢰 및 유저의 권리 차원에서 필요한 기술이다. Currently, deep learning services using cloud computing are provided by Amazon, Microsoft, etc., but there are no cases of actual service due to technical problems and lack of awareness regarding integrity verification of computational results through cloud computing. However, computational integrity verification through cloud computing is a necessary technology in terms of trust in service providers and user rights.

본 발명이 실용화되기 위해서는 효율성, 특히 서버에서 연산결과에 대한 증명을 생성하는 비용이 작은 것이 중요하다. 증명을 생성하는 것이 유저가 요청한 연산을 하는 것에 비해 너무 크면 서비스 제공자 입장에서 해당 기술 도입을 꺼릴 수밖에 없기 때문이다. In order for the present invention to be put into practical use, it is important to have efficiency, especially the low cost of generating a proof for the calculation result on the server. This is because if the cost of generating a proof is too large compared to performing the calculation requested by the user, the service provider will inevitably be reluctant to introduce the technology.

따라서 본 발명은 CNN 모델에 대한 위탁연산 서비스 제공자가 수행해야 하는 증명 생성을 기존 기법에 비해 간결하게 진행할 수 있다는 강점을 가져 무결성 위탁연산 서비스 제공자의 연산 부담을 덜어줄 수 있다. Therefore, the present invention has the advantage of being able to produce proofs that must be performed by the entrusted computation service provider for the CNN model more simply than existing techniques, thereby reducing the computational burden on the integrity entrusted computation service provider.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented with hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It may be implemented using one or more general-purpose or special-purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. A processing device may execute an operating system (OS) and one or more software applications that run on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, a single processing device may be described as being used; however, those skilled in the art will understand that a processing device includes multiple processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, a processing device may include a plurality of processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. It can be embodied in . Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.  The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes optical media (magneto-optical media) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, various modifications and variations can be made by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or other components are used. Alternatively, appropriate results may be achieved even if substituted or substituted by an equivalent.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims also fall within the scope of the claims described below.

Claims (5)

컨볼루션 연산 기반 무결성 검증 방법을 수행하기 위한 딥러닝 모델을 통해 제1 검증단계에서의 증명자가 컨볼루션 연산에 관한 다변수 함수에서 특정 일변수함수의 결과값 중 복수 개의 결과값을 검증자에게 전송하는 단계;
상기 딥러닝 모델을 통해 제1 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 단계;
상기 딥러닝 모델을 통해 제2 검증단계에서의 증명자가 또 다른 일변수함수의 결과값 중 복수 개의 결과값을 검증자에게 전송하는 단계;
상기 딥러닝 모델을 통해 제2 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 단계; 및
상기 딥러닝 모델을 통해 제2 검증단계에서의 검증식을 계산하고, 상기 검증식을 만족할 경우 검증자가 해당 프로토콜을 수락하는 단계
를 포함하고,
상기 제1 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크 및 상기 제2 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크는 상기 복수 개의 결과값과 이전 함수에 대한 두 벡터의 관계를 체크하여 조건을 만족하면 1 만족하지 않으면 0을 출력하는 함수를 이용하고, 상기 함수는 하기 식(c-1)으로 나타내는
식(c-1)
컨볼루션 연산 기반 무결성 검증 방법.
Through a deep learning model to perform a convolution operation-based integrity verification method, the prover in the first verification stage transmits a plurality of result values of a specific univariate function to the verifier in a multivariate function related to the convolution operation. steps;
A verifier in a first verification step checks connectivity between the plurality of result values and a previous function through the deep learning model, and the verifier transmits a new random value to the prover;
A prover in a second verification step transmitting a plurality of result values of another one-variable function to a verifier through the deep learning model;
A verifier in a second verification step checks connectivity between the plurality of result values and a previous function through the deep learning model, and the verifier transmits a new random value to the prover; and
Calculating a verification equation in the second verification step through the deep learning model, and if the verification equation is satisfied, the verifier accepts the protocol.
Including,
The verifier in the first verification step checks the connectivity between the plurality of result values and the previous function, and the verifier in the second verification step checks the connectivity between the plurality of result values and the previous function. Use a function that checks the relationship between the two vectors with respect to the previous function and outputs 1 if the condition is satisfied and 0 if it is not satisfied, and the function is expressed as the following equation (c-1)
Equation (c-1)
Integrity verification method based on convolution operation.
제1항에 있어서,
상기 딥러닝 모델을 통해 상기 제1 검증단계에서의 검증자가 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 단계는,
상기 검증자는 상기 복수 개의 결과값과 이전 함수와의 연결성 체크를 수행하고, 검증자가 새로운 랜덤값을 증명자에게 전송하는 과정을 반복 수행한 후, 마지막으로 제1 검증단계의 검증식을 계산하고, 제2 검증단계로 이동하는
컨볼루션 연산 기반 무결성 검증 방법.
According to paragraph 1,
The step of the verifier in the first verification step checking the connectivity of the plurality of result values and the previous function through the deep learning model, and the verifier transmitting a new random value to the prover,
The verifier checks the connectivity of the plurality of result values with the previous function, repeats the process of the verifier transmitting a new random value to the prover, and finally calculates the verification equation of the first verification step, Moving to the second verification stage
Integrity verification method based on convolution operation.
삭제delete 제1항에 있어서,
상기 함수를 사용하여 썸-체크 프로토콜을 적용한 컨볼루션 연산을 하기 식(c-2)으로 나타내고,
식(c-2)
여기서, 번째 레이어의 특징 맵은 , 가중치 매트릭스는 및 컨볼루션 연산으로 획득한 번째 레이어는 일 때, 상기 컨볼루션 연산을 만족하는
컨볼루션 연산 기반 무결성 검증 방법.
According to paragraph 1,
The convolution operation applying the thumb-check protocol using the above function is expressed as the following equation (c-2),
Equation (c-2)
here, The feature map of the th layer is , the weight matrix is and obtained by convolution operation. The second layer is When, satisfying the above convolution operation
Integrity verification method based on convolution operation.
제4항에 있어서,
상기 썸-체크 프로토콜을 적용한 컨볼루션 연산 기반 무결성 검증은,
썸메이션(Summation) 내의 함수들이 다중 선형 다항식들(Multi linear polynomial)의 곱으로서, 풀리 커넥티드(fully connected), 썸 풀링(Sum pooling), 쿼드러틱 액티베이션(Quadratic activation)으로 구성된 CNN 검증기법에 적용가능한
컨볼루션 연산 기반 무결성 검증 방법.
According to clause 4,
Integrity verification based on convolution operation applying the thumb-check protocol is,
The functions in Summation are products of multi linear polynomials and are applied to CNN verification techniques consisting of fully connected, sum pooling, and quadratic activation. possible
Integrity verification method based on convolution operation.
KR1020210187604A 2021-12-24 2021-12-24 Efficient Verifiable Convolutional Neural Netwrok Model KR102654687B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210187604A KR102654687B1 (en) 2021-12-24 2021-12-24 Efficient Verifiable Convolutional Neural Netwrok Model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210187604A KR102654687B1 (en) 2021-12-24 2021-12-24 Efficient Verifiable Convolutional Neural Netwrok Model

Publications (2)

Publication Number Publication Date
KR20230097779A KR20230097779A (en) 2023-07-03
KR102654687B1 true KR102654687B1 (en) 2024-04-05

Family

ID=87157537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210187604A KR102654687B1 (en) 2021-12-24 2021-12-24 Efficient Verifiable Convolutional Neural Netwrok Model

Country Status (1)

Country Link
KR (1) KR102654687B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020091656A (en) * 2018-12-05 2020-06-11 Kddi株式会社 Learning device, learning system, learning method, and learning program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10373025B1 (en) 2019-01-28 2019-08-06 StradVision, Inc. Method and device for verifying integrity of parameters of CNN by using test pattern to enhance fault tolerance and fluctuation robustness in extreme situations for functional safety

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020091656A (en) * 2018-12-05 2020-06-11 Kddi株式会社 Learning device, learning system, learning method, and learning program

Also Published As

Publication number Publication date
KR20230097779A (en) 2023-07-03

Similar Documents

Publication Publication Date Title
Chen et al. Hyperplonk: Plonk with linear-time prover and high-degree custom gates
CN108073983B (en) Performing core crossing in hardware
KR102170105B1 (en) Method and apparatus for generating neural network structure, electronic device, storage medium
CN109923559B (en) Quasi-cyclic neural network
TWI739225B (en) Method and computer storage medium for performing neural network computations, and neural network system
Yarlagadda et al. Hadamard matrix analysis and synthesis: with applications to communications and signal/image processing
KR102553775B1 (en) Pairing-based zero-knowledge proof protocol system for proves and verifies calculation results
CN115577790B (en) Hamiltonian amount simulation method, device, equipment and storage medium
CN114492759A (en) Sparse attention neural network
CN115664899A (en) Channel decoding method and system based on graph neural network
KR102654687B1 (en) Efficient Verifiable Convolutional Neural Netwrok Model
CN114358023A (en) Intelligent question-answer recall method and device, computer equipment and storage medium
Yoon et al. Learning polymorphic Neural ODEs with time-evolving mixture
Canales-Martínez et al. Polynomial time cryptanalytic extraction of neural network models
Chen et al. Factoring multivariate polynomials represented by black boxes: A Maple+ C Implementation
JPWO2019092900A1 (en) Information processing apparatus and information processing method
Bernard et al. New techniques for inferring L-systems using genetic algorithm
CN109818944B (en) Cloud data outsourcing and integrity verification method and device supporting preprocessing
Wen et al. Sparse solution of nonnegative least squares problems with applications in the construction of probabilistic Boolean networks
CN111788584A (en) Neural network computing method and device
US11461645B2 (en) Initialization of memory networks
CN109670158B (en) Method and device for generating text content according to information data
CN112949841A (en) Attention-based CNN neural network training method
Wicaksono et al. Implementation of Shor’s quantum factoring algorithm using projectQ framework
CA3140980A1 (en) Systems for emulating a quantum computer and methods for use therewith

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant