PREFIX algo: <http://securitytoolbox.appspot.com/securityMain#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

algo:KeyManagementProtocol a rdfs:Class ;
  rdfs:label "Key Management Protocol"@en ;
  rdfs:subClassOf algo:SecurityProtocol .

algo:hasAlgorithm a rdf:Property ;
  rdfs:label "hasAlgorithm"@en ;
  rdfs:domain algo:SecurityProtocol ;
  rdfs:range <http://securitytoolbox.appspot.com/securityAlgorithms#Algorithm> .

algo:reqCredential a rdf:Property ;
  rdfs:label "reqCredential"@en ;
  rdfs:domain algo:SecurityProtocol ;
  rdfs:range <http://www.kim.com/NRLOntologyFiles/credentials.owl#Credential> .

algo:hasAssurance a rdf:Property ;
  rdfs:label "hasAssurance"@en ;
  rdfs:range <http://www.kim.com/NRLOntologyFiles/securityAssurance.owl#Assurance> .

algo:supportsSecurityObjectives a rdf:Property ;
  rdfs:label "supports Security Objectives"@en ;
  rdfs:comment """
Any SecurityConcept can support one or more of the Security Objectives defined
in the SecurityObjective class
""" ;
  rdfs:domain algo:SecurityConcept ;
  rdfs:range algo:SecurityObjective .

algo:HostMechanism a rdfs:Class ;
  rdfs:label "Host Mechanism"@en ;
  rdfs:subClassOf algo:SecurityMechanism .

algo:MilitaryPolicy a rdfs:Class ;
  rdfs:label "Military Policy"@en ;
  rdfs:subClassOf algo:SecurityPolicy .

<http://securitytoolbox.appspot.com/supportsSecurityObjectives> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

algo:SecurityProtocol a rdfs:Class ;
  rdfs:label "Security Protocol"@en ;
  rdfs:subClassOf algo:SecurityConcept .

<http://securitytoolbox.appspot.com/securityAlgorithms#EncryptionAlgorithm> a rdfs:Class .

<http://www.kim.com/NRLOntologyFiles/securityAssurance.owl#Assurance> a rdfs:Class .

<http://xmlns.com/foaf/0.1/Person> a rdfs:Class .

<http://securitytoolbox.appspot.com/securityAlgorithms#SignatureAlgorithm> a rdfs:Class .

algo:SignatureProtocol a rdfs:Class ;
  rdfs:label "Signature Protocol"@en ;
  rdfs:subClassOf algo:SecurityProtocol .

algo:SecurityMechanism a rdfs:Class ;
  rdfs:label "Security Mechanism"@en ;
  rdfs:subClassOf algo:SecurityConcept .

algo:NetworkSecurityProtocol a rdfs:Class ;
  rdfs:label "Network Security Protocol"@en ;
  rdfs:subClassOf algo:SecurityProtocol .

<http://securitytoolbox.appspot.com/securityAlgorithms#Algorithm> a rdfs:Class .

algo:CommercialPolicy a rdfs:Class ;
  rdfs:label "Commercial Policy"@en ;
  rdfs:subClassOf algo:SecurityPolicy .

algo:EncryptionProtocol a rdfs:Class ;
  rdfs:label "Encryption Protocol"@en ;
  rdfs:subClassOf algo:SecurityProtocol .

algo:AuthenticationProtocol a rdfs:Class ;
  rdfs:label "Authentication Protocol"@en ;
  rdfs:subClassOf algo:SecurityProtocol .

<http://www.kim.com/NRLOntologyFiles/credentials.owl#Credential> a rdfs:Class .

algo:NetworkMechanism a rdfs:Class ;
  rdfs:label "Network Mechanism"@en ;
  rdfs:subClassOf algo:SecurityMechanism .

algo:ServiceMechanism a rdfs:Class ;
  rdfs:label "Service Mechanism"@en ;
  rdfs:subClassOf algo:SecurityMechanism .

algo:ApplicationMechanism a rdfs:Class ;
  rdfs:label "Application Mechanism"@en ;
  rdfs:subClassOf algo:SecurityMechanism .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

algo:SecurityConcept a rdfs:Class ;
  rdfs:label "Security Concept"@en .

algo:SecurityPolicy a rdfs:Class ;
  rdfs:label "Security Policy"@en ;
  rdfs:subClassOf algo:SecurityConcept .

algo:hasEncryptionAlgorithm a rdf:Property ;
  rdfs:label "hasEncryptionAlgorithm"@en ;
  rdfs:range <http://securitytoolbox.appspot.com/securityAlgorithms#EncryptionAlgorithm> ;
  rdfs:subPropertyOf algo:hasAlgorithm .

algo:hasSignatureAlgorithm a rdf:Property ;
  rdfs:label "hasSignatureAlgorithm"@en ;
  rdfs:range <http://securitytoolbox.appspot.com/securityAlgorithms#SignatureAlgorithm> ;
  rdfs:subPropertyOf algo:hasAlgorithm .

algo:SecurityObjective a rdfs:Class ;
  rdfs:label "Security Objective"@en .

algo:TrafficHiding a algo:SecurityObjective ;
  rdfs:comment """
(Secondary Objective) Pad traffic with bogus data to hide traffic patterns
""" .

algo:Separation a algo:SecurityObjective ;
  rdfs:comment """
(Secondary Objective)
""" .

algo:Trust a algo:SecurityObjective ;
  rdfs:comment """
(Secondary Objective) How to trust entity. Trust not only of identification,
but statements, claims, etc.
""" .

algo:Anonymity a algo:SecurityObjective ;
  rdfs:comment """
(Secondary Objective) Provides anonymity
""" .

algo:KeyManagement a algo:SecurityObjective ;
  rdfs:comment """
(SecondaryObjective) Securely manages keys for legitimate users.
""" .

algo:Confidentiality a algo:SecurityObjective ;
  rdfs:comment """
Protects against information being disclosed or revealed to unauthorized
parties.
""" .

algo:UserAuthentication a algo:SecurityObjective ;
  rdfs:comment """
Provides assurance of the identity of a person or entity.
""" .

algo:MessageIntegrity a algo:SecurityObjective ;
  rdfs:comment """
Data integrity or Message integrity; data cannot be changed, deleted,
modified, etc by unauthorized parties.
""" .

algo:HostTrust a algo:SecurityObjective ;
  rdfs:comment """
(Secondary Objective) How to trust host or platform. Is relevant to Common
criteria, etc.
""" .

algo:ReplayPrevention a algo:SecurityObjective ;
  rdfs:comment """
(Secondary Objective) Protect against replay attacks
""" .

algo:CovertChannelPrevention a algo:SecurityObjective ;
  rdfs:comment """
(Secondary Objective) Prevent or limit the existance of covert channels
""" .

algo:MessageAuthentication a algo:SecurityObjective ;
  rdfs:comment """
Provides guarantee that message came from whoever claimed to have sent it.
""" .

algo:Availability a algo:SecurityObjective ;
  rdfs:comment """
Provides guarantee that resource is available to authorized users at any
authorized time.
""" .

algo:Authorization a algo:SecurityObjective ;
  rdfs:comment """
Only authorized entities are allowed to access resources in an authorized
manner.
(Aka Access Control). If desired, user may create instance of AccessControl as
well.
""" .
