Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Sampath Kannan is active.

Publication


Featured researches published by Sampath Kannan.


international colloquium on automata, languages and programming | 2005

On graph problems in a semi-streaming model

Joan Feigenbaum; Sampath Kannan; Andrew McGregor; Siddharth Suri; Jian Zhang

We formalize a potentially rich new streaming model, the semi-streaming model, that we believe is necessary for the fruitful study of efficient algorithms for solving problems on massive graphs whose edge sets cannot be stored in memory. In this model, the input graph, G = (V, E), is presented as a stream of edges (in adversarial order), and the storage space of an algorithm is bounded by O(n ċ polylog n), where n = |V|. We are particularly interested in algorithms that use only one pass over the input, but, for problems where this is provably insufficient, we also look at algorithms using constant or, in some cases, logarithmically many passes. In the course of this general study, we give semi-streaming constant approximation algorithms for the unweighted and weighted matching problems, along with a further algorithmic improvement for the bipartite case. We also exhibit log n/log log n semi-streaming approximations to the diameter and the problem of computing the distance between specified vertices in a weighted graph. These are complemented by Ω(log(1-e) n) lower bounds.


formal methods | 2004

Java-MaC: A Run-Time Assurance Approach for Java Programs

Moonzoo Kim; Mahesh Viswanathan; Sampath Kannan; Insup Lee; Oleg Sokolsky

We describe Java-MaC, a prototype implementation of the Monitoring and Checking (MaC) architecture for Java programs. The MaC architecture provides assurance that the target program is running correctly with respect to a formal requirements specification by monitoring and checking the execution of the target program at run-time. MaC bridges the gap between formal verification, which ensures the correctness of a design rather than an implementation, and testing, which does not provide formal guarantees about the correctness of the system.Use of formal requirement specifications in run-time monitoring and checking is the salient aspect of the MaC architecture. MaC is a lightweight formal method solution which works as a viable complement to the current heavyweight formal methods. In addition, analysis processes of the architecture including instrumentation of the target program, monitoring, and checking are performed fully automatically without human direction, which increases the accuracy of the analysis. Another important feature of the architecture is the clear separation between monitoring implementation-dependent low-level behaviors and checking high-level behaviors, which allows the reuse of a high-level requirement specification even when the target program implementation changes. Furthermore, this separation makes the architecture modular and allows the flexibility of incorporating third party tools into the architecture. The paper presents an overview of the MaC architecture and a prototype implementation Java-MaC.


foundations of computer science | 2000

The relationship between public key encryption and oblivious transfer

Yael Gertner; Sampath Kannan; Tal Malkin; Omer Reingold; Mahesh Viswanathan

In this paper we study the relationships among some of the most fundamental primitives and protocols in cryptography: public-key encryption (i.e. trapdoor predicates), oblivious transfer (which is equivalent to general secure multi-party computation), key agreement and trapdoor permutations. Our main results show that public-key encryption and oblivious transfer are incomparable under black-box reductions. These separations are tightly matched by our positive results where a restricted (strong) version of one primitive does imply the other primitive. We also show separations between oblivious transfer and key agreement. Finally, we conclude that neither oblivious transfer nor trapdoor predicates imply trapdoor permutations. Our techniques for showing negative results follow the oracle separations of R. Impagliazzo and S. Rudich (1989).


symposium on the theory of computing | 1998

Spot-checkers

Funda Ergün; Sampath Kannan; S. Ravi Kumar; Ronitt Rubinfeld; Mahesh Viswanathan

On Labor Day weekend, the highway patrol sets up spot-checks at random points on the freeways with the intention of deterring a large fraction of motorists from driving incorrectly. We explore a very similar idea in the context of program checking to ascertain with minimal overhead that a program output is reasonably correct. Our model of spot-checking requires that the spot-checker must run asymptotically much faster than the combined length of the input and output. We then show that the spot-checking model can be applied to problems in a wide range of areas, including problems regarding graphs, sets, and algebra. In particular, we present spot-checkers for sorting, convex hull, element distinctness, set containment, set equality, total orders, and correctness of group and field operations. All of our spot-checkers are very simple to state and rely on testing that the input and/or output have certain simple properties that depend on very few bits. Our results also give property tests as defined by Rubinfeld and Sudan (1996, SIAM J. Comput.25, 252?271), Rubinfeld (1994, “Proc. 35th Foundations of Computer Science,” pp. 288?299), and Goldreich et al. (1998, J. Assoc. Comput. Mach.45, 653?750).


foundations of computer science | 1991

Checking the correctness of memories

Manuel Blum; William S. Evans; Peter Gemmell; Sampath Kannan; Moni Naor

The notion of program checking is extended to include programs that alter their environment, in particular, programs that store and retrieve data from memory. The model considered allows the checker a small amount of reliable memory. The checker is presented with a sequence of requests (online) to a data structure which must reside in a large but unreliable memory. The data structure is viewed as being controlled by an adversary. The checker is to perform each operation in the input sequence using its reliable memory and the unreliable data structure so that any error in the operation of the structure will be detected by the checker with high probability. Checkers for various data structures are presented. Lower bounds of log n on the amount of reliable memory needed by these checkers, where n is the size of the structure, are proved.<<ETX>>


euromicro conference on real time systems | 1999

Formally specified monitoring of temporal properties

Moonjoo Kim; Mahesh Viswanathan; Hanêne Ben-Abdallah; Sampath Kannan; Insup Lee; Oleg Sokolsky

