JP2020510935A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2020510935A5 JP2020510935A5 JP2019548941A JP2019548941A JP2020510935A5 JP 2020510935 A5 JP2020510935 A5 JP 2020510935A5 JP 2019548941 A JP2019548941 A JP 2019548941A JP 2019548941 A JP2019548941 A JP 2019548941A JP 2020510935 A5 JP2020510935 A5 JP 2020510935A5
- Authority
- JP
- Japan
- Prior art keywords
- value
- computer
- program code
- bit sequence
- mask value
- 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 claims 24
- 230000000875 corresponding Effects 0.000 claims 3
- 238000006243 chemical reaction Methods 0.000 claims 2
- 238000004590 computer program Methods 0.000 claims 2
- 238000010248 power generation Methods 0.000 claims 2
- 230000004913 activation Effects 0.000 claims 1
Claims (15)
- プログラムコード(CO)のコンピュータ支援難読化方法であって、
前記プログラムコード(CO)に複数の計算ステップ(ST)が実装され、
前記複数の計算ステップ(ST)の所定の計算ステップが前記プログラムコード(CO)の実行時に所定の順序で呼び出され、前記所定の計算ステップの少なくとも一部が予め決められた所与の計算ステップ(STi)であり、該所与の計算ステップ(STi)のそれぞれにおいて、前記プログラムコード(CO)に保存された、複数のデジタルの第1のテーブル値(T1i)からなる第1のテーブル(T1)がアクセスされ、前記所与の計算ステップ(STi)のそれぞれに必要な前記第1のテーブル値(T1i)が前記第1のテーブル(T1)から読み出され、
前記プログラムコードを変更するために、
複数のデジタルのマスク値(Mi)を含む動的マスク(M)を生成し、前記マスク(M)の少なくとも一部の前記マスク値(Mi)が互いに異なり、前記各マスク値(Mi)が前記所与の計算ステップ(STi)のそれぞれに有効である、過程と、
前記第1のテーブル(T1)の前記第1のテーブル値(T1i)のそれぞれを、前記所与の計算ステップ(STi)それぞれにおける前記第1のテーブル値(T1i)の読み取り時に有効な前記マスク値(Mi)を使用してデジタルの第2のテーブル値(T2i)に変換し、これにより前記第2のテーブル値(T2i)からなる第2のテーブル(T2)を取得し、該第2のテーブル(T2)を、前記第1のテーブル(T1)の代わりに前記プログラムコード(CO)に保存する、過程と、
前記所与の計算ステップ(STi)ごとに追加の計算ステップ(fi,M −1)が前記プログラムコード(CO)に実装され、前記追加の計算ステップ(fi,M −1)は、読み出された前記第2のテーブル値(T2i)を、前記所与の計算ステップ(STi)それぞれに必要な前記第1のテーブル値(T1i)に逆変換する、過程とを実行する、コンピュータ支援難読化方法。 - 前記動的マスク(M)を生成するために初期マスク値及び更新ステップを決定し、
連続する1つ以上の前記更新ステップを現在有効なマスク値(Mi)に適用することによって、次の前記所与の計算ステップ(STi)に有効なマスク値(Mi)を計算し、
前記更新ステップも前記プログラムコード(CO)に実装されることで、前記所与の計算ステップ(STi)それぞれに前記現在有効なマスク値(Mi)が存在し、
前記追加の計算ステップ(fi,M −1)が、前記所与の計算ステップにおいて前記現在有効なマスク値(Mi)により決まり、
前記更新ステップは、前記更新ステップが適用される前記マスク値(Mi)の少なくとも一部に対して別々となるように決定する、請求項1に記載のコンピュータ支援難読化方法。 - 前記更新ステップは、前記所与の計算ステップ(STi)のそれぞれに実装される、請求項2に記載のコンピュータ支援難読化方法。
- 前記所与の計算ステップ(ST i )ではない前記所定の計算ステップの少なくとも一部にも更新ステップが実装される、請求項3に記載のコンピュータ支援難読化方法。
- 少なくとも前記初期マスク値(Mi)又は前記更新ステップは、乱数ジェネレータを使用して決定する、請求項2〜4のいずれか1項に記載のコンピュータ支援難読化方法。
- 前記第1のテーブル値(T1i)及び前記第2のテーブル値(T2i)と前記マスク値(Mi)は、それぞれがビットシーケンスを示す、請求項1〜5のいずれか1項に記載のコンピュータ支援難読化方法。
- 前記第1のテーブル値(T1i)の前記第2のテーブル値(T2i)への変換は、前記第1のテーブル値の前記ビットシーケンスと前記現在有効なマスク値(Mi)の前記ビットシーケンスとの間に論理演算を適用することによって行い、
前記論理演算の適用によって前記第2のテーブル値(T2i)を得る、請求項6に記載のコンピュータ支援難読化方法。 - 前記論理演算は、前記第1のテーブル値(T1i)の前記ビットシーケンス及び前記現在有効なマスク値(Mi)の前記ビットシーケンスの互いに対応するビットに対しビットごとに適用し、
前記論理演算は、1つ以上の、OR演算、XOR演算、NOR演算、XNOR演算、AND演算、又はNAND演算を少なくとも含むことを特徴とする、請求項7に記載のコンピュータ支援難読化方法。 - 前記現在有効なマスク値(Mi)の前記ビットシーケンスが、前記第1のテーブル値(T1i)の前記ビットシーケンスよりも短い場合、前記第1のテーブル値(T1i)の前記ビットシーケンスのビットごとに、前記現在有効なマスク値(Mi)の前記ビットシーケンスの対応するビットが存在するように、前記現在有効なマスク値(Mi)の元の前記ビットシーケンスを、該元のビットシーケンスのビットの複数回使用によって、拡張する、請求項8に記載のコンピュータ支援難読化方法。
- 前記現在有効なマスク値(M i )の前記ビットシーケンスが、前記第1のテーブル値(T1 i )の前記ビットシーケンスよりも短い場合、前記第1のテーブル値(T1 i )の前記ビットシーケンスのビットごとに、前記現在有効なマスク値(M i )の前記ビットシーケンスの対応するビットが存在するように、前記現在有効なマスク値(M i )の元の前記ビットシーケンスを、該元のビットシーケンスの1回以上の繰り返しによって、拡張する、請求項8に記載のコンピュータ支援難読化方法。
- 請求項1〜10のいずれか1項に記載のコンピュータ支援難読化方法により難読化されているプログラムコード(CO’)を実行する方法であって、
前記プログラムコード(CO’)の前記各所与の計算ステップ(STi)が呼び出されると、前記第2のテーブル値(T2i)を前記第2のテーブル(T2i)から読み出し、該読み出した第2のテーブル値(T2i)を前記所与の計算ステップ(STi)に必要な前記第1のテーブル値(T1i)に逆変換する前記追加の計算ステップ(fi,M −1)を前記所与の計算ステップ(STi)ごとに実行する、方法。 - 請求項11に記載の方法に従ってプログラムコード(CO’)を実行するように構成されたコンピュータ手段(2)を含む、技術システム(1)。
- 前記技術システム(1)は、自動化システム、自動化システムのコンポーネント、少なくとも発電システムかエネルギー分配システムのいずれか、少なくとも発電システムかエネルギー分配システムのいずれかのコンポーネント、又は医療機器である、請求項12に記載の技術システム。
- 機械可読媒体に保存したプログラムコードフラグメントを有するコンピュータプログラムを入れた製品であって、前記プログラムコードフラグメントは、コンピュータで実行されると、請求項1〜10のいずれか1項に記載のコンピュータ支援難読化方法を実行する、製品。
- プログラムコードフラグメントを有するコンピュータプログラムであって、前記プログラムコードフラグメントは、コンピュータで実行されると、請求項1〜10のいずれか1項に記載のコンピュータ支援難読化方法を実行する、コンピュータプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102017204020.3 | 2017-03-10 | ||
DE102017204020.3A DE102017204020A1 (de) | 2017-03-10 | 2017-03-10 | Verfahren zur rechnergestützten Obfuskation von Programmcode |
PCT/EP2017/082508 WO2018162107A1 (de) | 2017-03-10 | 2017-12-13 | Verfahren zur rechnergestützten obfuskation von programmcode |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020510935A JP2020510935A (ja) | 2020-04-09 |
JP2020510935A5 true JP2020510935A5 (ja) | 2020-05-21 |
JP6919973B2 JP6919973B2 (ja) | 2021-08-18 |
Family
ID=61054302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019548941A Active JP6919973B2 (ja) | 2017-03-10 | 2017-12-13 | プログラムコードのコンピュータ支援難読化方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11341216B2 (ja) |
EP (1) | EP3577588B1 (ja) |
JP (1) | JP6919973B2 (ja) |
KR (1) | KR102336521B1 (ja) |
CN (1) | CN110383275B (ja) |
DE (1) | DE102017204020A1 (ja) |
WO (1) | WO2018162107A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3609240A1 (de) | 2018-08-09 | 2020-02-12 | Siemens Aktiengesellschaft | Computerimplementiertes verfahren und netzwerkzugangsserver zum verbinden einer netzwerkkomponente mit einem netzwerk, insbesondere einem mobilfunknetz, mit einem erweiterten netzwerkzugangskennzeichen |
US20210303662A1 (en) * | 2020-03-31 | 2021-09-30 | Irdeto B.V. | Systems, methods, and storage media for creating secured transformed code from input code using a neural network to obscure a transformation function |
US11954213B2 (en) | 2021-09-13 | 2024-04-09 | International Business Machines Corporation | Obfuscating intelligent data while preserving reserve values |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3627384B2 (ja) | 1996-01-17 | 2005-03-09 | 富士ゼロックス株式会社 | ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法 |
US5892899A (en) | 1996-06-13 | 1999-04-06 | Intel Corporation | Tamper resistant methods and apparatus |
JP2003280755A (ja) * | 2002-03-25 | 2003-10-02 | Nec Corp | 自己復元型プログラム、プログラム生成方法及び装置、情報処理装置並びにプログラム |
JP2003280754A (ja) * | 2002-03-25 | 2003-10-02 | Nec Corp | 隠蔽化ソースプログラム、ソースプログラム変換方法及び装置並びにソース変換プログラム |
US7133525B1 (en) * | 2002-05-17 | 2006-11-07 | Communication Security Apparatus Corp. | Communication security apparatus and method of using same |
WO2009010338A1 (de) * | 2007-07-13 | 2009-01-22 | Siemens Aktiengesellschaft | Verfahren zur rechnergestützten obfuskierung eines softwareprogramms und computerprogrammprodukt |
US8667301B2 (en) * | 2010-04-01 | 2014-03-04 | Apple Inc. | Obfuscating transformations on data array content and addresses |
US9274976B2 (en) * | 2010-11-05 | 2016-03-01 | Apple Inc. | Code tampering protection for insecure environments |
WO2013104969A1 (en) * | 2012-01-09 | 2013-07-18 | Koninklijke Philips N.V. | Virtual machine device having key driven obfuscation and method |
US8756435B2 (en) * | 2012-03-02 | 2014-06-17 | Apple Inc. | Obfuscation of control flow of software |
US9336370B2 (en) * | 2012-12-06 | 2016-05-10 | Apple Inc. | Method and apparatus for dynamic obfuscation of static data |
KR101328012B1 (ko) | 2013-08-12 | 2013-11-13 | 숭실대학교산학협력단 | 애플리케이션 코드 난독화 장치 및 그 방법 |
US10599820B2 (en) * | 2014-04-23 | 2020-03-24 | Nxp B.V. | Control flow flattening for code obfuscation where the next block calculation needs run-time information |
EP2937803B1 (en) | 2014-04-23 | 2019-02-20 | Nxp B.V. | Control flow flattening for code obfuscation where the next block calculation needs run-time information |
US9830326B2 (en) * | 2015-06-15 | 2017-11-28 | Ca, Inc. | Identifying data offsets using binary masks |
KR101619458B1 (ko) * | 2016-03-02 | 2016-05-10 | (주)케이사인 | 애플리케이션 코드 난독화 장치 및 이를 이용한 애플리케이션 코드 난독화 방법 |
-
2017
- 2017-03-10 DE DE102017204020.3A patent/DE102017204020A1/de not_active Withdrawn
- 2017-12-13 CN CN201780088267.2A patent/CN110383275B/zh active Active
- 2017-12-13 JP JP2019548941A patent/JP6919973B2/ja active Active
- 2017-12-13 EP EP17835809.9A patent/EP3577588B1/de active Active
- 2017-12-13 US US16/492,439 patent/US11341216B2/en active Active
- 2017-12-13 KR KR1020197029606A patent/KR102336521B1/ko active IP Right Grant
- 2017-12-13 WO PCT/EP2017/082508 patent/WO2018162107A1/de unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5898387B2 (ja) | 効率的なリソース状態の蒸留 | |
JP2020510935A5 (ja) | ||
JP2011041326A5 (ja) | ||
JP2009524998A5 (ja) | ||
JP2016510185A5 (ja) | ||
JP2012118979A5 (ja) | ||
JP7047018B2 (ja) | 消去コードベースのデータ処理方法および装置 | |
RU2016104608A (ru) | Система для совместного использования криптографического ключа | |
KR101666974B1 (ko) | 소수 생성 | |
JP6742888B2 (ja) | 分子動力学計算用架橋粒子モデルの生成装置、生成方法及びコンピュータプログラム | |
JP2020510935A (ja) | プログラムコードのコンピュータ支援難読化方法 | |
KR101616347B1 (ko) | 범용 그래픽 프로세서 기반 클라우드 스토리지의 소거 코딩 방법 | |
CN108140016B (zh) | 确定矩阵-向量相乘的运算最优序列的优化器 | |
WO2019214266A1 (zh) | 计算crc编码的方法和装置 | |
JP6045415B2 (ja) | データ構造化方法、データ再構成方法、データ構造化プログラム、データ再構成プログラム及びデータ符号化装置 | |
JP6961950B2 (ja) | 格納方法、格納装置および格納プログラム | |
JP2018195274A (ja) | Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法 | |
BR112015031617B1 (pt) | Método e dispositivo de quantização vetorial de envelope de domínio de frequência | |
JP7322763B2 (ja) | 鍵生成装置、鍵生成方法及びプログラム | |
JP2013148953A (ja) | プログラムテンプレート自動生成プログラムおよびプログラムテンプレート自動生成装置 | |
KR102649929B1 (ko) | 저사양 plc를 위한 전자서명 생성 및 검증 방법 | |
JP5713828B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP6503908B2 (ja) | 制御プログラム、制御方法、及び、制御装置 | |
JP6093718B2 (ja) | 拡大体乗算装置、拡大体乗算方法及びプログラム | |
JP5791091B2 (ja) | キャッシュフラッシュ制御装置 |