DE69818414T2 - Gerät und Verfahren zum Übersetzen mit einer Dekodierfunktion - Google Patents

Gerät und Verfahren zum Übersetzen mit einer Dekodierfunktion Download PDF

Info

Publication number
DE69818414T2
DE69818414T2 DE69818414T DE69818414T DE69818414T2 DE 69818414 T2 DE69818414 T2 DE 69818414T2 DE 69818414 T DE69818414 T DE 69818414T DE 69818414 T DE69818414 T DE 69818414T DE 69818414 T2 DE69818414 T2 DE 69818414T2
Authority
DE
Germany
Prior art keywords
information
buffer
encrypted
translation
original
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.)
Expired - Lifetime
Application number
DE69818414T
Other languages
English (en)
Other versions
DE69818414D1 (de
Inventor
Masakazu Kawasaki-shi Hayashi
Kenji Kawasaki-shi Kazumura
Yuji Kawasaki-shi Watanabe
Kohichiro Kawasaki-shi Hotta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE69818414D1 publication Critical patent/DE69818414D1/de
Application granted granted Critical
Publication of DE69818414T2 publication Critical patent/DE69818414T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/423Preprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Description

  • Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Übersetzen von Informationen wie beispielsweise Quellendateien, die codiert sind, um die Sicherheit der Informationen zu wahren.
  • In letzter Zeit ist die dezentralisierte Entwicklung von Software unter Verwendung von Computernetzen, etc. populär geworden, und einhergehend mit diesem Trend sind viele Techniken bezüglich der Verschlüsselung zum Wahren der Sicherheit von Informationen entwickelt worden. Wenn zum Beispiel ein Entwickler A gewisse Informationen I zu einem Entwickler B unter Verwendung eines Netzes, etc. übertragen möchte, codiert der Entwickler A die Informationen I und überträgt die Informationen I über ein Netz zu dem Entwickler B. Der Entwickler B empfängt die Informationen I und stellt die Informationen I wieder her. In diesem Fall findet eine Technik zum Codieren und Decodieren von Informationen breite Verwendung.
  • Es gibt jedoch den Fall, daß der Entwickler A den Entwickler B in die Lage versetzen möchte, die Informationen I, die der Entwickler A besitzt, für einen Prozeß P zu verwenden, den der Entwickler B besitzt, aber die Sicherheit der Informationen I gegenüber Außenseitern des Prozesses P (Bedienern, etc.) wahren möchte. Dies ist zum Beispiel dann der Fall, wenn es erforderlich ist, eine Programmquelle eines neuen Produktes entsprechend den Informationen I in solch einer Umgebung zu kompilieren, daß auch andere Personen als die betreffenden darauf zugreifen können. Wenn die Informationen I vor dem Kompilieren decodiert werden, besteht in diesem Fall die Möglichkeit, daß die Informationen I nach außen dringen können, auch wenn die Quellendatei, nachdem sie codiert ist, zu dem Entwickler B übertragen wird. Daher kann die Sicherheit des Inhaltes der Quellendatei nicht vollständig gewahrt werden.
  • Herkömmlicherweise ist das Wahren der Sicherheit der Informationen unter Verwendung einer Codiertechnik auf den Schutz der Informationen vor einem Dritten gerichtet, der weder der Informationsanbieter A noch der Informationsempfänger B ist. Zum Beispiel wird bei einem "Datenübertragungsverfahren", das in der japanischen offengelegten Patentveröffentlichung Nr. 7-162409 beschrieben ist, ein Modul zum Decodieren von codierten Daten verändert und immer nach einer gewissen Zeitperiode wieder kompiliert, und der Objektcode des Moduls wird zu einem Nutzer der codierten Daten übertragen. Daher ist es für einen Dritten schwierig, die codierten Daten zu decodieren.
  • Dieses Datenübertragungsverfahren dient jedoch zum Wahren der Sicherheit der Daten gegenüber einem Dritten, und ein Empfänger der Daten kann die Daten vor der Verschlüsselung unter Verwendung des Objektcodes (der einen Decodiererschlüssel enthält) des Decodiermoduls leicht erhalten.
  • Wenn eine codierte Quellendatei übertragen wird, indem sukzessive ein Befehl C1 zum Decodieren und ein existierender Kompiliererbefehl C2 ausgeführt werden, kann der Empfänger die Quellendatei kompilieren und eine Objektcodedatei (ausführbarer Modul) bilden. Wenn die Befehle C1 und C2 jedoch einfach sukzessive ausgeführt werden, ist es für einen Ingenieur, der mit einem Betriebssystem [operating system (OS)] und seinen Befehlen vertraut ist, ein leichtes, das Ausführungsresultat des Befehls C1 zu erhalten. Daher ist es schwierig, die Sicherheit des Inhaltes der Quellendatei gegenüber dem Empfänger zu wahren.
  • Da es bei dem herkömmlichen Datenübertragungsverfahren möglich ist, wie oben beschrieben, daß Quelleninformationen durchsickern können, verteilt ein Softwareanbieter einen ausführbaren Modul nach dem Kompilieren. Dann wird die Software in dem System eines Nutzers kundenspezifisch ange paßt, indem der gegebene ausführbare Modul direkt bearbeitet wird.
  • Bei dieser Operation wird jedoch nur ein Teil des ursprünglichen ausführbaren Moduls verwendet, der eine Fülle von Optionen enthält, und es sind auch viele Teile in dem verteilten ausführbaren Modul vorhanden, die für einen Nutzer unnötig sind. Aus diesem Grund muß ein ausführbarer Modul mit unnötiger Größe in einem System installiert werden, und dies stellt ein Problem dar.
  • Obwohl auch die Herstellung eines ausführbaren Moduls, der durch einen Anbieter gemäß dem Wunsch eines Nutzers kundenspezifisch angepaßt wird, und die Verteilung des Moduls in Betracht gezogen werden kann, wird in diesem Fall die Arbeit eines Anbieters mühsam, und dem Anbieter wird eine zu große Last aufgebürdet, falls die Anzahl von Nutzern zunimmt.
  • "A chosen-plaintext attack on the Microsoft BASIC protection" (Assem et al), Computers and Security, Elsevier Science Publishers, Amsterdam, NL, Bd. 5, Nr. 1, 1. März 1986, Seiten 36–45, erörtert, wie der Microsoft-Basic-Intepretierer einen Befehl vorsieht, der das zur Zeit im Speicher befindliche Programm schützt, indem es in einem verschlüsselten Format auf der Platte gesichert wird; wie ein Nutzer solch ein geschütztes Programm zum Laufen bringen kann, dabei aber nicht auf das Quellenprogramm zugreifen kann; und wie die Autoren einen gewählten Klartextangriff nutzten, um die Codierung zu brechen; das Verschlüsselungsverfahren konnte ohne weiteres aus der Chiffrierung von sorgfältig gewählten Klartextprogrammen abgeleitet werden. Als Resultat wurde ein Paar von MBASIC-Programmen entwickelt, die zum Entschlüsseln eines geschützten Programms für einen Interpretierer in der Lage waren.
  • Filter: Decrypt – Template For A Decrypt Source Filter (Seite im Online-Handbuch), 19. Dezember 1995, beschreibt ein Modell für ein Entschlüsselungsquellenfilter und erklärt, daß es mit einem Entschlüsselungsalgorithmus kombiniert werden kann, um ein Entschlüsselungsfilter zu entwickeln.
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Übersetzungsvorrichtung und ein Übersetzungsverfahren vorzusehen, um Nutzer mit einer Vielfalt an Software sicher zu versehen, ohne dabei einem Anbieter eine zu große Last aufzubürden.
  • Die vorliegende Erfindung ist in den beigefügten unabhängigen Ansprüchen definiert, worauf jetzt Bezug genommen werden sollte. Bevorzugte Merkmale können den ihnen beigefügten Unteransprüchen entnommen werden.
  • Die Übersetzungsvorrichtung der vorliegenden Erfindung umfaßt eine Eingabeeinheit, eine Wiederherstellungseinheit, eine Übersetzereinheit und eine Ausgabeeinheit.
  • Gemäß dem ersten Aspekt der vorliegenden Erfindung teilt die Eingabeeinheit codierte Informationen in eine Vielzahl von Teilen und gibt die Informationen der Wiederherstellungseinheit ein, und die Wiederherstellungseinheit stellt die Originalinformationen für jeden Teil der codierten Informationen wieder her. Dann übersetzt die Übersetzereinheit die Originalinformationen, und die Ausgabeeinheit gibt das Resultat der Übersetzung aus.
  • Codierte Informationen, die einzugeben sind, sind zum Beispiel eine codierte Quellendatei, und die Wiederherstellungseinheit decodiert die Informationen und stellt eine Quellendatei in ihrem Zustand vor der Verschlüsselung wieder her, und die Übersetzungseinheit kompiliert die decodierte Quellendatei und bildet einen ausführbaren Modul.
  • Dabei decodiert die Wiederherstellungseinheit nicht alle codierten Informationen auf einmal, sondern sie decodiert die Informationen nach und nach für jeden geteilten Teil der Informationen. Dann übersetzt die Übersetzereinheit die Originalinformationen für jeden decodierten Teil der Informationen.
  • Gemäß dem zweiten Aspekt der vorliegenden Erfindung gibt die Eingabeeinheit codierte Informationen ein, und die Übersetzungseinheit führt einen Prozeß zum Wiederherstellen der Originalinformationen aus den codierten Informationen innerhalb des Umfangs des Übersetzungsprozesses aus und übersetzt die Informationen, ohne daß die Originalinformationen nach außen dringen können. Dann gibt die Ausgabeeinheit das Resultat der Übersetzung aus.
  • Die Übersetzungsvorrichtung übersetzt nicht alle codierten Informationen, nachdem sie decodiert worden sind, sondern sie decodiert die Informationen innerhalb des Umfangs des Übersetzungsprozesses. Dabei führt die Übersetzereinheit einen verschmolzenen Prozeß aus den Wiederherstellungs- und Übersetzungsprozessen aus und erzeugt das Resultat der Übersetzung aus den codierten Informationen.
  • 1 zeigt das Prinzip der vorliegenden Erfindung.
  • 2 zeigt eine Konfiguration eines Kompilierers.
  • 3 zeigt den Datenfluß.
  • 4 ist ein Flußdiagramm, das einen Übersetzungsprozeß zeigt.
  • 5 ist ein Flußdiagramm, das einen Wiederherstellungsprozeß zeigt.
  • 6 ist ein Flußdiagramm, das einen Analyseprozeß zeigt.
  • 7 zeigt den ersten Codier-/Decodierprozeß.
  • 8 zeigt den zweiten Codierprozeß.
  • 9 zeigt den zweiten Decodierprozeß.
  • 10 zeigt einen Kundenanpassungsprozeß.
  • 11 ist ein Flußdiagramm, das den Kundenanpassungsprozeß zeigt.
  • 12 zeigt eine Konfiguration einer Informationsverarbeitungsvorrichtung.
  • 13 zeigt Speichermedien.
  • Die Ausführungsformen der vorliegenden Erfindung sind unten unter Bezugnahme auf die Zeichnungen detailliert beschrieben.
  • 1 zeigt das Prinzip einer Übersetzungsvorrichtung der vorliegenden Erfindung. Die in 1 gezeigte Übersetzungsvorrichtung umfaßt eine Eingabeeinheit 1, eine Wiederherstellungseinheit 2, eine Übersetzereinheit 3 und eine Ausgabeeinheit 4.
  • Gemäß dem ersten Prinzip der vorliegenden Erfindung teilt die Eingabeeinheit 1 codierte Daten in eine Vielzahl von Teilen und gibt die codierten Informationen der Wiederherstellungseinheit 2 ein, und die Wiederherstellungseinheit 2 stellt die Originalinformationen für jeden Teil der codierten Informationen wieder her. Dann übersetzt die Übersetzereinheit 3 die Originalinformationen, und die Ausgabeeinheit 4 gibt das Resultat der Übersetzung aus.
  • Codierte Informationen, die einzugeben sind, sind beispielsweise eine codierte Quellendatei, und die Wiederherstellungseinheit 2 decodiert die Informationen und stellt eine Quellendatei in dem Zustand vor der Verschlüsselung wieder her, und die Übersetzereinheit 3 kompiliert die decodierte Quellendatei und bildet einen ausführbaren Modul.
  • Dabei decodiert die Wiederherstellungseinheit 2 nicht alle codierten Informationen gleichzeitig, sondern sie decodiert die Informationen für jeden geteilten Teil der Informationen nach und nach. Dann übersetzt die Übersetzereinheit 3 die Originalinformationen für jeden decodierten Teil der Informationen.
  • Gemäß solch einem Prozeß werden die Originalinformationen für jeden Teil der Informationen wiederhergestellt, aber es werden nicht alle Informationen gleichzeitig wiederhergestellt. Deshalb ist es für einen Nutzer einer Übersetzervorrichtung schwierig, alle Originalinformationen zu erfassen, und dadurch kann die Übersetzung ausgeführt werden, während die Sicherheit der Originalinformationen gewahrt wird.
  • Nutzer können auch leicht und sicher mit Software versehen werden, die viele Optionen enthält. Darüber hinaus kann das Übersetzungsresultat durch das Bezeichnen von Übersetzungsoptionen in dem System eines Nutzers auch kundenspezifisch angepaßt werden.
  • Gemäß dem zweiten Prinzip der vorliegenden Erfindung gibt die Eingabeeinheit 1 codierte Informationen ein, und die Übersetzereinheit 3 führt einen Prozeß zum Wiederherstellen der Originalinformationen aus den codierten Informationen innerhalb des Umfangs des Übersetzungsprozesses aus und übersetzt die Informationen, ohne daß die Originalinformationen nach außen dringen können. Dann gibt die Ausgabeeinheit 4 das Resultat der Übersetzung aus.
  • Die Übersetzungsvorrichtung übersetzt nicht alle codierten Informationen gleichzeitig, nachdem sie decodiert worden sind, sondern sie decodiert die Informationen innerhalb des Umfangs des Übersetzungsprozesses. Dabei führt die Übersetzereinheit 3 einen verschmolzenen Prozeß aus den Wiederherstellungs- und Übersetzungsprozessen aus und erzeugt das Resultat der Übersetzung aus den codierten Informationen.
  • Gemäß solch einem Prozeß werden die Originalinformationen nur innerhalb der Übersetzereinheit 3 wiederhergestellt und können aus der Übersetzungsvorrichtung nie nach außen dringen. Deshalb ist es für einen Nutzer der Übersetzungsvorrichtung schwierig, alle Originalinformationen zu erfassen, und dadurch kann die Übersetzung ausgeführt werden, während die Sicherheit der Originalinformationen gewahrt wird.
  • Nutzer können auch leicht und sicher mit Software versehen werden, die viele Übersetzungsoptionen enthält. Weiterhin kann das Übersetzungsresultat durch das Bezeichnen von Übersetzungsoptionen in dem System eines Nutzers auch kundenspezifisch angepaßt werden.
  • Zum Beispiel entsprechen die Eingabeeinheit 1, die in 1 gezeigt ist, die Wiederherstellungseinheit 2, die Übersetzereinheit 3 und die Ausgabeeinheit 4 einer Lesereinheit 21, einer Decodierereinheit 22, einer Analysatoreinheit 23 bzw. einer Back-End-Einheit 12, die in 2 gezeigt und später beschrieben sind.
  • Es ist erforderlich, Informationen einer Quellendatei an Nutzer sicher zu verteilen und gemäß dem Wunsch eines Nutzers zu übersetzen (kompilieren), um Software in dem Computersystem eines Nutzers kundenspezifisch anzupassen. In diesem Fall ist es wünschenswert, die Quellendatei unter Verwendung eines gewissen Verfahrens zu codieren und die Quellendatei zu verteilen.
  • Ferner ist es erforderlich, daß auch ein Empfänger, der einen Decodiererschlüssel für codierte Informationen besitzt, die Originalinformationen eines gewissen Prozesses (oder einer Vorrichtung) nicht von außen erhalten kann, und es ist wünschenswert, daß die Decodierfunktion der Quellendatei in einem Kompilierprozeß (oder einer Vorrichtung) enthalten ist. Die vorliegende Erfindung kann solch einem Wunsch gerecht werden und kann auf verschiedenen Gebieten der Industrie breite Verwendung finden.
  • 2 zeigt eine Konfiguration eines Sprachkompilierers dieser Ausführungsform. Der in 2 gezeigte Kompilierer umfaßt eine Front-End-Einheit 11 und eine Back-End-Einheit 12. Die Front-End-Einheit 11 umfaßt weiter eine Lesereinheit 21, eine Decodierereinheit 22 und eine Analysatoreinheit 23.
  • Wenn die Lesereinheit 21 codierte Daten 24 (eine codierte Quellendatei) liest, decodiert die Decodierereinheit 22 die Daten in gewissen Einheiten und gibt die decodierten Daten der Analysatoreinheit 23 ein. Dann werden die in der Decodierereinheit 22 gespeicherten decodierten Daten automatisch verworfen, nachdem sie der Analysatoreinheit 23 eingegeben sind. Die Analysatoreinheit 23 führt Analyseprozesse wie beispielsweise eine Textelementanalyse (lexikalische Analyse), eine syntaktische Analyse, eine semantische Analyse, etc. für die eingegebenen Informationen in der Eingangsordnung aus. Dann wiederholen die Decodierereinheit 22 und die Analysatoreinheit 23 dieselben Prozesse, bis keine codierten Daten 24 mehr vorhanden sind.
  • Wenn keine codierten Daten 24 mehr vorhanden sind und ein Zwischentext 25, der ein Programm ist, das in einer Zwischensprache geschrieben ist, von der Front-End-Einheit 11 ausgegeben wird, optimiert die Back-End-Einheit 12 die Daten und bildet Objektcodes auf der Basis des Zwischentextes 25.
  • Gemäß solch einem Kompilierer wird die eingegebene codierte Quellendatei in Einheiten von vorbestimmter Mindestgröße durch die Decodierereinheit 22 decodiert. Da dieser Decodierprozeß ein interner Prozeß des Kompilierers ist und die Informationen unmittelbar nach dem Decodieren in den vorbestimmten Einheiten verworfen werden, kann der Nutzer nicht alle Informationen der decodierten Quellendatei von außerhalb des Kompilierers erfassen, auch wenn der Nutzer den Decodiererschlüssel besitzt.
  • 3 zeigt den Datenfluß in dem in 2 gezeigten Kompilierer. In 3 gibt die Lesereinheit 21 die codierte Quellendatei 24 einem Puffer 31 für codierte Daten in gewissen Einheiten ein, und die Decodierereinheit 22 decodiert die Daten in dem Puffer 31 für codierte Daten und gibt die decodierten Daten einem Puffer 32 für uncodierte Daten ein. Der Puffer 31 für codierte Daten und der Puffer 32 für uncodierte Daten sind in einem Speicher vorgesehen.
  • Dann analysiert die Analysatoreinheit 23 die Daten in dem Puffer 32 für uncodierte Daten in der Reihenfolge und bildet einen Zwischentext 25 in dem Speicher, und die Back-End-Einheit 12 bildet eine ausführbare Datei 33 aus dem Zwischentext 25.
  • 4 ist ein Flußdiagramm, das einen Übersetzungsprozeß (Kompilierungsprozeß) mit dem in 2 gezeigten Kompilierer zeigt. Zuerst beurteilt die Lesereinheit 21 gemäß einer magischen Zahl, die eine Datei in den Eingangsdaten 41 besitzt, ob die gegebenen Eingangsdaten 41 codiert sind oder nicht (Schritt S1). Falls die Daten codiert sind, gibt die Lesereinheit 21 eine vorbestimmte Anzahl von Bytes N der Daten dem Puffer 31 für codierte Daten ein. Die Decodierereinheit 22 stellt Quellendaten aus den Daten, die dem Puffer 31 für codierte Daten eingegeben wurden, wieder her und überträgt die Daten zu dem Puffer 32 für uncodierte Daten (Schritt S2).
  • Dann liest die Analysatoreinheit 23 die Quellendaten aus dem Puffer 32 für uncodierte Daten, analysiert nur den Leseabschnitt der Daten und expandiert die Daten zu einem Zwischentext 25 (Schritt S3). Die Lesereinheit 21 beurteilt dann, ob noch weitere Eingangsdaten 41 vorhanden sind oder nicht (Schritt S4). Die N-Byte-Übertragung durch die Le sereinheit 21, der Wiederherstellungsprozeß durch die Decodierereinheit 22 und der Analyseprozeß durch die Analysatoreinheit 23 werden wiederholt, bis keine Eingangsdaten 41 mehr vorhanden sind.
  • Bei dieser Wiederholung werden Daten in dem Puffer 31 für codierte Daten und in dem Puffer 32 für uncodierte Daten durch neue Eingangsdaten immer überschrieben und gelöscht. Deshalb wird in dem Puffer 32 für uncodierte Daten nie die gesamte Quellendatei reproduziert. Wenn keine Eingangsdaten 41 mehr vorhanden sind, wird dann automatisch ein Zwischentext 25 gebildet, der den gesamten Eingangsdaten entspricht.
  • Wenn die Eingangsdaten 41 andererseits von Natur aus Quellendateien mit niedriger Sicherheitspriorität sind und bei Schritt S1 nicht codiert sind, überträgt die Lesereinheit 21 die gesamte Eingabe zu dem Puffer 32 für uncodierte Daten, und die Analysatoreinheit 23 konvertiert die gesamten Eingangsdaten in einen Zwischentext 25. In diesem Fall werden alle Eingangsdaten 41 bei der einen Übertragung verarbeitet.
  • Falls bei Schritt S4 keine Eingangsdaten 41 mehr vorhanden sind, optimiert die Back-End-Einheit 12 den gebildeten Zwischentext 25 (Schritt S5) und bildet Codes durch die Prozesse der Registerzuordnung und Instruktionsplanung (Schritt S6). Dann gibt die Back-End-Einheit 12 ein Objektprogramm 42 (ausführbares Programm) entsprechend der in 3 gezeigten ausführbaren Datei 33 aus.
  • 5 ist ein Flußdiagramm, das ein Beispiel für Prozesse zeigt, die bei den in 4 gezeigten Schritten S2, S3 und S4 ausgeführt werden. Zum Beispiel wird angenommen, daß auf der Seite des Anbieters einer Quellendatei 16 Bytes der folgenden Originaldaten in einer Datei "Daten 1" gespeichert sind.
    ABCDEFGHIJKLMNOP
  • Wenn diese Daten codiert werden und in einer Datei "Daten 2" gespeichert werden, wird der Inhalt der Daten wie folgt sein:
    BCDEFGHIJKLMNOPQ
  • Obwohl bei diesem Beispiel ein Caeser-Schlüssel verwendet wird, kann auch ein anderer Schlüssel verwendet werden. Wenn eine Datei "Daten 2" dem Kompilierer als codierte Quellendatei 24 eingegeben wird, öffnet zuerst die Lesereinheit 21 die Datei (Schritt S11) und liest vier Bytes der codierten Daten in den Puffer 31 für codierte Daten (Schritt S12). Bei dem obigen Beispiel werden "BCDE", welche die ersten vier Bytes sind, in den Puffer 31 für codierte Daten gelesen.
  • Dann decodiert die Decodierereinheit 22 die codierten Daten und überträgt die Daten zu dem Puffer 32 für uncodierte Daten (Schritt S13). Bei diesem Beispiel werden "BCDE" decodiert, und "ABCD", welche die Originaldaten sind, werden zu dem Puffer 32 für uncodierte Daten übertragen.
  • Dann führt die Analysatoreinheit 23 eine Textelementanalyse für die Daten in dem Puffer 32 für uncodierte Daten aus, und wenn ein Textelement erkannt wird, konvertiert sie die Daten in der Ordnung in einen Zwischentext 25 (Schritt S14). Bei diesem Beispiel wird die Textelementanalyse der Daten "ABCD" ausgeführt.
  • Dann werden die Prozesse der Schritte S12, S13 und S14 wiederholt, bis keine Daten mehr in der codierten Quellendatei 24 vorhanden sind (Schritt S15). Wenn in der codierten Quellendatei 24 keine Daten mehr vorhanden sind, wird der Prozeß der Front-End beendet, und die Lesereinheit 21 schließt die Datei.
  • Da gemäß solch einem Wiederherstellungsprozeß Daten in dem Puffer 32 für uncodierte Daten sequentiell gelöscht werden, werden die Originaldaten "ABCDEFGHIJKLMNOP" nie zusammen reproduziert. Demzufolge kann die Übersetzung von Daten ausgeführt werden, während die Sicherheit der Daten gewahrt wird.
  • 6 ist ein Flußdiagramm, das ein Beispiel für den bei Schritt S3 von 4 auszuführenden Analyseprozeß zeigt. Wenn die Lesereinheit 21 Zeichen in einer Quellendatei liest, verändert sich die Eingangsquelle in Abhängigkeit davon, ob die Quellendatei codiert ist oder nicht, das heißt, ob die Datei über die Decodierereinheit 22 geleitet wird oder nicht. Falls die Datei codiert ist, liest die Analysatoreinheit 23 Zeichen aus dem Puffer 32 für uncodierte Daten zum Speichern der Daten, die von der Decodierereinheit 22 ausgegeben wurden. Falls die Datei nicht codiert ist, liest die Analysatoreinheit 23 Zeichen direkt aus der Datei selbst.
  • Zuerst beurteilt die Analysatoreinheit 23, ob die Eingangsdatei eine codierte Quellendatei ist oder nicht (Schritt S21), und falls die Datei eine uncodierte Quellendatei ist, öffnet sie die Datei (Schritt S22). Dabei zeigt ein Dateizeiger Fp auf die Anfangsposition der Datei.
  • Dann beurteilt die Analysatoreinheit 23 wieder, ob die Datei eine codierte Quellendatei ist oder nicht (Schritt S23), und falls die Datei eine codierte Quellendatei ist, liest sie ein Zeichen aus dem Puffer 32 für uncodierte Daten (Schritt S24) und beurteilt, ob der Puffer leer ist oder nicht (Schritt S25).
  • Falls der Puffer 32 für uncodierte Daten leer ist, instruiert die Analysatoreinheit 23 die Decodierereinheit 22 zu arbeiten, und die Decodierereinheit 22 stellt einen Teil der codierten Quellendatei wieder her (Schritt S26), und die Prozesse ab Schritt S24 werden wiederholt. Falls der Puffer 32 für uncodierte Daten nicht leer ist, führt die Analysatoreinheit 23 eine Textelementanalyse für schon gelesene Zeichen aus (Schritt S27) und wiederholt dann die Prozesse ab Schritt S23.
  • Falls bei Schritt S23 festgestellt wird, daß die Datei eine uncodierte Quellendatei ist, liest die Analysatoreinheit 23 ein Zeichen ab der Position, auf die der Zeiger Fp zeigt (Schritt S28), und führt den Prozeß bei Schritt S27 aus und wiederholt dann die Prozesse ab Schritt S23. Dabei wird der Zeiger Fp auf die Position des nächsten Zeichens gestellt.
  • Gemäß solch einem Analyseprozeß werden, falls die Quellendatei codiert ist, Zeichen aus dem Puffer 32 für uncodierte Daten gelesen, und immer dann, wenn kein Zeichen in dem Puffer ist, wird die Decodierereinheit 22 instruiert zu arbeiten. Deshalb wird nie mehr als eine vorbestimmte Anzahl von Bytes der Quellendaten in dem Puffer 32 für uncodierte Daten reproduziert.
  • Übrigens kann in dieser Ausführungsform solch ein öffentlich bekanntes System zum Speichern wie zum Beispiel ein gemeinsamer Schlüssel oder öffentlicher Schlüssel außerhalb des Kompilierers als Decodiererschlüssel für den Wiederherstellungsprozeß einer Chiffre verwendet werden. Wenn jedoch kein eigener Verschlüsselungsalgorithmus in Besitz ist, besteht in der Tat die hohe Wahrscheinlichkeit, daß übertragene Informationen durch einen anderen Decodierer decodiert werden können.
  • Bei einem Verfahren, bei dem nur ein externer Decodiererschlüssel in Besitz ist, besteht ferner das Risiko, da andere beliebige Eingangsdaten auch unter Verwendung des Schlüssels und des Decodieralgorithmus eines Kompilierers codiert werden können, daß der Kompilierer für andere Zwecke als für den ursprünglichen Zweck verwendet werden kann. Wenn ein Kompilierer nur für einen gewissen feststehenden Zweck zu verwenden ist, ist dieses Verfahren deshalb nicht empfehlenswert.
  • Daher wird in jenem Fall verhindert, daß der Kompilierer für andere Zwecke als zum Kompilieren einer spezifischen Quellendatei verwendet wird, indem ein Decodiererschlüssel innerhalb des Kompilierers in Besitz ist.
  • 7 zeigt ein Konfigurationsbeispiel für solch einen Codier-/Decodierprozeß. In 7 umfaßt die Codiererseite zum Senden einer Quellendatei (SRC) Codierer 51 und 52, und der Kompilierer auf der Decodiererseite umfaßt einen internen Decodierer 53 und einen Decodierer 54. Ein gemeinsamer Schlüssel CF ist sowohl in dem Codierer 51 als auch in dem internen Decodierer 53 im Binärcode eingebaut, auf den von außen nicht zugegriffen werden kann. Für den Verschlüsselungsalgorithmus wird zum Beispiel ein DES (Data Encryption Standard) verwendet.
  • Zuerst codiert die Codierereinheit 52 eine Quellendatei SRC unter Verwendung eines anderen gemeinsamen Schlüssels CT1, der sich von CF unterscheidet, und bildet eine codierte Quellendatei. Die Codierereinheit 51 codiert den gemeinsamen Schlüssel CT1 unter Verwendung des internen gemeinsamen Schlüssels CF und bildet einen codierten gemeinsamen Schlüssel CT2. Sowohl die codierte Quellendatei als auch CT2 werden von der Codiererseite zu der Decodiererseite übertragen.
  • Wenn CT2 empfangen wird, stellt der interne Decodierer 53 den gemeinsamen Schlüssel CT1 aus CT2 unter Verwendung des internen gemeinsamen Schlüssels CF wieder her und leitet den gemeinsamen Schlüssel CT1 zu dem Decodierer 54 weiter. Der Decodierer 54 decodiert die codierte Quellendatei unter Verwendung des gemeinsamen Schlüssels CT1 und stellt somit die Quellendatei SRC wieder her.
  • Obwohl bei diesem Beispiel ein Verfahren verwendet wird, bei dem ein interner gemeinsamer Schlüssel in einem Kompilierer in Besitz ist, ist die vorliegende Erfindung nicht unbedingt auf dieses Verfahren begrenzt. Anstelle des Codierens und Übertragens einer gesamten Quellendatei kann die Quellendatei in eine Vielzahl von Teilen geteilt werden, und jeder Teil kann codiert und übertragen werden. In diesem Fall ist es praktisch, wenn die Wiederherstellungseinheit des Kompilierers für die Teileinheit verwendet wird. Weiterhin kann nicht nur ein gemeinsames Schlüsselsystem sondern auch ein öffentliches Schlüsselsystem auf dieselbe Weise verarbeitet werden.
  • 8 zeigt ein Konfigurationsbeispiel für einen Codierprozeß auf der Basis eines öffentlichen Schlüsselsystems, und 9 zeigt ein Konfigurationsbeispiel des Decodierprozesses. Bei diesem Beispiel wird die Kombination aus einem DES, der ein gemeinsames Schlüsselsystem ist, und einem RSA (Rivest-Shamir-Adleman), nämlich einem öffentlichen Schlüsselsystem, verwendet, und zwei Sätze von privatem Schlüssel/öffentlichem Schlüssel von RSA werden verwendet.
  • In 8 codiert ein DES-Codierer 61 der Codiererseite Quellencodes (SC) gemäß dem DES unter Verwendung eines gemeinsamen Schlüssels C1 und bildet einen codierten Quellencode (ESC). In der Zwischenzeit codiert ein RSA-Codierer 62 den gemeinsamen Schlüssel C1 gemäß dem RSA unter Verwendung eines privaten Schlüssels Is und bildet einen codierten gemeinsamen Schlüssel C2. Ferner codiert der RSA-Codierer C2 gemäß dem RSA unter Verwendung eines öffentlichen Schlüssels Fp und bildet einen codierten gemeinsamen Schlüssel C3. Sowohl der codierte Quellencode ESC als auch C3 wird von der Codiererseite zu der Decodiererseite übertragen.
  • Wenn in 9 C3 empfangen wird, stellt ein RSA-Decodierer 63 der Decodiererseite C2 aus C3 gemäß dem RSA unter Verwendung des eingebauten privaten Schlüssels Fs wieder her und speichert C2 in einem internen Puffer. Ferner stellt der RSA-Decodierer 63 C1 aus C2 gemäß dem RSA unter Verwendung eines öffentlichen Schlüssels Ip wieder her und speichert C1 in dem internen Puffer. Dann decodiert ein DES-Decodierer 64 den codierten Quellencode unter Verwendung des wiederhergestellten gemeinsamen Schlüssels C1 und stellt den Quellencode wieder her.
  • Dann werden die Quellencodes durch einen Kompilierer 65 kompiliert und in Objektcodes (Maschinencodes) konvertiert. Da Quellencodes in gewissen Einheiten wiederhergestellt werden, wird der DES-Decodierer 64 in der Tat von einer Front-End-Einheit des Kompilierers 65 wiederholt aufgerufen.
  • Bei den in 8 und 9 gezeigten Beispielen werden insgesamt fünf Schlüssel verwendet, das heißt, ein gemeinsamer Schlüssel C1, ein privater Schlüssel Is der Codiererseite, ein öffentlicher Schlüssel Ip der Codiererseite, ein privater Schlüssel Fs der Decodiererseite und ein öffentlicher Schlüssel Fp der Decodiererseite. Davon sind Is und Ip und Fp und Fs RSA-Kombinationen aus einem Codiererschlüssel bzw. einem Decodiererschlüssel, und der öffentliche Schlüssel Ip wird von der Codiererseite im voraus an die Decodiererseite verteilt. Gemäß solch einem Verfahren kann dann, wenn derselbe codierte Quellencode an eine Vielzahl von Nutzern verteilt wird, die Sicherheit von Chiffren unter Verwendung von verschiedenen Kombinationen von Is und Ip für jeden Nutzer verbessert werden.
  • Unter Verwendung eines wie oben beschriebenen Kompilierers können Anwendungen, die durch einen Anbieter verteilt werden, in dem System eines Nutzers kundenspezifisch angepaßt werden, und dadurch kann die Größe von Anwendungen reduziert werden.
  • Zum Beispiel wird angenommen, daß ein Informationsurheber A (Anbieter) und ein Informationsempfänger B (Nutzer) zu unabhängigen Systemen gehören und der Urheber A eine Vielzahl von Informationen besitzt, einen Teil oder alle der Informationen codiert, die Informationen zu dem System des Empfängers B sendet und die Übersetzung der Informationen in diesem System ausgeführt wird. Gemäß solch einem Prozeß können Anwendungen auf der Seite des Empfängers B unter Verwendung der Quelleninformationen einzigartig kundenspezifisch angepaßt werden, während die Sicherheit der Quelleninformationen, die durch den Urheber A gespeichert wurden, gewahrt wird.
  • 10 zeigt ein Beispiel für solch einen Kundenanpassungsprozeß. In 10 packt der Anbieter A eine codierte Quelle 71, Profilinformationen 72, einen Kompilierer 73, etc. in ein Paket 74 und sendet es an den Nutzer B. Profilinformationen stellen Informationen zum Optimieren eines Programms dar, das die Verzweigungswahrscheinlichkeit von Prozessen und die Bezeichnung von Subroutinen (Sprungziel eines Funktionsaufrufs) enthält.
  • Ein Installierer 75 des Nutzers B expandiert das Paket 74 in dem Speicher und paßt die Anwendung gemäß Instruktionen des Nutzers kundenspezifisch an. Dabei verarbeitet der Kompilierer 73 die Quelle 71, Profilinformationen 72, etc. gemäß den Instruktionen und bildet einen kundenspezifisch angepaßten ausführbaren Modul 76. Falls der Kompilierer 73 schon in dem System des Nutzers B vorhanden ist, wird der Kompilierer 73 in dem Paket 74 weggelassen.
  • 11 ist ein Flußdiagramm, welches den Kundenanpassungsprozeß zeigt. Zuerst packt das System des Anbieters A Informationen, die für den Kundenanpassungsprozeß benötigt werden, wie etwa die codierte Quelle 71, Profilinformationen 72, den Kompilierer 73, etc. und eine Kundenanpassungsproze durinstruktionsdatei gemäß einem vorbestimmten Format/Namen (Schritt S31). Dann überträgt das System des Anbieters A das Paket 74 über ein Speichermedium wie zum Beispiel eine CD-ROM (Kompaktplatten-Nur-Lese-Speicher) oder ein Netz, etc. zu dem Nutzer B.
  • In dem System des Nutzers B expandiert der Installierer 75 das Paket 74 in einem Arbeitsbereich des Speichers (Schritt S32), und der Nutzer B bezeichnet Übersetzungsoptionen gemäß einem Systemmenü, das durch die Kundenanpassungsprozedurinstruktionsdatei angezeigt wird (Schritt S33). In diesem Fall werden zum Beispiel die folgenden Übersetzungsoptionen selektiert.
    • 1. Selektion einer zu verwendenden Profilinformationsdatei
    • (a) Gebrauch 1: Nutzung einer Profilinformationsdatei entsprechend Gebrauch 1.
    • (b) Gebrauch 2: Nutzung einer Profilinformationsdatei entsprechend Gebrauch 2. ...
    • (n) Gebrauch n: Nutzung einer Profilinformationsdatei entsprechend Gebrauch n.
    • 2. Selektion der Optimierungsoption
    • (a) 01: Weitestgehende Reduzierung der Größe von zu bildenden Objektcodes (Binärcodes).
    • (b) 02: Reduzierung der Größe von zu bildenden Objektcodes (Binärcodes), indem die Laufgeschwindigkeit über einem gewissen Niveau beibehalten wird.
    • (c) 03: Größtmögliche Erhöhung der Laufgeschwindigkeit.
    • 3. Selektion einer zu verbindenden Klassenbibliothek (eine Vielzahl von Klassenbibliotheken kann selektiert werden) LIB1, LIB2, LIB3, ...
  • Dann bildet der Installierer 75 Kompiliereroptionsinformationen 77, die für den Nutzer geeignet sind, gemäß dieser selektierten Eingabe und aus den Architekturinformationen des Systems (CPU-Informationen, Speichergröße, etc.). In den Optionsinformationen 77 sind Befehle für den Kompilierer 73, etc. beschrieben.
  • Dann führt der Kompilierer 73 den in 4 gezeigten Übersetzungsprozeß unter Verwendung der Optionsinformationen 77 aus und bildet einen ausführbaren Modul 76 aus der Quelle 71 (Schritt S34). Da der auf diese Weise gebildete ausführbare Modul 76 gemäß den Instruktionen optimiert wird, wenn die Kundenanpassung erfolgt, stellt die Größe des ausführbaren Moduls 76 ein erforderliches Minimum für den Nutzer B dar.
  • Dann löscht der Installierer 75 Daten wie etwa die Quelle 71, die in dem Arbeitsbereich, etc. expandiert wurden. Wenn kein Wartungsplan vorhanden ist oder der Arbeitsbereich klein ist, löscht der Installierer 75 ferner den Kompilierer 73 (Schritt S35) und beendet den Prozeß.
  • Indem eine codierte Korrekturdatei oder patch file, die einem Teil der Quelle 71 entspricht, anstelle der Quelle 71 gesendet wird und Korrekturexpansionsinstruktionen in der Kundenanpassungsprozedurinstruktionsdatei beschrieben werden, kann die Softwarewartung auch bei derselben Prozedur ausgeführt werden. In diesem Fall findet hauptsächlich eine binäres patch Verwendung. Falls eine Funktion zum Festlegen von Paßwörtern auf der Seite des Informationsurhebers eingebaut ist, kann die Funktion bei der Kundenanpassung bezeichnet werden.
  • Mit "Übersetzung" ist ein allgemeiner Konvertierungsprozeß gemeint, nicht nur der Kompilierungsprozeß von Quellendateien, wie er oben beschrieben ist, sondern auch ein beliebiger Übersetzungsprozeß zum Konvertieren von Informationen, die in einer gewissen Sprache geschrieben sind, in Informationen in einer anderen Sprache. Zum Beispiel können Dokumente, die in Englisch geschrieben sind, in Dokumente in Japanisch übersetzt werden, und Programme, die in einer gewissen Programmiersprache geschrieben sind, können in Programme in einer anderen Sprache konvertiert werden.
  • Das jeweilige System eines Anbieters und eines Nutzers wird zum Beispiel unter Verwendung einer Informationsverarbeitungsvorrichtung (Computer) konfiguriert, wie sie in 12 gezeigt ist. Die Informationsverarbeitungsvorrichtung von 12 umfaßt eine CPU (zentrale Verarbeitungseinheit) 81, einen Speicher 82, eine Eingabevorrichtung 83, eine Ausgabevorrichtung 84, eine externe Speichervorrichtung 85, einen Medientreiber 86 und einen Netzverbinder 87, die über einen Bus 88 miteinander verbunden sind.
  • In dem Speicher 82 werden Programme und Daten gespeichert, die für den Prozeß zu verwenden sind. Für den Speicher 82 werden zum Beispiel ein ROM (Nur-Lese-Speicher), ein RAM (Speicher mit wahlfreiem Zugriff), etc. verwendet. Die CPU 81 führt die erforderlichen Prozesse durch den Ablauf der in dem Speicher 82 gespeicherten Programme aus.
  • Die Eingabevorrichtung 83 hat zum Beispiel die Form einer Tastatur, einer Zeigevorrichtung, eines Berührungsfeldes, etc., die verwendet werden, um Instruktionen und Informationen von dem Bediener einzugeben. Die Ausgabevorrichtung 84 hat zum Beispiel die Form einer Anzeige, eines Druckers, etc., die verwendet werden, um Anfragen an den Bediener, das Resultat von Prozessen, etc. auszugeben.
  • Die externe Speichervorrichtung 85 hat zum Beispiel die Form einer Magnetplatte, einer optischen Platte, einer magneto-optischen Platte, etc. Diese externe Speichervorrichtung 85 speichert die obengenannten Programme und Daten, die auch verwendet werden können, indem sie in den Speicher 82 geladen werden, falls es erforderlich ist.
  • Der Medientreiber 86 treibt ein tragbares Speichermedium 89 an und greift auf den aufgezeichneten Inhalt zu. Für das tragbare Speichermedium 89 werden ein beliebiges computerlesbares Speichermedium wie etwa eine Speicherkarte, eine Diskette, eine CD-ROM, eine optische Platte, eine magneto-optische Platte, etc. verwendet. Dieses tragbare Speichermedium 89 wird für einen Anbieter verwendet, um Informationen an Nutzer zu verteilen. Die obengenannten Programme und Daten, die in dem tragbaren Speichermedium 89 gespeichert sind, können auch verwendet werden, indem sie in den Speicher 82 geladen werden, falls es erforderlich ist.
  • Der Netzverbinder 87 kommuniziert mit einer Vorrichtung des Anbieters oder des Nutzers über ein beliebiges Netz (Kommunikationsleitung) und führt Datenkonvertierungen aus. Somit können Informationen von einem Anbieter zu einem Nutzer übertragen werden. Die obengenannten Programme und Daten können auch von einer externen Vorrichtung empfangen werden und verwendet werden, indem sie in den Speicher 82 geladen werden, falls es erforderlich ist.
  • 13 zeigt computerlesbare Speichermedien zum Zuführen von Programmen und Daten zu der Informationsverarbeitungsvorrichtung, die in 12 gezeigt ist. Die in dem tragbaren Speichermedium 89 gespeicherten Programme und Daten und eine externe Datenbank 90 werden in den Speicher 82 geladen. Dann führt die CPU 81 die erforderlichen Prozesse aus, indem die Programme unter Verwendung der Daten ablaufen.
  • Gemäß der vorliegenden Erfindung kann eine Vielfalt an Software leicht und sicher für Nutzer vorgesehen werden, indem der Wiederherstellungsprozeß und der Übersetzungsprozeß von Chiffren verschmolzen werden. Deshalb können Anwendungen, die von einem Anbieter verteilt werden, in dem System eines Nutzers kundenspezifisch angepaßt werden, und dadurch kann die Größe von Anwendungen reduziert werden.

Claims (8)

  1. Übersetzungsvorrichtung mit: einem Eingabemittel (1, 21), das angeordnet ist, um verschlüsselte Informationen einzugeben; einem ersten Puffer (31), der angeordnet ist, um die verschlüsselten Informationen zu speichern, die eingegeben worden sind; einem Wiederherstellungsmittel (2, 22), das angeordnet ist, um aus den verschlüsselten Informationen Originalinformationen wiederherzustellen, indem die verschlüsselten Informationen in dem ersten Puffer entschlüsselt werden; einem zweiten Puffer (32), der angeordnet ist, um die erhaltenen Originalinformationen zu speichern; einem Übersetzungsmittel (3, 12, 23), das angeordnet ist, um die Originalinformationen in dem zweiten Puffer zu übersetzen; und ein Ausgabemittel (4, 12), das angeordnet ist, um ein Resultat einer Übersetzung auszugeben, dadurch gekennzeichnet, daß das Eingabemittel die verschlüsselten Informationen in eine Vielzahl von Teilen teilt und jeden Teil der verschlüsselten Informationen dem ersten Puffer wiederholt eingibt; und das Wiederherstellungsmittel den Teil der verschlüsselten Informationen, der dem ersten Puffer eingegeben wurde, wiederholt entschlüsselt, um einen entsprechenden Teil der Originalinformationen zu erhalten, und den zweiten Puffer mit dem erhaltenen Teil der Originalinformationen wiederholt überschreibt, nachdem ein vorhergehender Teil der Originalinformationen in dem zweiten Puffer durch das Übersetzungsmittel übersetzt worden ist.
  2. Übersetzungsvorrichtung nach Anspruch 1, bei der das Eingabemittel ein Beurteilungsmittel (21) enthält, das angeordnet ist, um zu beurteilen, ob eingegebene Informationen verschlüsselt sind oder nicht, und, wenn die eingegebenen Informationen verschlüsselt sind, die eingegebenen Informationen dem ersten Puffer als die verschlüsselten Informationen eingibt.
  3. Übersetzungsvorrichtung nach Anspruch 2, bei der das Eingabemittel dann, wenn die eingegebenen Informationen nicht verschlüsselt sind, die eingegebenen Informationen dem Übersetzungsmittel als die Originalinformationen eingibt.
  4. Übersetzungsvorrichtung nach Anspruch 1, bei der das Wiederherstellungsmittel wenigstens einen Teil von Schlüsselinformationen zum Entschlüsseln der verschlüsselten Informationen als intern eingebaute Informationen speichert und die Originalinformationen unter Verwendung der Schlüsselinformationen wiederherstellt.
  5. Übersetzungsvorrichtung nach Anspruch 1, ferner mit einem Anwenderanpassungsmittel (73, 75), das angeordnet ist, um das Resultat der Übersetzung an den Anwender anzupassen, indem eine Übersetzungsoption für das Übersetzungsmittel bezeichnet wird.
  6. Übersetzungsvorrichtung nach Anspruch 1, bei der das Eingabemittel eine verschlüsselte Quellendatei teilt und als die verschlüsselten Informationen eingibt, das Wiederherstellungsmittel einen Teil einer Originalquellendatei für jeden abgeteilten Teil der verschlüsselten Quellendatei wiederherstellt und das Übersetzungsmittel einen Zwischentext für jeden Teil der Originalquellendatei erzeugt und von dem Zwischentext ein ausführbares Programm erzeugt.
  7. Computerlesbares Speichermedium (82, 85, 89, 90), das ein Programm speichert, das es einem Computer ermöglicht, die folgenden Schritte zu verarbeiten: Eingeben von verschlüsselten Informationen; Speichern der verschlüsselten Informationen, die einem ersten Puffer (31) eingegeben worden sind; Wiederherstellen von Originalinformationen aus den verschlüsselten Informationen, indem die verschlüsselten Informationen in dem ersten Puffer entschlüsselt werden; Speichern der erhaltenen Originalinformationen in einem zweiten Puffer (32); Übersetzen der Originalinformationen in dem zweiten Puffer; und Ausgeben eines Resultates einer Übersetzung, dadurch gekennzeichnet, daß der Schritt zum Eingeben die verschlüsselten Informationen in eine Vielzahl von Teilen teilt und jeden Teil der verschlüsselten Informationen dem ersten Puffer wiederholt eingibt; und der Schritt zum Wiederherstellen den Teil der verschlüsselten Informationen, der dem ersten Puffer eingegeben wurde, wiederholt entschlüsselt, um einen entsprechenden Teil der Originalinformationen zu erhalten, und den zweiten Puffer mit dem erhaltenen Teil der Originalinformationen wiederholt überschreibt, nachdem ein vorhergehender Teil der Originalinformationen in dem zweiten Puffer übersetzt worden ist.
  8. Computerimplementiertes Verfahren zum Übersetzen, das die folgenden Schritte umfaßt: Eingeben von verschlüsselten Informationen; Speichern der verschlüsselten Informationen, die einem ersten Puffer (31) eingegeben worden sind; Wiederherstellen von Originalinformationen aus den verschlüsselten Informationen, indem die verschlüsselten Informationen in dem ersten Puffer entschlüsselt werden; Speichern der erhaltenen Originalinformationen in einem zweiten Puffer (32); Übersetzen der Originalinformationen in dem zweiten Puffer; und Ausgeben eines Resultates einer Übersetzung, dadurch gekennzeichnet, daß der Schritt zum Eingeben die verschlüsselten Informationen in eine Vielzahl von Teilen teilt und jeden Teil der verschlüsselten Informationen dem ersten Puffer wiederholt eingibt; und der Schritt zum Wiederherstellen den Teil der verschlüsselten Informationen, der dem ersten Puffer eingegeben wurde, wiederholt entschlüsselt, um einen entsprechenden Teil der Originalinformationen zu erhalten, und den zweiten Puffer mit dem erhaltenen Teil der Originalinformationen wiederholt überschreibt, nachdem ein vorhergehender Teil der Originalinformationen in dem zweiten Puffer übersetzt worden ist.
DE69818414T 1997-12-24 1998-06-18 Gerät und Verfahren zum Übersetzen mit einer Dekodierfunktion Expired - Lifetime DE69818414T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP35566897 1997-12-24
JP35566897A JP4027482B2 (ja) 1997-12-24 1997-12-24 暗号復元を行う翻訳装置およびその方法

Publications (2)

Publication Number Publication Date
DE69818414D1 DE69818414D1 (de) 2003-10-30
DE69818414T2 true DE69818414T2 (de) 2004-05-06

Family

ID=18445165

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69818414T Expired - Lifetime DE69818414T2 (de) 1997-12-24 1998-06-18 Gerät und Verfahren zum Übersetzen mit einer Dekodierfunktion

Country Status (4)

Country Link
US (1) US6795921B2 (de)
EP (2) EP0926595B1 (de)
JP (1) JP4027482B2 (de)
DE (1) DE69818414T2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4027482B2 (ja) * 1997-12-24 2007-12-26 富士通株式会社 暗号復元を行う翻訳装置およびその方法
US6684389B1 (en) * 1999-08-05 2004-01-27 Canon Kabushiki Kaisha Compiler that decrypts encrypted source code
US20080244695A1 (en) * 2000-06-01 2008-10-02 Jong-Sung Lee Total system for preventing information outflow from inside
AU2001258905A1 (en) * 2000-06-01 2001-12-11 Safa Soft Co. Ltd Total system for preventing information outflow from inside
JP3712366B2 (ja) * 2000-08-15 2005-11-02 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、実行可能モジュール生成方法および記憶媒体
US20020157010A1 (en) * 2001-04-24 2002-10-24 International Business Machines Corporation Secure system and method for updating a protected partition of a hard drive
US7823139B2 (en) * 2003-07-19 2010-10-26 Bea Systems, Inc. Method and system for translating programming languages
JP2005056413A (ja) * 2003-08-01 2005-03-03 Stmicroelectronics Sa 複数の同じ計算の保護
US7877595B2 (en) 2004-03-23 2011-01-25 Harris Corporation Modular cryptographic device and related methods
US7664755B2 (en) * 2005-08-24 2010-02-16 International Business Machines Corporation User prompt for loading sound in a computer resource
KR100922862B1 (ko) * 2007-11-14 2009-10-20 성균관대학교산학협력단 명령어의 부호화를 통한 시스템 보안방법
CN101980160B (zh) * 2010-10-28 2013-02-13 飞天诚信科技股份有限公司 一种.net程序加密后的执行方法
US9075913B2 (en) 2012-02-27 2015-07-07 Qualcomm Incorporated Validation of applications for graphics processing unit
KR102063966B1 (ko) 2015-10-21 2020-01-09 엘에스산전 주식회사 Plc 명령어 컴파일 최적화 방법
WO2017183087A1 (ja) * 2016-04-18 2017-10-26 三菱電機株式会社 復号装置、復号コンパイル方法及び復号コンパイルプログラム
JP6988444B2 (ja) * 2017-12-20 2022-01-05 大日本印刷株式会社 初期設定方法、セキュアエレメント、デバイス及びプログラム
CN114995830B (zh) * 2022-08-03 2022-11-11 浙江口碑网络技术有限公司 一种代码编译方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276881A (en) * 1990-06-25 1994-01-04 Hewlett-Packard Company ANDF producer using the HPcode-Plus compiler intermediate language
US5280613A (en) * 1990-06-25 1994-01-18 Hewlett-Packard Company ANDF installer using the HPcode-Plus compiler intermediate language
US5339419A (en) * 1990-06-25 1994-08-16 Hewlett-Packard Company ANDF compiler using the HPcode-plus compiler intermediate language
CA2061298C (en) * 1992-02-17 1996-12-03 Douglas J. Mortson Method for detecting critical failures during the building of complex computer programs from source code parts
US5481708A (en) * 1992-06-05 1996-01-02 Borland International, Inc. System and methods for optimizing object-oriented compilations
JP3280449B2 (ja) * 1993-03-01 2002-05-13 富士通株式会社 コンパイル装置
JP3015238B2 (ja) 1993-12-07 2000-03-06 日立ソフトウエアエンジニアリング株式会社 データ転送方法
US5680622A (en) * 1994-06-30 1997-10-21 Borland International, Inc. System and methods for quickly detecting shareability of symbol and type information in header files
US5835771A (en) * 1995-06-07 1998-11-10 Rogue Wave Software, Inc. Method and apparatus for generating inline code using template metaprograms
US6125186A (en) * 1996-11-28 2000-09-26 Fujitsu Limited Encryption communication system using an agent and a storage medium for storing that agent
GB2321375B (en) * 1997-01-21 2002-02-27 Fujitsu Ltd Data encoding method and apparatus and data decoding method and apparatus
EP0864969A1 (de) * 1997-03-14 1998-09-16 Alcatel Verfahren, um ein Softwarepaket und einen Anbieterrechner anzubieten sowie Anwenderrechner zur Realisierung des Verfahrens
US6078744A (en) * 1997-08-01 2000-06-20 Sun Microsystems Method and apparatus for improving compiler performance during subsequent compilations of a source program
JP4027482B2 (ja) * 1997-12-24 2007-12-26 富士通株式会社 暗号復元を行う翻訳装置およびその方法
US6121903A (en) * 1998-01-27 2000-09-19 Infit Communications Ltd. On-the-fly data re-compression
US5945933A (en) * 1998-01-27 1999-08-31 Infit Ltd. Adaptive packet compression apparatus and method
GB9909362D0 (en) * 1999-04-23 1999-06-16 Pace Micro Tech Plc Memory database system for encrypted progarmme material
US6684389B1 (en) * 1999-08-05 2004-01-27 Canon Kabushiki Kaisha Compiler that decrypts encrypted source code
JP4067757B2 (ja) * 2000-10-31 2008-03-26 株式会社東芝 プログラム配布システム

Also Published As

Publication number Publication date
JPH11184690A (ja) 1999-07-09
US6795921B2 (en) 2004-09-21
JP4027482B2 (ja) 2007-12-26
US20010039651A1 (en) 2001-11-08
EP0926595A3 (de) 2002-01-02
DE69818414D1 (de) 2003-10-30
EP1338963A2 (de) 2003-08-27
EP1338963A3 (de) 2003-09-03
EP0926595B1 (de) 2003-09-24
EP0926595A2 (de) 1999-06-30

Similar Documents

Publication Publication Date Title
DE69818414T2 (de) Gerät und Verfahren zum Übersetzen mit einer Dekodierfunktion
DE60024696T2 (de) System und Verfahren zur Manipulation eines Rechnersbestandes und/oder eines Programms
DE69529635T2 (de) Gemeinsame Benutzung eines Dateiedierungssystems mit geheimem Dateiinhalt, Versionsverwaltung und asynchroner Edierung
DE60200616T2 (de) Gesicherte Inhaltsobjekte
DE60030181T2 (de) System, Verfahren und hergestellter Gegenstand zum Zugriff auf und Verarbeitung von Chipkartendaten
DE69515244T2 (de) Methode zur programdatensicherung
DE69926970T2 (de) Selbstschützende Dokumente
DE69736310T2 (de) Erzeugung und Verteilung digitaler Dokumente
JP4197320B2 (ja) 構造化された文章、特にxml文章の符号化/復号化のための方法及び装置
EP1215547B1 (de) Verschlüsselung von Steuerungsprogrammen
DE69637467T2 (de) Aufzeichnung und Wiedergabe von Daten sowie Informationsbereitstellung und -sammlung
DE69824975T2 (de) Verfahren zur übertragung von informationsdaten von einem sender zu einem empfänger über einen transcoder
DE69736148T2 (de) Verfahren und Einrichtung zur Datenverschlüsselung
DE69824251T2 (de) Entschlüsselungsvorrichtung
DE112012002332B4 (de) Schützen eines Steuervektors in einem kryptographischen System
EP1051036A3 (de) Kryptographieverfahren und -Vorrichtung zur Beschränkung des Zugriffs auf den Inhalt von übertragenen Programmen durch Hash-Funktionen und Programmidentifizierer
DE19835647A1 (de) Computersystem und Verfahren zum Lesen von HID-Dateneinheiten
WO2001086592A3 (en) Approach for generating rules
DE102007020775A1 (de) Geräteunabhängige Verwaltung kryptografischer Information
DE69621168T2 (de) Verfahren und System zur Software-Codierung und -Decodierung
DE60305555T2 (de) Selbst wiederherstellendes Programm, Programmerzeugungsmethode und Vorrichtung, Informationsbearbeitungsvorrichtung und Programm
DE10256961A1 (de) System und Verfahren zum sicheren Drucken
US20030196169A1 (en) Device and procedure for the protected output of an electronic document via a data transmission network
WO2010122678A1 (en) Online storage service system and its data control method
EP3576001A1 (de) Computerimplementiertes verfahren zum übergeben eines datenstrings von einer anwendung an eine datenschutzeinrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE