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
If you were to plot the voltage versus the current for a given circuit, what would you expect the slope of the line to be? If no
Brut [27]

Answer:

Part 1: It would be a straight line, current will be directly proportional to the voltage.

Part 2: The current would taper off and will have negligible increase after the voltage  reaches a certain  value. Graph attached.

Explanation:

For the first part, voltage and current have a linear relationship as dictated by the Ohm's law.

V=I*R

where V is the voltage, I is the current, and R is the resistance. As the Voltage increase, current is bound to increase too, given that the resistance remains constant.

In the second part, resistance is not constant. As an element heats up, it consumes more current because the free sea of electrons inside are moving more rapidly, disrupting the flow of charge. So, as the voltage increase, the current does increase, but so does the resistance. Leaving less room for the current to increase. This rise in temperature is shown in the graph attached, as current tapers.

7 0
3 years ago
how is friction losses in pipes reduced? a. decrease the pipe diameter b. increase the length of the pipes. c. decrease the leng
Citrus2011 [14]

Friction losses in pipes can be reduced by decreasing the length of the pipes, reducing the surface roughness of the pipes, and increasing the pipe diameter. Thus, options (c),(e), and (f) hold correct answers.

Friction loss is a measure of the amount of energy a piping system loses because flowing fluids meet resistance. As fluids flow through the pipes, they carry energy with them. Unfortunately, whenever there is resistance to the flow rate, it diverts fluids, and energy escapes. These opposing forces result in friction loss in pipes.

Friction loss in pipes can decrease the efficiency of the functions of pipes. These are a few ways by which friction loss in pipes can be reduced and the efficiency of the piping system can be boosted:

  • <u><em>Decrease the length of the pipes</em></u>: By decreasing pipe lengths and avoiding the use of sharp turns, fittings, and tees, whenever possible result in a more natural path for fluids to flow.
  • <u><em>Reduce the surface roughness of the pipes</em></u>:  By reducing the interior surface roughness of pipes, a smooth and clearer path is provided for liquids to flow.
  • <u><em>Increase the pipe diameter: </em></u>By widening the diameters of pipes, it is ensured that fluids squeeze through pipes easily.

You can learn more about friction losses at

brainly.com/question/13348561

#SPJ4

3 0
1 year ago
What two things must be included in your function definition?
mars1129 [50]

Explanation:

commands to be and function arguments

8 0
3 years ago
.) If the charges attracting each other in the problem above have equal magnitude, what is the magnitude of each charge?
Sedaia [141]

Answer:

Not seeing any other information, the best answer I can give is 2m.

Explanation:

M = magnitude

You see, if they have an equal charge, and you add them, it'd be 2 * m, or 2m.

8 0
3 years ago
calculate how much black eyes seeds are necessary to plant a 6- hectare( 14.425 acres) field. given that the weight of 1000 blac
11111nata11111 [884]

Answer: 1.38g

Explanation:

Width of planting area = 100m

Field size = 6-hectares(14.425 acres)

Weight of 1000 black eye seed = 230g

1 lb = 453.4g

1 black eye seed = 230g/1000 = 0.23g = 0.00023kg

1 hectare = 10,000sq metre

6 hectare = 60,000sq metre

(Weight/Area) kg/m2

0.00023kg / 10,000 = 2.3×10^-8kg/m^2

And field size = 6hectares = 60,000m^2

(2.3×10^-8) × 60,000 = 0.00138kg of black eye seed

0.00138kg × 1000 = 1.38g

6 0
3 years ago
Other questions:
  • An alloy has a yield strength of 818 MPa and an elastic modulus of 104 GPa. Calculate the modulus of resilience for this alloy [
    13·1 answer
  • Design a PLC ladder logic program to control the operation of a conveyor-storage system using the following sequence: - 1. Progr
    5·1 answer
  • Create a Python program that will produce the following output:
    7·1 answer
  • Write the following statements as Prolog clauses, in the order given: If it is raining or snowing, then there is precipitation.
    15·1 answer
  • The following laboratory test results for Atterberg limits and sieve-analysis were obtained for an inorganic soil. [6 points] Si
    14·1 answer
  • Puan puan puan vericim
    5·2 answers
  • Engineers are problem blank<br> who use critical thinking to create new solutions.
    11·2 answers
  • A clean machine is a _______________ machine.
    11·1 answer
  • What is the different between isometric view and isometric projection
    11·1 answer
  • Identify the right components for gsm architecture that consists of the hardware or physical equipment such as digital signal pr
    12·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!