username1103의 등록된 링크

 username1103로 등록된 네이버 블로그 포스트 수는 178건입니다.

XSS(Cross site scripting) [내부링크]

XSS란 cross site scripting의 약자로 웹페이지 내에서 사용자의 입력값에 대한 적절한 조치를 취하지 ...

virtualbox ubuntu 저장소 용량 늘리기 [내부링크]

저장소용량을 30GB로 늘리는 방법 1. 가상 크기 늘리기 2. 실제 크기 늘리기 2-1. Gparted설치 2-2. Gp...

[docker] docker란 [내부링크]

docker는 가상화 container에 application 배포를 자동화 시켜주는 오픈 소스 엔진이다. 가상화 머신을 사...

[docker] 컨테이너 관련 명령어 모음 [내부링크]

1. 실행중인 컨테이너 내부로 들어가기 2. 컨테이너 로그 확인하기 * options --tail [숫자] : 밑에서 숫자...

RBAC(Role-Based Access Control) [내부링크]

RBAC(Role-Based Access Control)이란 사용자들이 가지는 역할을 기반으로 접근 결정을 내리는 제...

로드밸런싱(load balancing)이란? [내부링크]

로드밸런싱이란? 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 ...

클러스터링(Clustering)이란? [내부링크]

클러스터링이란? 클러스터링이란 여러 대의 컴퓨터를 서로 연결하여 하나의 컴퓨터처럼 사용하는 것을 말한...

[MongoDB] Index란? [내부링크]

Index란? MongoDB는 데이터를 검색할 때, 모든 데이터를 서치하는 형식으로 데이터를 찾아낸다. 이러한...

[MongoDB] MongoDB CRUD [내부링크]

MongoDB는 database, collection, document로 이루어져 있다. 하나의 database안에는 여러개의 collecti...

Index란? [내부링크]

Index란? 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조를 ...

HTTP method(GET, POST, PUT, PATCH, DELETE) [내부링크]

HTTP method에는 GET, POST, PUT, PATCH, DELETE가 있습니다. 말 그대로 GET...

[Express] express-rate-limit [내부링크]

express-rate-limit이란 동일 ip에서 정해진 시간 동안 보낼수 있는 요청의 수를 제한할 수 있는 모듈이다....

jest란 [내부링크]

jest란 javascript test코드 작성을 도와주는 모듈이다. 설치 package.json 에서 script부분에 아래와 같이...

[Mongoose] mongoDB사용하기 with Mongoose [내부링크]

1. 설치 2. mongodb 연결하기 MongoDB에 Test 데이터베이스와 연결 3. 스키마 정의 4. 모델 생성 5. D...

[Mongoose] Schema [내부링크]

Mongoose는 Schema를 정의해 사용한다. - Schema의 특징 1. _id : Mongoose에서는 기본적으로 Schema...

[Express] morgan이란 [내부링크]

https://www.npmjs.com/package/morgan express-generator로 express서버를 생성하게 되면 morgan이라는 미...

[Express] express-validator란 [내부링크]

express-validator는 서버에 들어오는 요청에 대한 유효성을 쉽게 체크할 수 있도록 도와주는 미들웨어 입...

[Express] dotenv란 [내부링크]

dotenv는 환경변수를 .env파일에 저장하고 process.env로 로드하는 모듈이다. 데이터베이스 서버주소, AP...

[Express] moment란 [내부링크]

moment는 날짜 관련 모듈로 시간들의 연산이나 format을 바꾸거나 할 때 유용하다. 따라서 토큰을 생성할 ...

Mongoose 다른 데이터베이스 모델 참조하기(cross-database populate) [내부링크]

위와 같이 2개의 데이터베이스에 접근하고 있다고 했을 때 위와 같이 스키마가 구성되어 있다고 하자. 서로...

keras모델 tflite로 변환하기 [내부링크]

1. 생성한 모델 h5형식으로 저장하기 2. 모델 tflite형식으로 변환하기

keras 모델 tensorflowjs로 변환 [내부링크]

1. 모델 저장하기 (h5형식) 2. tensorflowjs 설치 3. h5형식의 모델을 json형식으로 변환 ( 모델을 넣을 폴...

tflite 모델 안드로이드에서 사용하기 [내부링크]

0. 모델 tflite 형식으로 변환 1. 안드로이드 스튜디오 실행 2. app/src/main/assets 폴더 생성 후 tflite...

python으로 만든 keras모델 express서버에서 사용하기 [내부링크]

1. 파이썬을 통해 만든 keras모델 저장하기(h5 형식으로 저장) 2. tensorflowjs 설치 3. h5형식의 모델을 j...

파이썬 아나콘다 CondaHTTPError 해결 [내부링크]

아나콘다에서 가상환경을 만들기 위해서 아래와 같이 입력했다. condaHTTPError: HTTP 000 CON...

pandas csv 읽어오기 [내부링크]

1. csv 파일 읽어오기 2. 읽어온 데이터 확인하기 출처 : https://opentutorials.org/course/4570

opencv python 이미지 읽기 [내부링크]

imread(filename[, flags]) filename: 파일 경로 flags: 옵션 - IMREAD_COLOR : rgb 3가지 채널...

express passport를 통한 구글 로그인 [내부링크]

1. 구글 developer console로 이동해서 새로운 프로젝트 생성 2. OAuth동의화면 작성 3. 사용자 인증 정...

AWS EC2 Ubuntu에 Express서버 배포하기 [내부링크]

1. ec2 인스턴스 생성 및 .pem 파일 생성 2. 인스턴스에 보안그룹 SSH로 열어 접속 가능하게 하기 3. 연...

Node.js란 [내부링크]

Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다...

express 서버에서 python 코드 실행하기 [내부링크]

python-shell 설치 https://www.npmjs.com/package/python-shell index.js predict.py

[리눅스] 에디터 [내부링크]

에디터 종류리눅스에서 지원하는 편집기로는 vi, emacs, gedit, xedit 등이 있다.이들은 버퍼 기반 편집기 방식인데 이러한 형식의 장점은 사용자가 편집시 해당 내용의 기록 없이 중지할 수 있어 원본 파일을 보존할 수 있는 것이다. 그러나 다른 외부적인 원인으로 인해 편집기가 종료된 경우 변화된 내용을 모두 읽게 된다.- Pico유닉스 기반의 텍스트 에디터로 메모장과 유사하며 간단하다. 다른 편집기에 비해 사용하기 쉽고 편리하지만 기능이 부족하고 업데이트가 잘 되지 않는다.자유 소프트웨어가 아니므로 소스 수정이 불가능하다.- Emacs매크로 기능이 있는 텍스트 교정 및 편집기텍스트 처리를 위한 포괄적인 통합 환경을 제공실행.......

[리눅스] 프로세스 관리 [내부링크]

프로세스란?: CPU와 메모리를 할당받아 실행 중인 프로그램으로 각 프로세스마다 ID(PID)가 할당 되어 있다.프로세스의 유형- Foregroud process : 화면에 실행되는 것이 보이는 프로세스 ex) 계산기, 게임 등.- Backgroud process : 사용자에게 직접적으로 보이지 않고 뒤에서 돌아가고 있는 프로세스 ex) 시스템 프로그램, 데몬 등fork() 와 exec()- fork() : 기존 프로세스를 복제하여 새로운 프로세스를 만드는 방식으로 기존 프로세스는 기존 프로세스대로 새로운 프로세스는 새로운 프로세스대로 동작한다. 따라서 새로운 프로세스를 위해 메모리를 할당한다. 이 때, 기존 프로세스를 부모 프로세스, 복제하여 새롭게 만든 프로세스.......

공개키 인증서 [내부링크]

공개키 인증서란?: 공개키를 안전하게 교환하기 위한 방법으로 사용되는 인증서공개키를 배분할 경우 고려해야 할 문제는 바로 내가 받은 공개키가 공격자의 공개키가 아닌 내가 원하는 사람의 공개키가 맞는지이다.기밀성은 공개키 이므로 고려할 필요가 없다.이러한 공개키가 그 사람의 공개키가 맞다는 것을 증명하기 위한 방법이 바로 공개키 인증서이다.이러한 공개키 인증서 내부에는 버전, 인증서 일련번호, 주체(subject)에 대한 정보, 주체의 공개키, 키생성 알고리즘, 매개변수, CA정보, CA서명 등이 들어있다.공개키 인증서는 서명을 이용한다.공개키 인증서 생성과 검증공개키 인증서 생성서명되지 않은 인증서( A의 ID정보, A.......

디지털 서명(Digital signature)와 RSA 디지털 서명 알고리즘 [내부링크]

디지털 서명이란?: 메시지의 무결성, 부인방지, 송신자인증(소스 인증)을 위해 사용하는 방법.메시지의 출처와 내용에 대한 무결성이 필요한데, 메시지 전체를 암호화 하는 것은 상당히 비효율적이다.그로인해 메시지 전체를 암호화 하는 것이 아닌 인증자(authenticator)를 암호화한다.인증자란?: 문서의 기능을 대신하는 작은 비트블록으로 예를 들어 메시지를 hash하여 작게 만든 블록이 있다.이러한 인증자를 송신자의 개인키로 암호화했다면, 개인키를 통해 송신자인증(소스인증)이 가능하고 해시함수를 통해 메시지의 내용과 순서를 확인 할 수 있다.디지털 서명 생성과 검증디지털 서명 알고리즘에는 DSA, RSA디지털 서명 알고리즘, 타.......

Diffie-Hellman 키 교환과 중간자 공격 [내부링크]

Diffie-Hellman 키 교환: 두 사용자가 비밀키(대칭키)를 안전하게 교환하기 위한 목적으로 사용되며, 이산 대수 문제를 푸는 것이 어렵다는 것에 근거한다.키 교환을 왜 하느냐?단순한 통신을 통해 키를 주고 받을 경우 공격자가 이를 가로채어 볼 수 있으므로 Diffie-Hellman과 같은 방식이나 암호화를 통해 키를 교환하는 것.Diffie-Hellman 알고리즘양쪽 A와 B는 공통의 정보 소수 q와 q의 원시근 α를 알고 있다. (q의 원시근(primitive root) α라는 말은 α를 제곱해서 q와 서로소인 모든 a와 congruent하게 만들 수 있다 라는 말. 즉 여기서 q는 소수이므로 α를 제곱해서 모든 정수와 congruent하게 만들 수 있음을 의미)이 q와 α를.......

RSA 공개키 암호 알고리즘 [내부링크]

RSA란?:1978년 Rivest, Shamir, Adleman이 만들어낸 공개키 암호 알고리즘RSA의 키 생성 방식1. 소수 p,q 선택2. n = p * q 계산3. ф(n) = (p-1)(q-1) 계산4. ф(n)과 서로소이면서 1보다 크고 ф(n)보다 작은 정수 e 선택5. de ≡ 1 mod ф(n) 을 만족하는 ф(n)보다 작은 d를 선택6. 공개키 : {e,n} , 개인키 : {d,n}암호화 방식(평문 : M, 암호문 : C)암호화 : Me mod n = C복호화 : Cd mod n = MRSA공격 방법1. 수학적 공격 - 인수분해 → 키 길이를 길게 선택하여 예방2. 타이밍 공격 - 알고리즘 실행시간을 관측하여 공격3. 선택 암호문 공격 - 평문에 패딩 비트 추가, OAEP 활용.* 선택 암호문 공격이란? 선택된 암.......

공개키 알고리즘(공개키 암호) [내부링크]

공개키 알고리즘: 공개키 알고리즘은 공개키와 개인키 두개의 키쌍을 이용하여 암호화, 키분배, 인증 하는 방식이다.공개키는 공개되어 있는 키, 개인키는 개인만 알고 있는 키라고 생각하면 됨.공개키 암호의 조건1) 공개키와 개인키 키쌍 생성이 쉬워야 한다.2) 송진자는 수신자의 공개키와 평문을 이용하여 쉽게 암호화 할 수 있어야 한다.3) 수신자는 자신의 개인키로 암호문을 쉽게 복호활 수 있어야 한다.4) 공개키로 개인키를 알아내는 것은 불가능 해야한다.5) 공개키와 암호문을 알고 있는 공격자는 원문을 알아 낼 수 없어야 한다.공개키로 암호화 하기수신자 Alice의 공개키로 암호화 하여 전송함으로서 Alice만 자신의 개인키를 이.......

HMAC [내부링크]

HMAC이란?: 암호적 해시코드를 이용한 메시지 인증 방법으로 키를 사용한다.대칭 암호를 통해 메시지 인증이 가능하지만 암호적 해시함수는 더 빠른 속도로 실행 가능하기 때문에 이를 이용한다.HMAC은 키와 메시지를 통해 해시값을 얻어내어 이를 통해 메시지 인증을 하는 알고리즘이다.A는 A와 B가 공유하고 있는 대칭키와 메시지를 HMAC알고리즘에 넣어 HMAC값을 얻어내어 메시지와 함께 B에게 전송한다.B는 받은 메시지와 A와 공유하고 있는 공유키를 이용해 HMAC값을 구해내어 받은 HMAC값과 비교하여 메시지 인증을 한다.MAC알고리즘 : HMAC알고리즘MAC : HAMCK : 공유키

해시함수(Hash)와 SHA-512 [내부링크]

해시함수란?: 메시지가 해시함수를 거쳤을 때, 어떠한 값으로 나오는 것을 말한다.일방향 해시함수란?: 해시값을 통해 데이터를 알아 낼 수 없는 해시함수를 말한다.일방향 해시함수는 대칭 암호, 공개키 암호, 비밀값과 함께 사용해서 메시지 인증이 가능하다.대칭 암호와 해시함수를 이용한 메시지 인증공개키 암호와 해시함수를 이용한 메시지 인증비밀값과 해시함수를 이용한 메시지 인증안전한 해시함수란?다음 조건을 만족하는 해시 함수를 안전한 해시 함수라고 한다.1. 임의 크기의 데이터 블록에 적용가능해야한다. 즉 메시지 크기에 관계없이 해시값을 찾을 수 있어야한다.2. 일정한 길이의 출력 - 입력으로 들어온 데이터 크기에 관.......

