1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Serggg [28]
3 years ago
13

Traditional password entry schemes are susceptible to "shoulder surfing" in which an attacker watches an unsuspecting user enter

their password or PIN number and uses it later to gain access to the account. One way to combat this problem is with a randomized challenge-response system. In these systems, the user enters different information every time based on a secret in response to a randomly generated challenge. Consider the fol- lowing scheme in which the password consists of a five-digit PIN number (00000 to 99999). Each digit is assigned a random number that is 1, 2, or 3. The user enters the random numbers that correspond to their PIN instead of their actual PIN numbers.For example, consider an actual PIN number of 12345. To authenticate the user would be presented with a screen such as:PIN: 0 1 2 3 4 5 6 7 8 9 NUM: 3 2 3 1 1 3 2 2 1 3The user would enter 23113 instead of 12345. This doesn’t divulge the password even if an attacker intercepts the entry because 23113 could correspond to other PIN numbers, such as 69440 or 70439. The next time the user logs in, a different sequence of random numbers would be generated, such as: PIN: 0 1 2 3 4 5 6 7 8 9 NUM: 1 1 2 3 1 2 2 3 3 3Your program should simulate the authentication process. Store an actual PIN number in your program. The program should use an array to assign random numbers to the digits from 0 to 9. Output the random digits to the screen, input the response from the user, and output whether or not the user’s response correctly matches the PIN number.I have this code so far, but would like to input cstrings and vectors to fulfill the requirements, I need help with that. This is for c++ for beginners#include #include #include #include using namespace std;void generateRandomNumbers(int *random){ // Use current time as seed for random generatorsrand(time(0));for(int i=0;i<10;i++){random[i] = 1 + rand() % 3;}}bool isMatch(string pin,string randomPin,int *random){int index;for(int i=0;i<(int)pin.length();i++){ //converting pin number to int so that we can check the random number at that indexindex = pin[i]-'0';if((randomPin[i]-'0') != random[index-1])return false;}return true;}int main(){string pin = "12345";string randomPin;int random[10];generateRandomNumbers(random);cout << "Randomly Generated numbers " << endl;for(int i=0;i<10;i++){cout << random[i] << " ";}cout << endl;cout << "Now Enter your pin interms of random numbers: ";cin >> randomPin;if(isMatch(pin,randomPin,random)){cout << "Both matches" << endl;}else{cout << "Sorry you entered wrong pin.." << endl;}}
Engineering
1 answer:
KengaRu [80]3 years ago
3 0

The following code or the program will be used:

<u>Explanation:</u>

import java.util.Scanner;

public class Authenticate

{

public static void main(String[] args)

{

// Actual password is 99508

int[] actual_password = {9, 9, 5, 0, 8};

// Array to hold randomly generated digits

int[] random_nums = new int[10];

// Array to hold the digits entered by the user to authenticate

int[] entered_digits = new int[actual_password.length];

// Randomly generate numbers from 1-3 for

// for each digit

for (int i=0; i < 10; i++)

{

random_nums[i] = (int) (Math.random() * 3) + 1;

}

// Output the challenge

System.out.println("Welcome! To log in, enter the random digits from 1-3 that");

System.out.println("correspond to your PIN number.");

System.out.println();

System.out.println("PIN digit: 0 1 2 3 4 5 6 7 8 9");

System.out.print("Random #: ");

for (int i=0; i<10; i++)

{

System.out.print(random_nums[i] + " ");

}

System.out.println();

System.out.println();

// Input the user's entry

Scanner keyboard = new Scanner(System.in);

System.out.println("Enter code.");

String s = keyboard.next();

String s = keyboard.next();

// Extract the digits from the code and store in the entered_digits array

for (int i=0; i<s.length(); i++)

{

entered_digits[i] = s.charAt(i) - '0'; // Convert char to corresponding digit

}

// At this point, if the user typed 12443 then

// entered_digits[0] = 1, entered_digits[1] = 2, entered_digits[2] = 4,

// entered_digits[3] = 4, and entered_digits[4] = 3

/****

TO DO: fill in the parenthesis for the if statement

so the isValid method is invoked, sending in the arrays

actual_password, entered_digits, and random_nums as

parameters

***/

if (isValid (actual_password, entered_digits, random_nums)) // FILL IN HERE

{

System.out.println("Correct! You may now proceed.");

}

else

{

System.out.println("Error, invalid password entered.");

}

/***

TO DO: Fill in the body of this method so it returns true

if a valid password response is entered, and false otherwise.

For example, if:

actual = {9,9,5,0,8}

randnums = {1,2,3,1,2,3,1,2,3,1}

then this should return true if:

entered[0] == 1 (actual[0] = 9 -> randnums[9] -> 1)

entered[1] == 1 (actual[1] = 9 -> randnums[9] -> 1)

entered[2] == 3 (actual[2] = 5 -> randnums[5] -> 3)

entered[3] == 1 (actual[3] = 0 -> randnums[0] -> 1)

entered[4] == 3 (actual[4] = 8 -> randnums[8] -> 3)

or in other words, the method should return false if any of

the above are not equal.

****/

public static boolean isValid(int[] actual, int[] entered, int[] randnums)

{

int Index = 0;

boolean Valid = true;

while (Valid && (Index < actual.length))

{

int Code = actual[Index];

if (entered [Index] != randnums [Code])

{

Valid = false;

}

Index++;

}

return Valid;

}

You might be interested in
NEED HELPASAP what is the moisture content of a board if a test sample that originally weighed 11. 5 oz was found to weigh 10 oz
Viefleur [7K]

Answer:

11.5-10/10= 0.15x100 =15%

Explanation:

3 0
2 years ago
You must signal _____ before any turn or lane change. A. 5 seconds B. 10 seconds C. 50 ft D. 100 ft
Nezavi [6.7K]
The answer is D! hope you pass
6 0
3 years ago
Read 2 more answers
How many broadcast or vlan is in this switchs and router ? and why? ​
Mnenie [13.5K]

Answer:The move from hubs (shared networks) to switched networks was a big improvement. Control over collisions, increased throughput, and the additional features offered by switches all provide ample incentive to upgrade infrastructure. But Layer 2 switched topologies are not without their difficulties. Extensive flat topologies can create congested broadcast domains and can involve compromises with security, redundancy, and load balancing. These issues can be mitigated through the use of virtual local area networks, or VLANs. This chapter provides the structure and operation of VLANs as standardized in IEEE 802.1Q. This discussion will include trunking methods used for interconnecting devices on VLANs.

Problem: Big Broadcast Domains

With any single shared media LAN segment, transmissions propagate through the entire segment. As traffic activity increases, more collisions occur and transmitting nodes must back off and wait before attempting the transmission again. While the collision is cleared, other nodes must also wait, further increasing congestion on the LAN segment.

The left side of Figure 4-1 depicts a small network in which PC 2 and PC 4 attempt transmissions at the same time. The frames propagate away from the computers, eventually colliding with each other somewhere in between the two nodes as shown on the right. The increased voltage and power then propagate away from the scene of the collision. Note that the collision does not continue past the switches on either end. These are the boundaries of the collision domain. This is one of the primary reasons for switches replacing hubs. Hubs (and access points) simply do not scale well as network traffic increases.

7 0
3 years ago
Which statement best describes an integrated circuit?
olganol [36]

Answer:b

Explanation:

5 0
3 years ago
A knock sensor produces an electric current in response to a change in?
Kay [80]
The difference between the electrical gradient is a electrical issue in power
3 0
3 years ago
Read 2 more answers
Other questions:
  • Modify any of the previous labs which would have crashed when non-numeric data was entered by adding exception handling so that
    8·1 answer
  • A bridge to be fabricated of steel girders is designed to be 500 m long and 12 m wide at ambient temperature (assumed 20°C). Exp
    9·1 answer
  • If the efficiency of the boiler is 91.2 % , the overall efficiency of the turbine, which includes the Carnot efficiency and its
    5·1 answer
  • A venturi meter is to be installed in a 63 mm bore section of a piping system to measure the flow rate of water in it. From spac
    15·1 answer
  • In the given circuit, V(t)=12cos(2000t+45)V, R1=R2=2Ω, L1=L2=L3=3mH and C1=250μF. You are required to find the Thevenin equivale
    7·1 answer
  • Consider two Carnot heat engines operating in series. The first engine receives heat from the reservoir at 1400 K and rejects th
    6·1 answer
  • Air is compressed in a well insulated compressor from 95 kPa and 27 C to 600 kPa and 277 C. Use the air tables; assume negligibl
    11·1 answer
  • Water is boiled in a pot covered with a loosely fitting lid at a location where the pressure is 85.4 kPa. A 2.61 kW resistance h
    8·1 answer
  • One of the most important parts about creating great photographs starts with choosing what to photograph
    6·1 answer
  • Drivers education :Anything that draws your mind off driving is
    9·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!