2014년 3월 8일 토요일

Watermarking two dimensional data object identifier for authenticated distribution of digital multimedia contents(2010)

Watermarking two dimensional data object identifier for authenticated distribution of digital multimedia contents


A digital object identifier refers to diverse technologies associated with assigning an identifier to a digital resource and managing the identification system. One type of implementation of a digital object identifier developed by the Korean Government is termed the Universal Content Identifier (UCI) system. It circulates and utilizes identifiable resources efficiently by connecting various online and offline identifying schemes. UCI tags can contain not only identifiers but also abundant additional information regarding contents. So, researchers and practitioners have shown great interest in methods that utilize the two-dimensional barcode (2D barcode) to attach UCI tags to digital contents. However, attaching a 2D barcode directly to a digital content raises two problems. First, quality of the content may deteriorate due to the insertion of the barcode; second, a malicious user can invalidate the identifying tag, simply by removing the tag from the original content. We believe that these concerns can be mitigated by inserting an invisible digital tag containing information about an identifier and digital copyrights into the entire area of the digital content. In this study, to protect copyrights of digital contents securely without quality degradation, we attempt to discover a sequence of process for generating a 2D barcode from a UCI tag and watermarking the barcode into a digital content. Such a UCI system can be widely applied to areas such as e-learning, distribution tracking, transaction certification, and reference linking services when the system is equipped with 2D barcode technology and secure watermarking algorithms. The latter part of this paper analyzes intensive experiments conducted to evaluate the robustness of traditional digital watermarking algorithms against external attacks.

Watermarking two dimensional data object identifier for authenticated distribution of digital multimedia contents

Securing E-Government Services(2006)

Securing E-Government Services



Widespread Internet access is making it possible for governments around the world to move information and services online, providing substantial savings in cost, time, and labor. By letting citizens interact with the government from their own computer rather than in person, e-government also enhances quality of service and accessibility. However, economy and convenience must be traded off against security. Online systems are vulnerable to hackers, and the government has an obligation to prevent the unauthorized disclosure of personal information as well as prevent forgery and alteration of official documents

Development of Visible Anti-copy Patterns(2004)

Development of Visible Anti-copy Patterns

JongWeon Kim, KyuTae Kim, JungSoo Lee, and JongUk Choi

Abstract. Today, many governments try to implement e-government to provide
one stop service through digitization of conventional document and providing
public service through cyber systems. However, the last and the most difficult
problem with the current e-government projects is that the government cannot
provide on-line solution for issuing government certificates through cyber operations,
because of the possible forgery and illegal modifications.
In this research, an algorithm of generating visible anti-copy patterns is suggested
to issue government certificates or bank certificates in cyber space. In
this scheme, people can print certificates at home or in office using ordinary
printers. Visible anti-copy patterns provide a solution to distinguish copied
documents from original ones through naked eyes. In order to generate visible
anti-copy patterns, this research examines characteristics of digital image input
and output devices. Different from traditional anti-forgery methods that need
special equipment, visible anti-copy patterns developed in this research can be
easily recognized with naked eyes whether the document is originally printed or
it is copied or scanned and printed.

Development of Visible Anti-copy Patterns

2014년 3월 7일 금요일

손바닥을 디스플레이로 만드는 '웨어러블 팔찌' 등장

손바닥을 디스플레이로 만드는 '웨어러블 팔찌' 등장

창조적이기 위한 29가지 방법

창조적이기 위한 29가지 방법.

29 Ways to Stay Creative(Infographic)


BitTorrent Protocol

비트토렌트 프로토콜은 기존의 파일 다운로드 방식인 서버-클라이언트 구조의 일대 일 파일 공유 방식이 아닌 클라이언트-클라이언트 구조의 일대다의 파일 공유방식을 사용하는 대표적인 프로토콜이다.
일대다 파일 공유 방식은 파일을 여러 개의 조각(piece)으로 나누어 각 클라이언트에 조각들을 서로 교환하는 방식이다. 클라이언트는 파일 조각들을 소유/공유하고 있는 클라이언트와 세션을 생성하여 필요한 조각에 대하여 전송을 요청한다. 각 클라이언트들은 공유파일을 가지고 있는 새로운 클라이언트를 발견하면 자신이 가지고 있는 조각의 정보를 알려주고 새로운 클라이언트에게 자신이 필요한 조각을 요청한다. 이러한 방식 때문에 하나의 클라이언트는 여러 개의 클라이언트들과 무수히 많은 세션(Multiple Session)을 생성하게 되며 세션이 계속하여 늘어남에 따라 사용자의 다운로드 속도는 점진적으로 늘어나 클라이언트가 사용하는 인터넷 환경의 최대 대역폭까지 다운로드 속도가 증가한다.
비트토렌트 프로토콜은 파일을 공유하는 많은 클라이언트들과 동시에 많은 세션들을 생성하여 매우 빠른 다운로드 속도로 파일을 받을 수 있다. 하지만 무수히 많은 세션을 생성하여 파일을 공유하는 방식은 통신망 사업자에게 문제점을 야기 시키기 때문에, 이러한 비트토렌트 프로토콜의 원리에 대한 이해가 필요하다.


 비트토렌트와 같은 P2P 방식은 클라이언트와 클라이언트 간에 세션이 직접 생성되는 것과 공유하고자 하는 파일을 여러 개의 조각(Piece)으로 나누어 주고받는 것이 특징이다.
비트토렌트 프로토콜을 사용하여 파일을 다운로드 받기 위해서는 비트토렌트 클라이언트 프로그램(e.g., BitTorrent, uTorrent )을 설치하여야 한다. 설치 이후 사용자는 웹(토렌트 커뮤니티, 웹 서핑 등)을 통해 다운로드 받고자 하는 파일의 정보가 담긴 토렌트 파일(확장자: .torrent)을 받아 실행하여야 한다. 토렌트 파일은 공유 할 파일을 가지고 있는 사용자가 자료 공유를 목적으로 토렌트 파일을 작성하여 웹에 게시하는 것이 일반적이며, 자료를 얻고자 하는 유저는 해당 토렌트 파일을 받아 실행하면 자료를 다운로드 받을 수 있다. 위의 그림 41은 비트토렌트 클라이언트를 이용하여 파일을 다운로드 받는 절차를 보여 주고 있다.
 
토렌트 파일 (.torrent) 받기
 
사용자는 해리포터.avi”를 다운로드 받기 위해 웹 검색 등을 통해 토렌트 파일인 해리포터_avi.torrent”를 다운로드 받아서 실행하여야 한다. 해당 토렌트 파일에는 해리포터.avi”를 위한 고유의 해시 값이 포함되어 있으며 트래커의 URL 주소가 포함되어 있다. 해시 값은 파일 식별자로써 동일한 파일 이름을 가진 다른 콘텐츠와 구분을 위하여 생성되는 고유의 값이며 트래커의 URL은 파일을 공유하는 피어들의 정보를 관리하는 서버(트래커)를 지정하는 것이다. 만약 동일한 파일에 대하여 트래커의 URL이 서로 다르게 적혀있는 토렌트 파일을 클라이언트에서 실행하게 되면 클라이언트들의 정보를 서로 다른 트래커에서 관리하게 되므로 서로 다른 트래커를 이용하는 클라이언트들 간에는 파일을 공유할 수 없다.
 
트래커에 피어 리스트 (IP 주소 리스트 ) 요청하기: Tracker Request
 
해리포터.avi”를 다운로드 받고자 하는 사용자가 토렌트 파일을 실행하면 비트토렌트 클라이언트는 토렌트 파일에 포함된 해리포터.avi”의 고유 해시 값을 트래커(토렌트 파일에 포함되어 있는 URL)로 전송한다. 이 메시지를 Tracker Request(HTTP Get)라고 한다. 이와 같이 동일한 토렌트 파일을 사용하여 해리포터.avi”를 공유하고 있는 모든 피어들은, 트래커에게 해리포터.avi”의 해시 값을 보내게 된다. 피어들로부터 Tracker Request를 받은 트래커는 해리포터.avi”의 해시 값에 해당하는 스웜(Swarm)을 생성하고 해리포터.avi”의 해시 값을 보낸 피어들의 IP 주소를 이 스웜을 통해 관리한다.
 
피어 리스트(IP 주소 리스트 ) 받아오기: Tracker Response
 
Tracker Request를 받은 트래커는 해당 메시지에 포함된 해리포터.avi”의 해시 값을 참조하여 해당하는 스웜이 존재 하는지를 확인한다. 만약, 존재하지 않는다면 새로운 스웜을 생성하고 다른 피어로부터 Tracker Request가 들어올 때까지 기다린다. 기존에 만들어진 스웜이 존재하여 피어들의 정보가 있을 경우에는 스웜에 포함되어 있는 피어들을 리스트로 만들어 Tracker Response 메시지(HTTP Response)에 포함하여 응답한다. Tracker Response에 들어있는 피어 리스트는 피어들의 IP 주소로 이루어지며 Tracker Request를 보낸 피어에게 알려주는 피어 리스트는 50개 피어들의 IP 주소로 구성된다. 만약 스웜에 존재하는 피어의 개수가 50개 이상인 경우, 트래커가 50개가 넘는 피어들 중에 무작위로 피어의 IP 주소를 선정하여 피어 리스트를 구성한다.
 
파일 다운로드 받기

피어 리스트를 받은 비트토렌트 클라이언트는 모든 피어 IP 주소로 해리포터.avi”의 해시 값을 보낸다. 이 메시지를 받은 피어들 중에 해리포터.avi” 파일 공유가 가능한 피어는 동일한 해리포터.avi”의 해시 값으로 응답 하게 된다. 이러한 해시 교환을 통해 피어와 피어는 세션을 생성하게 되고 생성된 세션을 통해 조각을 교환한다. 비트토렌트 프로토콜은 이러한 방식으로 트래커로 부터 다수 피어들의 IP 주소(기본 설정 50개, 실제 운영에서는 200개)를 받아 세션을 생성하므로 하나의 클라이언트는 동시에 여러 개의 세션을 생성하게 된다.

Torrent Seed File(Meta file)

비트토렌트를 사용하여 파일 공유를 원하는 사용자는 먼저 토렌트 파일을 생성하여야 한다. 토렌트 파일은 다운로드 받고자 하는 클라이언트에게 필요한 정보가 포함된 메타 파일(Meta File)이다. 토렌트 파일은 공유된 파일을 찾아서 다운받기 위한 일종의 지도(Map) 역할을 한다.
 
Name
Parameter
Description
Torrent
Filename
토렌트 파일 이름(a.mp3)
Info Hash
공유하는 파일의 고유한 Hash
Tracker
Tracker URL
트래커의 URL 주소
여러 개의 트래커 주소를 포함 할 수 있음
Meta Data
Directory
토렌트 파일이 저장되는 디렉토리 이름
Created On
토렌트 파일 생성 일자 및 시간
Created By
토렌트 파일 생성자 정보
Comment
생성자가 적어 놓은 설명
Pice Length
피어 간에 자료를 주고받을 때 사용할 조각의 크기를 지정 최소값 및 기본 값은 128KByte이며, 지정하지 않을 경우 비트토렌트 프로토콜에서 정의한 파일의 크기 기반으로 조각을 정의함
(e.g.,1GByte 파일인 경우 1조각 당 1MByte)
Files
Filename
공유하는 실제 파일 이름(c+b+a.mp3)
 
토렌트 파일을 구성하는 정보 중에 Directory, Piece Length, Private, Filename이 해시 값을 생성하기 위해 사용되는 파라미터들이다. 4개의 값 중에 한 개라도 변경될 경우 해당 토렌트 파일의 해시값이 변경되며 이렇게 변경된 토렌트 파일은 기존의 토렌트 파일과 해시값이 다르므로 트래커에서는 다른 콘텐츠로 인식된다.
그리고 기존의 P2P에서는 한 번의 공유로 하나의 파일만을 주고받을 수 있었지만 비트토렌트는 기존의 P2P와 다르게 하나의 토렌트 파일 안에 여러 개의 파일들을 포함 시킬 수 있다. 이렇게 여러 개의 파일을 공유하기 위하여 토렌트 파일에는 “Directory”를 지정하게 되며 “Files” 내에 여러 개의 파일을 포함 시켜서 배포가 가능하다. 실제로 해당 토렌트 파일을 이용하여 파일을 다운로드 해보면 “Directory”에 이미 설정했던 파일들이 저장된다.
메타인포 파일은 Bencode로 코딩되는데, 이 코드는 비트토렌트의 P2P 파일 공유를 위해서 사용하는 인코딩 방법으로, 주로 구조화되지 않은 데이터를 전송하거나 저장할 때 사용한다. 이 인코딩 방법은 4가지 다른 종류의 변수들을 지원하는데, byte strings, integers, lists, dictionaries (associative arrays)이다.
Bencoding은 토렌트 파일의 인코딩에서 가장 널리 쓰이고 있으며, 메타데이터 파일들을 간단하고 효율적으로 인코딩 한다. 비록 퓨어 바이너리 인코딩보다는 덜 효율적이지만, 엔디언에 의한 영향이 없다. 어플리케이션이 예측하지 못한 값들을 무시하기 때문에, 비교적 유연한 구조를 갖게 된다.
엔디언(Endianness)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히 바이트 순서(Byte order)라 한다. 메타인포 내부의 모든 데이터는 bencoding 되며, bencoding의 사양은 위의 정의된 바와 같다. *.torrent 로 표시되어지는 메타인포 파일의 내용은 bencodingdictionary와 아래에 표시된 키 값들을 포함하고 있다. 모든 캐릭터 스트링 값은 UTF-8로 인코딩 된다.

용어
설명
info
a dictionary that describes the file(s) of the torrent. There are two possible forms
1
one for the case of a 'single-file' torrent with no directory structure,
2
one for the case of a 'multi-file' torrent (see below for details)
announce
The announce URL of the tracker (string)
announce-list
(optional) this is an extention to the official specification, offering backwards-compatibility. (list of lists of strings).
creation date
(optional) the creation time of the torrent, in standard UNIX epoch format (integer, seconds since 1-Jan-1970 00:00:00 UTC)
comment
(optional) free-form textual comments of the author (string)
created by
(optional) name and version of the program used to create the .torrent (string)
encoding
(optional) the string encoding format used to generate the pieces part of the info dictionary in the .torrent metafile (string)
piece length
number of bytes in each piece (integer)
pieces
string consisting of the concatenation of all 20-byte SHA1 hash values, one per piece (byte string, i.e. not urlencoded)
private
(optional) this field is an integer. If it is set to "1", the client MUST publish its presence to get other peers ONLY via the trackers explicitly described in the metainfo file. If this field is set to "0" or is not present, the client may obtain peer from other means, e.g. PEX peer exchange, dht. Here, "private" may be read as "no external peer source". 

Terminologies for BitTorrent

비트토렌트에 관한 많은 논의가 진행되고 있으나, 인터넷상에서의 표준화된 명칭이 없으므로, 명확성을 위해서 사용할 대표적인 비트토렌트 용어들을 정리하였다.1)
 
Torrent / Swarm
 
비트토렌트 프로토콜을 사용하여 같은 파일을 받고자 하는 peer들의 집합. 보통 torrentswarm이교환적으로 사용된다.
 
Metainfo File (.torrent)
 
Torrent file (, “.torrent”)이라고도 불리며 piece(조각)의 개수나 파일을 다운로드하기 위한 모든 정보가 들어있다. 각각의 piece를 검증하기 위해 pieceSHA-1 해시값이 들어있으며, 트래커의 IP 주소와 포트번호가 들어있다.
 
Tracker
 
비트토렌트 시스템 중에서 유일한 centralized 요소로 실제적인 파일의 전송에는 관여하지 않으나 파일을 공유하는 peer들의 위치 정보를 가지고 있으며, 그들의 통계 또한 수집한다. 호스트가 접속하면 해당 토렌트를 공유하는 peer 리스트를 제공한다.
 
Piece and Blocks
 
파일은 여러 개의 piece로 나뉘어져 있으며 각각의 pieceblock으로 또 나누어져 있다. 실제적인 전송단위는 block이며 peer가 완전한 piece을 소유하지 않으면 공유할 수가 없다.
 
Leecher and Seed
 
파일의 piece를 다운로드하고 있는 상태일 경우(, 모든 piece를 소유하고 있지 않을 때) leecher라고 하며, 파일의 다운로드가 끝나고 완전한 사본을 소유하고 있을 때 (, 모든 piece를 소유하고 있을 때) seed라고 한다. peer는 위 두 가지 상태 중 하나의 상태에만 있을 수 있다.
 
Rarest-First Algorithm
 
어떠한 piece를 요구할 지를 결정하는 선택 기법이다. 각각의 peer는 자신과 연결된 peer가 어떠한 piece를 소유하고 있는지에 대한 리스트를 가지고 있고, 이 리스트를 바탕으로 가장 개수가 적은 piece를 선택하고 요청하게 된다. 이때, peer가 소유한 정보를 바탕으로 선택하기 때문에 local rarest-first algorithm이라고도 한다.
 
Peer 선택 기법 (Choking Algorithm)
 
Choking 알고리즘은 자신이 업로드 할 peer를 선택하는 것으로 비트토렌트에서는 tit-for-tat 전략에 의해 peer를 선택하게 된다.
tit-for-tat 전략이란 자신에게 각 peer가 업로드한 비율을 비교해서 가장 많이 업로드한 4개의 peer를 선택하는 전략이다. 주기적으로 호스트는 자신에게 upload해준 peer들의 upload rate를 계산하여 unchokepeerchokepeer를 선택하게 된다. 만약 이러한 기법이 비트토렌트에 존재 하지 않으면 자신이 가지고 있는 piece를 다른 peer에게 전송해줄 이유가 없게 되고, 다른 peer에게 자신이 가지고 있는 piece를 업로드 하지 않은 채 자신이 받고자 하는 파일만 받고 바로 나가버리는 free-rider문제가 심화된다. 즉 비트토렌트에 공헌한 Peer는 많은 파일을 다운 받을 수 있고, 그렇지 않은 Peer는 혜택을 적게 받는 구조이다.

1) http://www.bittorrent.com