KR20200068577A - 인증가능 및 적격가능 소프트웨어의 결합을 통한 컴퓨터 시스템 무결성 - Google Patents

인증가능 및 적격가능 소프트웨어의 결합을 통한 컴퓨터 시스템 무결성 Download PDF

Info

Publication number
KR20200068577A
KR20200068577A KR1020190151060A KR20190151060A KR20200068577A KR 20200068577 A KR20200068577 A KR 20200068577A KR 1020190151060 A KR1020190151060 A KR 1020190151060A KR 20190151060 A KR20190151060 A KR 20190151060A KR 20200068577 A KR20200068577 A KR 20200068577A
Authority
KR
South Korea
Prior art keywords
output
software application
authenticable
computer system
eligible
Prior art date
Application number
KR1020190151060A
Other languages
English (en)
Inventor
뉴웰 산더스-리드 존
Original Assignee
더 보잉 컴파니
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 더 보잉 컴파니 filed Critical 더 보잉 컴파니
Publication of KR20200068577A publication Critical patent/KR20200068577A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1487Generic software techniques for error detection or fault masking using N-version programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1476Error detection or correction of the data by redundancy in operation in neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

컴퓨터 시스템의 무결성을 개선하는 방법은 인증가능 및 적격가능 소프트웨어 어플리케이션을 실행하는 것을 포함한다. 인증가능 소프트웨어 어플리케이션은 출력을 생성하기 위해 입력 데이터를 처리하도록 순차적으로 실행되는 정적 프로그램 명령으로 구성되고, 적격가능 소프트웨어 어플리케이션은 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 기계 학습 알고리즘을 사용하여 반복적으로 구축된 모델을 사용한다. 인증가능 소프트웨어 어플리케이션은 인증 표준에 따라 컴퓨터 시스템에 대해 인증가능하고, 적격가능 소프트웨어 어플리케이션은 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능이다. 방법은 또한 출력을 검증하기 위해 대응 출력과의 비교에 의해 출력을 교차-체크하고, 그에 의해 컴퓨터 시스템의 무결성을 개선한다. 그리고, 방법은 출력이 임계치 이상으로 대응 출력과 다름을 비교가 나타낼 때 출력이 미검증된다는 경보를 발생시키는 것을 포함한다.

Description

