JP2007086845A - クライアントサーバシステムおよび同システムにおけるサーバサイドプログラムの実現方法ならびにそのサーバ装置、サーバサイドプログラム - Google Patents
クライアントサーバシステムおよび同システムにおけるサーバサイドプログラムの実現方法ならびにそのサーバ装置、サーバサイドプログラム Download PDFInfo
- Publication number
- JP2007086845A JP2007086845A JP2005271352A JP2005271352A JP2007086845A JP 2007086845 A JP2007086845 A JP 2007086845A JP 2005271352 A JP2005271352 A JP 2005271352A JP 2005271352 A JP2005271352 A JP 2005271352A JP 2007086845 A JP2007086845 A JP 2007086845A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- encoding
- program
- encoded
- server
- 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.)
- Pending
Links
Images
Abstract
【解決手段】 クライアント装置1が、プログラムに含まれる変数を任意の符号化式を用いて符号化してネットワーク経由でサーバ装置2に送信し、サーバ装置2が、当該符号化された変数が満たすべき関係式を満足するか否かを判定し、満足すると判定されたとき、符号化式に依存して決まる復号式を用いて符号化前の変数を取得する。
【選択図】 図1
Description
佐藤他、信学技報、Vol.IT‐2002−49,pp.13−18,Mar.2002"データの符号化と演算子の変換によるプログラムの難読化手法"
例えば、水道、ガス、電気などの使用料から料金を求めるクライアントプログラムでは、利用者が計算結果を不正に改竄し、料金を減額する可能性がある。また、オンラインゲームでは、不正者が得点を改竄し、ランキングの上位に入賞しようとする可能性がある。
一つは、サーバ側ですべての処理を行う方法である。具体的に、図6(a)に示されるように、クライアントプログラムPcには、サーバプログラムPsと通信を行う機能のみを持たせる。このとき、Psは、Pcから送られてきたデータに対しすべての処理を行う。他の一つは、共通鍵を利用する方法である。具体的に、図6(b)に示されるように、クライアントプログラムPcとサーバプログラムPs間で、秘密鍵Kを共有する。このとき、Pcは、計算結果を秘密鍵Kで暗号化し、Psに送信する。そして、Psは、秘密鍵Kを用いて送られたデータを復号し、残りの処理を行う。
ここでは、データの符号化による難読化方式を使い、安全なサーバサイド方式を実現する。難読化されたクライアントプログラムO(Pc)(Pc:難読化前のクライアントプログラム)は、符号化式Eによって符号化されたデータに関してのみ処理を行い、符号化された計算結果をサーバプログラム(Ps)に送信し、サーバ装置2は、保持している復号式Dでその計算結果を復号し残りの処理を行う。従って、秘密鍵を使用しないことから鍵を格納するための技術を必要としない。
クライアントサーバシステムは、クライアント装置1とサーバ装置2で構成され、両者は、IP(Internet Protocol)等のネットワーク3を介して接続される。
変数検証演算部22は、符号化された変数が満たすべき関係式を満足するか否かを判定し、その結果に従い変数復号演算部23を制御し、変数復号演算部23は、変数検証演算部22により関係式が満足すると判定されたとき、符号化式に依存して決まる復号式を用いて符号化前の変数を取得し、当該変数を含むプログラムを情報処理部24へ供給する。従って、上記した変数検証演算部22と変数復号演算部23は、請求項に示す、「符号化された変数が満たすべき関係式を満足するか否かを判定し、満足すると判定されたとき、前記符号化式に依存して決まる復号式を用いて前記符号化前の変数を取得する手段」として機能する。
なお、情報処理部24は、そのプログラムに従いサーバ装置2本来の処理を実行する。
以下、図3、図4に示すフローチャートを参照しながら図1、図2に示す本発明の実施形態の動作について詳細に説明する。
クライアント装置1は、クライアントプログラムPcに含まれる変数を符号化するにあたり、変数選択出力部11を起動して符号化対象となる変数の選択出力を行う(ステップS31)。変数選択出力部11は、クライアントプログラムPcに含まれる変数から符号化の対象となるn個(nは正の整数)の変数x1,x2,…,xnを選択する。
上記した符号化式を用いることにより、プログラムに含まれる変数x1,x2,…,xmに対する代入命令を、符号化された変数X1,X2,…,Xmに対する代入命令に置換することができる。
⇔関数f1,f2,…,fnが従属でない。
(定義2)n個の関数f1,f2,…,fnが従属である。
⇔定数列c1,c2,…,ckおよび定数cが存在して、以下の式(2)が成立する。
なお、自明でない関係式とは、符号化された変数X1,X2,…,Xmが満たすべき関係式である。この関係式を用いると、1つの変数の復号式2m-n通りに表現することができ、どの変数が復号されているかを特定することを難しくすることができる。また、符号化される変数がこの関係式を満たしているか否かを判定することによって、クライアントプログラムPcが送信したデータの正当性を確認することができる。
すなわち、まず、サーバプログラムPsとの通信部分につき、クライアントプログラムPc中で、サーバプログラムPsに計算結果を送信する命令を、すべての符号化された変数および必要な符号化されていない変数を送信する命令に置換する。これ以外の変数については、以下の手順に従い、符号化された変数に置換する。
ここでは、まず、符号化された変数への初期値代入命令の追加を行う。具体的に、符号化された変数X1,X2,…,Xmには、m−n個の自明でない関係式を満たす任意の値を初期値として代入する。そして、連続する代入命令のマージを行う。ここでは、上記により生成された代入命令の中で、連続しているものをマージする。例えば、以下の(5)式で示される連続する2命令は、以下の(6)式で示される1個の命令にマージされる。そして、こられ符号化された変数を含むプログラムをプログラム送信部16によりサーバ装置2へ送信する。
サーバ装置2は、ネットワーク3経由でクライアント装置1から送信される符号化されたプログラムを、プログラム受信部21を介して受信し、まず、変数検証演算部22を起動してデータ(変数)の検証を行う。
すなわち、変数検証演算部22は、クライアント装置1から送られてきた符号化された変数X1,X2,…,Xmがm−n個すべての自明でない関係式を満たしているか否かをチェックして変数の検証を行う(ステップS41)。もし、変数が自明でない関係式を満たしていない場合、クライアントプログラムPcから送られたデータは改竄された可能性がある。
情報処理部24は、得られた変数および必要に応じ符号化されない変数を用いて計算結果を出力し(ステップS43)、計算結果が出力された後は、サーバプログラムPs本来の処理を実行する(ステップS44)。
ここでは、変数xを読み取り、y=10x+50を計算し、サーバプログラムPsに送信するクライアントプログラムPcを例示している。また、変数xを、2つの変数XおよびYに、以下の式(7)に示すように符号化するものとする。また、符号化された変数XおよびYは、自明でない関係式2X+Y−50を満たす。
このことにより、変数の符号化による難読化を用いて安全なサーバサイドプログラムを実現することができる。すなわち、難読化されたクライアントプログラムPcは、符号化式によって符号化されたデータに関してのみ処理を行い、符号化された計算結果をサーバ装置2に送信し、サーバ装置2は、保持している復号式でその計算結果を復号し残りの処理を行う。従って、秘密鍵を使用しないことから鍵を格納するための技術および資源を必要としない。また、クライアントプログラムPcから送られてきたデータが自明でない関係式を満たすことを確認することによってデータの正当性を検証することができる。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
Claims (5)
- プログラムに含まれる変数を任意の符号化式を用いて符号化し、ネットワーク経由でサーバ装置に送信するクライアント装置と、
前記符号化された変数を前記ネットワーク経由で受信し、当該符号化された変数が満たすべき関係式を満足するか否かを判定し、満足すると判定されたとき、前記符号化式に依存して決まる復号式を用いて前記符号化前の変数を取得するサーバ装置と、
を備えることを特徴とするクライアントサーバシステム。 - 前記クライアント装置は、
前記プログラムに含まれる変数から符号化の対象となるn個の変数を選択出力する変数選択出力部と、
m個(但し、m≧nであって正の整数)の符号化関数のうち、n個の符号化関数を独立とする任意の符号化式を生成する符号化式生成部と、
前記符号化式に含まれる独立なn個の符号化式から成る連立方程式を解き、前記符号化関数に依存して決まる復号関数から成るn個の復号式を生成する復号式生成部と、
前記生成されたn個の復号式を、残るm−n個の符号化式から成る連立方程式に代入し、m−n個の符号化された変数が満たすべき関係式を生成する関係式生成部と、
前記サーバ装置に対して計算結果を送信する命令を、全ての符号化された変数、および必要な符号化されていない変数を送信する命令に変換し、かつ、前記符号化前の変数に対する代入命令を前記符号化式に基づき前記符号化された変数に対する代入命令に置換し、前記プログラム中で参照されている前記符号化前の変数を前記復号式で置換する変数命令符号演算部と、
から成ることを特徴とする請求項1に記載のクライアントサーバシステム。 - クライアントサーバシステムのサーバ装置上で動作し、ネットワークを介してクライアント装置から送信されるプログラムを受信してサーバ装置の本来の処理を行うサーバサイドプログラムの実現方法であって、
前記クライアント装置が、前記プログラムに含まれる変数を任意の符号化式を用いて符号化し、ネットワーク経由でサーバ装置に送信するステップと、
前記サーバ装置が、前記符号化された変数を前記ネットワーク経由で受信し、当該符号化された変数が満たすべき関係式を満足するか否かを判定し、満足すると判定されたとき、前記符号化式に依存して決まる復号式を用いて前記符号化前の変数を取得するステップと、
を有することを特徴とするサーバサイドプログラムの実現方法。 - ネットワークを介してクライアント装置から送信されるプログラムを受信し、当該プログラムの少なくとも一部を実行するサーバ装置であって、
前記クライアント装置から送信される、任意の符号化式により符号化された前記プログラムに含まれる変数を前記ネットワーク経由で受信する手段と、
前記符号化された変数が満たすべき関係式を満足するか否かを判定し、満足すると判定されたとき、前記符号化式に依存して決まる復号式を用いて前記符号化前の変数を取得する手段と、
を具備することを特徴とするサーバ装置。 - サーバ装置で動作し、ネットワーク経由でクライアント装置から送信されるプログラムを受信し、前記プログラムの少なくとも一部を実行するサーバサイドプログラムであって、
任意の符号化式により符号化された前記プログラムに含まれる変数を前記ネットワーク経由で受信する処理と、
前記符号化された変数が満たすべき関係式を満足するか否かを判定し、満足すると判定されたとき、前記符号化式に依存して決まる復号式を用いて前記符号化前の変数を取得する処理と、
をコンピュータに実行させるサーバサイドプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005271352A JP2007086845A (ja) | 2005-09-20 | 2005-09-20 | クライアントサーバシステムおよび同システムにおけるサーバサイドプログラムの実現方法ならびにそのサーバ装置、サーバサイドプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005271352A JP2007086845A (ja) | 2005-09-20 | 2005-09-20 | クライアントサーバシステムおよび同システムにおけるサーバサイドプログラムの実現方法ならびにそのサーバ装置、サーバサイドプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007086845A true JP2007086845A (ja) | 2007-04-05 |
Family
ID=37973803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005271352A Pending JP2007086845A (ja) | 2005-09-20 | 2005-09-20 | クライアントサーバシステムおよび同システムにおけるサーバサイドプログラムの実現方法ならびにそのサーバ装置、サーバサイドプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007086845A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011150560A (ja) * | 2010-01-22 | 2011-08-04 | Kddi Corp | ソフトウェア保護システム、ソフトウェア保護方法、ソフトウェア変換方法およびプログラム |
JP2012133736A (ja) * | 2010-12-24 | 2012-07-12 | Kddi Corp | ソフトウェアの難読化装置、ソフトウェアの難読化方法およびプログラム |
JP2014186498A (ja) * | 2013-03-22 | 2014-10-02 | Kddi R & D Laboratories Inc | ライセンス管理システム、方法及びモジュール |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03262334A (ja) * | 1990-03-13 | 1991-11-22 | Nec Corp | 誤り訂正符号の復号方式 |
JP2002514333A (ja) * | 1997-06-09 | 2002-05-14 | インタートラスト テクノロジーズ コーポレイション | ソフトウェアセキュリティを増強するための混乱化技術 |
JP2005049925A (ja) * | 2003-07-29 | 2005-02-24 | Nara Institute Of Science & Technology | プログラム難読化装置、プログラム難読化プログラム及びプログラム難読化方法 |
-
2005
- 2005-09-20 JP JP2005271352A patent/JP2007086845A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03262334A (ja) * | 1990-03-13 | 1991-11-22 | Nec Corp | 誤り訂正符号の復号方式 |
JP2002514333A (ja) * | 1997-06-09 | 2002-05-14 | インタートラスト テクノロジーズ コーポレイション | ソフトウェアセキュリティを増強するための混乱化技術 |
JP2005049925A (ja) * | 2003-07-29 | 2005-02-24 | Nara Institute Of Science & Technology | プログラム難読化装置、プログラム難読化プログラム及びプログラム難読化方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011150560A (ja) * | 2010-01-22 | 2011-08-04 | Kddi Corp | ソフトウェア保護システム、ソフトウェア保護方法、ソフトウェア変換方法およびプログラム |
JP2012133736A (ja) * | 2010-12-24 | 2012-07-12 | Kddi Corp | ソフトウェアの難読化装置、ソフトウェアの難読化方法およびプログラム |
JP2014186498A (ja) * | 2013-03-22 | 2014-10-02 | Kddi R & D Laboratories Inc | ライセンス管理システム、方法及びモジュール |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9350544B2 (en) | Apparatus for encrypting data | |
US20050193203A1 (en) | Security associations for devices | |
US20130028419A1 (en) | System and a method for use in a symmetric key cryptographic communications | |
JP2008516548A (ja) | コンテンツ暗号化方法、これを利用したネットワークによるコンテンツ提供システム及びその方法 | |
US8392723B2 (en) | Information processing apparatus and computer readable medium for preventing unauthorized operation of a program | |
US20210279341A1 (en) | Cryptographic security system, method, and program product using data partitioning | |
US20210281406A1 (en) | Cryptographic security system, method, and program product using data partitioning | |
CN107196840B (zh) | 数据处理方法、装置及设备 | |
JP2009531728A (ja) | 最高セキュリティアプリケーションのための暗号化方法 | |
Firdaus et al. | Monitoring system with two central facilities protocol | |
Yoon et al. | Visual honey encryption: Application to steganography | |
Ertaul et al. | Novel obfuscation algorithms for software security | |
CN112822228A (zh) | 一种基于国密算法的浏览器文件加密上传方法及*** | |
JP5992651B2 (ja) | 暗号化方法、プログラム、および、システム | |
JP2007086845A (ja) | クライアントサーバシステムおよび同システムにおけるサーバサイドプログラムの実現方法ならびにそのサーバ装置、サーバサイドプログラム | |
Choubey et al. | Cryptographic techniques in information security | |
JP4667800B2 (ja) | 符号化方法およびそのプログラム | |
JP4675642B2 (ja) | プログラム難読化装置およびその方法ならびにプログラム | |
CN109951735B (zh) | 一种视频播放地址解析获取方法、***及介质 | |
CN102238150A (zh) | 表单注册方法及服务器 | |
JP6631989B2 (ja) | 暗号化装置、制御方法、及びプログラム | |
KR20130020231A (ko) | 웹 어플리케이션의 저작권 보호 시스템 | |
CN112597453A (zh) | 程序代码加密解密方法和装置 | |
Putra et al. | Implementation of Steganography using LSB with Encrypted and Compressed Text using TEA-LZW on Android | |
Kamble et al. | Medical image security with cheater identification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20071015 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071015 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110317 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110318 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110419 |