메시지 인증 [내부링크]

메시지 인증이란?: 메시지 인증은 2가지로 나뉜다.진짜 발신자로 표시된 사람으로 부터 온 것인가? (발신자 인증 : Source Authentication)과메시지가 변조된 것은 없는가 (메시지 무결성 : Message Integrity)즉 메시지 인증은 올바른 발신자로부터 중간에 메시지가 변조된 것이 없나 검증 하는 것이다.대칭암호, 공개키 암호, 메시지 인증 코드를 통해 메시지 인증이 가능하다.대칭암호 이용:A가 B에게 메시지를 서로 공유하고 있는 대칭키(비밀키)를 이용해서 보낸다면 B는 공유하고 있는 대칭키를 통해 복호화가 가능하다. 이를 통해 B는 A가 이 메시지를 보냈음을 알 수 있다.또한 암호문을 만약 변조 했다면 복호화가 제대로 이루.......

난수(Random number)와 의사난수(Pseudorandom number) [내부링크]

난수란?: 정의된 범위 안에서 무작위로 추출된 수를 말한다.난수의 역할1) RSA 암호 알고리즘 및 공개키 알고리즘 키 생성에 이용2) 대칭 스트림 암호 스트림 키 생성에 이용3) 임시 세션키 생성에 이용난수의 특성1) 무작위성 - 균등분포, 독립성* 균등분포 : 0과 1이 균등하게 나와야 한다.* 독립성 : 0과 1이 독립적으로 나온다.2) 예측불가능성 : 다음 수가 0일 확률 0.5 다음이 1일 확률 0.5 로 반반이어야한다. 만약 0일 확률이 0.51로 올라가면 안됨.이런 수를 진성 랜덤 넘버(true random number) 라고 한다.의사 난수란?(Pseudorandom number): 진성 난수와 유사한 통계적 특성을 갖는 난수로 seed값으로 부터 난수를 생성한다. see.......

[암호개론] DES [내부링크]