인증가능 및 적격가능 소프트웨어의 결합을 통한 컴퓨터 시스템 무결성{COMPUTER SYSTEM INTEGRITY THROUGH A COMBINATION OF CERTIFIABLE AND QUALIFIABLE SOFTWARE}
본 발명은 컴퓨터 시스템에 관한 것으로, 특히 컴퓨터 시스템 무결성(computer system integrity)을 개선하기 위해 인증가능 및 적격가능 소프트웨어를 결합하는 것에 관한 것이다.
항공 우주와 같은 많은 산업에 있어서, 높은 무결성(high integrity)은 필수이다. 많은 이들 산업에 대해, 소프트웨어는 다양한 인증 표준 또는 보증 레벨에 부합하는 요구 사항이 있다. 예컨대, 항공 우주에 있어서, RTCA(Radio Technical Commission for Avionics)에 의해 공포된 DO-178 요구 사항은 소프트웨어/하드웨어 시스템에 대한 다수의 여러 항공기 관련 인증 레벨(aircraft-related certification levels)을 규정한다. 인증은 소프트웨어가 오직 설계된 바와 같이 정확하게 동작함을 보증하도록 의도된다. 이는 종종 인증가능 운영 시스템(OS) 및 하이-레벨 코드(high-level code)를 기계어(machine language)로 정확하게 번역하도록 보증된 컴파일러(compilers)로 시작하는 것을 의미한다. 이어 어플리케이션 코드(application code)가 한 줄씩 테스트 및 검사된다. 그러나 이것 조차도 결과가 의도한 바와 같이 될 것으로는 의미하지 않는다.
이미지 처리(Image Processing)는 문제의 좋은 예이다. 많은 높은 무결성 시스템(high integrity systems)은 잘 특징화될 수 있는 하나 또는 두개의 시변 신호(time varying signals)에 대해 동작하지만, 비디오 시스템은 본질적으로 더욱 복잡하다. 입력 이미지(비디오)는 수백만 개의 픽셀을 포함한다. 하나의 결과로는 모든 가능한 입력을 완전히 특징화하는 것이 극히 어렵다. 소프트웨어가 달리 인증가능하더라도 어떠한 이미지 또는 비디오 처리 알고리즘은 모든 조건 하에서 "적절한(proper)" 결과로 돌아갈 것임을 보장하는 것이 마찬가지로 어렵다. 이러한 불확실성이 종종 완화되는 한 가지 방법은 감독을 제공하는 훈련된 (적격화된(qualified)) 사람 오퍼레이터를 갖추는 것이다.
(비행 제어 시스템과 같은) 소정의 높은-무결성 맥락에 있어서, 부가적 무결성이 같은 입력에 대해 같은 소프트웨어를 실행하는 다중의 (종종 3개의) 병렬 및 독립적이지만 동일한 컴퓨터를 갖추는 것에 의해 얻어진다. 이 경우, 출력이 정확하게 매칭되도록 기대되고, 출력에 대한 비교 동작은 모든 컴퓨터가 같은 결과를 보장하는데 이용된다.
기계 학습(AI/ML)를 기초로 하는 인공 지능은 근본적으로 다른 접근법을 취한다. 몇몇 예에 있어서, AI/ML 소프트웨어는 라벨링된 예시적 데이터 세트로 훈련된 다층, 다중 노드 "신경망(neural net)"을 구현한다. 학습 시스템은 올바른 결과를 제공하는 토폴로지를 "학습(learn)"하기 위해 노드 간의 연결을 조정한다. 이들 행위는 고정되어 진화하지 않도록 "동결(frozen)"될 수 있지만, 이는 인증가능 시스템에 대해 수행되는 것처럼 실행의 선형 스레드(linear thread of execution)를 따르는 것에 대해 여전히 실현가능하지 않다. 결과적으로, 이들 강력한 시스템은 현재 인증될 수 없다. 높은 무결성 어플리케이션에서 이들 시스템을 어떻게 이용하는지를 포함하는 현재 논의는 다양한 시나리오에서 훈련 및 테스팅/평가를 통해 사람이 "적격화하는 되는(qualified)" 것이기는 하지만 시스템을 "적격화하는 것(qualifying)"의 아이디어를 포함한다. 그러나 이러한 접근은 높은 무결성이 필요한 시스템에서는 아직 받아들여질 수 없다.
따라서, 위에서 논의된 문제 중 적어도 몇몇과 다른 가능한 문제를 고려하는 시스템 및 방법을 갖는 것이 바람직할 것이다.
본 발명의 예시적인 구현은 컴퓨터 시스템 무결성을 개선하기 위해 인증가능 및 적격가능 소프트웨어를 결합하는 것에 관한 것이다. 특히, 몇몇 예시적 구현은 인증가능 소프트웨어를 교차 체크하기 위해 비-인증가능 기계 학습 소프트웨어를 이용하고, 그에 의해 컴퓨터 시스템 무결성을 개선한다. 몇몇 예에서, 인증가능 소프트웨어의 출력은 적격가능 소프트웨어의 대응 출력과 간단히 교차-체크될 수 있다.
몇몇 예에 있어서, 출력 및 대응 출력은 결합된 출력을 생성하기 위해 결합될 수 있고, 따라서 무결성을 개선할 뿐만 아니라 컴퓨터 시스템의 견고성 또한 개선한다. 이와 관련하여, 여러 소프트웨어가 각각의 성능 지수와 유사하지만 근소하게 다른 출력을 제공할 수 있다. 출력이 충분한 정도에 동의하면, 개선된 성능을 제공하기 위해 (성능 지수에 의해) 가중되고 (예컨대, 칼만 필터에서) 결합될 수 있다.
따라서 본 발명은, 제한 없이, 다음의 예시적 구현을 포함한다.
몇몇 예시적 구현은 방법이: 컴퓨터 시스템이 동작하도록 구성되는 출력을 생성하기 위해 입력 데이터를 처리하도록 순차적으로 실행된 정적 프로그램 명령으로 구성된 인증가능 소프트웨어 어플리케이션을 실행하고, 인증가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 인증가능하고; 인증가능 소프트웨어 어플리케이션의 실행 동안 적격가능 소프트웨어 어플리케이션을 실행하고, 적격가능 소프트웨어 어플리케이션이 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 기계 학습 알고리즘을 이용하여 반복적으로 구축된 모델을 이용하고, 적격가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능이고; 인증가능 소프트웨어 어플리케이션으로부터의 출력을 검증하기 위해 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하고, 그에 의해 컴퓨터 시스템의 무결성을 개선하고; 및 출력이 임계치 이상으로 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 미검증된다는 경보를 발생시키는; 컴퓨터 시스템을 제공한다.
어느 상기한 예시적 구현, 또는 어느 상기한 예시적 구현의 어떠한 조합의 방법의 몇몇 예시적 구현에 있어서, 출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 방법은 컴퓨터 시스템이 동작하도록 구성되는 출력에 대해 동작하고, 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력을 배제하는 컴퓨터 시스템을 더 포함한다.
어느 상기한 예시적 구현, 또는 어느 상기한 예시적 구현의 어떠한 조합의 방법의 몇몇 예시적 구현에 있어서, 출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능한 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 방법은 출력 및 대응 출력으로부터 결합된 출력을 생성하고; 결합된 출력에 대해 동작하는; 컴퓨터 시스템을 더 포함한다.
어느 상기한 예시적 구현, 또는 어느 상기한 예시적 구현의 어떠한 조합의 방법의 몇몇 예시적 구현에 있어서, 인증가능 소프트웨어 어플리케이션을 실행하고, 적격가능 소프트웨어 어플리케이션을 실행하며, 추가로 출력 및 대응 출력에 대한 각각의 성능 지수를 생성하는 것을 포함하고, 결합된 출력을 생성하는 것은 각각의 성능 지수에 의해 가중된 출력 및 대응 출력을 칼만 필터링하는 것을 포함한다.
어느 상기한 예시적 구현, 또는 어느 상기한 예시적 구현의 어떠한 조합의 방법의 몇몇 예시적 구현에 있어서, 인증가능 소프트웨어 어플리케이션 및 적격가능 소프트웨어 어플리케이션이 실행됨에 따라 제3 소프트웨어 어플리케이션을 실행하는 것을 더 포함하고, 제3 소프트웨어 어플리케이션이 제2 인증가능 또는 적격가능 소프트웨어 어플리케이션이고, 제3 소프트웨어 어플리케이션이 제2 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 실행되고, 출력을 교차-체크하는 것이 대응 출력과 제2 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하는 것을 포함하고, 경보를 발생시키는 것은 출력이 임계치 이하로 대응 출력과 제2 대응 출력 양쪽과 다르다는 것을 비교가 나타낼 때 인증가능 소프트웨어로부터의 출력이 미검증된다는 경보를 발생시키는 것을 포함한다.
어느 상기한 예시적 구현, 또는 어느 상기한 예시적 구현의 어떠한 조합의 방법의 몇몇 예시적 구현에 있어서, 컴퓨터 시스템이 항공기에 대한 타겟을 정의하는 허브를 향해 이동하는 항공기의 항공전자 시스템이고, 인증가능 소프트웨어 어플리케이션이 인증가능 물체 검출 어플리케이션이며, 적격가능 소프트웨어 어플리케이션이 적격가능 물체 검출 어플리케이션이고, 인증가능 소프트웨어 어플리케이션을 실행하는 것은 타겟이 이미지에서 검출되는 출력을 생성하기 위해 허브의 이미지를 처리하도록 인증가능 물체 검출 어플리케이션을 실행하는 것을 포함하고, 적격가능 소프트웨어 어플리케이션을 실행하는 것은 타겟이 이미지에서 검출되는 대응 출력을 생성하기 위해 허브의 이미지를 처리하도록 적격가능 물체 검출 어플리케이션을 실행하는 것을 포함하고, 출력을 교차-체크하는 것은 인증가능 물체 검출 어플리케이션으로부터의 출력을 검증하기 위해 대응 출력과의 비교에 의해 출력을 교차-체크하는 것을 포함한다.
어느 상기한 예시적 구현, 또는 어느 상기한 예시적 구현의 어떠한 조합의 방법의 몇몇 예시적 구현에 있어서, 출력이 항공기와 허브 사이의 거리에 따라 감소하는 임계치 이하로 대응 출력과 다름을 비교가 나타낼 때 인증가능 물체 검출 어플리케이션으로부터의 출력이 검증된다.
몇몇 예시적 구현은 컴퓨터-판독가능 프로그램 코드를 저장하도록 구성된 메모리; 및 메모리에 억세스하고, 컴퓨터 시스템이 적어도 어느 상기한 예시적 구현의 방법, 또는 어느 상기한 예시적 구현의 어떠한 조합을 수행하도록 하는 컴퓨터-판독가능 프로그램 코드를 실행하도록 구성된 처리 회로;를 구비하는 컴퓨터 시스템을 제공한다.
몇몇 예시적 구현은 비-일시적이고 컴퓨터 시스템이 적어도 어느 상기한 예시적 구현, 또는 어느 상기한 예시적 구현의 어떠한 조합의 방법을 수행하도록 하는 처리 회로에 의한 실행에 응답하여 그 내에 저장된 컴퓨터-판독가능 프로그램 코드를 갖는 컴퓨터-판독가능 저장 매체를 제공한다.
본 발명의 이들 및 다른 특징, 측면 및 이점은 이하에서 간략하게 설명되는 첨부 도면과 함께 다음의 상세한 설명을 읽음으로써 명백해질 것이다. 본 발명는 이러한 특징 또는 엘리먼트가 여기서 설명된 특정 예시적 구현에서 명시적으로 결합되거나 달리 언급되는지에 관계없이, 본 발명에서 설명된 2, 3, 4개 이상의 특징 또는 엘리먼트의 임의의 조합을 포함한다. 본 발명는 그 측면 및 예시적 구현에서, 개시의 소정의 분리가능한 특징 또는 엘리먼트가 개시의 맥락이 명백하게 달리 지시하지 않는 한 조합가능한 것으로 간주되도록 전체적으로 판독되어지는 것으로 의도된다.
따라서, 이 과제해결 수단은 본 발명의 몇몇 측면의 기본적인 이해를 제공하기 위해 몇몇 예시적 구현을 요약하기 위한 목적으로만 제공되는 것으로 이해될 것이다. 따라서, 상기한 예시적 구현은 단지 예일 뿐이고 본 발명의 범위 또는 사상을 임의의 방식으로 좁히는 것으로 해석되지 않아야만 한다는 것이 이해될 것이다. 다른 예시적인 구현, 측면 및 이점은 예로서 예시된 몇몇 예시적 구현의 원리를 예시하는 첨부 도면과 함께 취해진 다음의 상세한 설명으로부터 명백해질 것이다.
이와 같이 본 발명의 예시적 구현을 일반적인 용어로 설명하였지만, 반드시 일정한 비율로 도시되지 않은 첨부 도면이 참조될 것이다.
도 1은 본 발명의 예시적 구현에 따른 개선된 무결성을 갖는 컴퓨터 시스템의 기능적 블록도이다;
도 2는 다양한 예시적 구현 예에 따른 자동화 공중 급유(air-to-air refueling)를 예시한다;
도 3은 다양한 예시적인 구현에 따른 컴퓨터 시스템의 무결성을 개선하는 방법의 다양한 단계를 예시하는 플로우차트이다;
도 4는 몇몇 예시적 구현 예에 따른 컴퓨터 시스템을 예시한다.
본 발명의 몇몇 구현이 첨부 도면을 참조하여 이하에서 더 완전하게 설명될 것이고, 이는 본 발명의 모든 구현이 아닌 몇몇이 도시된다. 실제로, 본 발명의 다양한 구현은 많은 다른 형태로 구현될 수 있고 여기서 설명된 구현으로 제한되는 것으로 해석되어서는 안되며; 오히려, 이들 예시적 구현은 본 발명가 철저하고 완전하도록 제공되고, 본 발명의 범위를 당업자에게 완전히 전달할 것이다. 예컨대, 달리 지시되지 않는 한, 제1, 제2 등으로 된 참조부호는 특정 순서를 내포하는 것으로 해석되어서는 안된다. 또한, (달리 지시되지 않는 한) 다른 것 위에 있는 것으로 설명될 수 있는 무언가는 대신 아래로 될 수 있고, 그 반대의 경우도 마찬가지이며; 마찬가지로, 왼쪽에 있는 것으로 설명된 무엇인가는 대신 오른쪽으로 될 수도 있고, 그 반대일 수도 있다. 같은 참조 부호는 전체에 걸쳐 같은 엘리먼트를 지칭한다.
본 발명의 예시적 구현은 일반적으로 컴퓨터 시스템에 관한 것으로, 특히 컴퓨터 시스템 무결성을 개선하기 위해 인증가능 및 적격가능 소프트웨어(certifiable and qualifiable software)를 결합하는 것에 관한 것이다. 컴퓨터 시스템은 소프트웨어가 인증 표준에 따라 인증될 수 있는 다수의 다른 컴퓨터 시스템 중 어는 것일 수 있다. 특히, 컴퓨터 시스템은 유인 또는 무인 항공기, 인공 위성, 우주선 등에 탑재된 항공전자 시스템일 수 있다. 적절한 항공전자 시스템의 예는 비행 제어 시스템(flight control systems), 공중 위치결정 시스템(aerial positioning systems), 자동 이륙 또는 착륙 시스템(autonomous take-off or landing systems), 랑데뷰 및 도킹 시스템(rendezvous and docking systems), 또는 소정의 다른 안전 필수 고-집적 시스템을 위한 항공전자 시스템을 포함한다. 다른 예에 있어서, 컴퓨터 시스템은 비행기 외부에서 이용되는 컴퓨터 시스템일 수 있다. 예는 자동 수술 절차(automatic surgical procedures), 컴퓨터 제어 의료 기기(computer controlled medical devices), 자율 지상 또는 해상 운송수단(autonomous ground or maritime vehicles) 및 기능을 포함한다. 또 다른 예는 로봇 또는 컴퓨터 제어 시스템이 사람과 또는 주변에서 상호 작용하는 공장 자동화 또는 검사 및 수리 서비스를 포함한다.
인증가능 소프트웨어는 일반적으로 컴퓨터 시스템이 동작하도록 구성된 출력을 생성하기 위해 입력 데이터를 처리하도록 순차적으로 실행되는 정적 프로그램 명령(static program instructions)으로 이루어진 소프트웨어 어플리케이션(인증 가능 소프트웨어 어플리케이션)이다. 전형적인 예는 조향 및 스로틀 명령(steering and throttle commands)을 항공기 표면 이동(aircraft surface movements)으로 변환하는 차량 관리 시스템(Vehicle Management System) 또는 비행 제어 컴퓨터(Flight Control Computer)이다. 다른 예는 더욱 일반적으로 비행 영역 선도(flight envelope)를 보호하거나 사람에게 안전 필수 정보를 제공하는 소정의 시스템을 포함하고, 여기서 잘못된 정보의 제시는 오퍼레이터가 안전하지 않은 대안을 선택하는 결과를 초래할 수 있다.
인증가능 소프트웨어 어플리케이션은 인증 표준에 따라 컴퓨터 시스템에 대해 인증가능하고; 인증되었을 때, 인증가능 소프트웨어 어플리케이션은 인증된 소프트웨어 어플리케이션으로 언급될 수 있다. 적절한 인증가능 소프트웨어의 예는 항공전자 시스템에 내장된 소프트웨어를 포함하고, 이들 중 적어도 몇몇은 DO-178에 따라 인증가능하다. 특히, 이는 일반적으로 항공전자에서 이용되는 내장형 소프트웨어이고, 법적으로 규정된 안전성과 신뢰성을 갖는 항공전자 소프트웨어를 포함한다. 적절한 인증가능 소프트웨어의 다른 예는 법적으로 규정된 안전성 및 신뢰성을 갖추고 있지 않은 유인 또는 무인 항공기, 인공위성, 우주선 등에 대해 이용되는 소프트웨어를 포함한다.
적격가능 소프트웨어는 일반적으로 기존의 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능 소프트웨어 어플리케이션(적격가능 소프트웨어 어플리케이션)이다. 여기서 주로 설명된 바와 같이, 적격가능 소프트웨어는 인증가능 소프트웨어 어플리케이션의 출력에 대응 출력을 생성하기 위해 기계 학습(machine learning)을 이용한다. 특히, 적격가능 소프트웨어 어플리케이션은 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 기계 학습 알고리즘을 이용하여 반복적으로 구축된 모델을 이용한다. 적절한 기계 학습 알고리즘의 일례는 인공 신경망(ANN;artificial neural network)이다. 다른 예는 회귀 알고리즘(regression algorithms), 결정 트리(decision trees), 서포트 벡터 머신(support vector machines), 베이지안 네트워크(Bayesian networks) 등을 포함한다. 인증가능 소프트웨어 어플리케이션과 관련하여, 적격가능 소프트웨어 어플리케이션은 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능(non-certifiable)하다. 적격가능 소프트웨어 어플리케이션은 다양한 시나리오에서 훈련 및 테스팅/평가를 통해 사람이 "적격화된(qualified)" 것이긴 하지만 컴퓨터 시스템에 대해 적격가능하다. 그리고 적격화되었을 때, 적격가능 소프트웨어 어플리케이션은 적격화된 소프트웨어 어플리케이션으로 언급될 수 있다.
도 1은 본 발명의 예시적 구현에 따른 컴퓨터 시스템(100)의 기능적 블록도이다. 컴퓨터 시스템은 하나 이상의 기능 또는 동작을 수행하기 위한 다수의 다른 기능적 블록 중 어느 것을 포함할 수 있다. 도시된 바와 같이, 몇몇 예에 있어서, 컴퓨터 시스템은 인증가능 실행 블록 (102; certifiable execute block), 적격가능 실행 블록(104; qualifiable execute block), 교차-체크 블록(106; cross-check block), 경보 블록(108; alert block) 및 동작 블록(110; operate block)을 포함한다. 인증가능 실행 블록, 적격가능 실행 블록, 교차-체크 블록, 경보 블록 및 동작 블록을 포함하는 기능적 블록은 서로 공동-위치되거나 직접 결합될 수 있고, 또는 몇몇 예에서, 기능적 블록 중 다양한 하나는 하나 이상의 컴퓨터 네트워크를 거쳐 서로 통신할 수 있다. 더욱이, 컴퓨터 시스템의 일부로서 도시되었음에도 불구하고, 상기 중 어느 하나 이상은 다른 기능적 블록과 무관하게 컴퓨터 시스템 외부에 있을 수 있음을 이해해야 한다. 컴퓨터 시스템은 도 1에 도시된 것보다 하나 이상의 부가적인 또는 대안적인 기능적 블록을 포함할 수 있음을 또한 이해해야 한다.
몇몇 예시적 구현에 있어서, 인증가능 실행 블록(102)은 인증가능 소프트웨어 어플리케이션(112; certifiable software application)을 실행하도록 구성된다. 상기한 바와 같이, 인증가능 소프트웨어 어플리케이션은 컴퓨터 시스템(100)이 동작하도록 구성된 출력(116)을 생성하기 위해 센서 데이터와 같은 입력 데이터(114)를 처리하도록 순차적으로 실행되는 정적 프로그램 명령(static program instructions)으로 구성된다. 인증가능 소프트웨어 어플리케이션은 인증 표준에 따라 컴퓨터 시스템에 대해 인증가능하다.
적격가능 실행 블록(104)은 인증가능 소프트웨어 어플리케이션(112)의 실행 동안 적격가능 소프트웨어 어플리케이션(118)을 실행하도록 구성된다. 적격가능 소프트웨어 어플리케이션은 대응 출력(120)을 생성하기 위해 입력 데이터(114)를 처리하도록 기계 학습 알고리즘을 이용하여 반복적으로 구축된 모델을 이용한다. 적격가능 소프트웨어 어플리케이션은 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능하다.
교차-체크 블록(106)은 인증가능 소프트웨어 어플리케이션으로부터의 출력을 검증하기 위해 적격가능 소프트웨어 어플리케이션(118)으로부터의 대응 출력(120)과의 비교에 의해 인증가능 소프트웨어 어플리케이션(112)으로부터의 출력(116)을 교차-체크하도록 구성되고, 그에 의해 컴퓨터 시스템(100)의 무결성을 개선한다. 경보 블록(108)은 출력이 임계치 이상으로 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 미검증이라는 경보(122)를 발생시키도록 구성된다. 이 임계치은 컴퓨터 시스템 및/또는 인증가능 소프트웨어 어플리케이션의 형태에 의존할 수 있고, 인증가능 소프트웨어 어플리케이션의 출력에서의 허용되는 변동(variation) 또는 허용오차(tolerance)를 정의할 수 있다.
인증가능 소프트웨어 어플리케이션(112)으로부터의 출력(116)은 출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션(118)으로부터의 대응 출력(120)과 다르다는 것을 비교가 나타낼 때 검증된다. 이들 예들에 있어서, 컴퓨터 시스템(100)은 출력에 대해 동작할 수 있다(컴퓨터 시스템이 출력에 대해 동작하도록 구성됨). 이를 위해, 컴퓨터 시스템은 출력에 대해 동작하도록 구성된 동작 블록(110)을 더 포함한다. 동작은 종종 본 발명의 예시적 구현을 구현하는 항공전자 시스템의 형태와 같은 컴퓨터 시스템의 형태에 의존한다. 예는 입력 센서 데이터를 기초로 궤적(trajectories)을 발생시키는 것을 포함하고, 이러한 궤적은 이어 운송수단 관리 시스템(Vehicle Management System)으로 지나가게 된다.
몇몇 예에 있어서, 적격가능 소프트웨어 어플리케이션(118)은 인증가능 소프트웨어 어플리케이션(112)을 검증하기 위해 단순히 이용된다. 이들 예에 있어서, 동작 블록(110)은 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력(120)을 제외한 출력(116)에 대해 동작하도록 구성된다. 다른 예에서, 적격가능 소프트웨어 어플리케이션은 인증가능 소프트웨어 어플리케이션의 정확도를 증가시키기 위해 더 이용될 수 있다. 여기서, 컴퓨터 시스템(100)은 출력 및 대응 출력으로부터 결합된 출력을 생성하도록 구성된 결합 블록(124)을 더 포함한다. 이어, 동작 블록은 결합된 출력에 대해 동작하도록 구성된다.
몇몇 추가 예에 있어서, 인증가능 실행 블록(102) 및 적격가능 실행 블록(104)은 또한 출력(116) 및 대응 출력(120)에 대한 각각의 성능 지수(figures of merit)를 생성하도록 더 구성된다. 이들 예 중 몇몇에 있어서, 결합 블록(124)은 결합된 출력을 생성하기 위해 각각의 성능 지수에 의해 가중된 출력 및 대응 출력을 칼만 필터링(Kalman filter)하도록 구성된다.
인증가능 및 적격가능 소프트웨어 어플리케이션(112, 118)을 포함하는 것으로 설명되었음에도 불구하고, 컴퓨터 시스템(100)은 본 발명의 예시적 구현에 이용하기 위해 2개 이상의 소프트웨어 어플리케이션을 실행하도록 구성될 수 있음을 이해해야 한다. 즉, 컴퓨터 시스템은 3개 이상의 소프트웨어 어플리케이션을 이용할 수 있다. 특히, 몇몇 예에 있어서, 컴퓨터 시스템(100)은 인증가능 소프트웨어 어플리케이션(112) 및 적격가능 소프트웨어 어플리케이션(118)이 실행됨에 따라 제3 소프트웨어 어플리케이션(128)을 실행하도록 구성된 제3 실행 블록(126)을 더 포함한다.
제3 소프트웨어 어플리케이션(128)(또는 그 이상)을 포함하는 예에 있어서, 제3 소프트웨어 어플리케이션은 제2 인증가능 또는 적격가능 소프트웨어 어플리케이션, 또는 몇몇 다른 소프트웨어 어플리케이션이다. 제3 소프트웨어 어플리케이션은 제2 대응 출력(130)을 생성하기 위해 입력 데이터(114)를 처리하도록 실행된다. 이어, 교차-체크 블록(106)은 대응 출력(120) 및 제2 대응 출력(130)과의 비교에 의해 인증가능 소프트웨어 어플리케이션(112)으로부터의 출력(116)을 교차-체크하도록 구성된다. 그리고 경보 블록(108)은 출력이 임계치 이상으로 대응 출력 및 제2 대응 출력 양쪽과 다르다는 것을 비교가 나타낼 때 인증가능 소프트웨어로부터의 출력이 미검증된다는 경보(122)를 발생시키도록 구성된다.
상기한 바와 같이, 컴퓨터 시스템(100)은 다수의 다른 컴퓨터 시스템 중 어느 것일 수 있다. 몇몇 예에 있어서, 컴퓨터 시스템은 유인 또는 무인 항공기, 인공위성, 우주선 등에 탑재된 항공전자 시스템이다. 이러한 맥락에서, 자동화 항공 급유(A3R; automated air-to-air refueling) 뿐만 아니라 자동화 우주선 랑데뷰 및 도킹(automated spacecraft rendezvous and docking)은 연결 조작을 달성하기에 충분히 높은 정밀도로 함께 두 개의 항공우주 운송수단을 가져 오는 것을 포함한다. 일반적으로 자율 시스템이 이 연결에 대한 올바른 타겟을 식별하는 것이 중요하다. 예시를 위해, 유조선 드로그(tanker drogue)에 그 프로브를 삽입하는 것에 의해 A3R을 수행하고자 시도하는 자동 수신기 항공기는 식별된 원형 특징이 실제로 드로그이고 엔진으로부터의 배기관이 아닌지 확신해야 한다. 마찬가지로, 자동화 유조선 붐(automated tanker boom)은 조종석 창이 아닌 리셉터클로 삽입하고자 시도하는 것임을 확신해야 한다.
많은 높은-무결성의 맥락에서, 무결성은 데이터 소스의 다양성(예컨대, 다른관찰 기하학적 구조를 제공하는 다중 센서 또는 수동 이미징 및 3D LIDAR와 같은 다른 센싱 기술)의 이용에 의해, 그리고 각 데이터 소스에 대한 알고리즘의 다양성을 이용하는 것에 의해 달성될 수 있다. A3R의 경우, 2개의 수동 이미징 카메라가 이용될 수 있고, 각각 동일한 영역을 이미징하지만, 소스 데이터의 다양성을 제공하기 위해 다른 위치에 장착된다 (무엇인가가 하나의 카메라가 가리면, 영역은 여전히 다른 카메라에서 가시적일 수 있다). 각 카메라에 대해, 인증가능 소프트웨어 어플리케이션 및 적격가능 소프트웨어 어플리케이션 양쪽은 입력 이미지 데이터에 대해 실행될 수 있고, 그들의 각각의 출력이 비교될 수 있다.
몇몇 예에 있어서, 허용가능한 차이(임계치)는 두 항공기 사이의 거리에 따라 감소하지만, 양 소프트웨어 어플리케이션이 허용가능한 허용 오차 내에 대해 동의하는 한 동작이 진행될 수 있다. 요구 사항에 따라, 적격가능 어플리케이션은 인증가능 소프트웨어 어플리케이션에 대한 교차-체크로서만 기능할 수 있다. 이들 예에 있어서, 두 소프트웨어 어플리케이션이 동의하는 한 인증가능한 소프트웨어 어플리케이션으로부터의 출력이 이용된다. 동의하지 않으면, 컴퓨터 시스템은 에러를 선언하고, 경보를 발생시키며, 동작이 종료된다. 소프트웨어 어플리케이션이 동의하는 몇몇 예에 있어서, 그들 각각의 출력은 전체 정확도를 개선하기 위해 칼만 필터(Kalman filter)로 입력될 수 있다.
도 2는 몇몇 예에 따른 자동화 항공 급유(200)를 예시한다. 이들 예에서, 컴퓨터 시스템(100)은 항공기를 위한 타겟(208; target)을 정의하는 허브(206; hub)를 향해 이동하는 항공기(204)의 항공전자 시스템(202)이다. 예시된 바와 같이, 허브는 연료 또는 유조선 항공기(또는 간단히 "유조선(tanker)")이고, 항공기를 위한 타겟은 긴 호스로부터 유조선의 후방으로 연장되는 드로그(drogue)이다. 항공기는 급유 프로브(210; refueling probe)를 운반하여 급유 프로브를 드로그와 맞물리게 하고 그 후 항공기의 항공 급유를 제공하기 위한 노력으로 후미 및 하부로부터 허브에 접근한다. 여기서, 인증가능 소프트웨어 어플리케이션(112) 및 적격가능 소프트웨어 어플리케이션(118)은 각각 인증가능 물체 검출 어플리케이션(certifiable object detection application) 및 적격가능 물체 검출 어플리케이션(qualifiable object detection application)일 수 있다.
인증가능 실행 블록(102)은 타겟(208)이 이미지에서 검출되는 출력을 생성하기 위해 허브(206)의 이미지를 처리하도록 인증가능 물체 검출 어플리케이션을 실행하도록 구성될 수 있다. 마찬가지로, 적격가능 실행 블록(104)은 타겟이 이미지에서 검출되는 대응 출력을 생성하기 위해 허브의 이미지를 처리하도록 적격가능 물체 검출 어플리케이션을 실행하도록 구성될 수 있다. 교차-체크 블록(106)은 인증가능 물체 검출 어플리케이션으로부터의 출력을 검증하기 위해 대응 출력과의 비교에 의해 출력을 교차-체크하도록 구성될 수 있다. 그리고 몇몇 예에 있어서, 항공기와 허브 사이의 거리에 따라 감소하는 임계치 이하로 대응 출력과 다름을 비교가 나타낼 때 출력이 검증된다. 본 발명의 예시적 구현으로부터 이익을 얻을 수 있는 자동화 항공 급유를 위한 시스템에 관한 더 많은 정보가 미국 특허 제9,933,521호, 항공 위치결정 시스템 및 방법에서 제공되며, 그 내용은 그 전체가 참조로 포함된다.
도 3은 본 발명의 예시적 구현에 따른 컴퓨터 시스템의 무결성을 개선하는 방법(300)의 다양한 단계를 예시하는 플로우차트이다. 단계(302)에 도시된 바와 같이, 방법은 컴퓨터 시스템이 동작하도록 구성된 출력을 생성하기 위해 입력 데이터를 처리하도록 순차적으로 실행되는 정적 프로그램 명령으로 구성된 인증가능 소프트웨어 어플리케이션을 실행하는 것을 포함한다. 이와 관련하여, 인증가능 소프트웨어 어플리케이션은 인증 표준에 따라 컴퓨터 시스템에 대해 인증가능하다.
방법(300)은, 단계(304)에 도시된 바와 같이, 인증가능 소프트웨어 어플리케이션의 실행 동안 적격가능 소프트웨어 어플리케이션을 실행하는 것을 포함한다. 적격가능 소프트웨어 어플리케이션은 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 기계 학습 알고리즘을 이용하여 반복적으로 구축된 모델을 이용한다. 적격가능 소프트웨어 어플리케이션은 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능하다.
방법(300)은, 단계(306)에 도시된 바와 같이, 인증가능 소프트웨어 어플리케이션으로부터의 출력을 검증하기 위해 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하는 것을 포함하고, 그에 의해 컴퓨터 시스템의 무결성을 개선한다. 단계(308)에 도시된 바와 같이, 방법은 출력이 임계치 이상으로 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력은 미검증된다는 경보를 발생시키는 것을 포함한다. 출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 검증된다. 몇몇 예에 있어서, 방법은, 단계(310)에 도시된 바와 같이, 출력 또는 결합된 출력에 대해 동작하는 것을 더 포함한다.
본 발명의 예시적 구현에 따르면, 인증가능 실행 블록(102), 적격가능 실행 블록(104), 교차-체크 블록(106), 경보 블록(108), 동작 블록(110), 결합 블록(124) 및 제3 실행 블록(126)을 포함하는 컴퓨터 시스템(100) 및 그 기능적 블록은 다양한 수단에 의해 구현될 수 있다. 컴퓨터 시스템 및 그 기능적 블록을 구현하기 위한 수단은 단독 또는 컴퓨터-판독가능 저장 매체로부터의 하나 이상의 컴퓨터 프로그램의 지시 하의 하드웨어를 포함할 수 있다. 몇몇 예에 있어서, 컴퓨터 시스템은 여기에 도시되고 설명된 기능적 블록으로서 기능하거나 그렇지않으면 구현하도록 구성된 하나 이상의 장치에 의해 실시될 수 있다. 하나 이상의 장치를 포함하는 예에 있어서, 각각의 장치는 유선 또는 무선 네트워크 등을 매개로 직접적으로 또는 간접적으로 다수의 다른 방식으로 서로 연결되거나 통신할 수 있다.
도 4는 본 발명의 몇몇 예시적 구현에 따른 장치(400)를 예시한다. 일반적으로, 본 발명의 예시적 구현의 장치는 하나 이상의 고정 또는 휴대용 전자 장치를 구비하고, 포함하며, 또는 실시될 수 있다. 적절한 전자 장치의 예는 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크탑 컴퓨터, 워크스테이션 컴퓨터, 서버 컴퓨터 등을 포함한다. 인증가능 항공전자 시스템에 대해, 적절한 전자 장치는 일반적으로 백플레인(backplane)을 갖는 인증가능 전자장치 섀시(certifiable electronics chassis)와 하나 이상의 인증가능 프로세서 카드로 구성된다. 장치는 예컨대 메모리(404)(예컨대, 저장 장치)에 연결된 프로세싱 회로(402; processing circuitry)(예컨대, 프로세서 유닛)와 같은 다수의 구성요소의 각각 중 하나 이상을 포함할 수 있다.
처리 회로(402)는 하나 이상의 프로세서 단독으로 또는 하나 이상의 메모리와 조합으로 구성될 수 있다. 처리 회로는 일반적으로 예컨대 데이터, 컴퓨터 프로그램 및/또는 다른 적절한 전자 정보와 같은 정보를 처리할 수 있는 소정 개수의 컴퓨터 하드웨어이다. 처리 회로는 그 중 몇몇이 집적 회로 또는 다수의 상호연결된 집적 회로(때때로 통상적으로 "칩(chip)"으로 언급되는 집적 회로)로 패키지될 수 있는 전자 회로의 집합으로 구성된다. 처리 회로는 처리 회로에 내장되거나 그렇지않으면 (같거나 다른 장치의) 메모리(404)에 저장될 수 있는 컴퓨터 프로그램을 실행하도록 구성될 수 있다.
처리 회로(402)는 특정 구현에 따라 다수의 프로세서, 다중-코어 프로세서 또는 몇몇 다른 형태의 프로세서일 수 있다. 처리 회로는 GPU(graphic processing unit), CPU(central processing unit), 또는 GPU와 CPU의 조합을 포함할 수 있다. 더욱이, 처리 회로는 메인 프로세서가 단일 칩 상에 하나 이상의 2차 프로세서와 함께 존재하는 다수의 이종 프로세서 시스템(heterogeneous processor systems)을 이용하여 구현될 수 있다. 다른 예시적인 예로서, 처리 회로는 같은 형태의 다수 프로세서를 포함하는 대칭형 다중 프로세서 시스템(symmetric multi-processor system)일 수 있다. 또 다른 예에 있어서, 처리 회로는 하나 이상의 ASIC, FPGA 등으로 구현되거나 그렇지않으면 포함할 수 있다. 따라서, 처리 회로는 하나 이상의 기능을 수행하기 위해 컴퓨터 프로그램을 실행할 수 있음에도 불구하고, 다양한 예의 처리 회로는 컴퓨터 프로그램의 도움없이 하나 이상의 기능을 수행할 수 있다. 어느 예에 있어서도, 처리 회로는 본 발명의 예시적 구현에 따른 기능 또는 동작을 수행하도록 적절히 프로그래밍될 수 있다.
메모리(404)는, 예컨대 데이터, 컴퓨터 프로그램(예컨대, 컴퓨터-판독가능 프로그램 코드(406)) 및/또는 일시적 기반 및/또는 영구적 기반의 다른 적절한 정보와 같은, 정보를 저장할 수 있는 일반적으로 소정의 컴퓨터 하드웨어이다. 메모리는 휘발성 및/또는 비-휘발성 메모리를 포함할 수 있고, 고정 또는 제거가능하게 될 수 있다. 적절한 메모리의 예는 RAM(random access memory), ROM(read-only memory), 하드 드라이브, 플래시 메모리, 썸 드라이브(thumb drive), 제거가능 컴퓨터 디스켓(removable computer diskette), 광 디스크, 자기 테이프 또는 이들의 일부 조합을 포함한다. 광 디스크는 CD-ROM(Compact Disk-Read Only Memory), CD-R/W(Compact Disk-Read/Write), DVD 등을 포함할 수 있다. 다양한 예에 있어서, 메모리는 컴퓨터-판독가능 저장 매체로 언급될 수 있다. 컴퓨터-판독가능 저장 매체는 정보를 저장할 수 있는 비-일시적 장치이고, 한 위치에서 다른 위치로 정보를 운반할 수 있는 전자 일시적 신호(electronic transitory signals)와 같은 컴퓨터-판독가능 전송 매체와 구별될 수 있다. 여기에 개시된 컴퓨터-판독가능 매체는 일반적으로 컴퓨터-판독가능 저장 매체 또는 컴퓨터-판독가능 전송 매체로 언급될 수 있다.
메모리(404)에 부가하여, 처리 회로(402)는 또한 정보를 디스플레이, 전송 및/또는 수신하기 위한 하나 이상의 인터페이스에 연결될 수 있다. 인터페이스는 통신 인터페이스(408)(예컨대, 통신 유닛)를 포함할 수 있다. 통신 인터페이스는 다른 장치(들), 네트워크(들) 등으로 및/또는 그로부터 정보를 전송 및/또는 수신하도록 구성될 수 있다. 통신 인터페이스는 물리적(유선) 및/또는 무선 통신 링크에 의해 정보를 전송 및/또는 수신하도록 구성될 수 있다. 적절한 통신 인터페이스의 예는 NIC(network interface controller), WNIC(wireless NIC) 등을 포함한다.
몇몇 예에 있어서, 인터페이스는 디스플레이(410) 및/또는 하나 이상의 이용자 입력 인터페이스(412; user input interfaces)(예컨대, 입력/출력 유닛)와 같은 하나 이상의 이용자 인터페이스를 포함할 수 있다. 디스플레이는 이용자에게 정보를 제공하거나 그렇지않으면 디스플레이하도록 구성될 수 있고, 그 적절한 예는 LCD(liquid crystal display), 발광 다이오드 디스플레이(LED), 플라즈마 디스플레이 패널(PDP) 등을 포함한다. 이용자 입력 인터페이스는 유선 또는 무선일 수 있고, 처리, 저장 및/또는 디스플레이와 같은 이용자로부터 장치로 정보를 수신하도록 구성될 수 있다. 이용자 입력 인터페이스의 적절한 예는 마이크로폰, 이미지 또는 비디오 캡처 장치, 키보드 또는 키패드, 조이스틱, (터치 스크린과 분리되거나 통합된) 터치 감응형 표면, 생체 센서 등을 포함한다. 이용자 인터페이스는 프린터, 스캐너 등과 같은 주변 장치와 통신하기 위한 하나 이상의 인터페이스를 더 포함할 수 있다.
상기한 바와 같이, 프로그램 코드 명령은 여기서 설명된 시스템, 서브 시스템, 툴 및 그들 각각의 엘리먼트의 기능을 구현하기 위해 메모리에 저장되고, 이에 의해 프로그램되는 처리 회로에 의해 실행될 수 있다. 알 수 있는 바와 같이, 특정 머신이 여기서 특정된 기능을 구현하기 위한 수단이 되도록 소정의 적절한 프로그램 코드 명령은 특정 머신을 생성하기 위해 컴퓨터-판독가능 저장 매체로부터 컴퓨터 또는 다른 프로그램가능 장치에 로딩될 수 있다. 이들 프로그램 코드 명령은 또한 특정 방식으로 기능하고 그에 의해 컴퓨터, 처리 회로 또는 다른 프로그램가능 장치를 지시하여 특정 기계 또는 특정 제품을 발생시키도록 컴퓨터-판독가능 저장 매체에 저장될 수 있다. 컴퓨터-판독가능 저장 매체에 저장된 명령은 제조 물품을 생산할 수 있고, 제조 물품은 여기서 개시된 기능을 구현하기 위한 수단이 된다. 프로그램 코드 명령은 컴퓨터-판독가능 저장 매체로부터 검색되고, 컴퓨터, 처리 회로 또는 다른 프로그램가능 장치 상에서 또는 그에 의해 수행되어지는 동작을 실행하도록 컴퓨터, 처리 회로 또는 다른 프로그램가능 장치를 구성하기 위한 컴퓨터, 처리 회로 또는 다른 프로그램가능 장치로 로딩된다.
프로그램 코드 명령의 검색, 로딩 및 실행은 한 번에 하나의 명령이 검색, 로딩 및 실행되도록 순차적으로 수행될 수 있다. 몇몇 예시적 구현에 있어서, 검색, 로딩 및/또는 실행은 병렬로 수행되어 다수의 명령이 검색, 로딩 및/또는 함께 실행될 수 있다. 프로그램 코드 명령의 실행은 컴퓨터, 처리 회로 또는 다른 프로그램가능 장치에 의해 실행된 명령이 여기에 개시된 기능을 구현하기 위한 동작을 제공하도록 컴퓨터 구현 프로세스를 생성할 수 있다.
처리 회로에 의한 명령의 실행, 또는 컴퓨터-판독가능 저장 매체에서의 명령의 저장은 특정 기능을 수행하기 위한 동작의 조합을 지원한다. 이러한 방식에 있어서, 장치(400)는 처리 회로(402) 및 처리 회로에 결합된 컴퓨터-판독가능 저장 매체 또는 메모리(404)를 포함할 수 있고, 처리 회로는 메모리에 저장된 컴퓨터-판독가능 프로그램 코드(406)를 실행하도록 구성된다. 하나 이상의 기능 및 기능의 조합은 특정 기능을 수행하는 특수 목적 하드웨어 기반 장치 및/또는 처리 회로, 또는 특수 목적 하드웨어 및 프로그램 코드 명령의 조합에 의해 구현될 수 있음을 이해할 것이다.
더욱이, 본 발명은 다음의 조항에 따른 실시 예를 구비하여 구성된다:
조항 1. 컴퓨터-판독가능 프로그램 코드(406)를 저장하도록 구성된 메모리(404); 및
메모리에 억세스하여, 컴퓨터 시스템이 적어도:
컴퓨터 시스템이 동작하도록 구성되는 출력을 생성하기 위해 입력 데이터를 처리하도록 순차적으로 실행된 정적 프로그램 명령으로 구성된 인증가능 소프트웨어 어플리케이션을 실행하고(302), 인증가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 인증가능하고;
인증가능 소프트웨어 어플리케이션의 실행 동안 적격가능 소프트웨어 어플리케이션을 실행하고(304), 적격가능 소프트웨어 어플리케이션이 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 기계 학습 알고리즘을 이용하여 반복적으로 구축된 모델을 이용하고, 적격가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능이고;
인증가능 소프트웨어 어플리케이션으로부터의 출력을 검증하기 위해 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하고(306), 그에 의해 컴퓨터 시스템의 무결성을 개선하고; 및
출력이 임계치 이상으로 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 미검증된다는 경보를 발생시키도록(308); 컴퓨터-판독가능 프로그램 코드를 실행하기 위해 구성된 처리 회로(402);를 구비하여 구성된 컴퓨터 시스템(400).
조항 2. 조항 1의 컴퓨터 시스템(400)으로, 출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 메모리(404)는 컴퓨터 시스템이 더욱 적어도:
컴퓨터 시스템이 동작하도록 구성되는 출력에 대해 동작하고(310), 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력을 배제하도록 실행하기 위해 구성되는 추가 컴퓨터-판독가능 프로그램 코드(406)를 저장한다.
조항 3. 상기 조항 중 어느 조항의 컴퓨터 시스템(400)으로, 출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 메모리(404)는 컴퓨터 시스템이 더욱 적어도:
출력 및 대응 출력으로부터 결합된 출력을 생성하고;
결합된 출력에 대해 동작하도록; 실행하기 위해 처리 회로(402)가 구성되는 추가 컴퓨터-판독가능 프로그램 코드(406)를 저장한다.
조항 4. 조항 3의 컴퓨터 시스템(400)으로, 컴퓨터 시스템은 인증가능 소프트웨어 어플리케이션을 실행하고(302), 적격가능 소프트웨어 어플리케이션을 실행하며(304), 출력 및 대응 출력에 대한 각각의 성능 지수를 생성하도록 하는 컴퓨터 시스템을 더 포함하고,
결합된 출력을 생성하도록 하는 컴퓨터 시스템이 각각의 성능 지수에 의해 가중된 출력 및 대응 출력을 칼만 필터링하도록 한다.
조항 5. 상기 조항 중 어느 조항의 컴퓨터 시스템(400)으로,
메모리(404)는 처리 회로(402)가 컴퓨터 시스템이 더욱 적어도:
인증가능 소프트웨어 어플리케이션 및 적격가능 소프트웨어 어플리케이션이 실행됨에 따라 제3 소프트웨어 어플리케이션을 실행하고, 제3 소프트웨어 어플리케이션이 제2 인증가능 또는 적격가능 소프트웨어 어플리케이션이고, 제3 소프트웨어 어플리케이션이 제2 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 실행되어지도록 실행하기 위해 구성되고,
출력을 교차-체크하도록 하는(306) 컴퓨터 시스템이 대응 출력과 제2 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하도록 하는 것을 포함하고,
경보를 발생시키도록 하는(308) 컴퓨터 시스템이 출력이 임계치 이하로 대응 출력과 제2 대응 출력 양쪽과 다름을 비교가 나타낼 때 인증가능 소프트웨어로부터의 출력이 미검증된다는 경보를 발생시키도록 하는 것을 포함한다.
조항 6. 상기 조항 중 어느 조항의 컴퓨터 시스템(400)으로,
컴퓨터 시스템은 항공기에 대한 타겟을 정의하는 허브를 향해 이동하는 항공기의 항공전자 시스템이고, 인증가능 소프트웨어 어플리케이션은 인증가능 물체 검출 어플리케이션이며, 적격가능 소프트웨어 어플리케이션은 적격가능 물체 검출 어플리케이션이고;
인증가능 소프트웨어 어플리케이션을 실행하도록 하는(302) 컴퓨터 시스템이 타겟이 이미지에서 검출되는 출력을 생성하기 위해 허브의 이미지를 처리하도록 인증가능 물체 검출 어플리케이션을 실행하도록 하는 것을 포함하고,
적격가능 소프트웨어 어플리케이션을 실행하도록 하는(304) 컴퓨터 시스템이 타겟이 이미지에서 검출되는 대응 출력을 생성하기 위해 허브의 이미지를 처리하도록 적격가능 물체 검출 어플리케이션을 실행하도록 하는 것을 포함하고,
출력을 교차-체크하도록 하는(306) 컴퓨터 시스템이 인증가능 물체 검출 어플리케이션으로부터의 출력을 검증하기 위해 대응 출력과의 비교에 의해 출력을 교차-체크하도록 하는 것을 포함한다.
조항 7. 조항 6의 컴퓨터 시스템(400)으로,
출력이 항공기와 허브 사이의 거리에 따라 감소하는 임계치 이하로 대응 출력과 다름을 비교가 나타낼 때 인증가능 물체 검출 어플리케이션으로부터의 출력이 검증된다.
조항 8. 컴퓨터 시스템(400)의 무결성을 개선하는 방법(300)으로, 방법이:
컴퓨터 시스템이 동작하도록 구성되는 출력을 생성하기 위해 입력 데이터를 처리하도록 순차적으로 실행된 정적 프로그램 명령으로 구성된 인증가능 소프트웨어 어플리케이션을 실행하고(302), 인증가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 인증가능하고;
인증가능 소프트웨어 어플리케이션의 실행 동안 적격가능 소프트웨어 어플리케이션을 실행하고(304), 적격가능 소프트웨어 어플리케이션이 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 기계 학습 알고리즘을 이용하여 반복적으로 구축된 모델을 이용하고, 적격가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능이고;
인증가능 소프트웨어 어플리케이션으로부터의 출력을 검증하기 위해 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하고(306), 그에 의해 컴퓨터 시스템의 무결성을 개선하고; 및
출력이 임계치 이상으로 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 미검증된다는 경보를 발생시키는(308);
컴퓨터 시스템을 포함하는 것을 특징으로 방법(300).
조항 9. 조항 8의 방법(300)으로,
출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 방법은:
컴퓨터 시스템이 동작하도록 구성되는 출력에 대해 동작하고(310), 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력을 배제하는; 컴퓨터 시스템을 더 포함한다.
조항 10. 조항 8 내지 9 중 어느 하나의 방법(300)으로,
출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능한 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 방법은:
출력 및 대응 출력으로부터 결합된 출력을 생성하고;
결합된 출력에 대해 동작하는; 컴퓨터 시스템을 더 포함한다.
조항 11. 조항 10의 방법(300)으로, 인증가능 소프트웨어 어플리케이션을 실행하고(302), 적격가능 소프트웨어 어플리케이션을 실행하며(304), 추가로 출력 및 대응 출력에 대한 각각의 성능 지수를 생성하는 것을 포함하고,
결합된 출력을 생성하는 것은 각각의 성능 지수에 의해 가중된 출력 및 대응 출력을 칼만 필터링하는 것을 포함한다.
조항 12. 조항 8 내지 11 중 어느 하나의 방법(300)으로, 인증가능 소프트웨어 어플리케이션 및 적격가능 소프트웨어 어플리케이션이 실행됨에 따라 제3 소프트웨어 어플리케이션을 실행하는 것을 더 포함하고, 제3 소프트웨어 어플리케이션이 제2 인증가능 또는 적격가능 소프트웨어 어플리케이션이고, 제3 소프트웨어 어플리케이션이 제2 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 실행되고,
출력을 교차-체크하는 것(306)이 대응 출력과 제2 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하는 것을 포함하고,
경보를 발생시키는 것(308)은 출력이 임계치 이하로 대응 출력과 제2 대응 출력 양쪽과 다르다는 것을 비교가 나타낼 때 인증가능 소프트웨어로부터의 출력이 미검증된다는 경보를 발생시키는 것을 포함한다.
조항 13. 조항 8 내지 12 중 어느 하나의 방법(300)으로,
컴퓨터 시스템이 항공기에 대한 타겟을 정의하는 허브를 향해 이동하는 항공기의 항공전자 시스템이고, 인증가능 소프트웨어 어플리케이션이 인증가능 물체 검출 어플리케이션이며, 적격가능 소프트웨어 어플리케이션이 적격가능 물체 검출 어플리케이션이고;
인증가능 소프트웨어 어플리케이션을 실행하는 것(302)은 타겟이 이미지에서 검출되는 출력을 생성하기 위해 허브의 이미지를 처리하도록 인증가능 물체 검출 어플리케이션을 실행하는 것을 포함하고,
적격가능 소프트웨어 어플리케이션을 실행하는 것(304)은 타겟이 이미지에서 검출되는 대응 출력을 생성하기 위해 허브의 이미지를 처리하도록 적격가능 물체 검출 어플리케이션을 실행하는 것을 포함하고,
출력을 교차-체크하는 것(306)은 인증가능 물체 검출 어플리케이션으로부터의 출력을 검증하기 위해 대응 출력과의 비교에 의해 출력을 교차-체크하는 것을 포함한다.
조항 14. 조항 13의 방법(300)으로, 출력이 항공기와 허브 사이의 거리에 따라 감소하는 임계치 이하로 대응 출력과 다름을 비교가 나타낼 때 인증가능 물체 검출 어플리케이션으로부터의 출력이 검증된다.
조항 15. 비-일시적이고 처리 회로(402)에 의한 실행에 응답하여 그 내에 저장된 컴퓨터-판독가능 프로그램 코드(406)를 컴퓨터-판독가능 저장 매체(404)로서, 컴퓨터 시스템(400)이 적어도:
컴퓨터 시스템이 동작하도록 구성되는 출력을 생성하기 위해 입력 데이터를 처리하도록 순차적으로 실행된 정적 프로그램 명령으로 구성된 인증가능 소프트웨어 어플리케이션을 실행하고(302), 인증가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 인증가능하고;
인증가능 소프트웨어 어플리케이션의 실행 동안 적격가능 소프트웨어 어플리케이션을 실행하고(304), 적격가능 소프트웨어 어플리케이션이 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 기계 학습 알고리즘을 이용하여 반복적으로 구축된 모델을 이용하고, 적격가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능이고;
인증가능 소프트웨어 어플리케이션으로부터의 출력을 검증하기 위해 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하고(306), 그에 의해 컴퓨터 시스템의 무결성을 개선하고; 및
출력이 임계치 이상으로 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 미검증된다는 경보를 발생시키도록(308);하는 것을 특징으로 하는 컴퓨터-판독가능 저장 매체(404).
조항 16. 조항 15의 컴퓨터-판독가능 저장 매체(404)로서,
출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 컴퓨터-판독가능 저장 매체는 컴퓨터 시스템이 더욱 적어도:
컴퓨터 시스템이 동작하도록 구성되는 출력에 대해 동작하고(310), 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력을 배제하도록 하는;
처리 회로(402)에 의한 실행에 응답하여 그 내에 저장된 추가 컴퓨터-판독가능 프로그램 코드(406)를 갖는다.
조항 17. 조항 15 내지 16 중 어느 하나의 컴퓨터-판독가능 저장 매체(404)로서, 출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 컴퓨터-판독가능 저장 매체는 컴퓨터 시스템이 더욱 적어도:
출력 및 대응 출력으로부터 결합된 출력을 생성하고;
결합된 출력에 대해 동작하도록 하는;
처리 회로(402)에 의한 실행에 응답하여 그 내에 저장된 추가 컴퓨터-판독가능 프로그램 코드(406)를 갖는다.
조항 18. 조항 17의 컴퓨터-판독가능 저장 매체(404)로서,
컴퓨터 시스템(400)은 인증가능 소프트웨어 어플리케이션을 실행하고(302), 적격가능 소프트웨어 어플리케이션을 실행하며(304), 출력 및 대응 출력에 대한 각각의 성능 지수를 생성하도록 하는 컴퓨터 시스템을 더 포함하고,
결합된 출력을 생성하도록 하는 컴퓨터 시스템이 각각의 성능 지수에 의해 가중된 출력 및 대응 출력을 칼만 필터링하도록 하는 것을 포함한다.
조항 19. 조항 15 내지 18 중 어느 하나의 컴퓨터-판독가능 저장 매체(404)로서, 컴퓨터 시스템이 더욱 적어도:
인증가능 소프트웨어 어플리케이션 및 적격가능 소프트웨어 어플리케이션이 실행됨에 따라 제3 소프트웨어 어플리케이션을 실행하고, 제3 소프트웨어 어플리케이션이 제2 인증가능 또는 적격가능 소프트웨어 어플리케이션이고, 제3 소프트웨어 어플리케이션이 제2 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 실행되어지도록 하는 처리 회로(402)에 의한 실행에 응답하여 그 내에 저장된 추가 컴퓨터-판독가능 프로그램 코드(406)를 갖추고,
출력을 교차-체크하도록 하는(306) 컴퓨터 시스템이 대응 출력과 제2 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하도록 하는 것을 포함하고,
경보를 발생시키도록 하는(308) 컴퓨터 시스템이 출력이 임계치 이하로 대응 출력과 제2 대응 출력 양쪽과 다름을 비교가 나타낼 때 인증가능 소프트웨어로부터의 출력이 미검증된다는 경보를 발생시키도록 하는 것을 포함한다.
조항 20. 조항 15 내지 19 중 어느 하나의 컴퓨터-판독가능 저장 매체(404)로서, 컴퓨터 시스템(400)은 항공기에 대한 타겟을 정의하는 허브를 향해 이동하는 항공기의 항공전자 시스템이고, 인증가능 소프트웨어 어플리케이션은 인증가능 물체 검출 어플리케이션이며, 적격가능 소프트웨어 어플리케이션은 적격가능 물체 검출 어플리케이션이고;
인증가능 소프트웨어 어플리케이션을 실행하도록 하는(302) 컴퓨터 시스템이 타겟이 이미지에서 검출되는 출력을 생성하기 위해 허브의 이미지를 처리하도록 인증가능 물체 검출 어플리케이션을 실행하도록 하는 것을 포함하고,
적격가능 소프트웨어 어플리케이션을 실행하도록 하는(304) 컴퓨터 시스템이 타겟이 이미지에서 검출되는 대응 출력을 생성하기 위해 허브의 이미지를 처리하도록 적격가능 물체 검출 어플리케이션을 실행하도록 하는 것을 포함하고,
출력을 교차-체크하도록 하는(306) 컴퓨터 시스템이 인증가능 물체 검출 어플리케이션으로부터의 출력을 검증하기 위해 대응 출력과의 비교에 의해 출력을 교차-체크하도록 하는 것을 포함한다.
조항 21. 조항 20의 컴퓨터-판독가능 저장 매체(404)로서, 출력이 항공기와 허브 사이의 거리에 따라 감소하는 임계치 이하로 대응 출력과 다름을 비교가 나타낼 때 인증가능 물체 검출 어플리케이션으로부터의 출력이 검증된다.
여기서 설명되는 개시의 많은 변형 및 다른 구현은 개시가 상기한 설명 및 관련 도면에 제시된 교시의 이점을 갖추는 것과 관련되는 당업자에게 떠오를 것이다. 따라서, 본 발명는 개시된 특정 구현으로 제한되지 않아야 하고 변형 및 다른 구현이 첨부된 청구범위의 범위 내에 포함되는 것으로 이해되어야 한다. 더욱이, 상기한 설명 및 관련 도면이 엘리먼트 및/또는 기능의 소정의 예시적 조합의 맥락에서 예시적 구현을 설명함에도 불구하고, 엘리먼트 및/또는 기능의 여러 조합이 첨부된 청구항의 범위로부터 벗어나는 것 없이 대안적 구현에 의해 제공될 수 있음을 이해해야 한다. 이와 관련하여, 예컨대, 위에서 명시적으로 설명된 것 외의 엘리먼트 및/또는 기능의 다른 조합이 또한 첨부된 청구항의 몇몇에서 또한 설명될 수 있는 것으로 고려된다. 특정 용어가 여기서 채택됨에도 불구하고, 이들은 포괄적이고 설명적인 의미로만 이용되며 제한을 목적으로 하지는 않는다.

Claims (14)

  1. 컴퓨터-판독가능 프로그램 코드(406)를 저장하도록 구성된 메모리(404); 및
    메모리에 억세스하여, 컴퓨터 시스템이 적어도:
    컴퓨터 시스템이 동작하도록 구성되는 출력을 생성하기 위해 입력 데이터를 처리하도록 순차적으로 실행된 정적 프로그램 명령으로 구성된 인증가능 소프트웨어 어플리케이션을 실행하고(302), 인증가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 인증가능하고;
    인증가능 소프트웨어 어플리케이션의 실행 동안 적격가능 소프트웨어 어플리케이션을 실행하고(304), 적격가능 소프트웨어 어플리케이션이 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 기계 학습 알고리즘을 이용하여 반복적으로 구축된 모델을 이용하고, 적격가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능이고;
    인증가능 소프트웨어 어플리케이션으로부터의 출력을 검증하기 위해 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하고(306), 그에 의해 컴퓨터 시스템의 무결성을 개선하고; 및
    출력이 임계치 이상으로 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 미검증된다는 경보를 발생시키도록(308); 컴퓨터-판독가능 프로그램 코드를 실행하기 위해 구성된 처리 회로(402);를 구비하여 구성된 것을 특징으로 하는 컴퓨터 시스템(400).
  2. 제1항에 있어서,
    출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 메모리(404)는 컴퓨터 시스템이 더욱 적어도:
    컴퓨터 시스템이 동작하도록 구성되는 출력에 대해 동작하고(310), 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력을 배제하도록 실행하기 위해 구성되는 추가 컴퓨터-판독가능 프로그램 코드(406)를 저장하는 것을 특징으로 하는 컴퓨터 시스템(400).
  3. 상기 항중 어느 한 항에 있어서,
    출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 메모리(404)는 컴퓨터 시스템이 더욱 적어도:
    출력 및 대응 출력으로부터 결합된 출력을 생성하고;
    결합된 출력에 대해 동작하도록; 실행하기 위해 처리 회로(402)가 구성되는 추가 컴퓨터-판독가능 프로그램 코드(406)를 저장하는 것을 특징으로 하는 컴퓨터 시스템(400).
  4. 제3항에 있어서,
    컴퓨터 시스템은 인증가능 소프트웨어 어플리케이션을 실행하고(302), 적격가능 소프트웨어 어플리케이션을 실행하며(304), 출력 및 대응 출력에 대한 각각의 성능 지수를 생성하도록 하는 컴퓨터 시스템을 더 포함하고,
    결합된 출력을 생성하도록 하는 컴퓨터 시스템이 각각의 성능 지수에 의해 가중된 출력 및 대응 출력을 칼만 필터링하도록 하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템(400).
  5. 상기 항 중 어느 한 항에 있어서,
    메모리(404)는 처리 회로(402)가 컴퓨터 시스템이 더욱 적어도:
    인증가능 소프트웨어 어플리케이션 및 적격가능 소프트웨어 어플리케이션이 실행됨에 따라 제3 소프트웨어 어플리케이션을 실행하고, 제3 소프트웨어 어플리케이션이 제2 인증가능 또는 적격가능 소프트웨어 어플리케이션이고, 제3 소프트웨어 어플리케이션이 제2 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 실행되어지도록 실행하기 위해 구성되고,
    출력을 교차-체크하도록 하는(306) 컴퓨터 시스템이 대응 출력과 제2 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하도록 하는 것을 포함하고,
    경보를 발생시키도록 하는(308) 컴퓨터 시스템이 출력이 임계치 이하로 대응 출력과 제2 대응 출력 양쪽과 다름을 비교가 나타낼 때 인증가능 소프트웨어로부터의 출력이 미검증된다는 경보를 발생시키도록 하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템(400).
  6. 상기 항 중 어느 한 항에 있어서,
    컴퓨터 시스템은 항공기에 대한 타겟을 정의하는 허브를 향해 이동하는 항공기의 항공전자 시스템이고, 인증가능 소프트웨어 어플리케이션은 인증가능 물체 검출 어플리케이션이며, 적격가능 소프트웨어 어플리케이션은 적격가능 물체 검출 어플리케이션이고;
    인증가능 소프트웨어 어플리케이션을 실행하도록 하는(302) 컴퓨터 시스템이 타겟이 이미지에서 검출되는 출력을 생성하기 위해 허브의 이미지를 처리하도록 인증가능 물체 검출 어플리케이션을 실행하도록 하는 것을 포함하고,
    적격가능 소프트웨어 어플리케이션을 실행하도록 하는(304) 컴퓨터 시스템이 타겟이 이미지에서 검출되는 대응 출력을 생성하기 위해 허브의 이미지를 처리하도록 적격가능 물체 검출 어플리케이션을 실행하도록 하는 것을 포함하고,
    출력을 교차-체크하도록 하는(306) 컴퓨터 시스템이 인증가능 물체 검출 어플리케이션으로부터의 출력을 검증하기 위해 대응 출력과의 비교에 의해 출력을 교차-체크하도록 하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템(400).
  7. 제6항에 있어서,
    출력이 항공기와 허브 사이의 거리에 따라 감소하는 임계치 이하로 대응 출력과 다름을 비교가 나타낼 때 인증가능 물체 검출 어플리케이션으로부터의 출력이 검증되는 것을 특징으로 하는 컴퓨터 시스템(400).
  8. 컴퓨터 시스템(400)의 무결성을 개선하는 방법(300)으로, 방법이:
    컴퓨터 시스템이 동작하도록 구성되는 출력을 생성하기 위해 입력 데이터를 처리하도록 순차적으로 실행된 정적 프로그램 명령으로 구성된 인증가능 소프트웨어 어플리케이션을 실행하고(302), 인증가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 인증가능하고;
    인증가능 소프트웨어 어플리케이션의 실행 동안 적격가능 소프트웨어 어플리케이션을 실행하고(304), 적격가능 소프트웨어 어플리케이션이 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 기계 학습 알고리즘을 이용하여 반복적으로 구축된 모델을 이용하고, 적격가능 소프트웨어 어플리케이션이 인증 표준에 따라 컴퓨터 시스템에 대해 비-인증가능이고;
    인증가능 소프트웨어 어플리케이션으로부터의 출력을 검증하기 위해 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하고(306), 그에 의해 컴퓨터 시스템의 무결성을 개선하고; 및
    출력이 임계치 이상으로 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 미검증된다는 경보를 발생시키는(308);
    컴퓨터 시스템을 포함하는 것을 특징으로 방법(300).
  9. 제8항에 있어서,
    출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 방법은:
    컴퓨터 시스템이 동작하도록 구성되는 출력에 대해 동작하고(310), 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력을 배제하는; 컴퓨터 시스템을 더 포함하는 것을 특징으로 하는 방법(300).
  10. 제8항 또는 제9항에 있어서,
    출력이 임계치 이하로 적격가능 소프트웨어 어플리케이션으로부터의 대응 출력과 다름을 비교가 나타낼 때 인증가능한 소프트웨어 어플리케이션으로부터의 출력이 검증되고, 방법은:
    출력 및 대응 출력으로부터 결합된 출력을 생성하고;
    결합된 출력에 대해 동작하는; 컴퓨터 시스템을 더 포함하는 것을 특징으로 하는 방법(300).
  11. 제10항에 있어서,
    인증가능 소프트웨어 어플리케이션을 실행하고(302), 적격가능 소프트웨어 어플리케이션을 실행하며(304), 추가로 출력 및 대응 출력에 대한 각각의 성능 지수를 생성하는 것을 포함하고,
    결합된 출력을 생성하는 것은 각각의 성능 지수에 의해 가중된 출력 및 대응 출력을 칼만 필터링하는 것을 포함하는 것을 특징으로 하는 방법(300).
  12. 제8항 내지 제11항 중 어느 한 항에 있어서,
    인증가능 소프트웨어 어플리케이션 및 적격가능 소프트웨어 어플리케이션이 실행됨에 따라 제3 소프트웨어 어플리케이션을 실행하는 것을 더 포함하고, 제3 소프트웨어 어플리케이션이 제2 인증가능 또는 적격가능 소프트웨어 어플리케이션이고, 제3 소프트웨어 어플리케이션이 제2 대응 출력을 생성하기 위해 입력 데이터를 처리하도록 실행되고,
    출력을 교차-체크하는 것(306)이 대응 출력과 제2 대응 출력과의 비교에 의해 인증가능 소프트웨어 어플리케이션으로부터의 출력을 교차-체크하는 것을 포함하고,
    경보를 발생시키는 것(308)은 출력이 임계치 이하로 대응 출력과 제2 대응 출력 양쪽과 다르다는 것을 비교가 나타낼 때 인증가능 소프트웨어로부터의 출력이 미검증된다는 경보를 발생시키는 것을 포함하는 것을 특징으로 하는 방법(300).
  13. 제8항 내지 제12항 중 어느 한 항에 있어서,
    컴퓨터 시스템이 항공기에 대한 타겟을 정의하는 허브를 향해 이동하는 항공기의 항공전자 시스템이고, 인증가능 소프트웨어 어플리케이션이 인증가능 물체 검출 어플리케이션이며, 적격가능 소프트웨어 어플리케이션이 적격가능 물체 검출 어플리케이션이고;
    인증가능 소프트웨어 어플리케이션을 실행하는 것(302)은 타겟이 이미지에서 검출되는 출력을 생성하기 위해 허브의 이미지를 처리하도록 인증가능 물체 검출 어플리케이션을 실행하는 것을 포함하고,
    적격가능 소프트웨어 어플리케이션을 실행하는 것(304)은 타겟이 이미지에서 검출되는 대응 출력을 생성하기 위해 허브의 이미지를 처리하도록 적격가능 물체 검출 어플리케이션을 실행하는 것을 포함하고,
    출력을 교차-체크하는 것(306)은 인증가능 물체 검출 어플리케이션으로부터의 출력을 검증하기 위해 대응 출력과의 비교에 의해 출력을 교차-체크하는 것을 포함하는 것을 특징으로 하는 방법(300).
  14. 제13항에 있어서,
    출력이 항공기와 허브 사이의 거리에 따라 감소하는 임계치 이하로 대응 출력과 다름을 비교가 나타낼 때 인증가능 물체 검출 어플리케이션으로부터의 출력이 검증되는 것을 특징으로 하는 방법(300).