We describe the Monitoring and Checking (MaC) framework which provides assurance on the correctness of an execution of a real-time system at runtime. Monitoring is performed based on a formal specification of system requirements. MaC bridges the gap between formal specification, which analyzes designs rather than implementations, and testing, which validates implementations but lacks formality. An important aspect of the framework is a clear separation between implementation-dependent description of monitored objects and high-level requirements specification. Another salient feature is automatic instrumentation of executable code. The paper presents an overview of the framework, languages to express monitoring scripts and requirements, and a prototype implementation of MaC targeted at systems implemented in Java.


runtime verification | 2001

Java-MaC: A Run-time Assurance Tool for Java Programs

Moonjoo Kim; Sampath Kannan; Insup Lee; Oleg Sokolsky; Mahesh Viswanathan

Abstract We describe Java-MaC, a prototype implementation of the Monitoring and Checking (MaC) architecture for Java programs. The MaC architecture provides assurance about the correct execution of target programs at run-time. Monitoring and checking is performed based on a formal specification of system requirements. MaC bridges the gap between formal verification, which ensures the correctness of a design rather than an implementation, and testing, which only partially validates an implementation. Java-MaC provides a lightweight formal method solution as a viable complement to the current heavyweight formal methods. An important aspect of the architecture is the clear separation between monitoring implementation-dependent low-level behaviors and checking high-level behaviors against a formal requirements specification. Another salient feature is automatic instrumentation of executable codes. The paper presents an overview of the MaC architecture and a prototype implementation Java-MaC.


international colloquium on automata languages and programming | 1999

Communicating Hierarchical State Machines

Rajeev Alur; Sampath Kannan; Mihalis Yannakakis

Hierarchical state machines are finite state machines whose states themselves can be other machines. In spite of their popularity in many modeling tools for software design, very little is known concerning their complexity and expressiveness. In this paper, we study these questions for hierarchical state machines as well as for communicating hierarchical state machines, that is, finite state machines extended with both hierarchy and concurrency. We present a comprehensive set of results characterizing (1) the complexity of the reachability, emptiness and universality problems, (2) the complexity of the language inclusion and equivalence problems, and (3) the succinctness relationships between different types of machines.


symposium on the theory of computing | 1988

Implicit representation of graphs

Sampath Kannan; Moni Naor; Steven Rudich

How to represent a graph in memory is a fundamental data structuring question. In the usual representations of an <italic>n</italic>-node graph, the names of the nodes (i.e. integers from 1 to <italic>n</italic>) betray nothing about the graph itself. Indeed, the names (or labels) on the <italic>n</italic> nodes are just log<italic>n</italic> bit place holders to allow data on the edges to code for the structure of the graph. In our scenario, there is no such waste. By assigning <italic>&Ogr;</italic>(log<italic>n</italic>) bit labels to the nodes, we completely code for the structure of the graph, so that given the labels of two nodes we can test if they are adjacent in time linear in the size of the labels. Furthermore, given an arbitrary original labeling of the nodes, we can find structure coding labels (as above) that are no more than a small constant factor larger than the original labels. These notions are intimately related to vertex induced universal graphs of polynomial size. For example, we can label planar graphs with structure coding labels of size < 4log<italic>n</italic>. This implies the existence of a graph with <italic>n</italic><supscrpt>4</supscrpt> nodes that contains all <italic>n</italic>-node planar graphs as vertex induced subgraphs (It was not previously known that this class had polynomial sized universal graphs). The theorems on finite graphs extend to a theorem about the constrained labeling of infinite graphs.


european workshop on system security | 2010

Detecting Wikipedia vandalism via spatio-temporal analysis of revision metadata?

Andrew G. West; Sampath Kannan; Insup Lee

Blatantly unproductive edits undermine the quality of the collaboratively-edited encyclopedia, Wikipedia. They not only disseminate dishonest and offensive content, but force editors to waste time undoing such acts of vandalism. Language-processing has been applied to combat these malicious edits, but as with email spam, these filters are evadable and computationally complex. Meanwhile, recent research has shown spatial and temporal features effective in mitigating email spam, while being lightweight and robust. In this paper, we leverage the spatio-temporal properties of revision metadata to detect vandalism on Wikipedia. An administrative form of reversion called rollback enables the tagging of malicious edits, which are contrasted with non-offending edits in numerous dimensions. Crucially, none of these features require inspection of the article or revision text. Ultimately, a classifier is produced which flags vandalism at performance comparable to the natural-language efforts we intend to complement (85% accuracy at 50% recall). The classifier is scalable (processing 100+ edits a second) and has been used to locate over 5,000 manually-confirmed incidents of vandalism outside our labeled set.

Collaboration


Dive into the Sampath Kannan's collaboration.

Top Co-Authors

Avatar

Insup Lee

University of Pennsylvania

View shared research outputs
Top Co-Authors

Avatar

Oleg Sokolsky

University of Pennsylvania

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Sanjeev Khanna

University of Pennsylvania

View shared research outputs
Top Co-Authors

Avatar

Andrew G. West

University of Pennsylvania

View shared research outputs
Top Co-Authors

Avatar

Volkan Isler

University of Minnesota

View shared research outputs
Top Co-Authors

Avatar

Andrew McGregor

University of Massachusetts Amherst

View shared research outputs
Top Co-Authors

Avatar

Moonjoo Kim

University of Pennsylvania

View shared research outputs
Top Co-Authors

Avatar

Manuel Blum

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Boulos Harb

University of Pennsylvania

View shared research outputs
Researchain Logo
Decentralizing Knowledge