DES- 64비트 블록암호- 16회전 Feistel 구조- 키 사이즈 64비트 ( 실제 키 사이즈는 56비트 8비트는 오...

SSL 간단한 서버 클라이언트 만들기(Python) [내부링크]

SSL을 이용하여 서버와 클라이언트 사이의 연결을 하고 인증하여 간단한 메시지 전송하는 예제 만들기...

[현대대수] Rings of polynomial [내부링크]

다항식(polynomial) 이란?정의1. R은 ring 이다.A polynomial f(x) with coefficients in R 이란 말은 f...

[현대대수] Factorization of Polynomial over a field (다항식의 인수분해) [내부링크]

다항식의 division algorithm다항식의 division algorithm은 정수론에서 한 division algorithm과 비슷하다...

[현대대수] irreducible polynomial and reducible polynomial [내부링크]

irreducible polynomial이란?정의 1. F: fieldf(x)가 F[x]의 속하는 1차 이상의 다힝식일때 f보다 낮은...

[현대대수] Eijenstein Criterion [내부링크]

reducible과 irreducible이 무엇인지 모른다면 보고와주세요.Eijenstein Criterion 이란?인수분해가 가능...

[암호개론] SP 구조와 Feistel 구조 [내부링크]

SP 구조와 Feistel 구조 모두 Feistel이 만들었다.SP 구조: substitution과 permutaion의 약자로 대...

[암호개론] 혼돈과 확산 [내부링크]

암호화 시에 key를 찾기 어렵게 하기위해서 또 알려진 평문 공격에 대해 강화하기위해서 암호문을 만들 때 ...

Uniformly Cauchy [내부링크]

RecallUniformly CauchyDefinition.Theorem.(증명)

Uniformly converge의 특징 [내부링크]

Recall특징1.(증명)*Examplefn(x) = 1-xnfor x in [0,1]. Does (fn) converge uniformly on [0,1]...

[JAVA] 백준 1992 쿼드트리 분할정복 [내부링크]

즉 먼저 입력받은 배열이 모두 0인지 1인지 확인후 4등분하여 다시확인 하는 방식으로 진행하면 된다.또한 ...

[정수론] The Fundamental Theorem of Arithmetic [내부링크]

The Fundamental Theorem of Arithmetic: 1보다 큰 모든 정수는 prime의 곱을 나타낼 수 있고, 이 형태...

[리눅스] 파일 시스템 관리 [내부링크]

파일 시스템의 개요와 종류파일이나 자료를 쉽게 발견하고 접근하게 하기 위해 보관하는 체제.리눅스 파일 ...

리눅스의 이해 [내부링크]

1. 리눅스의 개요(1) 리눅스의 특징 및 장단점*특징· 오픈소스 운영체제.· 멀티유저와 멀티테스킹이 가...

Free Group [내부링크]

RecallFree GroupDefinition 1.*ExampleDefinition 2.*ExampleDefinition 3.위 example에서 w&#x...

Group Presentation [내부링크]

RecallGroup PresentationDefinition 1.*Example

RSA를 이용한 서명 [내부링크]

RSA를 이용한 디지털 서명 생성과 검증서명 생성1. 메시지 준비2. 메시지를 해시함수를 통해 해시값을...

Numerical differentiation [내부링크]

Numeical diffenentiation 이란?함수 f에 대해 f'을 찾는 방법간단한 approximation 방법으로 h를 작...

리눅스의 설치 [내부링크]

1. 기본 설치 및 유형리눅스는 여러 종류 이기 때문에 어떤 목적으로 설치하는지 명확해야 함(1) 리눅스 ...

PYCRYPTO를 이용한 AES [내부링크]

* 라이브러리 설치PYCRPYTO사용을 위해서는 먼저 PYCRPYTO를 설치해야한다$ pip3 install ...

[암호개론] 전치 암호(스키테일 암호와 순열 암호) [내부링크]

전치 암호란?: 전치란 위치를 바꾸는 것을 말한다. 따라서 전치 암호란 순서를 바꾸어 암호화하는 것을 말...

[정수론] 에라토스테네스의 체(Sieve of Eratosathenes) [내부링크]

에라토네스의 체란?: 소수를 구하기 위한 방법을 말한다.에라토네스의 체를 이용한 소수 구하는 방법.만약 ...

대칭키 암호 [내부링크]

대칭키 암호란?: 암호화, 복호화시 같은 키를 사용하는 암호문을 말한다.위 그림처럼 송수신자가 서로 ...

위협과 공격의 차이 [내부링크]

위협 : 보안에 문제를 가할 수 있는 환경, 능력, 행동, 사건과 같이 보안 취약점을 이용하려는 잠재적 위협...

컴퓨터 보안의 목표 [내부링크]

핵심 컴퓨터 보안 목표기밀성이란?: 권한이 있는 사용자만 데이터를 확인 가능해야만 함을 의미한다. 권한...

소극적 공격과 적극적 공격(passive attack and active attack) [내부링크]

소극적 공격(Passive Attack)소극적 공격은 도청이라고 생각할 수 있다. 메시지 내용을 갈취하거나 전...

[현대대수] Characteristic [내부링크]

Characteristic이란?ring R 이 있다고 하자. 이때 R에 속하는 모든 원소 a에 대해서 n*a=0이 되는...

동음이의 암호와 알베르티 암호, 트리테미우스 암호표 [내부링크]

동음이의 암호란?빈도가 높은 문자들을 하나의 문자로만 암호화 하는 것이 아닌 여러개의 문자로 암호화하...

시저 암호과 곱셈 암호 [내부링크]

시저 암호란?평문에 키값을 더해 암호화 하는 암호.다음과 같이 약속하자a b c d e f g h ... x y z1 2 3...

[리눅스] 셸(Shell) [내부링크]

셸이란?사용자가 입력한 명령어를 해석해서 커널에게 전달하는 기능으로 사용자별 다른 셸을 사용 가능하다...

[리눅스] 권한 및 그룹 설정 [내부링크]

권한 및 그룹 설정 리눅스 터미널에서 ls -l을 입력하면 다음과 같이 나오게 된다.먼저 ① d는 파일 및 ...

리눅스의 기본 명령어(1) [내부링크]

1. 사용자 생성 및 계정 관리(1) 리눅스 명령어* which- 명령어의 경로를 확인하는 명령어- 형식 : which...

Integral Domain [내부링크]

Integral Domain정의.(1)Zero divisorring의 원소 0이 아닌 원소 a,b에 대해서 ab=0이라면 a,b...

Uniformly converge of series [내부링크]

Uniromly converge란??Theorem 1(증명)위 링크의 특징1을 보면 (fn) 이 converges uniformly on S 하고 ...

Uniformly converge와 Pointwise converge [내부링크]

RecallPointwise ConvergeDefinition*Example* '→'는 pointwise converge 함을 의미한다...

Cubic Splines [내부링크]

높은 차수의 방정식으로 interpolating 하면 점들 사이에서 들쑥날쑥이 심해진다. 끝으로 갈수록 더 심해지...

소수와 합성수(prime and composite) [내부링크]

Definition.1보다 큰 정수들 중, 약수로 1과 자기자신을 갖는 것을소수(prime)그 밖의 수들을 합성수(co...

Mathematical Induction(수학적귀납법) 과 Binomial Theorem(이항정리) [내부링크]

Mathematical Induction(1st principle)각각의 양의 정수 n에 대해 사실임을 증명하기 위한 증명 기술이...

Direct Proof와 Indirect Proof [내부링크]

Direct Proof*ExampleProve : Let m and n be integers. If both m and n are odd, then mn is odd...

[수치해석] Elements of Numerical Integration [내부링크]

Trapezoidal Rule: 적분을 interpolating 하는 방법 중 하나.Trapezoidal Rule은 Linear Lagrange ...

[정수론] Congruent [내부링크]

Congruentmodulo m 에서 a가 b와 congruent 하다 라는 말은이라고 쓰며 m이 (b-a)를 나눌때 그렇게 말한...

[정수론] Dirichlet's Theorem [내부링크]

Arithmetic progression이란?Dirichlet's Theorem이를 이용하면 10000n+11111 형태는 무한개의 소...

[수치해석] Richardson's Extrapolation [내부링크]

Ricardson's Extrapolation:approximation할 때 낮은 차수의 식을 사용해 높은 정확성의 결과를 얻...

Diffreerntiation and Integration of power series [내부링크]

Theorem1 과 Cor 1의 다른 점은 Thm1 은 수렴반경안 닫힌구간에서는 uniformly converge 하고 uniformly...

Ring and Field [내부링크]

RingDefinition.덧셈에 대해 abeliand group이고 곱셈에 대해 결합법칙을 만족하며 분배법칙을 만족하...

[암호개론] 비즈네르 암호 [내부링크]

비즈네르 암호란?:비즈네르 암호는 키값을 이용한 반복키암호에 해당한다암호화예를 들어, P1P2P3P4...

[정수론] Diophantine equation [내부링크]

Diophantine equationDiophantine equation 이란 ax+by=c 를 말한다.유클리드 알고리즘에 대해서...

Power Series [내부링크]

RecallPower Series : ∑anxnpower series란 위 식을 말한다. 위 급수는 x값에 따라 수렴할수도 발산할...

[암호개론] ADFGVX 암호 [내부링크]

ADFGVX 암호란?: 세계 1차 대전에서 독일이 사용하던 암호위 표를 이용하여 암호화한다. 총 26개의...

[암호개론] 프리드만의 동시발생지수(Index of coincidence) [내부링크]

20세기 프리드만이라는 미국의 암호해독가는 동시발생지수라는 것을 고안해 냈다.동시발생지수(IC)란?:...

[현대대수] Field of quotients of Integral Domain [내부링크]

Field of quotients of Integral Domain란?integral domain을 잘 가공하여 field로 만들어 낸 것을 말한...

아핀암호와 힐(Hill)암호 [내부링크]

아핀 암호란?덧셈암호와 곱셈암호를 결합한 방식* 암호화아핀 암호는 위와 같이 덧셈암호와 곱셈암호를 ...

유클리드 알고리즘(Euclidean Algorithm) [내부링크]

유클리드 알고리즘 : gcd(a,b)를 구하기위한 알고리즘유클리드 알고리즘의 단계( gcd(504,123) )gcd(50...

최대공약수(greatest common divisor) 와 최소공배수(least common multiple) [내부링크]

최대 공약수(greatest common divisor)Definition.gcd(a,b) 는 a와b를 나누는 정수들중 가장 큰 값을 말...

RSA를 이용한 암호화 [내부링크]

RSA: 공개키 암호화 방식중 하나. 최근 양자 컴퓨터에 발전으로 인해 RSA를 깰 수 있는 방법 등장...

HMAC을 이용한 무결성 확인 [내부링크]

HMAC: key와 message를 통해 Hsah값을 만드는 알고리즘이러한 HMAC은 무결성을 체크하는 과정에 ...

AES를 이용한 파일 암호화(PYCRPYTO) [내부링크]

AES를 이용한 파일 암호화- 암호화할 파일 준비PYCRYPTO를 이용한 AES 암호화 코드 작성- 라...

SCAPY [내부링크]

리눅스 환경 갖추기virtualbox를 이용한 ubuntu 설치.리눅스 환경 설치 후,SCAPY 설치$ sudo apt in...

Division Algorithm [내부링크]

Division Algorithmexistence 증명uniquness 증명Division Algorithm의 일반화즉, 이러한 Division A...

Google colaboratory 구글 콜랩 이용하기 [내부링크]

1. 구글 드라이브로 이동2. 새로만들기 → 더보기 → 연결할 앱 더보기 클릭3. colaboratory 검색 후 설치4...

Epoch, batch size, iteration [내부링크]

Epoch란 모델이 전체 데이터 셋을 한번 학습하는 것을 말한다.batch size란 데이터를 학습시키고자 할 ...

독립 변수(Independent variable)와 종속 변수(Dependent variable) [내부링크]

독립 변수란 ? 원인이 되는 변수종속 변수란? 결과가 되는 변수예를 들어, 집값을 결정하는 요소는 여러...

머신러닝의 분류 [내부링크]

1. 지도학습(supervised learning)- 지도 학습이란 기계를 가르친다라는 의미로 문제와 답이 있는 데이터...

HTML과 XML [내부링크]

HTML ( Hyper Text Markup Language ) 과 XML( eXtensible Markup Language ) 모두 마크업 ...

github 폴더에 화살표 현상 [내부링크]

github에 푸쉬했을 때, 위와같이 나오는 현상은 해당 폴더내에도 git이 존재하여 충돌하는 문제이다.이를 ...

Javascript 함수 선언 [내부링크]

일반적인 함수 선언예시화살표를 이용한 함수 선언(arrow function)예시바로 리턴하는 경우 아래와 같이 작...

그리디(greedy) 알고리즘 [내부링크]

그리디 알고리즘은 현재 상황에서 가장 좋은 것을 고르는 방법을 의미한다. 즉, 매번 가장 좋은 방법을 선...

Nodejs Express 와 React 연결하기 [내부링크]

react app 생성하기folder-name에 원하는 폴더이름을 설정하면 폴더가 생성됩니다.이후 해당 폴더로 이동해...

git 파일명 수정하기 [내부링크]

깃에서 파일명을 수정하기 위해서는 파일 이동 명령어인 mv를 사용해야한다.oldpath에 현재의 경로 newpath...

Nodejs 세션 express-session [내부링크]

* 설치* express-session 미들웨어 불러오기* 사용secret은 session ID cookie에 사인하기 위한 값으로 ...

Nodejs passport.js 세션을 이용한 LocalStrategy [내부링크]

passport.js 는 로그인/로그아웃/인증 기능과 페이스북으로 로그인, 구글로 로그인과 같은 기능을 제공하는...

git add [내부링크]

* git add 하기 ( staged 상태로 만들기 )git add [파일명 or 폴더명] 아래와 같이 폴더명 입력시 해당 ...

git commit [내부링크]

*git commit 하기git commit -m "커밋메세지"git log의 경우 q를 누르면 탈출 가능* git commi...

HTTP 쿠키(cookie)란? [내부링크]

Http 쿠키는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각으로 브라우저 에서는 해당 데이터...

Nodejs 쿠키 생성, 읽기 [내부링크]

* 쿠키 생성하기 - 결과위 와 같이 응답 헤더에 firstcookie 와 secondcookie가 추가되었고 application의 ...

Nodejs Express generator [내부링크]

express generator는 express기반의 프로젝트를 작성할 때 필요한 기본적인 코드와 파일을 자동으로 생성해...

Nodejs npm을 통한 모듈 추가,업데이트,삭제 [내부링크]

* 추가-s : 해당 프로젝트에만 설치-g : 전역에 설치( 어느 프로젝트에서나 사용가능 )* 업데이트* 삭...

python heapq [내부링크]

파이썬에서 heap기능을 위해 제공하는 라이브러리단순히 heap에 넣는 것 만으로 시간복잡도 O(NlogN)...

pyhton stack, queue [내부링크]

자료구조란 데이터를 표현하고 관리하고 처리하기 위한 구조를 말한다.스택과 큐는 자료구조 중 하나이다....

python 비트연산자(bitwise-operators) [내부링크]

1. 쉬프트쉬프트에는 오른쪽 쉬프트, 왼쪽 쉬프트가 있다. 8은 2진법으로 나타내면 1000 으로 나타내어진다...

python char to ascii [내부링크]

파이썬에서 문자하나를 ascii값으로 바꾸려면 ord()함수를 사용하면 된다.ord() 는 유니코드 글자를 하나 ...

python 입력 받기 [내부링크]

1. 간단하게 입력받기2. " "로 나눠진 숫자들 입력받기( 코테 문제들에 많이 사용 )3. input함...

python list 값들을 출력하기(join) [내부링크]

아래와 같이 list가 있다고 해보면위 리스트를 " "으로 나누어 값만 출력하고 싶다면 join함수를...

Express-generator와 pm2로 실행하기 [내부링크]

1. express-generator 와 pm2 설치하기 2. express 실행=> 하면 myapp 폴더가 생기며 기본 폴더들...

Bootstrap 이용하기 [내부링크]

bootstrap을 이용하는 방법은 가장 간단한 CDN을 이용하는 것과 npm을 이용해서 설치하는 방법, 파일을 ...

Bootstrap customize [내부링크]

부트스트랩 커스터마이징하기먼저 npm을 통해 부트스트랩을 설치해주거나 부트스트랩 홈페이지에서 파일...

Nodejs(express) 와 MySQL 연결하기 [내부링크]

1. npm init을 통해 package.json 생성2. express 와 mysql 설치3. express로 간단한 코드 작성4. MySQ...

Express Image, CSS, JavaScript load하기 [내부링크]

Express에서 image나 css, javascript 파일을 load하기 위해서는 express.staic 을 이용하면 됩니다.1...

Ubuntu에서 Nodejs 설치하기 [내부링크]

1. Nodejs 설치하기2. npm 설치하기3. npm init

재미로 보는 2021 신년 운세 [내부링크]

한번씩 해주시면 감사합니다.

MySQL ER_NOT_SUPPORTED_AUTH_MODE [내부링크]

Nodejs에서 mysql을 연결하는 과정에서 다음과 같은 error가 나타난다면MySQL에 들어가과 같이 입력하면 해결된다 만약 위 명령어에 대해 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 과 같은 에러가 발생한다면 다음 내용을 확인해보면 좋다.password설정을 어떻게 해야하는지 알려주는 정보이다.validate_password.length는 8이므로 길이가 8이상.validate_password.mixed_case_count,validate_password.number_count ,validate_password.special_char_count 는 각각 대소문자, 숫자, 특수문자의 개수를 의미하므로 각각 1개 이상씩 들어가야 한다는 의미가 된다.validate_password.policy 는 이러.......

우분투 Git 이용하기 [내부링크]

git을 설치해 원격 저장소와 연결하여 올리기1. git 설치2. git 개인 정보 등록3. 버전관리를 원하는 폴더로 이동4. git 시작하기5. 원격 저장소 등록 ( github 회원가입 후 repository 생성을 먼저 해야함 )6. 변경된 모든 파일 추가 ( -A를 주면 모든파일 추가, 다른 여러 옵션이 있음 )7. 커밋8. 원격저장소에 올리기자신의 원격 저장소에서 내려받기github 저장소 내용 다운받기

MySQL 데이터 베이스 구조 [내부링크]

MySQL 데이터 베이스 구조는 Table, Database(schema), Database Server 로 나뉜다.Table이란 하나의 표를 의미한다. 이러한 Table이 여러 개가 생겨 연관이 있는 Table을 묶은 것이 Database(schema) 라고 한다.이러한 database는 여러개 생성 가능하다. 여러개의 Database를 묶은 것을 Database server라고 한다.MySQL을 다운받았다면 이는 Database Server를 만든 것이고 MySQL을 통해 내부 data를 구성해 나가는 것이다.

MySQL Database 생성 및 제거 [내부링크]

데이터 베이스 생성 코드데이터 베이스 제거 코드

MySQL Database에 Table 생성하기(CREATE TABLE) [내부링크]

https://blog.naver.com/username1103/222198913763먼저 Table을 생성하기 원하는 Database를 선택해야 한다.위 명령을 하게 되면 해당 Database로 이동하게 된다.table_name : 테이블 이름 입력c_n : Table의 목록. 즉 id나 title, description, created 등 설정DataType : 해당 목록에 들어갈 데이터의 타입 지정 ex) INT, VARCHAR, TEXT, DATETIME( 해당 링크에 DataType 목록 있음. ) PRIMARY KEY(c1) : primary key란 해당 테이블에서 각각의 레이블을 구별하기 위해 이용하는 식별자이다.따라서 안에 값은 각각의 레이블을 구별할 수 있는 데이터 값이 들어가야 한다. c1을 primary key로 지정하겠다는 말을 의미한다.https://blog.naver.c.......

Netlify 를 이용한 웹사이트 무료 배포하기(웹 호스팅) [내부링크]

1. netlify 홈페이지에 들어가 회원가입을 한다.https://www.netlify.com/2. sites 탭 선택3. index.html 파일이 들어있는 폴더를 드래그 해서 빨간 사각형 네모안에 올려 놓기4. 아래와 같이 빨간 네모 클릭하면 만들어진 웹사이트로 이동.5. 끝.

Netlify 웹사이트 수정하기 (Deploy) [내부링크]

1. 위에 메뉴바에 Deploys 나 아래 큰 네모칸 클릭.2. 빨간 네모칸 안에 바뀐 index.html 파일이 들어있는 폴더를 드래그 하여 올려줍니다.3. 끝

MySQL Table 에 데이터 넣기(INSERT) [내부링크]

https://blog.naver.com/username1103/2221989953371. 먼저 어떤 테이블이 있는지 확인합니다.2. 해당 테이블에 어떠한 값들이 저장될 수 있는지 확인합니다.DESC table_name; : 해당 table에 어떤 종류의 데이터가 들어가 있는지 알려줍니다.3. 필요한 값들을 토대로 테이블에 데이터를 추가합니다.INSERT INTO table_name(테이블의 들어갈 데이터 값들) VALUES (각 데이터에 맞는 데이터 값들)id값은 auto_increment 즉 알아서 1씩 증가하도록 설정되어있으므로 따로 값을 설정하지 않았습니다.title과 description created, author, profile 정보를 추가할 것인데 작성한 순서에 맞게 VALUES()안에 넣을 데이터 값들을 넣어줍니다.NOW() 는.......

MySQL Table에 값을 조건에 따라 알아보기(SELECT) [내부링크]

https://blog.naver.com/username1103/222200199301· SELECT * FROM table_name : 테이블 전체 정보 얻어오기 · SELECT id,title,description,author FROM table_name : 테이블로 부터 id, title, description, author 정보만을 보여준다.· id값을 토대로 내림차순을 보여준다· author가 root인 데이터들을 id값을 기준으로 내림차순으로 보여준다 ( ORDER는 WHERE 뒤에 위치해야 한다.)· :LIMIT 2 : 위 데이터 들중 2개만 보여준다 ( 해당 링크를 통해 더 다양한 방법을 알 수 있다.[]대괄호가 있다면 생략이 가능하다는 말이다. 즉 첫줄에 [ALL | DISTINCT | DISTINCTROW ] 를 보면 이 부분은 생략이 가능하다는 말이다.가운데 ㅣ 를 기준으.......

MySQL Table 데이터 수정하기 (UPDATE) [내부링크]

· 현재 테이블 상태· UPDATE table_name SET 설정할 정보 [WHERE 어느 타켓] 만약 WHERE을 정하지 않는다면 table에 모든 정보가 설정한 정보로 변하게 되므로 주의할 것.https://blog.naver.com/username1103/222200228703https://blog.naver.com/username1103/222200257368

MySQL Table 데이터 삭제하기(DELETE) [내부링크]

https://blog.naver.com/username1103/222200199301현재 데이터 상태DELETE FROM table_name [WHERE 삭제할 조건]WHERE을 생략한다면 table에 모든 데이터가 사라지므로 주의가 필요함.https://blog.naver.com/username1103/222200244264https://blog.naver.com/username1103/222200257368

MySQL Table column 추가, 제거하기(ADD, DROP) [내부링크]

https://blog.naver.com/username1103/222198995337· 테이블 column 추가하기 (ADD)ALTER TABLE table_name ADD 추가할column이름 datatype;addtable 이라는 column이 추가 되었음을 알 수 있음. 추가되는 위치는 수정이 불가함.· 테이블 column 제거하기 (DROP)ALTER TABLE table_name DROP COLUMN 삭제할column이름;https://blog.naver.com/username1103/222201234380

MySQL Table column 재정의하기, 이름바꾸기(MODIFY, RENAME) [내부링크]

https://blog.naver.com/username1103/222198995337· 현재 테이블 상태· column 재정의 하기ALTER TABLE table_name MODIFY COLUMN 재정의할column 내용;· column 이름 수정하기 ALTER TABLE table_name RENAME COLUMN 변경할column TO 뭐로바꿀지; https://blog.naver.com/username1103/222200652652

MySQL Table 결합 (LEFT JOIN, RIGHT JOIN) [내부링크]

위 내용 처럼 2개의 Table이 있다고 해보자. table1에 name_id 는 name table의 id와 맞추어 만들어졌다.그렇지만 지금처럼 본다면 가독성이 떨어지기 때문에 테이블을 합쳐서 보고싶다면 어떻게 해야할까?· LEFT JOINSELECT * FROM table_name LEFT JOIN 합칠table ON 규칙;LEFT JOIN은 왼쪽 테이블 즉 table1을 기준으로 다른 테이블 즉 name 테이블을 결합시키겠다는 것을 의미한다.마지막 줄처럼 해당 데이터가 없다면 NULL 을 나타낸다.만약 name_id 와 id값을 안보고 싶다면 * 대신에 원하는 column을 작성해주면 된다. 이때 주의할 점은 table1과 name에 모두 id column이 있으므로 어떤 테이블의 id값을 보고싶은지 명확히 작성해줘.......

Netlify 사이트 네임 변경 하기 [내부링크]

Netlify를 통해 사이트를 생성하게 되면 다음과 같이 이상한 이름을 주소로하는 웹사이트가 생성됩니다. 이를 바꾸기 위해서는1. Site settings 선택2. change site name 선택3. 원하는 사이트 이름으로 변경4. 끝

파이썬 가상환경 셋팅하기(venv) [내부링크]

파이썬을 이용해 개발하는 여러 환경에서 있어서 특정 버전의 파이썬과 특정 버전의 라이브러리가 필요한 경우가 있다. 이럴 경우 가상환경을 만들어 원하는 파이썬버전과 라이브러리 버전을 셋팅할 수 있다.즉, 어떠한 프로그램을 만들때에 A버전의 파이썬과 A버전의 라이브러리가 필요할 경우, 만약 다른 프로그램에서 B버전의 파이썬과 B버전의 라이브러리가 필요하여 설치한 경우 두 프로그램에서 충돌이 발생할 수 있다. 따라서 가상환경을 만들어 해당 환경에서는 A버전의 파이썬과 A버전의 라이브러리를, 다른 환경에서는 B버전의 파이썬과 B버전의 라이브러리를 이용한다면 이를 해결할 수 있다.파이썬 가상환경 만들기- venv1. 비쥬얼.......

VS code에서 cmd 터미널 열기 [내부링크]

비쥬얼 스튜디오에서 cmd터미널 열기1. ctrl + shift + p2. 터미널: 기본 쉘(Terminal : Select Default shell)을 선택.3. Command Prompt 선택.4. 이후 터미널을 닫았다가 다시 열어줍니다.끝.

No name 'QApplication' in module 'PyQt5.QWidgets' [내부링크]

VScode에서 PyQt5를 import하려하면 위와 같은 import error가 발생한다.이는 Pylint가 C익스텐션을 기본적으로 실행하지 않기 때문에 생기는 오류라고 합니다.해결하기 위해서는 1. ctrl + shift + p2. 기본 설정: 설정 열기(JSON)(Preference: Open Setting (JSON))을 클릭3. 아래에 내용을 열린 setting.json 파일 괄호안 마지막줄에 붙여넣기

python 코드를 실행파일로 바꾸기(pyinstaller) [내부링크]

자신이 작성한 python코드를 실행파일로 바꾸기 위해서는 pyinstaller가 필요하다pyinstaller 설치cmd 창을 열어 다음 명령어 입력.pip install pyinstallerpyinstaller를 이용해 실행파일 만들기1. cmd창을 열어줍니다.2. cmd창에서 해당 파일이 존재하는 폴더로 이동합니다.( cd 폴더경로 입력)3. pyinstaller 파일.py 입력→ 해당 폴더안에 dist폴더안에 실행파일이 생성됨을 확인할 수 있습니다.위와 같이 입력할경우, 콘솔창과 함께 실행이 되는데 만약 콘솔창을 보고 싶지 않다면 명령어에 -w 또는 --windowed 를 옵션으로 주어 실행파일을 생성합니다.ex) pyinstaller -w 파일이름.py실행파일 하나만 생성하고 싶은 경우명령어에 -F 또.......

HTML/CSS 선택자 [내부링크]

style을 변경하기 위해서는 태그 내에서 지정하는 style, id 선택자, class 선택자, tag 선택자를 이용한다. #id는 id 선택자, .class는 클래스 선택자, a는 tag 선택자 이다.각 속성의 적용순서는 tag선택자의 속성이 적용되고 그 다음 class 선택자의 속성이 적용되고, 다음으로 id 선택자의 속성, 태그내에서의 속성이 적용되어 덧입힌다고 생각할 수 있다. 따라서 같은 속성의 경우 가장 나중에 덧입힌 속성이 적용되고 또한 겹치지 않는 속성들도 모두 적용되는 것이다.만약 같은 태그를 두 개의 class가 지정할 경우 먼저 작성된 class선택자의 속성이 적용되고 그위에 나중에 작성된 class 선택자의 속성이 적용된다.따라서 같은 속성을 변.......

CSS Position [내부링크]

CSS에 position에는 static, relative, absolute, fixed 가 있다.position:static기본적으로 우리가 생성하는 tag들은 모두 position : static으로 되어있다.이러한 경우 left:10px top:30px 이런식으로 지정하더라도 변경되는 것이 없다. 이유는 position이 static일때 left, right, top, bottom 은 비활성화 되기 때문이다.position:relativerelative의 경우 left:20px top:20px을 지정할 경우 자신의 원래 위치에서 왼쪽을 기준으로 오른쪽으로 20px, 위를 기준으로 아래로 20px이 움직이게 된다.중요한 특징으로는 부모태그 안에서 자신의 위치를 기억해놓는다는 것이다. 따라서 부모태그를 position:relative로 변경 후 부모를 움직일 경우.......

JavaScript/CSS css selector의 속성 얻어오기 [내부링크]

위와 같이 작성한 경우 해당 css selector의 속성을 가져온다.즉 예를 들어,일 경우 body 태그의 속성들을 가져온다.위 와 같이 작성할 경우 body태그의 backgroundcolor의 정보를 얻어올 수 있다.

UI 와 API 란? [내부링크]

UI( User Interface ) 란?말 그대로 user interface. 즉 user가 사용하는 interface를 말한다. 이 블로그 내에서도 여러가지 버튼들이 있다. 이러한 버튼들은 user인 우리가 이용하는 버튼들이다. 이러한 버튼들을 UI, User Interface라고 한다.API ( Application Programming Interface ) 란?Application을 만들기 위해 Programming시에 이용하는 Interface를 말한다. 즉 javascript에서 alert()함수는 경고창을 띄워주게 된다. alert()는 브라우저에 경고창을 띄우는 interface인 것이다. 이러한 것을 API, Application Programming Interface라고 한다.

local storage와 session storage [내부링크]

local storage와 session storage는 둘 다 브라우저에 특정 정보를 키,값 쌍으로 저장하기 위해 사용됩니다.둘의 차이는 얼마 동안 그 정보를 유지하느냐의 차이입니다. local storage의 경우 브라우저를 껏다 켜도 데이터가 유지되는 반면,session storage는 탭이나 브라우저를 종료할 경우 데이터가 사라집니다. ( 새로고침시에는 유지됩니다. )( Cookie랑 다른점은 Cookie의 경우 서버로 전송되지만 storage의 경우 서버로 전송되지 않고 브라우저에 저장됩니다. 또 cookie보다 많은 양의 데이터를 저장해 놓을 수 있는 장점이 있습니다. )해당 정보는 브라우저에서 F12키를 눌러 Application 탭에 가보면 Storage에서 확인할 수 있습니다.......

JavaScript var, let, const [내부링크]

JavaScript의 변수선언 방식에는 var, let, const 가 있다.varvar 을 이용해 변수를 선언할 경우 나중에 같은 이름의 변수를 선언하더라도 막지 않는다. 그렇기 때문에 코드가 복잡해질 경우, 해당 name이 무엇을 나타내는지 정확히 알 수 없고, 에러가 뜨지 않아 해당 변수가 이미 사용되었는지 알 수 없다.따라서 const 나 let 을 이용하는 것이 좋다.let과 constlet 을 이용하여 변수를 선언하는 경우 위처럼 같은 이름의 변수를 중복 선언한다면 error가 발생하여 막아준다. 따라서 같은 이름의 변수를 사용하는 일이 생기지 않는다.const 를 이용하여 변수를 선언해 줄때에도 마찬가지로 같은 이름의 변수를 중복 선언하면 error가 발생한다.......

JavaScript ES6, ES11 [내부링크]

JavaScript를 공부하다 보면 ES6, ES11이란 말이 나온다.이는 JavaScript의 버전이라고 할 수 있다.ES6은 ES2015라고도 하며 2015년에 출시된 JavaScript를 의미한다.ES11 은 ES2020을 말하며 2020년에 출시된 JavaScript를 의미한다.버전이 올라감에 따라 추가되는 문법들이 있으므로 확인하는 것이 좋다.

JavaScript Template literals [내부링크]

흔히 JavaScript를 사용하다 보면 다음과 같은 경우가 흔하다.위와 같이 작성하려면 띄어쓰기도 신경써야하고 여러모로 불편하다. 이를 해결하기 위한 방법이 Template literals이다.위 코드에서 ${text} 부분이 이를 적용한 것인데, 해당 부분에 text 즉, Template literals가 들어가게 된다.여기서 주의할 점은 양 끝에 '나 " 가 아닌 `을 이용한다는 점이다. ` 는 보통 키보드에서 1 key 옆, esc 아래에 있는 버튼이다.

CSS z-index [내부링크]

CSS style에는 z-index라는 값이 있다. 화면위에 쌓이는 순서를 의미한다.이때 중요한점은 z-index사용시 position값이 지정되어있어야한다.( position에 대한 정보 )위 코드는 아래와 같이 나타나게 되는데 z-index를 유심히 살펴보면 z-index가 클수록 화면에 위쪽에 표시되는것을 알 수 있다.주의할 점z-index사용시 position값이 지정되어있어야한다.

[암호개론] AES(Advanced Encryption Standard) [내부링크]

AES: DES가 깨지고 3DES는 오래걸리는 문제 때문에 등장하게된 향상된 암호화 표준으로 대칭키 암호의 한 종류특징- 128비트를 한 블럭으로 하는 블럭 암호화 방식- 키의 길이는 128/192/256 비트 사용- SP Network 방식으로 키 값에 따라 각각 10, 12, 14 라운드로 구성- DES의 경우 64비트를 반으로 나누어 32비트씩 암호화 하는 방식이지만 AES는 한 라운드에서 128비트 전체를 암호화 함- 각 라운드는 SubBytes, ShiftRows, MixColumns, AddRoundKey 로 구성1. State(상태) 구성128비트의 입력받은 평문을 8비트(1바이트) 씩 쪼개어 State를 구성한다.예를 들어, 입력이 A1 11 13 15 14 1A BA 30 21 23 16 49 20 B3 AB 61 로 들어온다면 아.......

[암호개론] 여러가지 블록암호 [내부링크]

AESDES3. IDEA- 1990년 스위스에서 개발한 암호화 방식- 암호화 속도가 DES보다 빠름- 64비트 블록과 128비트 키를 이용- 8라운드에 Feistel 구조- 전자우편 보안 PGP에 이용- 유럽 표준RC5- 1994년 Rivest개발- 블록크기는 32, 64, 128 비트, 키 0~2040비트- 라운드 0~255 라운드- 키와 라운드가 가변적이어 사용자가 원하는 성능과 안전성 수치 조절 가능SEED- 1998년 KISA 개발- 128비트 블록을 암호화하고 128비트 키를 이용- 16라운드에 Feistel구조- 2009년 SEED 256개발 ( 128비트 블록, 256비트 키, 24라운드)- 인터넷 뱅킹, 전자상거래 이용ARIA- 128비트 블록을 암호화하고 128/ 192/ 256 비트의 키를 이용- SP Network 구조로 키 값에.......

[암호개론] LFSR(선형 피드백 시프트 레지스터) [내부링크]

LFSR: 주어진 초기 비트값(seed)와 정해진 방법을 통해 key stream을 생성하는 방법예시초기 비트 (seed) : 0001생성방법 : a4+i = ai + ai+2 ( + : XOR )위와 같은 조건일 경우 a5 = a1 + a3 = 0 + 0 = 0, a6 = a2 + a4 = 0 + 1 = 1 .. 쭉 구할 수 있다. ( + : XOR )따라서 000101.... 하면서 나아가게 된다.쭉 구해보면 000101000101... 해서 주기가 6인 key stream이 생성된다.다음 자리 수를 얻기 위해 초기에는 0001을 이용하고 그다음은 0010 그다음은 0101 식으로 우측으로 한칸씩 이동하여 다음 자리를 얻게 된다.이러한 특징때문에 시프트 레지스터 라고 한다.그림으로 표현하면 다음과 같이.......

[암호개론] A5/1 [내부링크]

A5/1: 3개의 LFSR을 합치고 클록을 이용하여 비선형성을 추가하여 key stream을 생성하는 방법위 그림처럼 19, 22, 23 길이의 seed를 갖는 LFSR 3개를 이용해 key stream을 생성한다. 따라서 64비트의 초기 비트(seed)값이 필요하다.LSFR 3개를 합쳐 key stream을 생성하므로 최대 주기는 (219-1)*(222-1)*(223-1)이 된다.이 때 주황색으로 색칠된 부분을 클록이라고 하는데, 이 부분에 있는 숫자에 따라 각 LFSR이 시프트할지 말지를 결정한다.만약 위에서 부터 각 클록의 값이 1, 0, 1 일 경우 1이 더 많으므로 1이 있는 부분은 시프트가 발생한다.즉 가운데 LFSR을 뺀 나머지 LFSR은 한칸씩 시프트 된다. 이러한 방식을 통해 LFSR에서 비선.......

[암호개론] 스트림 암호 [내부링크]

스트림 암호: 대칭키 암호의 한 종류로 비트 또는 바이트 단위로 암호화 하는 것암복호화 방식평문 + 키스트림 = 암호문암호문 + 키스트림 = 평문 ( + : XOR )따라서 키스트림을 어떻게 잘 생성하느냐가 관건특징- 빠른 암호화 속도와 낮은 에러 전달- 군사 및 외교용, 무선통신기기에 이용- LFSR, A5/1, RC4 등이 있음

[정수론] Factoring [내부링크]

Factoring 이란 어떠한 수를 소수의 곱의 형태로 나타내는 것을 말한다.즉, 15 = 3 * 5, 24 = 23 * 3.어떠한 수 n = a0 + a1101+ a2102+ ... + ak10k의 형태로 쓸 수 있다.이 때 다음과 같은 성질들이 성립한다.즉 15946 가 2의 배수인지 5의 배수인지는 일의 자리 숫자가 2의배수인가 5의 배수인가만 보면 알 수 있다.3의 배수인지 9의 배수인지는 1+5+9+4+6 = 25가 3의 배수인지 9의 배수인지를 통해 알 수 있다.11의 배수인가는 6-4+9-5+1 = 7 이 11의 배수인지를 통해 알 수 있다. 7의 배수인지 13의 배수인지 11의 배수인지는 946-15=931이 7의 배수인지 13의 배수인지 11의 배수인지를 통해 알 수 있다.왜.......

[정수론] 페르마의 작은 정리(Fermat's Little Theorem) [내부링크]

페르마의 작은 정리1)p가 소수이고 gcd(a,p)=1 이면, ap-1≡1 (mod p) 이다.2) p가 소수이면 ap≡ a (mod p)이다.1) 증명먼저 complete residue system에 대해 알아야한다. a의 complete residue system은 집합인데 그안에 모든 원소들이 mod a에서 서로 incongruent하고 원소의 개수가 a개인 집합이다. 즉 예를 들어 5의 complete residue system은 {1,2,3,4,5}, {-3,-2,-1,0,1},{10,16,12,23,29} 등이 있다. 이 때 연속적인 a개의 수는 complete residue system이 됨을 확인할 수 있고, {0,1,2,3,4} 와 같은 집합을 the least complete residue system 이라고 한다.만약 a*k ≡ a*j mod p 라면 gcd(a,p)=1이므로 k ≡ j mod p 가.......