KR1020190151060A 2018-12-04 2019-11-22 인증가능 및 적격가능 소프트웨어의 결합을 통한 컴퓨터 시스템 무결성 KR20200068577A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/209,506 US11775633B2 (en) 2018-12-04 2018-12-04 Computer system integrity through a combination of certifiable and qualifiable software
US16/209,506 2018-12-04

Publications (1)

Publication Number Publication Date
KR20200068577A true KR20200068577A (ko) 2020-06-15

Family

ID=68762409

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190151060A KR20200068577A (ko) 2018-12-04 2019-11-22 인증가능 및 적격가능 소프트웨어의 결합을 통한 컴퓨터 시스템 무결성

Country Status (9)

Country Link
US (1) US11775633B2 (ko)
EP (1) EP3680779B1 (ko)
JP (1) JP7462406B2 (ko)
KR (1) KR20200068577A (ko)
CN (1) CN111274581A (ko)
AU (1) AU2019264554A1 (ko)
BR (1) BR102019025555A2 (ko)
CA (1) CA3061941A1 (ko)
RU (1) RU2019136482A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11254440B2 (en) * 2019-08-07 2022-02-22 Rockwell Collins, Inc. Relative navigation and machine vision for automated aerial refueling system and method
CN114217545B (zh) * 2021-11-04 2024-06-11 北京机电工程研究所 结合硬件条件判断的控制软件关键指令输出方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7913232B2 (en) * 2003-02-21 2011-03-22 The Math Works, Inc. Certifying software for safety-critical systems
US9933521B2 (en) 2014-04-14 2018-04-03 The Boeing Company Aerial positioning systems and methods
US9630318B2 (en) * 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US11501200B2 (en) * 2016-07-02 2022-11-15 Hcl Technologies Limited Generate alerts while monitoring a machine learning model in real time
US10095230B1 (en) 2016-09-13 2018-10-09 Rockwell Collins, Inc. Verified inference engine for autonomy

