JP6907847B2 - ソースプログラム保護システム及び方法 - Google Patents
ソースプログラム保護システム及び方法 Download PDFInfo
- Publication number
- JP6907847B2 JP6907847B2 JP2017176327A JP2017176327A JP6907847B2 JP 6907847 B2 JP6907847 B2 JP 6907847B2 JP 2017176327 A JP2017176327 A JP 2017176327A JP 2017176327 A JP2017176327 A JP 2017176327A JP 6907847 B2 JP6907847 B2 JP 6907847B2
- Authority
- JP
- Japan
- Prior art keywords
- source program
- character string
- secret information
- association information
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
任意の文字列が所定の指定記号により囲まれた記述を含むソースプログラムの入力を受け付け、
前記ソースプログラム内で前記指定記号により囲まれた記述を第1の文字列として検出し、
前記第1の文字列に第1の置換文字列を対応付けた第1の対応付け情報を生成し、
前記第1の対応付け情報に基づいて、前記ソースプログラム内で前記第1の文字列を前記第1の置換文字列に置換して第1の部分暗号化ソースプログラムとして出力し、
前記第1の対応付け情報を暗号化して第1の秘密情報ファイルとして出力する、
第1の装置と、
前記第1の部分暗号化ソースプログラムと、前記第1の秘密情報ファイルとの入力を受け付け、
前記第1の秘密情報ファイルを復号化して前記第1の対応付け情報を抽出し、
前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記第1の置換文字列を前記第1の文字列に置換して復号化ソースプログラムを生成し、
前記復号化ソースプログラムから前記指定記号を除外して所定の処理を行い、当該処理の結果を出力する、
第2の装置と、
を備える。
第1の装置において、
任意の文字列が所定の指定記号により囲まれた記述を含むソースプログラムの入力を受け付け、
前記ソースプログラム内で前記指定記号により囲まれた記述を第1の文字列として検出し、
前記第1の文字列に第1の置換文字列を対応付けた第1の対応付け情報を生成し、
前記第1の対応付け情報に基づいて、前記ソースプログラム内で前記第1の文字列を前記第1の置換文字列に置換して第1の部分暗号化ソースプログラムとして出力し、
前記第1の対応付け情報を暗号化して第1の秘密情報ファイルとして出力し、
第2の装置において、
前記第1の部分暗号化ソースプログラムと、前記第1の秘密情報ファイルとの入力を受け付け、
前記第1の秘密情報ファイルを復号化して前記第1の対応付け情報を抽出し、
前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記第1の置換文字列を前記第1の文字列に置換して復号化ソースプログラムを生成し、
前記復号化ソースプログラムから前記指定記号を除外して所定の処理を行い、当該処理の結果を出力する。
図1は、本発明の実施の形態1にかかるソースプログラム保護システム100の構成を示すブロック図である。ソースプログラム保護システム100は、第1の装置10と、第2の装置20とを備える。第1の装置10は、ソースプログラム31に対して本実施の形態1にかかる部分暗号化処理を行う。第1の装置10は、例えば、ソースプログラム31の提供元のユーザが操作するコンピュータ等の情報処理装置である。ここで、ソースプログラム31は、任意の文字列が所定の指定記号により囲まれた記述を含むコンピュータプログラムである。尚、任意の文字列は、プログラムにおける文の集合に限定されず、プログラムコードの一部も含まれるものとする。そして、任意の文字列は、提供元が提供先に開示できない秘密情報を含む記述であるものとする。つまり、任意の文字列は、暗号化対象の情報である。また、指定記号とは、プログラムミング言語における予約語であるか、特定の文字の組合せであり、通常のプログラムコードとは区別可能な文字列であるものとする。また、提供元のユーザは、第1の装置10を用いてソースプログラム31の開発を行っても良い。そして、提供元のユーザは、第1の装置10を用いてソースプログラム31内の任意の文字列を、所定の指定記号により囲むように追記してもよい。
本実施の形態2は、上述した実施の形態1の改良例である。本実施の形態2は、実施の形態1の第2の装置20をコンパイラ装置に適用したものである。ここで、コンパイラ製品の障害調査において、現象が発生するソースプログラムが必要となる場合がある。しかし、秘密情報を含むソースプログラムを平文のままで提供先に送付すると、以下のリスクにより情報が漏れる可能性が出てくる。
本実施の形態3は、上述した実施の形態1又は2の改良例である。本実施の形態3は、実施の形態1の第1の装置10又は実施の形態2のソースプログラム部分暗号化装置40をソースプログラム編集装置に適用したものである。例えば、ソースプログラムC4のうち秘密情報指定符C0で囲まれた記述については、提供先では編集することができない。そのような場合には、提供元において秘密情報の記述を編集できることが望ましい。そして、編集後に、再度、部分暗号化処理を行う必要がある。
本実施の形態4は、上述した実施の形態1から3の改良例である。本実施の形態4は、実施の形態1の第2の装置20をソースプログラム解析装置に適用したものである。例えば、提供先における調査において、調査対象のソースプログラムを解析する場合がある。ここで、上述した部分暗号化処理済みのソースプログラムC4を解析するには、解析装置内で復号処理を行ない、復号後のソースプログラムに対して解析処理を行うこととなる。但し、解析結果に復号後の秘密情報が表示されてしまうと、秘密情報を隠ぺいできないこととなる。そこで、本実施の形態4では、解析結果に対しても部分暗号化処理を行うものである。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
10 第1の装置
20 第2の装置
31 ソースプログラム
32 第1の部分暗号化ソースプログラム
33 第1の秘密情報ファイル
34 処理の結果
200 ソースプログラム保護システム
40 ソースプログラム部分暗号化装置
41 部分暗号化処理モジュール
411 秘密情報リスト作成部
412 秘密情報ファイル作成部
50 コンパイラ装置
51 復号処理モジュール
511 復号部
512 秘密情報結合部
52 コンパイル処理モジュール
53 部分暗号化処理モジュール
C0 秘密情報指定符
C0−1 開始記号
C0−2 終了記号
C1 ソースプログラム
C2 秘密情報リスト
C2−1 項目番号
C2−2 秘密情報本文
C3 秘密情報ファイル
C4 ソースプログラム
C5 オブジェクトプログラム
C6 プログラムリスト
C7 プログラムリスト
C8 秘密情報ファイル
C9 部分暗号化解析結果
K1 公開鍵
H1 秘密鍵
300 ソースプログラム保護システム
60 ソースプログラム編集装置
61 入力受付部
62 表示処理部
63 編集処理部
64 部分暗号化処理モジュール
65 復号処理モジュール
400 ソースプログラム保護システム
70 ソースプログラム解析装置
71 復号処理モジュール
72 解析処理部
Claims (10)
- 任意の文字列が所定の指定記号により囲まれた記述を含むソースプログラムの入力を受け付け、
前記ソースプログラム内で前記指定記号により囲まれた記述を第1の文字列として検出し、
前記第1の文字列に第1の置換文字列を対応付けた第1の対応付け情報を生成し、
前記第1の対応付け情報に基づいて、前記ソースプログラム内で前記第1の文字列を前記第1の置換文字列に置換して第1の部分暗号化ソースプログラムとして出力し、
前記第1の対応付け情報を暗号化して第1の秘密情報ファイルとして出力する、
第1の装置と、
前記第1の部分暗号化ソースプログラムと、前記第1の秘密情報ファイルとの入力を受け付け、
前記第1の秘密情報ファイルを復号化して前記第1の対応付け情報を抽出し、
前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記第1の置換文字列を前記第1の文字列に置換して復号化ソースプログラムを生成し、
前記復号化ソースプログラムから前記指定記号を除外して所定の処理を行い、当該処理の結果を出力する、
第2の装置と、
を備えるソースプログラム保護システム。 - 前記第1の装置は、
前記指定記号の入力をさらに受け付け、
前記第1の秘密情報ファイルに前記指定記号をさらに含めて出力し、
前記第2の装置は、
前記第1の部分暗号化ソースプログラム内で、前記受け付けた第1の秘密情報ファイルに含まれる前記指定記号で囲まれた記述を前記第1の置換文字列として検出し、
前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記検出した第1の置換文字列を前記第1の文字列に置換する
請求項1に記載のソースプログラム保護システム。 - 前記第2の装置は、所定の秘密鍵を有し、
前記第1の装置は、
前記秘密鍵に対応する公開鍵を前記第2の装置から取得し、
前記公開鍵を用いて前記第1の対応付け情報を暗号化し、
前記第2の装置は、
前記秘密鍵を用いて前記第1の秘密情報ファイルを復号化する
請求項1又は2に記載のソースプログラム保護システム。 - 前記第1の装置は、
前記ソースプログラム内で前記指定記号により囲まれた記述が複数個所検出された場合、当該複数個所の文字列同士を比較し、当該文字列同士が一致する場合、共通の前記第1の置換文字列に置換する
請求項1乃至3のいずれか1項に記載のソースプログラム保護システム。 - 前記第2の装置は、
前記所定の処理としてコンパイルを行い、当該コンパイルにより生成されたオブジェクトプログラムを前記処理の結果として出力する、
請求項1乃至4のいずれか1項に記載のソースプログラム保護システム。 - 前記第2の装置は、
前記コンパイルの前処理により、前記復号化ソースプログラムからコンパイル用のソースプログラムであるプログラムリストを生成し、
前記プログラムリスト内で前記指定記号により囲まれた記述を第2の文字列として検出し、
前記第2の文字列に第2の置換文字列を対応付けた第2の対応付け情報を生成し、
前記第2の対応付け情報に基づいて、前記プログラムリスト内で前記第2の文字列を前記第2の置換文字列に置換して第2の部分暗号化ソースプログラムとして出力し、
前記第2の対応付け情報を暗号化して第2の秘密情報ファイルとして出力する、
請求項5に記載のソースプログラム保護システム。 - 前記第2の装置は、
前記第1の秘密情報ファイルを復号化する際に用いた秘密鍵に対応する公開鍵を用いて前記第2の対応付け情報を暗号化する
請求項6に記載のソースプログラム保護システム。 - 前記第1の装置は、
前記ソースプログラムを表示し、
編集要求に応じて前記ソースプログラムを更新して再表示し、
保存要求に応じて前記更新後のソースプログラム内の前記指定記号により囲まれた記述を第3の文字列として検出し、
前記第3の文字列に第3の置換文字列を対応付けた第3の対応付け情報を生成し、
前記第3の対応付け情報に基づいて、前記更新後のソースプログラム内で前記第3の文字列を前記第3の置換文字列に置換して第3の部分暗号化ソースプログラムとして出力し、
前記第3の対応付け情報を暗号化して第3の秘密情報ファイルとして出力する、
請求項1乃至4のいずれか1項に記載のソースプログラム保護システム。 - 前記第2の装置は、
前記所定の処理として前記復号化ソースプログラムに対して所定の解析を行い、
前記解析の結果内で前記指定記号により囲まれた記述を第4の文字列として検出し、
前記第4の文字列に第4の置換文字列を対応付けた第4の対応付け情報を生成し、
前記第4の対応付け情報に基づいて、前記解析の結果内で前記第4の文字列を前記第4の置換文字列に置換した部分暗号化解析結果を前記処理の結果として出力する
請求項1乃至4のいずれか1項に記載のソースプログラム保護システム。 - 第1の装置において、
任意の文字列が所定の指定記号により囲まれた記述を含むソースプログラムの入力を受け付け、
前記ソースプログラム内で前記指定記号により囲まれた記述を第1の文字列として検出し、
前記第1の文字列に第1の置換文字列を対応付けた第1の対応付け情報を生成し、
前記第1の対応付け情報に基づいて、前記ソースプログラム内で前記第1の文字列を前記第1の置換文字列に置換して第1の部分暗号化ソースプログラムとして出力し、
前記第1の対応付け情報を暗号化して第1の秘密情報ファイルとして出力し、
第2の装置において、
前記第1の部分暗号化ソースプログラムと、前記第1の秘密情報ファイルとの入力を受け付け、
前記第1の秘密情報ファイルを復号化して前記第1の対応付け情報を抽出し、
前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記第1の置換文字列を前記第1の文字列に置換して復号化ソースプログラムを生成し、
前記復号化ソースプログラムから前記指定記号を除外して所定の処理を行い、当該処理の結果を出力する、
ソースプログラム保護方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017176327A JP6907847B2 (ja) | 2017-09-14 | 2017-09-14 | ソースプログラム保護システム及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017176327A JP6907847B2 (ja) | 2017-09-14 | 2017-09-14 | ソースプログラム保護システム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019053146A JP2019053146A (ja) | 2019-04-04 |
JP6907847B2 true JP6907847B2 (ja) | 2021-07-21 |
Family
ID=66014018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017176327A Active JP6907847B2 (ja) | 2017-09-14 | 2017-09-14 | ソースプログラム保護システム及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6907847B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268736A (zh) * | 2021-06-24 | 2021-08-17 | 深圳平安智汇企业信息管理有限公司 | 一种信息处理方法、装置及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09233067A (ja) * | 1990-07-31 | 1997-09-05 | Hiroichi Okano | 知的情報処理方法および装置 |
JP2887299B2 (ja) * | 1990-07-31 | 1999-04-26 | 博一 岡野 | 知的情報処理方法および装置 |
JP2003280754A (ja) * | 2002-03-25 | 2003-10-02 | Nec Corp | 隠蔽化ソースプログラム、ソースプログラム変換方法及び装置並びにソース変換プログラム |
WO2007072568A1 (ja) * | 2005-12-22 | 2007-06-28 | Fujitsu Limited | プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体 |
JP5133973B2 (ja) * | 2007-01-18 | 2013-01-30 | パナソニック株式会社 | 難読化支援装置、難読化支援方法、プログラムおよび集積回路 |
SG182015A1 (en) * | 2010-12-14 | 2012-07-30 | C3S Pte Ltd | Method and system for protecting intellectual property in software |
KR20140097927A (ko) * | 2013-01-30 | 2014-08-07 | 삼성전자주식회사 | 소프트웨어의 보안을 높이는 방법 |
-
2017
- 2017-09-14 JP JP2017176327A patent/JP6907847B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019053146A (ja) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8589880B2 (en) | Identifying a software developer based on debugging information | |
CN108595921B (zh) | 一种源代码中字符串的混淆方法和装置 | |
JP4770425B2 (ja) | 保護済み実行プログラムの作成のためのプログラム、方法及び装置 | |
CN104539432B (zh) | 一种对文件进行签名的方法和装置 | |
US8166313B2 (en) | Method and apparatus for dump and log anonymization (DALA) | |
US8635458B2 (en) | Method and a system for embedding textual forensic information | |
JP5735539B2 (ja) | ネットワークを介して送信されるデータの暗号化および復号化システム、装置、および方法 | |
US20080037789A1 (en) | Document Processing Device, Document Reading Device, and Document Processing Method | |
US20080208886A1 (en) | Encryption based silicon IP protection | |
JPWO2007125911A1 (ja) | データ処理装置、方法、プログラム、集積回路、プログラム生成装置 | |
JP2012118956A (ja) | インデックステーブル基盤のコード暗号化及び復号化装置及びその方法 | |
CN104751024A (zh) | 一种对核心源代码进行加密的方法及装置 | |
US10902099B2 (en) | Debuggable obfuscated script | |
CN109740314A (zh) | 一种swf混淆加密的方法 | |
JP6907847B2 (ja) | ソースプログラム保護システム及び方法 | |
US10013517B1 (en) | High level programming language core protection for high level synthesis | |
JP6636226B2 (ja) | 対策立案支援装置、対策立案支援方法及び対策立案支援プログラム | |
CN110472425A (zh) | 基于Mono的Unity插件加密方法、存储介质 | |
US6931634B2 (en) | Encrypted compiler | |
CN111563266B (zh) | 电力系统数据操作程序加密方法及装置、解密方法及装置 | |
KR102229879B1 (ko) | 소스코드관리방법, 이를 수행하는 소스코드관리서버, 및 이를 이용한 소스코드개발방법 | |
JP4125995B2 (ja) | データ変換システム | |
CN100464301C (zh) | 应用程序处理方法及系统 | |
US10574632B2 (en) | System and method for secure sharing of a source code | |
CN111651781B (en) | Log content protection method, device, computer equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200817 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210420 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210601 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210614 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6907847 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |