• 제목/요약/키워드: program plagiarism detection

검색결과 25건 처리시간 0.023초

바이트코드 분석을 이용한 자바 프로그램 표절검사기법 (A Plagiarism Detection Technique for Java Program Using Bytecode Analysis)

  • 지정훈;우균;조환규
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제35권7호
    • /
    • pp.442-451
    • /
    • 2008
  • 대부분의 표절검사 시스템들은 소스코드를 이용해 유사도를 계산하고 표절 프로그램을 찾아낸다. 소스코드를 이용하여 표절검사를 수행할 경우, 소스코드 보안문제가 발생할 수 있다. 목적 코드를 이용한 표절검사는 소스코드 보안문제에 대한 좋은 대안이 될 수 있다. 본 논문에서는 자바 프로그램의 표절검사에 대하여 소스코드 없이 바이트코드를 이용해 표절검사를 수행하는 방법을 제시한다. 바이트코드를 이용한 표절검사는 크게 두 단계로 진행된다 먼저, 자바 클래스 파일로부터 메소드의 코드영역을 분석해 토큰 시퀀스를 생성한 다음 적응적 지역정렬을 이용해 유사도를 계산한다. 실험 결과, 소스코드와 바이트코드의 유사도는 비슷한 분포를 보였다. 또한, 소스코드 쌍과 바이트코드 쌍의 유사도 상관관계가 충분히 높게 측정되었다. 본 논문에서 제안한 바이트코드 표절검사 시스템은 소스코드를 이용해 직접 표절을 검사하기 전 단계에서 1차적인 검증도구로 활용할 수 있다.

Plagiarism Detection among Source Codes using Adaptive Methods

  • Lee, Yun-Jung;Lim, Jin-Su;Ji, Jeong-Hoon;Cho, Hwaun-Gue;Woo, Gyun
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • 제6권6호
    • /
    • pp.1627-1648
    • /
    • 2012
  • We propose an adaptive method for detecting plagiarized pairs from a large set of source code. This method is adaptive in that it uses an adaptive algorithm and it provides an adaptive threshold for determining plagiarism. Conventional algorithms are based on greedy string tiling or on local alignments of two code strings. However, most of them are not adaptive; they do not consider the characteristics of the program set, thereby causing a problem for a program set in which all the programs are inherently similar. We propose adaptive local alignment-a variant of local alignment that uses an adaptive similarity matrix. Each entry of this matrix is the logarithm of the probabilities of the keywords based on their frequency in a given program set. We also propose an adaptive threshold based on the local outlier factor (LOF), which represents the likelihood of an entity being an outlier. Experimental results indicate that our method is more sensitive than JPlag, which uses greedy string tiling for detecting plagiarism-suspected code pairs. Further, the adaptive threshold based on the LOF is shown to be effective, and the detection performance shows high sensitivity with negligible loss of specificity, compared with that using a fixed threshold.

데이터 구조를 고려한 소스코드 표절 검사 기법 (A Plagiarism Detection Technique for Source Codes Considering Data Structures)

  • 이기화;김연어;우균
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제3권6호
    • /
    • pp.189-196
    • /
    • 2014
  • 표절은 불법이고 피해야 하지만 여전히 빈번하게 발생하고 있다. 특히, 소스코드 표절은 그 특성상 복사가 용이해 다른 저작물보다 더 빈번히 발생한다. 코드 표절을 방지하기 위한 다양한 연구가 있었다. 하지만 앞서 연구된 소스코드 표절 검사 기법을 살펴보면 프로그램이 알고리즘과 데이터 구조로 구성됨에도 불구하고 데이터 구조는 전혀 고려하지 않고 있다. 이 논문에서는 데이터 구조를 고려한 소스코드 표절 검사 기법을 제안한다. 구체적으로 말해서 두 소스코드의 데이터 구조를 트리 집합으로 나타내고, 헝가리안 메소드를 사용해 비교한다. 제안하는 기법의 효용성을 보이기 위해 객체지향 교과목에서 과제 답안으로 제출한 126개의 소스코드를 대상으로 실험하였다. 실험 결과 데이터 구조와 알고리즘을 모두 고려했을 때, 알고리즘만 고려한 경우보다 정확률과 F-measure가 각각 22.6%, 19.3% 향상됨을 보였다.

지적재산권의 효율적 보호를 위한 표절 감정 기법의 고찰 및 예술품의 위작 감정 방법의 제안 (A Survey of Plagiarism Inspection Method for Efficient Protecting of Intellectual Properties and Proposal of Art works Plagiarism Inspection)

  • 조동욱
    • 한국콘텐츠학회:학술대회논문집
    • /
    • 한국콘텐츠학회 2003년도 추계종합학술대회 논문집
    • /
    • pp.72-78
    • /
    • 2003
  • 본 논문에서는 지적재산권의 보호를 위한 기술적 방법론의 고찰과 지적재산권의 대표적 형태인 예술품의 표절 검출에 대한 새로운 방법론을 제안하고자한다. 본 논문에서는 이를 위해 프로그램 소스 코드로부터 표절을 감정하는 기술적 방법론에 대한 고찰과 자연어 형태로 쓰여진 글에 대한 표절 형태와 이를 감정하기 위한 기술적 방법들에 대해 살펴보고자 한다. 또한 미술품이나 고문헌등에 대한 저작자의 진위 여부 및 표절 감정은 저자뿐만 아니라 소장자의 재산가치 평가 및 문화재 관리측면에서 대단히 중요한 문제이기 때문에 이를 기술적으로 처리하기 위한 방법론을 제안하고자 한다.

  • PDF

메모리 액세스 로그 분석을 통한 프로그램 표절 검출 (Program Plagiarism Detection through Memory Access Log Analysis)

  • 박성윤;한상용
    • 정보처리학회논문지D
    • /
    • 제13D권6호
    • /
    • pp.833-838
    • /
    • 2006
  • 프로그램 소스코드를 표절하는 것은 소프트웨어의 지적재산권을 침해하는 행위이다. 표절을 감추기 위하여 소스코드의 구조를 일부 바꾸거나 변수 명을 바꾸는 등의 수단을 쓰기도 하기 때문에 표절을 검출하기란 쉽지 않은 일이다. 표절 행위를 막기 위해 이를 검출하기 위한 여러 가지 방법들이 고안되었으며 대부분 프로그램의 소스코드를 다양한 방법으로 분석하여 표절 검출하려고 한다. 본 논문에서는 소스 코드에 기반하지 않고 실행중인 프로그램의 메모리 액세스 로그 분석을 통해 알고리즘 유사도를 측정하여 프로그램의 표절 여부를 검출하는 새로운 방법을 제시한다. 두 프로그램의 메모리 액세스 로그는 일반적인 스트링 비교 알고리즘을 이용하여 분석될 수 있으며, 본 논문에서는 일반적인 방법보다 특성화된 방법을 제시한다. 이를 통해 메모리 액세스 로그가 프로그램의 표절 검출도구로서 사용되어질 수 있음을 보여준다.

Generating Pylogenetic Tree of Homogeneous Source Code in a Plagiarism Detection System

  • Ji, Jeong-Hoon;Park, Su-Hyun;Woo, Gyun;Cho, Hwan-Gue
    • International Journal of Control, Automation, and Systems
    • /
    • 제6권6호
    • /
    • pp.809-817
    • /
    • 2008
  • Program plagiarism is widespread due to intelligent software and the global Internet environment. Consequently the detection of plagiarized source code and software is becoming important especially in academic field. Though numerous studies have been reported for detecting plagiarized pairs of codes, we cannot find any profound work on understanding the underlying mechanisms of plagiarism. In this paper, we study the evolutionary process of source codes regarding that the plagiarism procedure can be considered as evolutionary steps of source codes. The final goal of our paper is to reconstruct a tree depicting the evolution process in the source code. To this end, we extend the well-known bioinformatics approach, a local alignment approach, to detect a region of similar code with an adaptive scoring matrix. The asymmetric code similarity based on the local alignment can be considered as one of the main contribution of this paper. The phylogenetic tree or evolution tree of source codes can be reconstructed using this asymmetric measure. To show the effectiveness and efficiency of the phylogeny construction algorithm, we conducted experiments with more than 100 real source codes which were obtained from East-Asia ICPC(International Collegiate Programming Contest). Our experiments showed that the proposed algorithm is quite successful in reconstructing the evolutionary direction, which enables us to identify plagiarized codes more accurately and reliably. Also, the phylogeny construction algorithm is successfully implemented on top of the plagiarism detection system of an automatic program evaluation system.

자바스크립트에 특화된 프로그램 종속성 그래프를 이용한 표절 탐지 (Plagiarism Detection Using Dependency Graph Analysis Specialized for JavaScript)

  • 김신형;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제37권5호
    • /
    • pp.394-402
    • /
    • 2010
  • 자바스크립트는 현재 웹 사이트, 웹 어플리케이션에서 가장 많이 사용되는 스크립트 언어 중 하나이다. 자바스크립트로 작성된 프로그램은 원본 프로그램 형태로 클라이언트에게 전송되므로 무단 복제, 도용에 쉽게 노출된다. 때문에 자바스크립트 프로그램의 도용을 탐지하기 위한 연구가 필요하다. 현재 일반적으로 프로그램 표절 탐지를 위해 사용되는 자동화 도구들의 경우 고수준의 표절 기법에 적절히 대응하지 못한다. 반면에 프로그램 종속성 그래프에 기반을 둔 기존 연구들의 경우 자바스크립트의 동적인 특징을 적절히 반영하지 못한다. 또한 지나친 일반화로 인해 일부 틀린 판정(false positive)을 보이며 대상 프로그램의 크기가 클 경우 탐지 속도에 문제를 보이고 있다. 본 논문에서는 자바스크립트에 특화된 프로그램 종속성 그래프(이하 JS PDG)와 이를 사용한 도용 탐지 기법을 제안하여 이러한 문제를 해결하고자 한다. 본 논문에서 제안하는 JS PDG는 세분화된 노드 타입을 가지고 있어 기존 PDG와 비교해 보다 정확한 그래프 간 비교를 할 수 있도록 하며 포함하고 있는 노드 타입에 따라 정의되는 JS PDG의 타입은 탐색 범위를 분할을 가능하게 해 전체 도용 탐지 속도가 개선 될 수 있도록 한다. 실험 결과 기존 PDG에서 나타나는 틀린 판정을 확인할 수 있었으며 PDG간 비교 횟수가 줄어들어 도용 탐지 속도가 개선됨을 확인할 수 있었다.

X-treeDiff+ 기반의 프로그램 복제 탐지 (Program Plagiarism Detection based on X-treeDiff+)

  • 이석균
    • 전자공학회논문지CI
    • /
    • 제47권4호
    • /
    • pp.44-53
    • /
    • 2010
  • 컴퓨터 프로그래밍 교육에서 프로그램 복제는 프로그래밍 학습 효율을 저해하는 심각한 요인이다. 본 논문에서는 학생들이 프로그래밍 과제의 무분별한 복제를 방지하기 위해 유사 또는 동일 프로그램을 탐지하는 기법을 제안한다. 지문법이나 스트링 매칭을 기반으로 하는 기존의 탐지 기법과는 달리, 우선 C 프로그램을 파싱하여 문법요소를 엘리먼트로 하는 XML 문서로 변화시킨 후 XML 문서의 변화탐지 알고리즘인 X-treeDiff+를 실행시켜 그 차이를 분석하는 방법을 취한다. 이때 대응의 정도를 나타내는 유사도와 두 문서의 차이로 제시되는 일련의 편집연산인 편집스크립트를 프로그램 복제의 관점에서 분석하여 복제 여부에 대한 판단을 하게 된다. 편집스크립트의 분석은 두 프로그램 간의 변환 과정을 유추할 수 있게 하여 기존 방법들과는 달리 사용자는 과제의 성격이나 복제의 정도를 고려한 정성적인 판단이 가능하다는 장점이 있다.