Also Published As

Publication number Publication date
CA3061941A1 (en) 2020-06-04
BR102019025555A2 (pt) 2020-06-16
CN111274581A (zh) 2020-06-12
JP7462406B2 (ja) 2024-04-05
AU2019264554A1 (en) 2020-06-18
RU2019136482A (ru) 2021-05-13
EP3680779A1 (en) 2020-07-15
EP3680779B1 (en) 2021-05-19
JP2020126592A (ja) 2020-08-20
US20200175151A1 (en) 2020-06-04
US11775633B2 (en) 2023-10-03

Similar Documents

Publication Publication Date Title
US11092966B2 (en) Building an artificial-intelligence system for an autonomous vehicle
US9443436B2 (en) System for testing of autonomy in complex environments
WO2016092749A1 (en) Information processing apparatus, information processing method, and program
US11537881B2 (en) Machine learning model development
CN111352434B (zh) 支持接近机场的机场跑道的飞机的设备及方法
US10606266B2 (en) Tracking a target moving between states in an environment
KR20200068577A (ko) 인증가능 및 적격가능 소프트웨어의 결합을 통한 컴퓨터 시스템 무결성
US11397660B2 (en) Method and apparatus for testing a system, for selecting real tests, and for testing systems with machine learning components
Dmitriev et al. Toward certification of machine-learning systems for low criticality airborne applications
US10957116B2 (en) Gap detection for 3D models
US10964132B2 (en) Detecting fault states of an aircraft
US20230150661A1 (en) Horizon detection to support an aircraft on a mission in an environment
US10339461B2 (en) System for maintenance of a manufactured product
Boniol et al. Challenges in the Certification of Computer Vision-Based Systems
Petrosian et al. Test platform for Simulation-In-Hardware of unmanned aerial vehicle on-board computer.
Bownes Using motion capture and augmented reality to test aar with boom occlusion
Hereau Multi-level fault tolerance for autonomous robots-Application to an underwater robot
Vermaelen et al. Formal verification of autonomous UAV behavior for inspection tasks using the knowledge base system IDP
KR20200030990A (ko) 제어 시스템의 해저드 분석 방법 및 그 장치
Beneder et al. A Model-Based Approach for Remote Development of Embedded Software for Object Avoidance Applications
US20180011781A1 (en) Generating pseudorandom test items for software testing of an application under test (aut)
Helmich et al. Automatic Ground-Truth Image Labeling for Deep Neural Network Training and Evaluation Using Industrial Robotics and Motion Capture
Schulte et al. Development of a fault protection architecture based upon state machines
US20220198703A1 (en) Determining a current pose estimate of an aircraft relative to a runway to support the aircraft on approach
US20220250765A1 (en) Calibration system and method for aircraft control surface actuation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal