Key Information

Register
Submit
Status: ‌Cancelled client request

Challenge Overview

1.0. Project Overview

Welcome to the NASA Disruption Tolerant Networking (DTN) project. DTN is an approach to computer network architecture that seeks to address the technical issues in heterogeneous networks that may lack continuous network connectivity.

Note that some literature may use the term Delay Tolerant Network which is also abbreviated as DTN - the two terms are used interchangeably.

DTN is designed to provide reliable end-to-end delivery of information between nodes, and to do so in an environment that experiences frequent connectivity disruptions and topology changes. Such a capability will directly support human and robotic space exploration, as well as have wide applicability to land-mobile and airborne terrestrial communications.

Learn more about DTN

2.0. Competition Overview

Delay-Tolerant Security Key Agreement, or DTKA, is an ION-compatible module for security key administration in DTN prototyped by the Jet Propulsion Laboratory (JPL) at CalTech for NASA. DTKA is a prototype -- a working implementation that solves the key exchange problem that we are trying to solve in this project. The DTKA prototype, which is written in C, is a console-based application that runs on Linux and requires to be installed on the host machine: a modified version of ION 3.2.0 (provided to this challenge); PolarSSL version 1.2.8 or later and; zfec version 1.4.24 or later. DTKA can also be used with a newer version of ION -- version 3.2.1 which you can get directly from SourceForge.

The goal of this challenge is to add the Iterative Trust and Reputation Management (ITRM) algorithm to the DTKA prototype code base.

3.0. Competition Requirements

To maintain high levels of trust in a DTN that uses the key administration functionality provided by DTKA, it is important to keep track of the trustworthiness, or otherwise, of all nodes in that DTN, as this will make identifying and blacklisting of malicious nodes easier. We have identified the ITRM algorithm as a viable way of keeping track of trustworthiness and have built a proof of concept (PoC) in Python. This challenge will translate the Python implementation into C and enhance the DTKA prototype to use the ITRM algorithm. You can read more about the ITRM algorithm in this paper.

3.1. Competition Input

Please note that all input to this challenge have been attached to the forum which you'll have access to after registering, therefore, please refer to the forum for this challenge for all the items mentioned in this section.

  1. DTKA Overview - provides an introduction and a high-level discussion of the core aspects of DTKA.
  2. DTKA Code - the DTKA code and ION distribution to be modified in this assembly.
  3. DTKA Setup - instructions on how to set up DTKA in your development environment.
  4. ITRM PoC - a Python-based prototype of the ITRM algorithm.

3.2. Competition Tasks

For all modifications, please adhere to best practices in your code. Please refer to the attached TC UML diagram for an overview of the modifications that will be made in this assembly. http://apps.topcoder.com/wiki/download/attachments/146767909/dtka_diagrams.tcuml

 

3.3. Testing

The DTKA prototype should be updated to demonstrate that, after a few key exchanges, the Key Authority (KA) servers in the DTN network are able to determine with some accuracy, the malicious nodes in the network and it should blacklist them before the next key exchange round.

4. Submission Deliverables

You must submit a compressed archive of your submission which must containing the following:

  • Working DTKA prototype. It must include all necessary files required to run the code, including IDE project files.
  • Test output. Can be a simple text file containing the piped output from executing the app from the console.
  • Deployment Guide. Detailed MS Word document describing all the steps required to test the solution successfully.

Note that you must download and use the template on which to base your deployment guide on from here. All finalized submissions should be uploaded to Online Review at software.topcoder.com/review.

All standard terms that govern assembly contests applies to this contest. If you are not familiar with the assembly track or are in doubt what these terms are, please refer to the assembly tutorial: http://apps.topcoder.com/wiki/display/tc/General+Assembly+Competition+Tutorial



Final Submission Guidelines

1. Third Party Code/Libraries - All third party code/libraries must be open source and you must include the license in your submission. The license must allow us to modify/re-package the code as necessary. If you have any questions regarding this, please post in the forums. Submissions that include third party code without the proper license information will be disqualified if the third party code is found to be non-usable due to license restrictions.

2. Attribution/References- You must properly attribute and or reference any sentences, paragraphs or quotes that you cite in your text-based submission. If your submission is found to include text that has been copied and pasted from an online source without properly attributing the source, you will receive a not-so-nice email from the topcoder competition manager.

3. Spell Check - We understand that not all submitters will be native English speakers and that there will be spelling/grammatical mistakes. We request that you first run your submission through a grammar/spell checker before submission so as to fix simple mistakes. 

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30035528