전체 글(87)
-
LWE, Lattice, Reduction 이해하기
📘 LWE, Lattice, Reduction 이해하기1. LWE (Learning With Errors)정의문제: 비밀 벡터 s ∈Zqn를 찾는 문제.주어진 식은 정확하지 않고 작은 오차(error) 가 포함된 선형방정식들.(a, a⋅s+e) where a∈Zqn, e∼χ목표: 여러 샘플로부터 비밀 s를 추측.왜 어려운가?오차가 없다면 → 가우스 소거법으로 쉽게 풀림.오차가 있으면 → 소거 과정에서 잡음이 증폭되어 비밀을 알아낼 수 없음.활용양자 이후(Post-Quantum) 암호의 핵심 기반:키 캡슐화 (KEM), 전자서명동형암호, 속성 기반 암호영지식증명2. Lattice (격자)정의격자(Lattice): 선형독립 벡터 e1,…,em로 생성된 이산 집합.벡터공간과 유사하지만 불연속적(discre..
2025.09.09 -
보안 예비 지식 (Preliminaries)
1. 나눗셈 정리 (Division Theorem)정의임의의 정수 a, 양의 정수 n에 대해,유일한 정수 q,r이 존재하여 다음을 만족: a=nq+r, 0≤rq: 몫(quotient)r: 나머지(remainder)예시a=39, n=7 ⇒ q=5, r=4 a = 39, 39 = 7 × 5 + 4.2. 자연수의 최소원리 (Well-Ordering Principle)정의자연수 집합 N의 임의의 공집합이 아닌 부분집합 S는 최소 원소 m을 가진다.∀S⊆N, S≠∅ ⇒ ∃m∈S s.t. ∀s ∈ S, m≤s활용나눗셈 정리와 같은 기본 정리를 증명하는 데 사용.3. 합동 (Congruence)정의m≥1인 정수에 대해, 두 정수 a, b가 mod m에서 합동이면:a ≡ b (mod m) ⇔ m ∣ (a−b)..
2025.09.09 -
spring 환경설정
최근에는 IntelliJ, springboot, Gradle을 많이 쓰는 추세이다.라이브러리 살펴보기Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다. 스프링 부트 라이브러리spring-boot-starter-webspring-boot-starter-tomcat: 톰캣 (웹서버) spring-webmvc: 스프링 웹 MVC spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View) spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅spring-boot spring-core spring-boot-starter-logging logback, slf4j 테스트 라이브러리spring-boot-starter-test junit: 테스트 프레임..
2025.09.08 -
변수
패키지(package)- 패키지는 지금 단계에서는 자바 파일을 구분하기 위한 폴더로 이해하면 된다.- `variable` 라는 패키지를 만들었다면, 해당 패키지에 들어가는 자바 파일 첫줄에 `package variable;` 와 같 이 소속된 패키지를 선언해주어야 한다.- 자바 파일이 위치하는 패키지와 `package variable` 선언 위치가 같아야 한다. int a- 숫자 정수( `integer` )를 보관할 수 있는 이름이 `a` 라는 데이터 저장소를 만든다. 이것을 변수라 한다. - 이렇게 변수를 만드는 것을 변수 선언이라 한다. - 이제 변수 `a` 에는 숫자 정수를 보관할 수 있다. - 숫자 정수 뿐만 아니라 문자, 소수와 같이 다양한 종류 값을 저장할 수 있는 변수들이 있다. 우선은 숫자..
2025.09.08 -
리눅스에서 빈번하게 마주치는 권한 문제(Permission Denied)
Permission Denied 에러 마주치는 경우- 무지성으로 sudo 를 붙이게 되면, 에러를 디버깅할 때 어느 순간 발목이 붙잡히게 된다.- 그러니 에러 원인과 해결방법을 알아야 한다. 사용자(user), 슈퍼 사용자(super user)란?✅ 컴퓨터에 생성되어 있는 모든 사용자 계정 조회하기$ cat /etc/passwd ✅ 리눅스에서의 사용자 유형리눅스에서 사용자 유형은 크게 3가지 종류로 나뉜다.- 슈퍼 사용자 (관리자) : 시스템의 모든 권한을 가진 계정어떠한 제한도 없이 모든 명령어를 실행시킬 수 있으며 모든 파일을 조작할 수 있다.(안전을 위헤, 평소에는 일반사용자 계정을 사용하는 것을 추천한다.)일반적으로 root 계정이 슈퍼 사용자로 설정되어 있다.- 일반 사용자권한이 허용된 명령어만..
2025.09.08 -
파일을 작성/조회할 때 자주 사용하는 명령어
리눅스에서 가장 많이 사용하는 텍스트 에디터 (vim)- vscode, intellij 등 여러가지가 있지만, 리눅스에서는 vim을 쓴다.- 리눅스 환경에서는 리눅스 환경에 최적화된 텍스트 에디터를 주로 사용한다.vim = vinanoemacs등등vim 에디터 기본 사용법 - 1- vi app.txt: 파일이 없다면 생성, 있다면 조회를 하게 된다.- 파일 수정할 때, i를 눌러 insert모드로 들어간다.- 파일 수정을 다했을 땐, esc를 통해 command모드로 들어간다.- :wq를 누르면 수정한대로 수정이 되어 저장된다.- :q를 누르면 수정이 되지 않고 저장된다. vim 에디터 기본 사용법 - 2- No write sice last change (add ! to override) => :q!로 ..
2025.09.06