JP2020510935A5 - - Google Patents

Download PDF

Info

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
Application number
JP2019548941A
Other languages
English (en)
Other versions
JP6919973B2 (ja
JP2020510935A (ja
Filing date
Publication date
Priority claimed from DE102017204020.3A external-priority patent/DE102017204020A1/de
Application filed filed Critical
Publication of JP2020510935A publication Critical patent/JP2020510935A/ja
Publication of JP2020510935A5 publication Critical patent/JP2020510935A5/ja
Application granted granted Critical
Publication of JP6919973B2 publication Critical patent/JP6919973B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (15)

  1. プログラムコード(CO)のコンピュータ支援難読化方法であって、
    前記プログラムコード(CO)に複数の計算ステップ(ST)が実装され、
    前記複数の計算ステップ(ST)の所定の計算ステップが前記プログラムコード(CO)の実行時に所定の順序で呼び出され、前記所定の計算ステップの少なくとも一部が予め決められた所与の計算ステップ(ST)であり、該所与の計算ステップ(ST)のそれぞれにおいて、前記プログラムコード(CO)に保存された、複数のデジタルの第1のテーブル値(T1)からなる第1のテーブル(T1)がアクセスされ、前記所与の計算ステップ(ST)のそれぞれに必要な前記第1のテーブル値(T1)が前記第1のテーブル(T1)から読み出され、
    前記プログラムコードを変更するために、
    複数のデジタルのマスク値(M)を含む動的マスク(M)を生成し、前記マスク(M)の少なくとも一部の前記マスク値(M)が互いに異なり、前記各マスク値(M)が前記所与の計算ステップ(ST)のそれぞれに有効である、過程と、
    前記第1のテーブル(T1)の前記第1のテーブル値(T1)のそれぞれを、前記所与の計算ステップ(ST)それぞれにおける前記第1のテーブル値(T1)の読み取り時に有効な前記マスク値(M)を使用してデジタルの第2のテーブル値(T2)に変換し、これにより前記第2のテーブル値(T2)からなる第2のテーブル(T2)を取得し、該第2のテーブル(T2)を、前記第1のテーブル(T1)の代わりに前記プログラムコード(CO)に保存する、過程と、
    前記所与の計算ステップ(ST)ごとに追加の計算ステップ(fi,M −1)が前記プログラムコード(CO)に実装され、前記追加の計算ステップ(fi,M −1)は、読み出された前記第2のテーブル値(T2)を、前記所与の計算ステップ(ST)それぞれに必要な前記第1のテーブル値(T1)に逆変換する、過程とを実行する、コンピュータ支援難読化方法。
  2. 前記動的マスク(M)を生成するために初期マスク値及び更新ステップを決定し、
    連続する1つ以上の前記更新ステップを現在有効なマスク値(M)に適用することによって、次の前記所与の計算ステップ(ST)に有効なマスク値(M)を計算し、
    前記更新ステップも前記プログラムコード(CO)に実装されることで、前記所与の計算ステップ(ST)それぞれに前記現在有効なマスク値(M)が存在し、
    前記追加の計算ステップ(fi,M −1)が、前記所与の計算ステップにおいて前記現在有効なマスク値(M)により決まり、
    前記更新ステップは、前記更新ステップが適用される前記マスク値(M)の少なくとも一部に対して別々となるように決定する、請求項1に記載のコンピュータ支援難読化方法。
  3. 前記更新ステップは、前記所与の計算ステップ(ST)のそれぞれに実装される、請求項2に記載のコンピュータ支援難読化方法。
  4. 前記所与の計算ステップ(ST )ではない前記所定の計算ステップの少なくとも一部にも更新ステップが実装される、請求項3に記載のコンピュータ支援難読化方法。
  5. 少なくとも前記初期マスク値(M)又は前記更新ステップは、乱数ジェネレータを使用して決定する、請求項2〜4のいずれか1項に記載のコンピュータ支援難読化方法。
  6. 前記第1のテーブル値(T1)及び前記第2のテーブル値(T2)と前記マスク値(M)は、それぞれがビットシーケンスを示す、請求項1〜5のいずれか1項に記載のコンピュータ支援難読化方法。
  7. 前記第1のテーブル値(T1)の前記第2のテーブル値(T2)への変換は、前記第1のテーブル値の前記ビットシーケンスと前記現在有効なマスク値(M)の前記ビットシーケンスとの間に論理演算を適用することによって行い、
    前記論理演算の適用によって前記第2のテーブル値(T2)を得る、請求項6に記載のコンピュータ支援難読化方法。
  8. 前記論理演算は、前記第1のテーブル値(T1)の前記ビットシーケンス及び前記現在有効なマスク値(M)の前記ビットシーケンスの互いに対応するビットに対しビットごとに適用し、
    前記論理演算は、1つ以上の、OR演算、XOR演算、NOR演算、XNOR演算、AND演算、又はNAND演算を少なくとも含むことを特徴とする、請求項7に記載のコンピュータ支援難読化方法。
  9. 前記現在有効なマスク値(M)の前記ビットシーケンスが、前記第1のテーブル値(T1)の前記ビットシーケンスよりも短い場合、前記第1のテーブル値(T1)の前記ビットシーケンスのビットごとに、前記現在有効なマスク値(M)の前記ビットシーケンスの対応するビットが存在するように、前記現在有効なマスク値(M)の元の前記ビットシーケンスを、該元のビットシーケンスのビットの複数回使用によって拡張する、請求項8に記載のコンピュータ支援難読化方法。
  10. 前記現在有効なマスク値(M )の前記ビットシーケンスが、前記第1のテーブル値(T1 )の前記ビットシーケンスよりも短い場合、前記第1のテーブル値(T1 )の前記ビットシーケンスのビットごとに、前記現在有効なマスク値(M )の前記ビットシーケンスの対応するビットが存在するように、前記現在有効なマスク値(M )の元の前記ビットシーケンスを、該元のビットシーケンスの1回以上の繰り返しによって、拡張する、請求項8に記載のコンピュータ支援難読化方法。
  11. 請求項1〜10のいずれか1項に記載のコンピュータ支援難読化方法により難読化されているプログラムコード(CO’)を実行する方法であって、
    前記プログラムコード(CO’)の前記各所与の計算ステップ(ST)が呼び出されると、前記第2のテーブル値(T2)を前記第2のテーブル(T2)から読み出し、該読み出した第2のテーブル値(T2)を前記所与の計算ステップ(ST)に必要な前記第1のテーブル値(T1)に逆変換する前記追加の計算ステップ(fi,M −1)を前記所与の計算ステップ(ST)ごとに実行する、方法。
  12. 請求項11に記載の方法に従ってプログラムコード(CO’)を実行するように構成されたコンピュータ手段(2)を含む、技術システム(1)。
  13. 前記技術システム(1)は、自動化システム、自動化システムのコンポーネント、少なくとも発電システムかエネルギー分配システムのいずれか、少なくとも発電システムかエネルギー分配システムのいずれかのコンポーネント、又は医療機器である、請求項12に記載の技術システム。
  14. 機械可読媒体に保存したプログラムコードフラグメントを有するコンピュータプログラムを入れた製品であって、前記プログラムコードフラグメントは、コンピュータで実行されると、請求項1〜10のいずれか1項に記載のコンピュータ支援難読化方法を実行する、製品。
  15. プログラムコードフラグメントを有するコンピュータプログラムであって、前記プログラムコードフラグメントは、コンピュータで実行されると、請求項1〜10のいずれか1項に記載のコンピュータ支援難読化方法を実行する、コンピュータプログラム。
JP2019548941A 2017-03-10 2017-12-13 プログラムコードのコンピュータ支援難読化方法 Active JP6919973B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 (주)케이사인 애플리케이션 코드 난독화 장치 및 이를 이용한 애플리케이션 코드 난독화 방법

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) キャッシュフラッシュ制御装置