굼벨 분포 모델을 이용한 표절 프로그램 자동 탐색 및 추적 (Automated Detecting and Tracing for Plagiarized Programs using Gumbel Distribution Model)

  • 지정훈;우균;조환규
    • 정보처리학회논문지A
    • /
    • 제16A권6호
    • /
    • pp.453-462
    • /
    • 2009
  • 소프트웨어의 지적 재산권 보호 및 인증에 대한 관심과 중요성이 커지면서 소프트웨어에 대한 표절 탐색 및 보호, 판단에 대한 연구가 활발 하게 진행되고 있다. 지금까지 표절에 대한 연구는 주로 속성 계산, 토큰 패턴, 프로그램 파스트리, 유사도 측정 알고리즘 등을 이용해 두 프로 그램을 비교하는데 초점을 두었다. 이와 더불어, 표절과 협동(collaboration)을 구분하는 것은 표절연구에서 매우 중요하다. 본 논문에서는 극단 치 분포 확률 모델을 이용한 소스코드 클러스터링을 위한 알고리즘을 제안한다. 본 논문에서는 먼저 두 프로그램 먼저 두 프로그램 $P_a$$P_b$ 의 유사도를 측정하는 비대칭거리측정함수 pdist($P_a$, $P_b$)를 제안하고, 모든 소스코드 쌍에 대해 pdist($P_a$, $P_b$)를 통해 측정된 유사도를 간선무게로 하는 표절방 향그래프(PDG)를 생성한다. 그리고 본 논문에서는 표절방향그래프를 굼벨거리그래프(GDG)로 변환한다. pdist($P_a$, $P_b$) 점수 분포는 극단치 확률 분포로 잘 알려진 굼벨분포(Gumbel distribution)와 매우 유사하다. 또한, 본 논문에서는 의사표절(pseudo- plagiarism)을 새롭게 정의한다. 의사표절은 프로그램의 강한 기능적 제약사항으로 인해 발생하는 가상 표절의 한 종류이다. 본 논문에서는 ICPC(International Collegiate Programming Contest)와 KOI(Korean Olympiad for Informatics) 대회에 제출된 18개 프로그램 그룹의 700개 이상의 소스코드에 대해 실험을 진행하였다. 실험결과 프로그램 그룹에 포함된 표절 프로그램들을 찾았으며, 소스코드 클러스터링 알고리즘은 의사표절과 실제표절 프로그램 그룹을 효과적으로 구분하였다.

유전체 서열의 정렬 기법을 이용한 소스 코드 표절 검사 (Applying Genomic Sequence Alignment Methodology for Source Codes Plagiarism Detection)

  • 강은미;황미녕;조환규
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제9권3호
    • /
    • pp.352-367
    • /
    • 2003
  • 일반적인 컴퓨터 프로그램의 구성적, 구문적 특징은 소스 코드로부터 추출한 키워드들의 서열로 나타낼 수 있다. 따라서 추출한 키워드의 서열을 비교하면 두 프로그램의 유사성과 상이점에 대해서 잘 파악할 수 있다. 서열의 유사성을 측정하는 여러 가지 방법은 생물학적 유전자 서열을 다루는 생물정보학에서 활발한 연구가 이루어져왔다. 본 논문에서 우리는 두 프로그램간의 유사성을 측정하고 서열 정렬 방법을 이용하여 부분 표절 검출을 하는 새로운 방법을 제안한다. 제시한 방법의 성능을 평가하기 위해서, 2001년 자료구조 수업에 참석한 수강생들이 제출한 프로그램을 실험 데이타로 사용하여 표절을 검사하였다. 실험결과는 제안된 기법이 표절 검사에 있어 가장 널리 사용되는 지문법(fingerprint)보다 더 효과적임을 보여 주었다.