Computer Science 108

[정보보안] 블록암호 운영모드(ECB, CBC, CFB, OFB, CTR)

블록암호 운영모드인 ECB,CBC, CFB,OFB,CTR에 대한 정리이다. ECB와 CBC는 블록암호, CFB, OFB, CTR은 스트림 암호 유형으로 분류된다. 블록암호 유형인 ECB와 CBC는 초기 벡터인 IV가 필요한 반면, 스트림 암호인 CFB, OFB, CTR은 초기벡터가 필요하지 않다. 오류전파 측면에서 보면, CBC와 CFB는 오류 전파가 일어나지만, 나머지 모드에서는 오류 전파가 일어나지 않음을 볼 수 있다.

Computer Science 2023.11.25

[c] Call by value vs Call by reference

함수에서는 call by value 혹은 call by reference를 이용하여 값을 입출력한다. call by value는 함수 호출 시 넘기는 인자의 값이 매개변수에 복사되어 전달되기 때문에, 함수 내에서 값을 변경한다고 할 지라도 원본값은 변경되지 않는다. 원본 데이터를 터치하지 않기 때문에, 원본 데이터를 지키는 데에 있어서 안전하다. 그러나 값을 복사하여 사용하는 형태이기 때문에 메모리 사용량이 증가한다는 단점을 지닌다. call by reference는 함수 호출 시 인수로 전달되는 변수의 참조값(주소)을 함수 내부로 전달하는 방식으로, 인자로 전달되는 값이 변수의 주소이다. 따라서 변수 값을 변경하게 된다면 주소에 저장된 값도 변경된다. 이는 직접 참조에 유리하다는 장점을 가지지만, 원래..

Computer Science 2023.11.15

[선형대수] python으로 벡터의 내적과 외적 계산하기

google colab 환경에서 python을 이용하여 벡터의 내적을 구하는 예제이다. 우선 numpy 라이브러리를 import한다음 두 벡터를 np.array(numpy 배열)로 저장한다. 그리고 내적(dot_product) 는 np.dot(V1,V2) 로 계산하여 출력한다. 다음 예제는 내적,외적이 함께 엮여 있는 사칙연산이다. 사칙연산에서는 괄호 안의 계산이 먼저 진행되기 때문에 먼저 외적값을 계산해야 한다. 앞서 본 예제와 같이 먼저 각 점을 np.array 꼴로 지정해 준 후 벡터값을 설정해준다. 그리고 외적값은 np.cross함수를 사용하여 진행한다. 이 출력값을 다시 np.dot함수를 이용하여 u 값과 내적해주면, 우리가 구해야 하는 값이 정상적으로 출력된다.

Computer Science 2023.11.09

[c언어 기본] 함수에 관하여(함수의 여러 자료형, 함수에서의 scope의 의미, static 변수에 대해

수학적인 함수는 input값을 투입하면 함수가 진행되고 output값이 도출되는 결과인 것처럼, 프로그램 상에서의 함수 또한 인수를 받아서 함수의 프로그램을 시행시키고 실행 결과를 반환하는 구조이다. 함수를 사용하게 되면 문제를 분리하여 단순화시킬 수 있을 뿐만 아니라 한 곳 이상에서 코드를 재사용할 수 있다는 장점을 가진다. [함수의 여러 자료형] - return문 : 함수의 반환값을 함수의 호출한 곳에 반환한다. 반환값 형식은 함수 정의 시에 지정한 형식이다. - void 자료형: 자료가 없음을 나타내는 특수한 자료형이다. 즉 함수의 반환값이 없다. - 그 밖에도 표준 입출력함수, 문자열 조작함수, 문자 관련함수, 유틸리티 함수, 시간 및 날짜함수 등이 있다. [함수에서 scope] scope는 프로..

Computer Science 2023.11.09

[자료구조] Data structure vs File structure

프로그램 구동 시에 프로그램은 메인메모리를 통해 데이터 i/o를 진행한다. 그리고 Secondary storage(디스크)에서 필요할 때마다 필요한 파일만 메인메모리에 적재시켜서 쓰는 구조이다. 데이터 구조의 접근시간은 메인메모리 영역에서 진행되고 단 한번의 접근에 의해 이루어지므로 independent 하다고 볼 수 있고, 그에 반해 File system은 데이터 위치에 의존적이라고 볼 수 있다

Computer Science 2023.11.04

[운영체제] 가상메모리 개념, page fault 개념, page fault 발생 시 가상메모리 지원 여부에 따른 시나리오

- 가상메모리는 물리적 메모리에 backing store가 결합된 것으로 프로세스가 메모리에 적재되지 않도 프로세스 실행이 가능하고 물리적 메모리보다 크기가 크다. 또한 페이지 단위의 swap을 하며 입출력 크기의 감소가 있다는 장점을 가진다. -page fault는 page table을 참조하여 주소 변환을 할 때 valid 비트가 0으로 설정되어 있는 invalid 상태일 경우 발생한다. 1. page fault 발생시, 가상메모리를 지원하는 운영체제는 메모리에는 없지만, 디스크에 있으면 해당 페이지를 메모리로 적재한 후 실행시킨다. 만약 유효하 지 않은 참조일 경우 프로세스를 중단시킨다. 2. page fault가 발생할 때 가상메모리를 지원하지 않는 운영체제는 프로세스를 swap out 하고, 디..

Computer Science 2023.06.03

[운영체제] Thrashing(쓰레싱) 개념과 발생 원인, 예방 방법

- 쓰레싱은 빈번한 페이지 교체로 인해 프로세스가 swap in/out 하느라 바쁜 상황을 말한다. 충분한 page를 할당하지 않아 page fault 비율이 높아지게 되고 swap in/out에 시간을 쓰기 때문에 cpu 이용률이 하락한다. cpu 이용률을 높이기 위해 다중 프로그래밍의 정도를 높이게 되어 page fault 비율이 더 높아지게 되고 cpu 이용률이 더 하락하게 되어 쓰레싱이 발생한다. 쓰레싱이 발생하지 않기 위한 방식으로는 working set model과 PFF방식이 있다. Working set model 방식은 전체 frame 요구량이 할당한 프레임보다 클 때 발생하는 쓰레싱 상황에서 한 프로 세스를 중지하고 이 프로세스의 page를 다른 프로세스에게 할당하는 방식이다. PFF 방..

Computer Science 2023.06.02
반응형